Event Calendar
Project cover
PROJECT FILE / SOFTWARE

Event calendar web app

A solo Flask event calendar with public event pages, a login-protected agenda editor and listings that load dynamically.

PROJECT NOTES

Goal

Pass the individual retake of WP-2 and earn the credits by building an event calendar. The brief asked for public upcoming-event listings and detail pages, plus logged-in calendar and event management.

I also wanted to use the small assignment to try unfamiliar techniques and go deeper than the brief required.

Constraints

Flask, Jinja templates and SQLite with handwritten SQL, no ORM. Follow MVC: database operations separate from route handlers, HTML in templates.

Requirements were prioritized visitors first, then logged-in users, administration and optional extras, and the work had to be broken into smaller stories.

Process

I built the whole thing, front and back: Flask setup, SQLite connection handling, and models for agendas, events and users, organized into blueprints for pages, authentication and API endpoints.

For visitors I made agenda listings, event detail pages, date formatting helpers, and events that load dynamically through JavaScript and JSON endpoints, with pagination. For logged-in users I added Flask-Login, protected routes, and pages to create, edit and delete agendas.

The interface went through several revisions. I started with Bootstrap and later moved to Tailwind CSS with a Node.js build step. I also added error pages, demo-event generation and setup docs.

Result

I passed the retake. The app has public agenda and event pages, dynamically loaded listings, login and agenda management.

Administration was still unfinished according to the README, so passing didn't mean every requirement or optional extra was done.

RETROSPECTIVE

What I learned

Working alone let me move faster, because I could decide and implement without coordinating. It also removed a useful constraint. In the team project I had to think about what others could understand, maintain and contribute to. Without that I had much more freedom, and had to set my own limits.

Keeping track of must-haves, should-haves and nice-to-haves became important. The immediate goal was to pass and earn the credits, while my own challenge was still to learn something new or go deeper on something familiar.

A small assignment can give a lot of room to experiment, but I had to keep sight of the deliverable instead of letting that freedom keep growing the scope.