Step 1 • prereqs
Python Async & Type Hints beginner Understand Python async/await coroutines, type annotations (PEP 484), and virtual environment management with venv or uv — the foundations FastAPI builds on.
Backend Python 5h Step 2 • setup
FastAPI Project Setup beginner Install FastAPI and Uvicorn, create a project structure with app/main.py, run the dev server with hot reload, and explore the auto-generated /docs (Swagger UI) and /redoc interfaces.
Backend FastAPI 3h Step 3 • fundamentals
Path Operations & Request Parsing beginner Define routes with HTTP method decorators, declare path and query parameters with automatic type coercion, accept JSON request bodies, and return response models.
Backend FastAPI 4h Step 4 • fundamentals
Pydantic v2 Models & Validation beginner Define request and response schemas with Pydantic BaseModel, add validation constraints via Field(), write custom validators with @field_validator and @model_validator, and use computed_field.
Backend Pydantic 5h
Step 5 • fundamentals
Dependency Injection with Depends() intermediate Use FastAPI's Depends() system to inject shared logic: database sessions, pagination params, current user extraction — and compose them into chains for complex requirements.
Backend FastAPI 5h Step 6 • intermediate
Database Integration with SQLAlchemy Async intermediate Configure async SQLAlchemy with asyncpg (PostgreSQL), define ORM models with relationships, write async CRUD queries using select()/scalars(), and manage migrations with Alembic.
Backend SQLAlchemy 7h Step 7 • intermediate
JWT Authentication & OAuth2 intermediate Implement OAuth2 password flow with JWT tokens: hash passwords with bcrypt via passlib, sign and verify JWTs with python-jose, protect routes with scopes, and handle token refresh.
Backend FastAPI 6h Step 8 • intermediate
Middleware, CORS & Exception Handlers intermediate Add CORS support, write custom logging middleware that traces request IDs, define global exception handlers for HTTPException and validation errors, and return consistent error response shapes.
Backend FastAPI 4h Step 9 • intermediate
Settings & Configuration intermediate Manage environment-specific configuration using Pydantic's BaseSettings — automatically reads from environment variables and .env files with full type validation. Implement the 12-factor app config pattern. Use nested settings, validators, and secret file sources. Validate all configuration at startup to fail fast. Integrate with secrets managers (AWS Secrets Manager, HashiCorp Vault).
Backend FastAPI 3h Step 10 • intermediate
Background Tasks & Celery intermediate Use FastAPI's built-in BackgroundTasks for lightweight post-response work, and integrate Celery with a Redis broker for heavyweight async jobs like email sending and report generation.
Backend FastAPI 5h Step 11 • intermediate
File Uploads & Form Data intermediate Accept file uploads using UploadFile and File() parameters. Handle multipart/form-data with Form() for mixed file+text submissions. Validate file types (MIME checking) and enforce size limits. Save uploads to disk with async file I/O (aiofiles) or stream directly to object storage (S3 via aioboto3). Use SpooledTemporaryFile for memory-efficient large file handling.
Backend FastAPI 4h Step 12 • advanced
APIRouter & Project Organisation intermediate Split a growing app into feature modules using APIRouter, use lifespan context managers for startup/shutdown, apply tags and prefixes for clean OpenAPI grouping, and create an app factory pattern.
Backend FastAPI 4h Step 13 • advanced
WebSockets advanced Build real-time features with FastAPI WebSockets: accept connections, manage a room-based ConnectionManager, broadcast messages, handle disconnects gracefully, and authenticate via token query params.
Backend FastAPI 5h Step 14 • advanced
Testing with pytest & TestClient intermediate Write unit and integration tests using pytest, override dependencies for isolated testing, use httpx.AsyncClient for async endpoint tests, and set up a test database with per-test transactions.
Backend Pytest 5h
Step 15 • advanced
Production Deployment advanced Containerize a FastAPI app with Docker using a multi-stage build, run Gunicorn with Uvicorn workers for concurrency, manage secrets via environment variables, and add /health and /ready endpoints.
Backend Docker 6h