A modern event management platform with AI-powered event creation.
- AI-powered event creation assistant using LangGraph and Ollama (GPT-oss 20b model)
- Role-based authentication (Admin, Event Organiser, User)
- User authentication and registration
- MongoDB database for persistent storage
- Chronological event listings
- Support for both online and in-person events
- Admin panel for user management
| Role | View Events | Buy Tickets | Create Events | Edit Own Events | Delete Own Events | Manage All Events | Manage Users |
|---|---|---|---|---|---|---|---|
| Not Logged In | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
| User | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ |
| Event Organiser | ✓ | ✓ | ✓ | ✓ | Only if not live* | ✗ | ✗ |
| Admin | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
*Event Organisers cannot delete their own events once they are "live" (start time has passed), as users may have already booked tickets.
Prerequisites: Ensure Ollama is running on your host machine with the GPT-oss 20b model installed. See Ollama Setup below.
-
Start the application:
docker compose up
-
Access the application:
- Open your browser to
http://localhost:8011 - The application will be available on
0.0.0.0:8011
- Open your browser to
-
Default Login Credentials:
The following test users are automatically created on startup:
Role Username Password Permissions Admin adminadmin123Full access: create/edit/delete events, manage users Admin admin2admin123Full access: create/edit/delete events, manage users Event Organiser organiser1organiser123Create events, edit own events, delete own events (only if not live) Event Organiser organiser2organiser123Create events, edit own events, delete own events (only if not live) User user1user123View events, buy tickets User user2user123View events, buy tickets -
Stop the application:
docker compose down
-
Stop and remove volumes (clean slate):
docker compose down -v
- Web Application: FastAPI server running on port 8011
- MongoDB: Database server running on port 27017
The following environment variables can be customized in docker-compose.yml:
MONGODB_URL: MongoDB connection string (default:mongodb://mongodb:27017)DATABASE_NAME: Database name (default:event_website)SECRET_KEY: Secret key for session management (change in production!)
For local development without Docker:
-
Install dependencies:
pip install -r requirements.txt
-
Start MongoDB locally or use a cloud instance
-
Set environment variables:
export MONGODB_URL="mongodb://localhost:27017" export DATABASE_NAME="event_website" export SECRET_KEY="your-secret-key"
-
Run the application:
uvicorn app.main:app --reload --host 0.0.0.0 --port 8011
- Docker and Docker Compose
- Python 3.11+ (for local development)
- MongoDB (handled by Docker Compose)
- Ollama running on the host machine with the GPT-oss 20b model
The AI-powered event creation feature requires Ollama to be running on the host machine (the same machine running Docker). The application uses the GPT-oss 20b model.
-
Install Ollama from ollama.com
-
Pull the GPT-oss 20b model:
ollama pull gpt-oss:20b
-
Ensure Ollama is running before starting the Docker containers:
ollama serve
Note: The GPT-oss 20b model requires significant system resources. Ensure your machine has adequate RAM and GPU capabilities to run this model.
Windows + WSL Users: If running Docker in WSL while Ollama runs on Windows, you may need to configure the Ollama URL to point to your Windows host IP (e.g.,
192.168.137.146:11434) instead oflocalhost.