# bhumika-aga/urbannexus architecture

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

- Interactive diagram: https://gitdiagram.com/bhumika-aga/urbannexus
- Repository: https://github.com/bhumika-aga/urbannexus

## Overview

UrbanNexus is a residential-operations platform: administrators provision accounts, users authenticate and work through role-specific portals, and backend services manage residents, technicians, bookings, payments, and audit history. The documented backend layers are controllers, transactional services, repositories, and JPA models; the React client calls the REST API through Axios. The graph preserves major README capabilities, but several feature-specific controller and service links are documented rather than verified in sampled implementation excerpts.

Main entry points: [`frontend/src/api/axiosClient.ts`](https://github.com/bhumika-aga/urbannexus/blob/main/frontend/src/api/axiosClient.ts) (Axios client), [`backend/src/main/java/com/urbannexus/repository`](https://github.com/bhumika-aga/urbannexus/tree/main/backend/src/main/java/com/urbannexus/repository) (JPA repositories), [`backend/src/main/java/com/urbannexus/service/ResidentService.java`](https://github.com/bhumika-aga/urbannexus/blob/main/backend/src/main/java/com/urbannexus/service/ResidentService.java) (Resident management), [`backend/src/main/java/com/urbannexus/service/TechnicianService.java`](https://github.com/bhumika-aga/urbannexus/blob/main/backend/src/main/java/com/urbannexus/service/TechnicianService.java) (Technician management)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["React Portals"]
  node_login["Login view<br/>[Login.tsx]"]
  node_roleviews["Role portals"]
  node_httpclient["Axios client<br/>[axiosClient.ts]"]
end

subgraph group_identity["Identity &amp; Security"]
  node_authcontroller["Auth endpoints"]
  node_authservice["Authentication service<br/>[AuthService.java]"]
  node_jwt["JWT security"]
end

subgraph group_operations["Community Operations"]
  node_admincontroller["Admin endpoints"]
  node_residentcontroller["Resident endpoints"]
  node_techniciancontroller["Technician endpoints"]
  node_residentservice["Resident management"]
  node_technicianservice["Technician management"]
  node_auditservice["Audit trail<br/>[AuditService.java]"]
end

subgraph group_finance["Bookings &amp; Finance"]
  node_amenitycontroller["Amenity endpoints"]
  node_amenityservice["Amenity management"]
  node_bookingcontroller["Booking endpoints"]
  node_bookingservice["Booking operations"]
  node_paymentcontroller["Payment endpoints"]
  node_paymentservice["Payment tracking"]
end

subgraph group_persistence["Persistence"]
  node_repositories["JPA repositories"]
  node_models["Domain entities"]
  node_database[("H2 / PostgreSQL")]
end

node_user(("Community user"))
node_admin(("Administrator"))

node_user -->|"signs in"| node_login
node_admin -->|"provisions accounts"| node_roleviews
node_login -->|"submits credentials"| node_httpclient
node_roleviews -->|"calls API"| node_httpclient
node_httpclient -->|"sends REST requests"| node_authcontroller
node_httpclient -->|"sends REST requests"| node_admincontroller
node_httpclient -.->|"sends REST requests"| node_residentcontroller
node_httpclient -.->|"sends REST requests"| node_techniciancontroller
node_httpclient -.->|"sends REST requests"| node_amenitycontroller
node_httpclient -.->|"sends REST requests"| node_bookingcontroller
node_httpclient -->|"sends REST requests"| node_paymentcontroller
node_authcontroller -->|"delegates login"| node_authservice
node_authservice -->|"looks up accounts"| node_repositories
node_authservice -->|"issues tokens"| node_jwt
node_authcontroller -->|"serves profile"| node_residentservice
node_admincontroller -->|"manages residents"| node_residentservice
node_admincontroller -->|"manages technicians"| node_technicianservice
node_residentcontroller -->|"delegates operations"| node_residentservice
node_techniciancontroller -->|"delegates operations"| node_technicianservice
node_amenitycontroller -->|"delegates amenity work"| node_amenityservice
node_bookingcontroller -->|"delegates bookings"| node_bookingservice
node_paymentcontroller -->|"delegates payments"| node_paymentservice
node_residentservice -->|"reads and writes"| node_repositories
node_technicianservice -->|"reads and writes"| node_repositories
node_residentservice -->|"records changes"| node_auditservice
node_technicianservice -->|"records changes"| node_auditservice
node_bookingservice -->|"persists bookings"| node_repositories
node_amenityservice -->|"persists facilities"| node_repositories
node_paymentservice -->|"tracks invoices"| node_repositories
node_repositories -->|"maps entities"| node_models
node_models -->|"stores records"| node_database
node_paymentservice -->|"supports payment reporting"| node_user

click node_login "https://github.com/bhumika-aga/urbannexus/blob/main/frontend/src/views/Login.tsx"
click node_roleviews "https://github.com/bhumika-aga/urbannexus/tree/main/frontend/src/views"
click node_httpclient "https://github.com/bhumika-aga/urbannexus/blob/main/frontend/src/api/axiosClient.ts"
click node_authcontroller "https://github.com/bhumika-aga/urbannexus/blob/main/backend/src/main/java/com/urbannexus/controller/AuthController.java"
click node_authservice "https://github.com/bhumika-aga/urbannexus/blob/main/backend/src/main/java/com/urbannexus/service/AuthService.java"
click node_jwt "https://github.com/bhumika-aga/urbannexus/blob/main/backend/src/main/java/com/urbannexus/security/JwtAuthenticationFilter.java"
click node_admincontroller "https://github.com/bhumika-aga/urbannexus/blob/main/backend/src/main/java/com/urbannexus/controller/AdminController.java"
click node_residentcontroller "https://github.com/bhumika-aga/urbannexus/blob/main/backend/src/main/java/com/urbannexus/controller/ResidentController.java"
click node_techniciancontroller "https://github.com/bhumika-aga/urbannexus/blob/main/backend/src/main/java/com/urbannexus/controller/TechnicianController.java"
click node_residentservice "https://github.com/bhumika-aga/urbannexus/blob/main/backend/src/main/java/com/urbannexus/service/ResidentService.java"
click node_technicianservice "https://github.com/bhumika-aga/urbannexus/blob/main/backend/src/main/java/com/urbannexus/service/TechnicianService.java"
click node_amenitycontroller "https://github.com/bhumika-aga/urbannexus/blob/main/backend/src/main/java/com/urbannexus/controller/AmenityController.java"
click node_amenityservice "https://github.com/bhumika-aga/urbannexus/blob/main/backend/src/main/java/com/urbannexus/service/AmenityService.java"
click node_bookingcontroller "https://github.com/bhumika-aga/urbannexus/blob/main/backend/src/main/java/com/urbannexus/controller/BookingController.java"
click node_bookingservice "https://github.com/bhumika-aga/urbannexus/blob/main/backend/src/main/java/com/urbannexus/service/BookingService.java"
click node_paymentcontroller "https://github.com/bhumika-aga/urbannexus/blob/main/backend/src/main/java/com/urbannexus/controller/PaymentController.java"
click node_paymentservice "https://github.com/bhumika-aga/urbannexus/blob/main/backend/src/main/java/com/urbannexus/service/PaymentService.java"
click node_auditservice "https://github.com/bhumika-aga/urbannexus/blob/main/backend/src/main/java/com/urbannexus/service/AuditService.java"
click node_repositories "https://github.com/bhumika-aga/urbannexus/tree/main/backend/src/main/java/com/urbannexus/repository"
click node_models "https://github.com/bhumika-aga/urbannexus/tree/main/backend/src/main/java/com/urbannexus/model"

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_login,node_roleviews,node_httpclient,node_user toneBlue
class node_authcontroller,node_authservice,node_jwt toneAmber
class node_admincontroller,node_residentcontroller,node_techniciancontroller,node_residentservice,node_technicianservice,node_auditservice toneMint
class node_amenitycontroller,node_amenityservice,node_bookingcontroller,node_bookingservice,node_paymentcontroller,node_paymentservice toneRose
class node_repositories,node_models,node_database,node_admin toneIndigo
```

## Components

### React Portals

- [Login view](https://github.com/bhumika-aga/urbannexus/blob/main/frontend/src/views/Login.tsx): `frontend/src/views/Login.tsx`
- [Role portals](https://github.com/bhumika-aga/urbannexus/tree/main/frontend/src/views): `frontend/src/views`
- [Axios client](https://github.com/bhumika-aga/urbannexus/blob/main/frontend/src/api/axiosClient.ts): `frontend/src/api/axiosClient.ts`

### Identity & Security

- [Auth endpoints](https://github.com/bhumika-aga/urbannexus/blob/main/backend/src/main/java/com/urbannexus/controller/AuthController.java): `backend/src/main/java/com/urbannexus/controller/AuthController.java`
- [Authentication service](https://github.com/bhumika-aga/urbannexus/blob/main/backend/src/main/java/com/urbannexus/service/AuthService.java): `backend/src/main/java/com/urbannexus/service/AuthService.java`
- [JWT security](https://github.com/bhumika-aga/urbannexus/blob/main/backend/src/main/java/com/urbannexus/security/JwtAuthenticationFilter.java): `backend/src/main/java/com/urbannexus/security/JwtAuthenticationFilter.java`

### Community Operations

- [Admin endpoints](https://github.com/bhumika-aga/urbannexus/blob/main/backend/src/main/java/com/urbannexus/controller/AdminController.java): `backend/src/main/java/com/urbannexus/controller/AdminController.java`
- [Resident endpoints](https://github.com/bhumika-aga/urbannexus/blob/main/backend/src/main/java/com/urbannexus/controller/ResidentController.java): `backend/src/main/java/com/urbannexus/controller/ResidentController.java`
- [Technician endpoints](https://github.com/bhumika-aga/urbannexus/blob/main/backend/src/main/java/com/urbannexus/controller/TechnicianController.java): `backend/src/main/java/com/urbannexus/controller/TechnicianController.java`
- [Resident management](https://github.com/bhumika-aga/urbannexus/blob/main/backend/src/main/java/com/urbannexus/service/ResidentService.java): `backend/src/main/java/com/urbannexus/service/ResidentService.java`
- [Technician management](https://github.com/bhumika-aga/urbannexus/blob/main/backend/src/main/java/com/urbannexus/service/TechnicianService.java): `backend/src/main/java/com/urbannexus/service/TechnicianService.java`
- [Audit trail](https://github.com/bhumika-aga/urbannexus/blob/main/backend/src/main/java/com/urbannexus/service/AuditService.java): `backend/src/main/java/com/urbannexus/service/AuditService.java`

### Bookings & Finance

- [Amenity endpoints](https://github.com/bhumika-aga/urbannexus/blob/main/backend/src/main/java/com/urbannexus/controller/AmenityController.java): `backend/src/main/java/com/urbannexus/controller/AmenityController.java`
- [Amenity management](https://github.com/bhumika-aga/urbannexus/blob/main/backend/src/main/java/com/urbannexus/service/AmenityService.java): `backend/src/main/java/com/urbannexus/service/AmenityService.java`
- [Booking endpoints](https://github.com/bhumika-aga/urbannexus/blob/main/backend/src/main/java/com/urbannexus/controller/BookingController.java): `backend/src/main/java/com/urbannexus/controller/BookingController.java`
- [Booking operations](https://github.com/bhumika-aga/urbannexus/blob/main/backend/src/main/java/com/urbannexus/service/BookingService.java): `backend/src/main/java/com/urbannexus/service/BookingService.java`
- [Payment endpoints](https://github.com/bhumika-aga/urbannexus/blob/main/backend/src/main/java/com/urbannexus/controller/PaymentController.java): `backend/src/main/java/com/urbannexus/controller/PaymentController.java`
- [Payment tracking](https://github.com/bhumika-aga/urbannexus/blob/main/backend/src/main/java/com/urbannexus/service/PaymentService.java): `backend/src/main/java/com/urbannexus/service/PaymentService.java`

### Persistence

- [JPA repositories](https://github.com/bhumika-aga/urbannexus/tree/main/backend/src/main/java/com/urbannexus/repository): `backend/src/main/java/com/urbannexus/repository`
- [Domain entities](https://github.com/bhumika-aga/urbannexus/tree/main/backend/src/main/java/com/urbannexus/model): `backend/src/main/java/com/urbannexus/model`
- **H2 / PostgreSQL**

### Other components

- **Community user**
- **Administrator**

## Connections

- Community user → Login view: signs in
- Administrator → Role portals: provisions accounts
- Login view → Axios client: submits credentials
- Role portals → Axios client: calls API (evidence: `frontend/src/views/resident/DuesManager.tsx`)
- Axios client → Auth endpoints: sends REST requests
- Axios client → Admin endpoints: sends REST requests
- Axios client → Resident endpoints: sends REST requests
- Axios client → Technician endpoints: sends REST requests
- Axios client → Amenity endpoints: sends REST requests
- Axios client → Booking endpoints: sends REST requests
- Axios client → Payment endpoints: sends REST requests
- Auth endpoints → Authentication service: delegates login (evidence: `backend/src/main/java/com/urbannexus/controller/AuthController.java`)
- Authentication service → JPA repositories: looks up accounts (evidence: `backend/src/main/java/com/urbannexus/service/AuthService.java`)
- Authentication service → JWT security: issues tokens (evidence: `backend/src/main/java/com/urbannexus/service/AuthService.java`)
- Auth endpoints → Resident management: serves profile (evidence: `backend/src/main/java/com/urbannexus/controller/AuthController.java`)
- Admin endpoints → Resident management: manages residents
- Admin endpoints → Technician management: manages technicians
- Resident endpoints → Resident management: delegates operations
- Technician endpoints → Technician management: delegates operations
- Amenity endpoints → Amenity management: delegates amenity work
- Booking endpoints → Booking operations: delegates bookings
- Payment endpoints → Payment tracking: delegates payments
- Resident management → JPA repositories: reads and writes (evidence: `backend/src/main/java/com/urbannexus/service/ResidentService.java`)
- Technician management → JPA repositories: reads and writes (evidence: `backend/src/main/java/com/urbannexus/service/TechnicianService.java`)
- Resident management → Audit trail: records changes (evidence: `backend/src/main/java/com/urbannexus/service/ResidentService.java`)
- Technician management → Audit trail: records changes (evidence: `backend/src/main/java/com/urbannexus/service/TechnicianService.java`)
- Booking operations → JPA repositories: persists bookings
- Amenity management → JPA repositories: persists facilities
- Payment tracking → JPA repositories: tracks invoices
- JPA repositories → Domain entities: maps entities
- Domain entities → H2 / PostgreSQL: stores records
- Payment tracking → Community user: supports payment reporting
