# prathvirajsingh244-sketch/ps43 architecture

> Architecture diagram of the GitHub repository prathvirajsingh244-sketch/ps43, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/prathvirajsingh244-sketch/ps43
- Repository: https://github.com/prathvirajsingh244-sketch/ps43

## Overview

YUKTI is a crowdsourced problem-solving platform connecting citizen-reported issues with administrative review, university and industry participation, and project tracking. The visible workflow runs from frontend submission and problem listing through backend API handling to persistent records; the tree also identifies AI matching/classification, maps, proposals, dashboards, and notifications as product capabilities. The README is empty, and most backend route implementations were not sampled, so uncertain subsystem wiring is omitted.

Main entry points: [`frontend/src/App.jsx`](https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/frontend/src/App.jsx) (Routed application), [`yukti-backend/app/main.py`](https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/yukti-backend/app/main.py) (FastAPI application), [`yukti-backend/app/api/routes/auth.py`](https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/yukti-backend/app/api/routes/auth.py) (Authentication routes), [`frontend/src/pages/SubmitProblem.jsx`](https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/frontend/src/pages/SubmitProblem.jsx) (Submit problem)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Web application"]
  node_app["Routed application<br/>[App.jsx]"]
  node_submit["Submit problem<br/>[SubmitProblem.jsx]"]
  node_citizen_dash["Citizen dashboard"]
  node_map["Problem map<br/>[MapView.jsx]"]
  node_partner_dash["Partner dashboards<br/>[AdminDashboard.jsx]"]
  node_project_ui["Project workspace"]
  node_problem_state["Problem state<br/>[ProblemContext.jsx]"]
  node_notice_state["Notification state"]
  node_api_client["API helpers<br/>[api.js]"]
  node_auth_ui["Authentication screens<br/>[login.jsx]"]
end

subgraph group_api["API and identity"]
  node_api_entry["FastAPI application<br/>[main.py]"]
  node_auth_routes["Authentication routes<br/>[auth.py]"]
  node_route_set["Domain API routes"]
  node_auth_security["Identity security<br/>[security.py]"]
end

subgraph group_problem["Problem resolution"]
  node_ai["AI classification and matching"]
  node_problem_routes["Problem handling<br/>[problems.py]"]
  node_geo_routes["Geospatial services<br/>[geo.py]"]
end

subgraph group_projects["Collaboration and projects"]
  node_collab_routes["Claims and proposals<br/>[claims.py]"]
  node_project_routes["Project management<br/>[projects.py]"]
  node_match_routes["Partner matching<br/>[matching.py]"]
end

subgraph group_platform["Platform services"]
  node_notify_routes["Notifications<br/>[notifications.py]"]
  node_dashboard_routes["Role dashboards<br/>[dashboard.py]"]
  node_models["Domain records"]
  node_database[("SQL database<br/>[database.py]")]
  node_media_storage["Media storage<br/>[storage.py]"]
end

node_citizen(("Citizen"))
node_partners(("Admin and partners"))

node_app -->|"routes to"| node_submit
node_app -->|"routes to"| node_citizen_dash
node_app -->|"routes to"| node_map
node_app -->|"routes to"| node_partner_dash
node_app -->|"routes to"| node_project_ui
node_submit -->|"uses state"| node_problem_state
node_citizen_dash -->|"uses state"| node_problem_state
node_problem_state -->|"fetches problems"| node_problem_routes
node_map -->|"uses helpers"| node_api_client
node_auth_ui -->|"uses helpers"| node_api_client
node_notice_state -->|"fetches and updates"| node_notify_routes
node_citizen -->|"reports issue"| node_submit
node_partners -->|"reviews and manages"| node_partner_dash
node_api_entry -->|"mounts"| node_auth_routes
node_api_entry -->|"mounts"| node_route_set
node_auth_routes -->|"creates tokens"| node_auth_security
node_auth_routes -->|"reads and writes"| node_database
node_api_entry -->|"initializes schema"| node_database
node_route_set -->|"uses domain records"| node_models
node_database -->|"persists"| node_models

