This repository documents my progress while learning backend development with FastAPI.
The project started with simple routes and gradually grew into a small API with user CRUD, database persistence, migrations, authentication and tests.
- HTTP requests, responses and status codes
- REST API structure
- FastAPI routes and dependencies
- Pydantic schemas and validation
- CRUD operations
- SQLAlchemy and database sessions
- Database migrations with Alembic
- Password hashing
- JWT authentication and protected routes
- Error handling
- Testing APIs with pytest
- Test coverage
- Code formatting and linting
- Python
- FastAPI
- Pydantic
- SQLAlchemy
- Alembic
- PyJWT
- pwdlib / Argon2
- pytest
- Ruff
- Poetry
- taskipy
This is a learning project, the goal is to make things work while learning
I’m using it to understand how the pieces of a backend connect, how a request reaches a route, how data is validated, how the application communicates with the database, how authentication works, and how can I write some tests.
The code will keep changing as I learn and refactor things.