# mittalnikhil149/resqnet-2-project architecture

> Architecture diagram of the GitHub repository mittalnikhil149/resqnet-2-project, 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/mittalnikhil149/resqnet-2-project
- Repository: https://github.com/mittalnikhil149/resqnet-2-project

## Overview

ResQNet is an emergency-response coordination application: people report emergencies, the backend records them and attempts responder matching, responders manage assignments and progress, and users receive status notifications. Separate role-based interfaces support users, responders, and administrators. The sampled backend services show the main orchestration and persistence calls; README content was empty, and frontend page-to-API wiring and unsampled matching, notification, and admin internals are represented only where the tree or sampled code supports them.

Main entry points: [`frontend/src/api/apiClient.js`](https://github.com/mittalnikhil149/resqnet-2-project/blob/main/frontend/src/api/apiClient.js) (HTTP client), [`backend/src/main/java/com/resqnet/service/ResponderService.java`](https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/service/ResponderService.java) (Responder assignments), [`backend/src/main/java/com/resqnet/service/EmergencyService.java`](https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/service/EmergencyService.java) (Emergency lifecycle), [`frontend/src/App.jsx`](https://github.com/mittalnikhil149/resqnet-2-project/blob/main/frontend/src/App.jsx) (Routed application)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Role-based interface"]
  node_app["Routed application<br/>[App.jsx]"]
  node_user_ui["User pages"]
  node_responder_ui["Responder pages"]
  node_admin_ui["Admin pages"]
  node_auth_context["Auth context<br/>[AuthContext.jsx]"]
  node_api_client["HTTP client<br/>[apiClient.js]"]
end

subgraph group_api["API and identity"]
  node_auth_controller["Authentication API"]
  node_emergency_controller["Emergency API"]
  node_responder_controller["Responder API"]
  node_assignment_controller["Assignment API"]
  node_notification_controller["Notification API"]
  node_admin_controller["Admin API"]
  node_security["JWT security<br/>[JwtFilter.java]"]
end

subgraph group_operations["Emergency operations"]
  node_auth_service["Registration and login<br/>[AuthService.java]"]
  node_emergency_service["Emergency lifecycle"]
  node_matching["Responder matching"]
  node_responder_service["Responder assignments"]
  node_notification_service["Notifications"]
  node_admin_service["Administration<br/>[AdminService.java]"]
end

subgraph group_data["Persistence"]
  node_emergencies[("Emergencies")]
  node_assignments[("Assignments")]
  node_responders[("Responder profiles")]
  node_users[("Users")]
  node_notifications[("Notification records")]
end

node_person(("User / responder / admin"))

node_person -->|"uses"| node_app
node_app -->|"routes users"| node_user_ui
node_app -->|"routes responders"| node_responder_ui
node_app -->|"routes admins"| node_admin_ui
node_app -->|"provides auth"| node_auth_context
node_person -->|"submits requests"| node_api_client
node_api_client -->|"calls API"| node_auth_controller
node_api_client -->|"calls API"| node_emergency_controller
node_api_client -->|"calls API"| node_responder_controller
node_api_client -->|"calls API"| node_assignment_controller
node_api_client -->|"calls API"| node_notification_controller
node_api_client -->|"calls API"| node_admin_controller
node_auth_controller -->|"delegates"| node_auth_service
node_emergency_controller -->|"delegates"| node_emergency_service
node_responder_controller -->|"delegates"| node_responder_service
node_admin_controller -->|"delegates"| node_admin_service
node_admin_controller -->|"lists emergencies"| node_emergency_service
node_auth_service -->|"reads and writes"| node_users
node_auth_service -->|"creates profile"| node_responders
node_emergency_service -->|"finds reporter"| node_users
node_emergency_service -->|"reads and writes"| node_emergencies
node_emergency_service -->|"requests matching"| node_matching
node_emergency_service -->|"creates notices"| node_notification_service
node_matching -->|"finds candidates"| node_responders
node_matching -->|"creates assignments"| node_assignments
node_responder_service -->|"finds account"| node_users
node_responder_service -->|"reads and updates"| node_responders
node_responder_service -->|"reads and updates"| node_assignments
node_responder_service -->|"updates status"| node_emergencies
node_responder_service -->|"creates notices"| node_notification_service
node_notification_service -->|"stores notices"| node_notifications
node_admin_service -->|"reads users"| node_users
node_admin_service -->|"reads and updates"| node_responders
node_admin_service -->|"reads statistics"| node_emergencies
node_admin_service -->|"reads assignments"| node_assignments
node_security -->|"loads identity"| node_users

click node_app "https://github.com/mittalnikhil149/resqnet-2-project/blob/main/frontend/src/App.jsx"
click node_user_ui "https://github.com/mittalnikhil149/resqnet-2-project/tree/main/frontend/src/pages/user"
click node_responder_ui "https://github.com/mittalnikhil149/resqnet-2-project/tree/main/frontend/src/pages/responder"
click node_admin_ui "https://github.com/mittalnikhil149/resqnet-2-project/tree/main/frontend/src/pages/admin"
click node_auth_context "https://github.com/mittalnikhil149/resqnet-2-project/blob/main/frontend/src/context/AuthContext.jsx"
click node_api_client "https://github.com/mittalnikhil149/resqnet-2-project/blob/main/frontend/src/api/apiClient.js"
click node_auth_controller "https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/controller/AuthController.java"
click node_emergency_controller "https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/controller/EmergencyController.java"
click node_responder_controller "https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/controller/ResponderController.java"
click node_assignment_controller "https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/controller/AssignmentController.java"
click node_notification_controller "https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/controller/NotificationController.java"
click node_admin_controller "https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/controller/AdminController.java"
click node_security "https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/security/JwtFilter.java"
click node_auth_service "https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/service/AuthService.java"
click node_emergency_service "https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/service/EmergencyService.java"
click node_matching "https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/service/ResponderMatchingService.java"
click node_responder_service "https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/service/ResponderService.java"
click node_notification_service "https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/service/NotificationService.java"
click node_admin_service "https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/service/AdminService.java"
click node_emergencies "https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/repository/EmergencyRepository.java"
click node_assignments "https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/repository/EmergencyAssignmentRepository.java"
click node_responders "https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/repository/ResponderProfileRepository.java"
click node_users "https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/repository/UserRepository.java"
click node_notifications "https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/repository/NotificationRepository.java"

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_user_ui,node_responder_ui,node_admin_ui,node_auth_context,node_api_client,node_person toneBlue
class node_auth_controller,node_emergency_controller,node_responder_controller,node_assignment_controller,node_notification_controller,node_admin_controller,node_security toneAmber
class node_auth_service,node_emergency_service,node_matching,node_responder_service,node_notification_service,node_admin_service toneMint
class node_emergencies,node_assignments,node_responders,node_users,node_notifications toneRose
```

## Components

### Role-based interface

- [Routed application](https://github.com/mittalnikhil149/resqnet-2-project/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [User pages](https://github.com/mittalnikhil149/resqnet-2-project/tree/main/frontend/src/pages/user): `frontend/src/pages/user`
- [Responder pages](https://github.com/mittalnikhil149/resqnet-2-project/tree/main/frontend/src/pages/responder): `frontend/src/pages/responder`
- [Admin pages](https://github.com/mittalnikhil149/resqnet-2-project/tree/main/frontend/src/pages/admin): `frontend/src/pages/admin`
- [Auth context](https://github.com/mittalnikhil149/resqnet-2-project/blob/main/frontend/src/context/AuthContext.jsx): `frontend/src/context/AuthContext.jsx`
- [HTTP client](https://github.com/mittalnikhil149/resqnet-2-project/blob/main/frontend/src/api/apiClient.js): `frontend/src/api/apiClient.js`

### API and identity

- [Authentication API](https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/controller/AuthController.java): `backend/src/main/java/com/resqnet/controller/AuthController.java`
- [Emergency API](https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/controller/EmergencyController.java): `backend/src/main/java/com/resqnet/controller/EmergencyController.java`
- [Responder API](https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/controller/ResponderController.java): `backend/src/main/java/com/resqnet/controller/ResponderController.java`
- [Assignment API](https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/controller/AssignmentController.java): `backend/src/main/java/com/resqnet/controller/AssignmentController.java`
- [Notification API](https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/controller/NotificationController.java): `backend/src/main/java/com/resqnet/controller/NotificationController.java`
- [Admin API](https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/controller/AdminController.java): `backend/src/main/java/com/resqnet/controller/AdminController.java`
- [JWT security](https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/security/JwtFilter.java): `backend/src/main/java/com/resqnet/security/JwtFilter.java`

### Emergency operations

- [Registration and login](https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/service/AuthService.java): `backend/src/main/java/com/resqnet/service/AuthService.java`
- [Emergency lifecycle](https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/service/EmergencyService.java): `backend/src/main/java/com/resqnet/service/EmergencyService.java`
- [Responder matching](https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/service/ResponderMatchingService.java): `backend/src/main/java/com/resqnet/service/ResponderMatchingService.java`
- [Responder assignments](https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/service/ResponderService.java): `backend/src/main/java/com/resqnet/service/ResponderService.java`
- [Notifications](https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/service/NotificationService.java): `backend/src/main/java/com/resqnet/service/NotificationService.java`
- [Administration](https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/service/AdminService.java): `backend/src/main/java/com/resqnet/service/AdminService.java`

### Persistence

- [Emergencies](https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/repository/EmergencyRepository.java): `backend/src/main/java/com/resqnet/repository/EmergencyRepository.java`
- [Assignments](https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/repository/EmergencyAssignmentRepository.java): `backend/src/main/java/com/resqnet/repository/EmergencyAssignmentRepository.java`
- [Responder profiles](https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/repository/ResponderProfileRepository.java): `backend/src/main/java/com/resqnet/repository/ResponderProfileRepository.java`
- [Users](https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/repository/UserRepository.java): `backend/src/main/java/com/resqnet/repository/UserRepository.java`
- [Notification records](https://github.com/mittalnikhil149/resqnet-2-project/blob/main/backend/src/main/java/com/resqnet/repository/NotificationRepository.java): `backend/src/main/java/com/resqnet/repository/NotificationRepository.java`

### Other components

- **User / responder / admin**

## Connections

- User / responder / admin → Routed application: uses
- Routed application → User pages: routes users
- Routed application → Responder pages: routes responders
- Routed application → Admin pages: routes admins
- Routed application → Auth context: provides auth
- User / responder / admin → HTTP client: submits requests
- HTTP client → Authentication API: calls API
- HTTP client → Emergency API: calls API
- HTTP client → Responder API: calls API
- HTTP client → Assignment API: calls API
- HTTP client → Notification API: calls API
- HTTP client → Admin API: calls API
- Authentication API → Registration and login: delegates
- Emergency API → Emergency lifecycle: delegates
- Responder API → Responder assignments: delegates
- Admin API → Administration: delegates
- Admin API → Emergency lifecycle: lists emergencies
- Registration and login → Users: reads and writes
- Registration and login → Responder profiles: creates profile
- Emergency lifecycle → Users: finds reporter
- Emergency lifecycle → Emergencies: reads and writes
- Emergency lifecycle → Responder matching: requests matching
- Emergency lifecycle → Notifications: creates notices
- Responder matching → Responder profiles: finds candidates
- Responder matching → Assignments: creates assignments
- Responder assignments → Users: finds account
- Responder assignments → Responder profiles: reads and updates
- Responder assignments → Assignments: reads and updates
- Responder assignments → Emergencies: updates status
- Responder assignments → Notifications: creates notices
- Notifications → Notification records: stores notices
- Administration → Users: reads users
- Administration → Responder profiles: reads and updates
- Administration → Emergencies: reads statistics
- Administration → Assignments: reads assignments
- JWT security → Users: loads identity
