Aplikacja REST API do zarządzania zadaniami Todo napisana w FastAPI.
Projekt zawiera:
- autoryzację JWT,
- role USER / ADMIN,
- CRUD Todo,
- architekturę warstwową,
- walidację danych,
- obsługę błędów,
- eventy,
- testy jednostkowe.
Administrator może moderować todo użytkowników i usuwać nieodpowiednie wpisy.
- Python
- FastAPI
- SQLAlchemy
- SQLite
- JWT Authentication
- Passlib + bcrypt
- Pydantic
- Pytest
Projekt został zbudowany zgodnie z architekturą warstwową:
Controller → Service → Repository → Database
app/
├── controllers/
├── services/
├── repositories/
├── models/
├── schemas/
├── core/
├── events/
├── tests/
├── database.py
├── seed.py
└── main.py
- rejestracja użytkownika,
- logowanie JWT,
- zabezpieczenie endpointów tokenem Bearer.
- tworzenie todo,
- pobieranie todo,
- edycja todo,
- usuwanie todo.
- widzi tylko swoje todo,
- może tworzyć, edytować i usuwać swoje todo.
- widzi wszystkie todo,
- może usuwać dowolne todo użytkowników.
Po usunięciu todo przez administratora wywoływany jest event:
[EVENT] Admin {admin_id} deleted todo {todo_id}
python -m venv venv.\venv\Scripts\Activatepip install -r requirements.txtpython -m uvicorn app.main:app --reloadhttp://127.0.0.1:8000/docs
python -m pytestemail: admin@test.com
password: admin123
POST /auth/register
POST /auth/login
GET /todos/
POST /todos/
GET /todos/{todo_id}
PUT /todos/{todo_id}
DELETE /todos/{todo_id}
GET /admin/todos
DELETE /admin/todos/{todo_id}