A FastAPI backend that ingests lesson videos, transcribes them, generates summaries & feedback, creates exam papers, and grades student submissions using OpenAI models.
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
# Start a local Postgres instance (docker example)
docker run --name transcriptons-postgres -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=transcriptons -p 5432:5432 -d postgres:15
# Create environment file
cp .env.example .env
# then edit .env with your OpenAI key and Postgres DSN
# Run the application
uvicorn app.main:app --reloadOpen http://localhost:8000/docs for Swagger UI.
This project uses Celery for background processing (e.g., video transcription). You must have a Redis server running (see the docker command below for local development).
Start a local Redis instance (if you don't have one running):
docker run --name transcriptons-redis -p 6379:6379 -d redis:7Start the Celery worker:
celery -A app.tasks.video_processing.celery_app worker --loglevel=info- The
-A app.tasks.video_processing.celery_appflag tells Celery where to find the app instance. - The default broker is set to
redis://localhost:6379in the code. You can change this inapp/tasks/video_processing.pyif needed.
app/– FastAPI application modulesdata/videos/– Stored uploadstests/– Minimal API tests (coming soon)