A simple REST API for managing users and tasks.
Built with an OOP layered architecture (Repository / Service / Router) and using Pydantic v2 style.
REST API powered by FastAPI (+ auto documentation at /docs)
SQLAlchemy ORM + SQLite
OOP separation: Repository / Service layers
Filtering: done=true/false
Pytest + TestClient + dedicated test database
Pydantic v2 ConfigDict(from_attributes=True) applied

API (Routes & Handlers): HTTP layer (request/response, status code / exception handling)
Services: Business logic (duplication / existence validation, etc.)
Repositories: Encapsulated DB access (ORM queries)
FastAPI, Uvicorn
SQLAlchemy , SQLite
Pydantic v2 (ConfigDict(from_attributes=True))
Pytest, httpx, pytest-cov
- Build the image
docker build -t python-oop-project .
- Run the container
docker run -d --name python-oop-project -p 8000:8000 python-oop-project
Application: http://localhost:8000
API docs (Swagger): http://localhost:8000/docs
- Using Docker Compose If you prefer Compose (recommended for multi-service setups):
docker compose up --build
- Clean up Stop and remove the container and image:
docker stop python-oop-project && docker rm python-oop-project
docker rmi python-oop-project