click node_app "https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/frontend/src/App.jsx"
click node_submit "https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/frontend/src/pages/SubmitProblem.jsx"
click node_citizen_dash "https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/frontend/src/pages/CitizenDashboard.jsx"
click node_map "https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/frontend/src/pages/MapView.jsx"
click node_partner_dash "https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/frontend/src/pages/AdminDashboard.jsx"
click node_project_ui "https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/frontend/src/pages/ProjectManagerPage.jsx"
click node_problem_state "https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/frontend/src/context/ProblemContext.jsx"
click node_notice_state "https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/frontend/src/context/NotificationContext.jsx"
click node_api_client "https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/frontend/src/sevices/api.js"
click node_auth_ui "https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/frontend/src/pages/login.jsx"
click node_api_entry "https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/yukti-backend/app/main.py"
click node_auth_routes "https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/yukti-backend/app/api/routes/auth.py"
click node_route_set "https://github.com/prathvirajsingh244-sketch/ps43/tree/yukti-updates/yukti-backend/app/api/routes"
click node_auth_security "https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/yukti-backend/app/core/security.py"
click node_ai "https://github.com/prathvirajsingh244-sketch/ps43/tree/yukti-updates/yukti-backend/app/ai"
click node_problem_routes "https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/yukti-backend/app/api/routes/problems.py"
click node_geo_routes "https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/yukti-backend/app/api/routes/geo.py"
click node_collab_routes "https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/yukti-backend/app/api/routes/claims.py"
click node_project_routes "https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/yukti-backend/app/api/routes/projects.py"
click node_match_routes "https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/yukti-backend/app/api/routes/matching.py"
click node_notify_routes "https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/yukti-backend/app/api/routes/notifications.py"
click node_dashboard_routes "https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/yukti-backend/app/api/routes/dashboard.py"
click node_models "https://github.com/prathvirajsingh244-sketch/ps43/tree/yukti-updates/yukti-backend/app/models"
click node_database "https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/yukti-backend/app/database.py"
click node_media_storage "https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/yukti-backend/app/core/storage.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_app,node_submit,node_citizen_dash,node_map,node_partner_dash,node_project_ui,node_problem_state,node_notice_state,node_api_client,node_auth_ui toneBlue
class node_api_entry,node_auth_routes,node_route_set,node_auth_security toneAmber
class node_ai,node_problem_routes,node_geo_routes toneMint
class node_collab_routes,node_project_routes,node_match_routes toneRose
class node_notify_routes,node_dashboard_routes,node_models,node_database,node_media_storage,node_citizen,node_partners toneIndigo
```

## Components

### Web application

- [Routed application](https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/frontend/src/App.jsx): `frontend/src/App.jsx`
- [Submit problem](https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/frontend/src/pages/SubmitProblem.jsx): `frontend/src/pages/SubmitProblem.jsx`
- [Citizen dashboard](https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/frontend/src/pages/CitizenDashboard.jsx): `frontend/src/pages/CitizenDashboard.jsx`
- [Problem map](https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/frontend/src/pages/MapView.jsx): `frontend/src/pages/MapView.jsx`
- [Partner dashboards](https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/frontend/src/pages/AdminDashboard.jsx): `frontend/src/pages/AdminDashboard.jsx`
- [Project workspace](https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/frontend/src/pages/ProjectManagerPage.jsx): `frontend/src/pages/ProjectManagerPage.jsx`
- [Problem state](https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/frontend/src/context/ProblemContext.jsx): `frontend/src/context/ProblemContext.jsx`
- [Notification state](https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/frontend/src/context/NotificationContext.jsx): `frontend/src/context/NotificationContext.jsx`
- [API helpers](https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/frontend/src/sevices/api.js): `frontend/src/sevices/api.js`
- [Authentication screens](https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/frontend/src/pages/login.jsx): `frontend/src/pages/login.jsx`

### API and identity

- [FastAPI application](https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/yukti-backend/app/main.py): `yukti-backend/app/main.py`
- [Authentication routes](https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/yukti-backend/app/api/routes/auth.py): `yukti-backend/app/api/routes/auth.py`
- [Domain API routes](https://github.com/prathvirajsingh244-sketch/ps43/tree/yukti-updates/yukti-backend/app/api/routes): `yukti-backend/app/api/routes`
- [Identity security](https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/yukti-backend/app/core/security.py): `yukti-backend/app/core/security.py`

### Problem resolution

- [AI classification and matching](https://github.com/prathvirajsingh244-sketch/ps43/tree/yukti-updates/yukti-backend/app/ai): `yukti-backend/app/ai`
- [Problem handling](https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/yukti-backend/app/api/routes/problems.py): `yukti-backend/app/api/routes/problems.py`
- [Geospatial services](https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/yukti-backend/app/api/routes/geo.py): `yukti-backend/app/api/routes/geo.py`

### Collaboration and projects

- [Claims and proposals](https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/yukti-backend/app/api/routes/claims.py): `yukti-backend/app/api/routes/claims.py`
- [Project management](https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/yukti-backend/app/api/routes/projects.py): `yukti-backend/app/api/routes/projects.py`
- [Partner matching](https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/yukti-backend/app/api/routes/matching.py): `yukti-backend/app/api/routes/matching.py`

### Platform services

- [Notifications](https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/yukti-backend/app/api/routes/notifications.py): `yukti-backend/app/api/routes/notifications.py`
- [Role dashboards](https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/yukti-backend/app/api/routes/dashboard.py): `yukti-backend/app/api/routes/dashboard.py`
- [Domain records](https://github.com/prathvirajsingh244-sketch/ps43/tree/yukti-updates/yukti-backend/app/models): `yukti-backend/app/models`
- [SQL database](https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/yukti-backend/app/database.py): `yukti-backend/app/database.py`
- [Media storage](https://github.com/prathvirajsingh244-sketch/ps43/blob/yukti-updates/yukti-backend/app/core/storage.py): `yukti-backend/app/core/storage.py`

### Other components

- **Citizen**
- **Admin and partners**

## Connections

- Routed application → Submit problem: routes to
- Routed application → Citizen dashboard: routes to
- Routed application → Problem map: routes to
- Routed application → Partner dashboards: routes to
- Routed application → Project workspace: routes to
- Submit problem → Problem state: uses state
- Citizen dashboard → Problem state: uses state
- Problem state → Problem handling: fetches problems
- Problem map → API helpers: uses helpers
- Authentication screens → API helpers: uses helpers
- Notification state → Notifications: fetches and updates
- Citizen → Submit problem: reports issue
- Admin and partners → Partner dashboards: reviews and manages
- FastAPI application → Authentication routes: mounts
- FastAPI application → Domain API routes: mounts
- Authentication routes → Identity security: creates tokens
- Authentication routes → SQL database: reads and writes
- FastAPI application → SQL database: initializes schema
- Domain API routes → Domain records: uses domain records
- SQL database → Domain records: persists
