How abdulhanan42/task_managment_app works
This is a FastAPI task-management API with user registration, login and token authentication, plus authenticated task creation, listing, retrieval, updating and deletion. Requests enter through the user or task routers, which validate DTOs and delegate to controllers; controllers query or mutate SQLAlchemy-backed state. Registration also invokes email sending. The graph preserves the central models, DTOs and configuration layer. Several relationships are supported by excerpts; the mail implementation and its external delivery mechanism were not shown.
Main entry points: db.py DB sessions · tasks/router.py Task routes · controller.py User controller · user/router.py User routes
Components 16
API entry
- FastAPI app
main.py - User routes
src/user/router.py - Task routes
src/tasks/router.py
User access
- User controller
src/user/controller.py - User DTOs
src/user/dtos.py - User model
src/user/models.py - Token dependency
src/utils/helpers.py - Email sender
src/utils/mail.py
Task management
- Task controller
src/tasks/controller.py - Task DTOs
src/tasks/dtos.py - Task model
src/tasks/models.py
Shared infrastructure
- DB sessions
src/utils/db.py - Settings
src/utils/settings.py - SQL database
Other components
- API client
- Email service
Connections 27
- API client → User routes: calls user endpoints
- API client → Task routes: calls task endpoints
- FastAPI app → User routes: registers routes
main.py - FastAPI app → Task routes: registers routes
main.py - FastAPI app → DB sessions: creates schema
main.py - User routes → User controller: delegates requests
src/user/router.py - User routes → User DTOs: validates payloads
src/user/router.py - User routes → DB sessions: gets sessions
src/user/router.py - User controller → User model: queries users
src/user/controller.py - User controller → SQL database: reads and writes
src/user/controller.py - User controller → Settings: uses token settings
src/user/controller.py - User controller → Email sender: sends confirmation
src/user/controller.py - Email sender → Email service: delivers email
- Task routes → Task controller: delegates requests
src/tasks/router.py - Task routes → Task DTOs: validates payloads
src/tasks/router.py - Task routes → DB sessions: gets sessions
src/tasks/router.py - Task routes → Token dependency: requires authentication
src/tasks/router.py - Task controller → Task model: queries and mutates
src/tasks/controller.py - Task controller → User model: checks ownership
src/tasks/controller.py - Task controller → SQL database: reads and writes
src/tasks/controller.py - Token dependency → User model: looks up user
src/utils/helpers.py - Token dependency → SQL database: queries user
src/utils/helpers.py - Token dependency → Settings: uses token settings
src/utils/helpers.py - DB sessions → Settings: reads connection config
src/utils/db.py - DB sessions → SQL database: connects to
src/utils/db.py - User model → DB sessions: uses declarative base
src/user/models.py - Task model → DB sessions: uses declarative base
src/tasks/models.py