A simple Flask application for creating and attending events.
- User registration and JWT-based login
- Create, update and delete your own events
- RSVP to events created by others
- Search and pagination on the events list
- Export event details as
.icscalendar files - User profile pages showing created and attending events
- Optional script to seed the database with demo events
Copy .env.example to .env and adjust credentials.
Start the database container:
docker compose up -d dbWhen the logs show "database system is ready to accept connections," run the initial migration to create the tables:
docker compose run --rm app flask db upgradeOptionally seed the database with demo events to try the search feature:
docker compose run --rm app python seed_events.pyWith the schema applied you can bring up the full stack:
docker compose up --buildThe service listens on port 5000. Visit http://localhost:5000 to use the app.
API endpoints live under /api.
Execute the unit tests locally with pytest -q. To run them in Docker:
docker compose run --rm app pytest -q- Secrets such as
SECRET_KEYand database credentials come from environment variables loaded via.env - SQLAlchemy parameter binding guards against SQL injection
- Ownership checks before update/delete prevent IDOR issues
- Flask-Talisman sets a basic Content-Security-Policy
- Bcrypt salting and hashing