Smart Events is a FastAPI web app for attendees to view sessions and manage a personal event schedule. For a fuller product overview, see docs/product-description.md.
- Unix-like environment (macOS or Linux); shell commands below assume
bashor similar. - Python 3.11+
- Docker (optional; for a containerized local run)
- Terraform 1.5+ and tflint (optional locally; required if you use the Terraform
pre-commithooks—see Local development)
From the repository root, use a virtual environment and pip (not the Astral uv CLI):
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
cp .env.example .envRun the dev server (PYTHONPATH=src is required so the app package resolves):
PYTHONPATH=src python -m uvicorn app.main:app --reload --host 0.0.0.0 --port 8000Open:
- App: http://127.0.0.1:8000/login (
/login.htmlredirects here) - API docs: http://127.0.0.1:8000/docs
| Topic | Guide |
|---|---|
| Virtualenv, local run (Python/Docker), optional Terraform for pre-commit | docs/local-development.md |
| Pytest, E2E, Firestore emulator, coverage, Locust | docs/testing.md |
| Environment variables and feature toggles | docs/configuration.md |
| GCP Terraform layout, bootstrap, outputs | docs/infrastructure.md |
| Build/publish image, deploy to Cloud Run, GitHub Environments | docs/deployment.md |
Seeding Firestore from src/content |
docs/data-seeding.md |
| Product description (features, audience) | docs/product-description.md |
| Terraform module-only details | infra/terraform/README.md |
See LICENSE.