How once-1296/dbms_minmax_proj_1 works
TPQA is a full-stack platform for academic consultancy and third-party audit projects. Clients and faculty authenticate, then projects move through request, faculty response, client acceptance, director approval, invoicing, completion, revenue distribution, and closure. The Next.js dashboards and workflow forms use a FastAPI API backed by SQLAlchemy models and PostgreSQL. The graph includes documented capabilities such as admin access, receipts, and reference data. Some frontend-to-API wiring and unsampled admin implementation details are not shown, so those links are omitted.
Main entry points: consultancy.py Consultancy routes · tables.py Domain models · auth.py Authentication routes · database.py Database sessions
Components 31
Web application
- Login and signup
frontend/app/login/page.tsx - Role dashboards
frontend/app/dashboard/organization/page.tsx - Project workflow view
frontend/app/dashboard/projects/[id]/page.tsx - Workflow forms
frontend/components/workflow/WorkflowContainer.tsx - Step dialogs
frontend/components/workflow/modals/StepModals.tsx - Step progress
frontend/components/ui/StepIndicator.tsx - Session context
frontend/lib/auth-context.tsx - HTTP client
frontend/lib/api.ts
API and access
- FastAPI entry
backend/main.py - Authentication routes
backend/routers/auth.py - Consultancy routes
backend/routers/consultancy.py - Admin routes
backend/routers/admin.py - Project schemas
backend/schemas/project.py - Auth schemas
backend/schemas/auth.py
Consultancy workflow
- Request
backend/consultancy_steps/step_1_request.py - Faculty response
backend/consultancy_steps/step_2_response.py - Agency acceptance
backend/consultancy_steps/step_3_acceptance.py - Director approval
backend/consultancy_steps/step_4_approval.py - Proforma invoice
backend/consultancy_steps/step_5_proforma.py - Tax and receipt
backend/consultancy_steps/step_6_tax.py - Completion report
backend/consultancy_steps/step_7_completion.py - Revenue distribution
backend/consultancy_steps/step_8_distribution.py - Project closure
backend/consultancy_steps/step_9_close.py - Step reversal
backend/consultancy_steps/step_revert.py
Persistence and security
- JWT user guard
backend/deps.py - Token and password security
backend/core/security.py - Database sessions
backend/core/database.py - Domain models
backend/models/tables.py - PostgreSQL
Other components
- Client
- Faculty
Connections 46
- Client → Login and signup: signs up or logs in
- Faculty → Login and signup: signs up or logs in
- Client → Role dashboards: manages projects
- Faculty → Role dashboards: manages projects
- Role dashboards → Project workflow view: opens project
- Project workflow view → Workflow forms: presents workflow
- Workflow forms → Step dialogs: uses dialogs
frontend/components/workflow/WorkflowContainer.tsx - Project workflow view → Step progress: shows progress
- Login and signup → Session context: sets session
- Session context → HTTP client: sends auth requests
frontend/lib/auth-context.tsx - FastAPI entry → Authentication routes: mounts router
backend/main.py - FastAPI entry → Consultancy routes: mounts router
backend/main.py - FastAPI entry → Admin routes: mounts router
backend/main.py - HTTP client → Authentication routes: calls auth endpoints
- Workflow forms → Consultancy routes: submits workflow actions
- Consultancy routes → Request: dispatches request
backend/routers/consultancy.py - Consultancy routes → Faculty response: dispatches response
backend/routers/consultancy.py - Consultancy routes → Agency acceptance: dispatches acceptance
backend/routers/consultancy.py - Consultancy routes → Director approval: dispatches approval
backend/routers/consultancy.py - Consultancy routes → Proforma invoice: dispatches invoice
backend/routers/consultancy.py - Consultancy routes → Tax and receipt: dispatches tax receipt
backend/routers/consultancy.py - Consultancy routes → Completion report: dispatches completion
backend/routers/consultancy.py - Consultancy routes → Revenue distribution: dispatches distribution
backend/routers/consultancy.py - Consultancy routes → Project closure: dispatches closure
backend/routers/consultancy.py - Consultancy routes → Step reversal: dispatches reversal
backend/routers/consultancy.py - Consultancy routes → Project schemas: validates workflow payloads
backend/routers/consultancy.py - Authentication routes → Auth schemas: validates auth payloads
backend/routers/auth.py - Authentication routes → Token and password security: hashes and issues tokens
backend/routers/auth.py - Authentication routes → Database sessions: uses sessions
backend/routers/auth.py - JWT user guard → Token and password security: decodes token
backend/deps.py - JWT user guard → Database sessions: loads user
backend/deps.py - Authentication routes → JWT user guard: protects profile routes
backend/routers/auth.py - Consultancy routes → JWT user guard: protects endpoints
backend/routers/consultancy.py - Request → Domain models: reads and writes models
backend/consultancy_steps/step_1_request.py - Faculty response → Domain models: reads and writes models
backend/consultancy_steps/step_2_response.py - Agency acceptance → Domain models: updates models
backend/consultancy_steps/step_3_acceptance.py - Director approval → Domain models: updates models
backend/consultancy_steps/step_4_approval.py - Proforma invoice → Domain models: creates invoice
backend/consultancy_steps/step_5_proforma.py - Tax and receipt → Domain models: records payment
backend/consultancy_steps/step_6_tax.py - Completion report → Domain models: updates project
backend/consultancy_steps/step_7_completion.py - Revenue distribution → Domain models: records allocations
backend/consultancy_steps/step_8_distribution.py - Project closure → Domain models: updates project
backend/consultancy_steps/step_9_close.py - Step reversal → Domain models: cleans workflow records
backend/consultancy_steps/step_revert.py - Database sessions → PostgreSQL: connects to
backend/core/database.py - Domain models → Database sessions: uses base
backend/models/tables.py - Consultancy routes → Database sessions: queries data
backend/routers/consultancy.py