John Montagu, the 4th Earl of Sandvich c9547c43f6 | ||
---|---|---|
availabili.tf | ||
backend-flask | ||
nginx | ||
.gitignore | ||
README.md | ||
docker-compose.prod.yml | ||
docker-compose.yml | ||
package-lock.json |
README.md
availabili.tf
Scheduling for TF2
Tech Stack
- Frontend: Vue 3 + TypeScript
- State Management: Pinia
- Backend: Flask + Python
- ORM: SQLAlchemy
- Validation: Pydantic
- spectree for OpenAPI documentation
- Flask-Migrate (Alembic) for database migrations
- Celery for async tasks
- Redis for Celery broker
- Database: PostgreSQL 17.1 (production) / SQLite (development)
Setup (development, SQLite3)
docker compose build
docker compose up
DATABASE_URI=sqlite:///db.sqlite3 flask db upgrade
App will run at port 8000.
Setup (production, Postgres)
Build the frontend app:
cd availabili.tf
npm run build
Build the rest of the containers:
docker compose -f docker-compose.prod.yml build
docker compose -f docker-compose.prod.yml up
Perform initial database migration:
docker exec -it backend bash
flask db upgrade
OpenAPI
The backend will automatically serve its OpenAPI-compliant spec at
/apidoc/openapi.json
which can also be viewed at /apidoc/redoc
or
/apidoc/swagger
or /apidoc/scalar
.
To generate the frontend client:
npm run openapi-generate