This is a toy project to try AI-driven development.
Almost everything was written by AI, except for this section of the README and some instructions .md files.
Commit messages will sometimes contain comments on what was done by AI or not.
A restaurant event management application built with FastAPI where users can create events, invite participants, and manage available food/drink items.
- Items Management: Create and list menu items (meals, drinks, food)
- User Management: Create and list users with email validation
- Event Management: Create and list events with available items and participants
restaurant/
├── pyproject.toml
├── README.md
├── models-breakdown.md
├── env # Environment variables (DATABASE_URL)
├── alembic.ini # Alembic configuration
├── alembic/ # Database migrations
│ ├── env.py
│ ├── script.py.mako
│ └── versions/ # Migration files (autogenerated)
└── src/
└── restaurant/
├── __init__.py
├── main.py
├── database.py # Database configuration
├── models.py # SQLAlchemy models
├── schemas.py # Pydantic schemas
└── routers/
├── __init__.py
├── items.py
├── users.py
└── events.py
- Python: 3.13+
- FastAPI: Web framework
- Pydantic: Data validation with email support
- SQLAlchemy: ORM for database operations
- PostgreSQL: Database (via psycopg2-binary)
- Alembic: Database migrations
- Uvicorn: ASGI server
- UV: Package and dependency management
Start the FastAPI development server:
uv run uvicorn restaurant.main:app --reloadThe server will start on http://127.0.0.1:8000
Once the server is running, access:
- Interactive API docs: http://127.0.0.1:8000/docs
- Alternative docs: http://127.0.0.1:8000/redoc
- Items:
GET /items,POST /items - Users:
GET /users,POST /users - Events:
GET /events,POST /events
See models-breakdown.md for detailed domain model specifications.
Add dependencies:
uv add <package>Remove dependencies:
uv remove <package>