# nishanthrao01/job-management-system architecture

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

- Interactive diagram: https://gitdiagram.com/nishanthrao01/job-management-system
- Repository: https://github.com/nishanthrao01/job-management-system

## Overview

Job Management System is a full-stack SaaS platform connecting clients with recruitment associates who manage job-application workflows. Users register or sign in, then role-protected dashboards support job tracking, subscriptions and payments, and chat; administrators manage users and review operational records. The backend exposes REST routes backed by controllers and MongoDB models, with Redis caching documented for dashboard queries. Sampled files show route dispatch, job operations, payment verification, and socket messaging; unsampled subsystems are included only where the README or server wiring establishes them.

Main entry points: [`job-platform-frontend/src/App.tsx`](https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-frontend/src/App.tsx) (Role dashboards), [`job-platform-backend/server.js`](https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/server.js) (Express server), [`job-platform-backend/src/controllers/paymentController.js`](https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/controllers/paymentController.js) (Payment verification), [`job-platform-backend/src/controllers/adminController.js`](https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/controllers/adminController.js) (Administration)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web application"]
  node_frontend["Role dashboards<br/>[App.tsx]"]
  node_auth_ui["Sign-in and registration<br/>[Login.tsx]"]
  node_auth_state["Authentication state<br/>[AuthContext.tsx]"]
  node_job_ui["Job dashboard"]
  node_chat_ui["Chat screens<br/>[ClientChat.tsx]"]
  node_admin_ui["Admin screens<br/>[Clients.tsx]"]
end

subgraph group_api["API and access"]
  node_api_entry["Express server<br/>[server.js]"]
  node_auth_routes["Authentication routes<br/>[authRoutes.js]"]
  node_job_routes["Job routes<br/>[jobRoutes.js]"]
  node_auth_controller["Authentication operations<br/>[authController.js]"]
  node_admin_ops["Administration<br/>[adminController.js]"]
  node_access["JWT role protection<br/>[authMiddleware.js]"]
end

subgraph group_workflows["Job workflows"]
  node_job_controller["Job operations<br/>[jobController.js]"]
  node_message_controller["Message operations"]
  node_job_data[("Job records<br/>[Job.js]")]
  node_message_data[("Message records<br/>[Message.js]")]
  node_socket_chat["Socket chat dispatch<br/>[server.js]"]
end

subgraph group_billing["Billing and plans"]
  node_subscription_ops["Plan and subscription operations"]
  node_payment_ops["Payment verification"]
  node_billing_data[("Payment and subscription records<br/>[Payment.js]")]
  node_razorpay["Razorpay<br/>[razorpay.js]"]
end

subgraph group_platform["Data and infrastructure"]
  node_user_data[("User records<br/>[User.js]")]
  node_cache["Query cache<br/>[cache.js]"]
  node_redis[("Redis<br/>[redis.js]")]
  node_audit["Audit logging<br/>[createAuditLog.js]"]
  node_audit_data[("Audit log records<br/>[AuditLog.js]")]
end

node_client(("Client"))
node_associate(("Associate"))
node_admin(("Administrator"))

node_client -->|"uses"| node_frontend
node_associate -->|"uses"| node_frontend
node_admin -->|"uses"| node_frontend
node_frontend -->|"routes to"| node_auth_ui
node_frontend -->|"routes to"| node_job_ui
node_frontend -->|"routes to"| node_chat_ui
node_frontend -->|"routes to"| node_admin_ui
node_auth_ui -->|"uses"| node_auth_state
node_frontend -.->|"calls REST API"| node_api_entry
node_api_entry -->|"mounts"| node_auth_routes
node_api_entry -->|"mounts"| node_job_routes
node_api_entry -->|"mounts routes"| node_subscription_ops
node_api_entry -->|"mounts routes"| node_payment_ops
node_api_entry -->|"mounts routes"| node_admin_ops
node_api_entry -->|"mounts routes"| node_message_controller
node_auth_routes -->|"dispatches"| node_auth_controller
node_job_routes -->|"protects"| node_access
node_job_routes -->|"dispatches"| node_job_controller
node_job_controller -->|"reads and writes"| node_job_data
node_job_controller -->|"reads"| node_user_data
node_job_controller -->|"reads and invalidates"| node_cache
node_cache -.->|"uses"| node_redis
node_payment_ops -->|"creates orders"| node_razorpay
node_payment_ops -->|"reads and writes"| node_billing_data
node_payment_ops -->|"creates subscription"| node_subscription_ops
node_subscription_ops -->|"uses records"| node_billing_data
node_message_controller -->|"reads and writes"| node_message_data
node_socket_chat -->|"stores messages"| node_message_data
node_admin_ops -->|"reads and updates"| node_user_data
node_admin_ops -->|"reads"| node_billing_data
node_admin_ops -->|"records actions"| node_audit
node_audit -->|"creates records"| node_audit_data
node_payment_ops -->|"records verification"| node_audit

