How sayulramirez/task_manager_python works
This is a FastAPI task-management backend: users register or log in, receive a JWT, then use role-protected endpoints to manage projects and assigned tasks; administrators can manage user profiles. The sampled controllers and services show the request flow through business services to repositories, while the README documents PostgreSQL persistence, JWT/RBAC, and project/task capabilities. Dependency-provider wiring and several modules were not sampled, so uncertain internal links are omitted.
Main entry points: user_repository.py User repository · main.py FastAPI app · task_service.py Task service · projec_repository.py Project repository
Components 21
API
- FastAPI app
backend/src/main.py - Auth routes
backend/src/controller/auth_controller.py - User routes
backend/src/controller/user_controller.py - Project routes
backend/src/controller/project_controller.py - Task routes
backend/src/controller/task_controller.py
Business
- Auth service
backend/src/service/auth_service.py - User service
backend/src/service/user_service.py - Project service
backend/src/service/project_service.py - Task service
backend/src/service/task_service.py
Security
- Access checks
backend/src/config/filter.py - JWT manager
backend/src/config/jwt.py - Password hasher
backend/src/config/hashing.py
Persistence
- User repository
backend/src/repository/user_repository.py - Project repository
backend/src/repository/projec_repository.py - Task repository
backend/src/repository/task_repository.py - User model
backend/src/models/user.py - Project model
backend/src/models/project.py - Task model
backend/src/models/task.py - DB sessions
backend/src/config/db/database.py
Other components
- API client
- PostgreSQL
Connections 28
- API client → FastAPI app: sends requests
- FastAPI app → Auth routes: mounts routes
- FastAPI app → User routes: mounts routes
- FastAPI app → Project routes: mounts routes
- FastAPI app → Task routes: mounts routes
- Auth routes → Auth service: calls
- User routes → User service: calls
- Project routes → Project service: calls
- Task routes → Task service: calls
- Auth routes → Access checks: checks access
- User routes → Access checks: checks access
- Project routes → Access checks: checks access
- Task routes → Access checks: checks access
- Auth service → User repository: looks up users
- Auth service → JWT manager: issues token
- User service → User repository: uses
- Project service → Project repository: uses
- Task service → User repository: looks up assignee
- Task service → Project repository: checks project
- Task service → Task repository: manages tasks
- User repository → Password hasher: hashes passwords
- User repository → User model: queries and maps
- Project repository → Project model: queries and maps
- Task repository → Task model: queries and maps
- User repository → DB sessions: uses session
- Project repository → DB sessions: uses session
- Task repository → DB sessions: uses session
- DB sessions → PostgreSQL: connects