A FastAPI-based meetup organizing system with HTMX-powered frontend, agentic workflows for venue and speaker research, and integrations with Meetup and Luma.
pip install -r requirements.txt
.envMEETUP_API_KEY=your_meetup_api_key
LUMA_API_KEY=your_luma_api_key
MINIMAX_API_KEY=your_minimax_api_key
PERPLEXITY_API_KEY=your_perplexity_api_key
JWT_SECRET_KEY=your_jwt_secret
DATABASE_PATH=data/meetup.db
python -m app.database.connection
uvicorn app.main:app --reload
POST /auth/register - User registration
POST /auth/login - JWT token generation
POST /auth/logout - Token blacklisting
GET /auth/me - Current user info
GET /events - List all events
POST /events - Create event
GET /events/{id} - Event details
PUT /events/{id} - Update event
DELETE /events/{id} - Delete event
GET /events/{id}/recommendations - Topic recommendations
POST /events/{id}/meetup - Push to Meetup
POST /events/{id}/luma - Push to Luma
GET /kanban/{event_id} - Get all tasks
POST /kanban/tasks - Create task
PATCH /kanban/tasks/{id} - Update task status
PUT /kanban/tasks/{id} - Edit task
GET /venues - List venues
POST /venues - Add venue
POST /venues/research - Trigger venue research agent
GET /venues/{id} - Venue details
GET /speakers - List speakers
POST /speakers/research - Trigger speaker research agent
POST /speakers/enrich - Enrich attendee data
GET /speakers/{id} - Speaker details
GET /marketing/{event_id} - Get materials
POST /marketing/{event_id}/generate - Generate marketing copy
PUT /marketing/{material_id} - Edit material
GET /sponsors - List all sponsors
POST /sponsors - Create sponsor
GET /sponsors/{id} - Sponsor details
PUT /sponsors/{id} - Update sponsor
DELETE /sponsors/{id} - Delete sponsor
POST /events/{event_id}/sponsors/{sponsor_id} - Link sponsor
DELETE /events/{event_id}/sponsors/{sponsor_id} - Unlink sponsor
GET /admin/users - List all users
GET /admin/users/{id} - User details
PUT /admin/users/{id}/permissions - Update user role
DELETE /admin/users/{id} - Deactivate user
cursor_hackathon_26/ ├── app/ │ ├── __init__.py │ ├── main.py # FastAPI application entry point │ ├── config.py # Configuration and API placeholders │ ├── database/ │ │ ├── __init__.py │ │ ├── connection.py # SQLite connection management │ │ └── schemas.py # SQLAlchemy/Pydantic schemas │ ├── models/ │ │ ├── __init__.py │ │ └── database_models.py # SQLAlchemy ORM models │ ├── auth/ │ │ ├── __init__.py │ │ ├── router.py # Auth endpoints (login, register) │ │ ├── dependencies.py # Auth dependencies and guards │ │ └── utils.py # Password hashing, JWT handling │ ├── routers/ │ │ ├── __init__.py │ │ ├── events.py # Event CRUD and topic recommendations │ │ ├── venues.py # Venue management and research │ │ ├── speakers.py # Speaker research and attendee enrichment │ │ ├── marketing.py # Marketing material generation │ │ ├── kanban.py # Kanban board operations │ │ ├── sponsors.py # Sponsor management │ │ └── admin.py # Permission management │ ├── agents/ │ │ ├── __init__.py │ │ ├── base_agent.py # Base agent class with tool calling │ │ ├── venue_research.py # Venue research agent (Perplexity + MiniMax) │ │ └── speaker_research.py # Speaker research agent │ ├── services/ │ │ ├── __init__.py │ │ ├── topic_recommender.py # Historical event-based recommendations │ │ ├── meetup_service.py # Meetup API integration │ │ └── luma_service.py # Luma API integration │ └── templates/ │ ├── base.html # Base HTML template │ ├── auth.html # Login/register forms │ ├── dashboard.html # Main dashboard with kanban │ ├── events.html # Event management │ ├── venues.html # Venue research interface │ └── marketing.html # Marketing material editor ├── static/ │ ├── style.css # Minimal CSS framework │ └── htmx.min.js # HTMX library ├── planning/ │ └── planning_prompt.md # This planning document └── requirements.txt # Python dependencies