click node_frontend "https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-frontend/src/App.tsx"
click node_auth_ui "https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-frontend/src/pages/Login.tsx"
click node_auth_state "https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-frontend/src/context/AuthContext.tsx"
click node_job_ui "https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-frontend/src/pages/dashboard/ClientDashboard.tsx"
click node_chat_ui "https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-frontend/src/pages/dashboard/ClientChat.tsx"
click node_admin_ui "https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-frontend/src/pages/admin/Clients.tsx"
click node_api_entry "https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/server.js"
click node_auth_routes "https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/routes/authRoutes.js"
click node_job_routes "https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/routes/jobRoutes.js"
click node_auth_controller "https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/controllers/authController.js"
click node_job_controller "https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/controllers/jobController.js"
click node_message_controller "https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/controllers/messageController.js"
click node_subscription_ops "https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/controllers/subscriptionController.js"
click node_payment_ops "https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/controllers/paymentController.js"
click node_admin_ops "https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/controllers/adminController.js"
click node_access "https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/middleware/authMiddleware.js"
click node_job_data "https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/models/Job.js"
click node_user_data "https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/models/User.js"
click node_billing_data "https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/models/Payment.js"
click node_message_data "https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/models/Message.js"
click node_cache "https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/utils/cache.js"
click node_redis "https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/config/redis.js"
click node_razorpay "https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/config/razorpay.js"
click node_socket_chat "https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/server.js"
click node_audit "https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/utils/createAuditLog.js"
click node_audit_data "https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/models/AuditLog.js"

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_frontend,node_auth_ui,node_auth_state,node_job_ui,node_chat_ui,node_admin_ui,node_client toneBlue
class node_api_entry,node_auth_routes,node_job_routes,node_auth_controller,node_admin_ops,node_access toneAmber
class node_job_controller,node_message_controller,node_job_data,node_message_data,node_socket_chat toneMint
class node_subscription_ops,node_payment_ops,node_billing_data,node_razorpay toneRose
class node_user_data,node_cache,node_redis,node_audit,node_audit_data,node_associate,node_admin toneIndigo
```

## Components

### Web application

- [Role dashboards](https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-frontend/src/App.tsx): `job-platform-frontend/src/App.tsx`
- [Sign-in and registration](https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-frontend/src/pages/Login.tsx): `job-platform-frontend/src/pages/Login.tsx`
- [Authentication state](https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-frontend/src/context/AuthContext.tsx): `job-platform-frontend/src/context/AuthContext.tsx`
- [Job dashboard](https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-frontend/src/pages/dashboard/ClientDashboard.tsx): `job-platform-frontend/src/pages/dashboard/ClientDashboard.tsx`
- [Chat screens](https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-frontend/src/pages/dashboard/ClientChat.tsx): `job-platform-frontend/src/pages/dashboard/ClientChat.tsx`
- [Admin screens](https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-frontend/src/pages/admin/Clients.tsx): `job-platform-frontend/src/pages/admin/Clients.tsx`

### API and access

- [Express server](https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/server.js): `job-platform-backend/server.js`
- [Authentication routes](https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/routes/authRoutes.js): `job-platform-backend/src/routes/authRoutes.js`
- [Job routes](https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/routes/jobRoutes.js): `job-platform-backend/src/routes/jobRoutes.js`
- [Authentication operations](https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/controllers/authController.js): `job-platform-backend/src/controllers/authController.js`
- [Administration](https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/controllers/adminController.js): `job-platform-backend/src/controllers/adminController.js`
- [JWT role protection](https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/middleware/authMiddleware.js): `job-platform-backend/src/middleware/authMiddleware.js`

### Job workflows

- [Job operations](https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/controllers/jobController.js): `job-platform-backend/src/controllers/jobController.js`
- [Message operations](https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/controllers/messageController.js): `job-platform-backend/src/controllers/messageController.js`
- [Job records](https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/models/Job.js): `job-platform-backend/src/models/Job.js`
- [Message records](https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/models/Message.js): `job-platform-backend/src/models/Message.js`
- [Socket chat dispatch](https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/server.js): `job-platform-backend/server.js`

### Billing and plans

- [Plan and subscription operations](https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/controllers/subscriptionController.js): `job-platform-backend/src/controllers/subscriptionController.js`
- [Payment verification](https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/controllers/paymentController.js): `job-platform-backend/src/controllers/paymentController.js`
- [Payment and subscription records](https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/models/Payment.js): `job-platform-backend/src/models/Payment.js`
- [Razorpay](https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/config/razorpay.js): `job-platform-backend/src/config/razorpay.js`

### Data and infrastructure

- [User records](https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/models/User.js): `job-platform-backend/src/models/User.js`
- [Query cache](https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/utils/cache.js): `job-platform-backend/src/utils/cache.js`
- [Redis](https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/config/redis.js): `job-platform-backend/src/config/redis.js`
- [Audit logging](https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/utils/createAuditLog.js): `job-platform-backend/src/utils/createAuditLog.js`
- [Audit log records](https://github.com/nishanthrao01/job-management-system/blob/main/job-platform-backend/src/models/AuditLog.js): `job-platform-backend/src/models/AuditLog.js`

### Other components

- **Client**
- **Associate**
- **Administrator**

## Connections

- Client → Role dashboards: uses (evidence: `job-platform-frontend/src/App.tsx`)
- Associate → Role dashboards: uses (evidence: `job-platform-frontend/src/App.tsx`)
- Administrator → Role dashboards: uses (evidence: `job-platform-frontend/src/App.tsx`)
- Role dashboards → Sign-in and registration: routes to (evidence: `job-platform-frontend/src/App.tsx`)
- Role dashboards → Job dashboard: routes to (evidence: `job-platform-frontend/src/App.tsx`)
- Role dashboards → Chat screens: routes to (evidence: `job-platform-frontend/src/App.tsx`)
- Role dashboards → Admin screens: routes to (evidence: `job-platform-frontend/src/App.tsx`)
- Sign-in and registration → Authentication state: uses (evidence: `job-platform-frontend/src/pages/Login.tsx`)
- Role dashboards → Express server: calls REST API (evidence: `README.md`)
- Express server → Authentication routes: mounts (evidence: `job-platform-backend/server.js`)
- Express server → Job routes: mounts (evidence: `job-platform-backend/server.js`)
- Express server → Plan and subscription operations: mounts routes (evidence: `job-platform-backend/server.js`)
- Express server → Payment verification: mounts routes (evidence: `job-platform-backend/server.js`)
- Express server → Administration: mounts routes (evidence: `job-platform-backend/server.js`)
- Express server → Message operations: mounts routes (evidence: `job-platform-backend/server.js`)
- Authentication routes → Authentication operations: dispatches (evidence: `job-platform-backend/src/routes/authRoutes.js`)
- Job routes → JWT role protection: protects (evidence: `job-platform-backend/src/routes/jobRoutes.js`)
- Job routes → Job operations: dispatches (evidence: `job-platform-backend/src/routes/jobRoutes.js`)
- Job operations → Job records: reads and writes (evidence: `job-platform-backend/src/controllers/jobController.js`)
- Job operations → User records: reads (evidence: `job-platform-backend/src/controllers/jobController.js`)
- Job operations → Query cache: reads and invalidates (evidence: `job-platform-backend/src/controllers/jobController.js`)
- Query cache → Redis: uses (evidence: `README.md`)
- Payment verification → Razorpay: creates orders (evidence: `job-platform-backend/src/controllers/paymentController.js`)
- Payment verification → Payment and subscription records: reads and writes (evidence: `job-platform-backend/src/controllers/paymentController.js`)
- Payment verification → Plan and subscription operations: creates subscription (evidence: `job-platform-backend/src/controllers/paymentController.js`)
- Plan and subscription operations → Payment and subscription records: uses records
- Message operations → Message records: reads and writes (evidence: `job-platform-backend/src/controllers/messageController.js`)
- Socket chat dispatch → Message records: stores messages (evidence: `job-platform-backend/server.js`)
- Administration → User records: reads and updates (evidence: `job-platform-backend/src/controllers/adminController.js`)
- Administration → Payment and subscription records: reads (evidence: `job-platform-backend/src/controllers/adminController.js`)
- Administration → Audit logging: records actions (evidence: `job-platform-backend/src/controllers/adminController.js`)
- Audit logging → Audit log records: creates records (evidence: `job-platform-backend/src/utils/createAuditLog.js`)
- Payment verification → Audit logging: records verification (evidence: `job-platform-backend/src/controllers/paymentController.js`)
