# shehzadvx/capacity-connect architecture

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

- Interactive diagram: https://gitdiagram.com/shehzadvx/capacity-connect
- Repository: https://github.com/shehzadvx/capacity-connect

## Overview

Capacity Connect is a role-based learning and training platform. Trainees discover approved courses, enroll, complete lessons and quizzes, then earn certificates, credits, skills and rewards; trainers create courses and monitor learner outcomes, while admins approve trainers/courses and review platform analytics. The React client provides role-aware screens and authentication state; the Express API dispatches domain routes to MongoDB-backed models. The sampled code confirms enrollment completion and quiz award flows; other capability links reflect the route inventory, not inspected route implementations.

Main entry points: [`SIH hackathon/App.jsx`](https://github.com/shehzadvx/capacity-connect/blob/main/SIH%20hackathon/App.jsx) (Role-based app), [`backend/server.js`](https://github.com/shehzadvx/capacity-connect/blob/main/backend/server.js) (API server), [`backend/routes/quizRoutes.js`](https://github.com/shehzadvx/capacity-connect/blob/main/backend/routes/quizRoutes.js) (Quiz and certification), [`backend/routes/adminRoutes.js`](https://github.com/shehzadvx/capacity-connect/blob/main/backend/routes/adminRoutes.js) (Approval and analytics)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["React client"]
  node_app["Role-based app<br/>[App.jsx]"]
  node_context["Auth and app state<br/>[AppContext.jsx]"]
  node_adminui["Admin console<br/>[AdminDashboard.jsx]"]
end

subgraph group_learning["Course learning"]
  node_courseui["Course screens<br/>[CourseListing.jsx]"]
  node_learnui["Learning and quiz<br/>[LearningPage.jsx]"]
  node_trainerui["Course authoring<br/>[CreateCourse.jsx]"]
end

subgraph group_engagement["Rewards and insights"]
  node_engageui["Learner rewards<br/>[Rewards.jsx]"]
  node_insightsui["Analytics screens<br/>[AdminAnalytics.jsx]"]
end

subgraph group_api["API services"]
  node_server["API server<br/>[server.js]"]
  node_auth["Authentication<br/>[authRoutes.js]"]
  node_courses["Course management<br/>[courseRoutes.js]"]
  node_enroll["Enrollment progress"]
  node_quiz["Quiz and certification<br/>[quizRoutes.js]"]
  node_adminroutes["Approval and analytics<br/>[adminRoutes.js]"]
  node_otherapi["Rewards and community"]
  node_authmw["Role authorization<br/>[auth.js]"]
end

subgraph group_data["MongoDB data"]
  node_userdb[("User records<br/>[User.js]")]
  node_coursedb[("Course records<br/>[Course.js]")]
  node_enrolldb[("Enrollment records<br/>[Enrollment.js]")]
  node_quizdb[("Quiz attempts<br/>[QuizAttempt.js]")]
  node_certdb[("Certificates<br/>[Certificate.js]")]
  node_walletdb[("Credit transactions")]
end

node_trainee(("Trainee"))
node_trainer(("Trainer"))
node_admin(("Admin"))
node_mongo[("MongoDB<br/>[db.js]")]

node_trainee -->|"uses"| node_app
node_trainer -->|"uses"| node_app
node_admin -->|"uses"| node_app
node_app -->|"provides state"| node_context
node_app -->|"routes to"| node_courseui
node_app -->|"routes to"| node_learnui
node_app -->|"routes to"| node_trainerui
node_app -->|"routes to"| node_adminui
node_app -->|"routes to"| node_engageui
node_app -->|"routes to"| node_insightsui
node_context -->|"calls login/signup"| node_auth
node_server -->|"mounts"| node_auth
node_server -->|"mounts"| node_courses
node_server -->|"mounts"| node_enroll
node_server -->|"mounts"| node_quiz
node_server -->|"mounts"| node_adminroutes
node_server -->|"mounts"| node_otherapi
node_auth -->|"protects routes"| node_authmw
node_courses -->|"protects writes"| node_authmw
node_enroll -->|"protects routes"| node_authmw
node_quiz -->|"protects routes"| node_authmw
node_adminroutes -->|"protects routes"| node_authmw
node_authmw -->|"loads user"| node_userdb
node_auth -->|"reads/writes"| node_userdb
node_courses -->|"reads/writes"| node_coursedb
node_enroll -->|"reads course"| node_coursedb
node_enroll -->|"creates/updates"| node_enrolldb
node_enroll -->|"records deductions"| node_walletdb
node_quiz -->|"reads questions"| node_coursedb
node_quiz -->|"records attempts"| node_quizdb
node_quiz -->|"issues certificate"| node_certdb
node_quiz -->|"records awards"| node_walletdb
node_adminroutes -->|"approves courses"| node_coursedb
node_adminroutes -->|"approves trainers"| node_userdb
node_adminroutes -->|"reads completion"| node_enrolldb
node_adminroutes -->|"reads totals"| node_walletdb
node_otherapi -.->|"uses models"| node_mongo
node_server -->|"connects"| node_mongo

click node_app "https://github.com/shehzadvx/capacity-connect/blob/main/SIH%20hackathon/App.jsx"
click node_context "https://github.com/shehzadvx/capacity-connect/blob/main/SIH%20hackathon/AppContext.jsx"
click node_courseui "https://github.com/shehzadvx/capacity-connect/blob/main/SIH%20hackathon/CourseListing.jsx"
click node_learnui "https://github.com/shehzadvx/capacity-connect/blob/main/SIH%20hackathon/LearningPage.jsx"
click node_trainerui "https://github.com/shehzadvx/capacity-connect/blob/main/SIH%20hackathon/CreateCourse.jsx"
click node_adminui "https://github.com/shehzadvx/capacity-connect/blob/main/SIH%20hackathon/AdminDashboard.jsx"
click node_engageui "https://github.com/shehzadvx/capacity-connect/blob/main/SIH%20hackathon/Rewards.jsx"
click node_insightsui "https://github.com/shehzadvx/capacity-connect/blob/main/SIH%20hackathon/AdminAnalytics.jsx"
click node_server "https://github.com/shehzadvx/capacity-connect/blob/main/backend/server.js"
click node_auth "https://github.com/shehzadvx/capacity-connect/blob/main/backend/routes/authRoutes.js"
click node_courses "https://github.com/shehzadvx/capacity-connect/blob/main/backend/routes/courseRoutes.js"
click node_enroll "https://github.com/shehzadvx/capacity-connect/blob/main/backend/routes/enrollmentRoutes.js"
click node_quiz "https://github.com/shehzadvx/capacity-connect/blob/main/backend/routes/quizRoutes.js"
click node_adminroutes "https://github.com/shehzadvx/capacity-connect/blob/main/backend/routes/adminRoutes.js"
click node_otherapi "https://github.com/shehzadvx/capacity-connect/tree/main/backend/routes"
click node_authmw "https://github.com/shehzadvx/capacity-connect/blob/main/backend/middleware/auth.js"
click node_userdb "https://github.com/shehzadvx/capacity-connect/blob/main/backend/models/User.js"
click node_coursedb "https://github.com/shehzadvx/capacity-connect/blob/main/backend/models/Course.js"
click node_enrolldb "https://github.com/shehzadvx/capacity-connect/blob/main/backend/models/Enrollment.js"
click node_quizdb "https://github.com/shehzadvx/capacity-connect/blob/main/backend/models/QuizAttempt.js"
click node_certdb "https://github.com/shehzadvx/capacity-connect/blob/main/backend/models/Certificate.js"
click node_walletdb "https://github.com/shehzadvx/capacity-connect/blob/main/backend/models/CreditTransaction.js"
click node_mongo "https://github.com/shehzadvx/capacity-connect/blob/main/backend/config/db.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_app,node_context,node_adminui toneBlue
class node_courseui,node_learnui,node_trainerui,node_mongo toneAmber
class node_engageui,node_insightsui toneMint
class node_server,node_auth,node_courses,node_enroll,node_quiz,node_adminroutes,node_otherapi,node_authmw toneRose
class node_userdb,node_coursedb,node_enrolldb,node_quizdb,node_certdb,node_walletdb,node_trainee,node_trainer,node_admin toneIndigo
```

## Components

### React client

- [Role-based app](https://github.com/shehzadvx/capacity-connect/blob/main/SIH%20hackathon/App.jsx): `SIH hackathon/App.jsx`
- [Auth and app state](https://github.com/shehzadvx/capacity-connect/blob/main/SIH%20hackathon/AppContext.jsx): `SIH hackathon/AppContext.jsx`
- [Admin console](https://github.com/shehzadvx/capacity-connect/blob/main/SIH%20hackathon/AdminDashboard.jsx): `SIH hackathon/AdminDashboard.jsx`

### Course learning

- [Course screens](https://github.com/shehzadvx/capacity-connect/blob/main/SIH%20hackathon/CourseListing.jsx): `SIH hackathon/CourseListing.jsx`
- [Learning and quiz](https://github.com/shehzadvx/capacity-connect/blob/main/SIH%20hackathon/LearningPage.jsx): `SIH hackathon/LearningPage.jsx`
- [Course authoring](https://github.com/shehzadvx/capacity-connect/blob/main/SIH%20hackathon/CreateCourse.jsx): `SIH hackathon/CreateCourse.jsx`

### Rewards and insights

- [Learner rewards](https://github.com/shehzadvx/capacity-connect/blob/main/SIH%20hackathon/Rewards.jsx): `SIH hackathon/Rewards.jsx`
- [Analytics screens](https://github.com/shehzadvx/capacity-connect/blob/main/SIH%20hackathon/AdminAnalytics.jsx): `SIH hackathon/AdminAnalytics.jsx`

### API services

- [API server](https://github.com/shehzadvx/capacity-connect/blob/main/backend/server.js): `backend/server.js`
- [Authentication](https://github.com/shehzadvx/capacity-connect/blob/main/backend/routes/authRoutes.js): `backend/routes/authRoutes.js`
- [Course management](https://github.com/shehzadvx/capacity-connect/blob/main/backend/routes/courseRoutes.js): `backend/routes/courseRoutes.js`
- [Enrollment progress](https://github.com/shehzadvx/capacity-connect/blob/main/backend/routes/enrollmentRoutes.js): `backend/routes/enrollmentRoutes.js`
- [Quiz and certification](https://github.com/shehzadvx/capacity-connect/blob/main/backend/routes/quizRoutes.js): `backend/routes/quizRoutes.js`
- [Approval and analytics](https://github.com/shehzadvx/capacity-connect/blob/main/backend/routes/adminRoutes.js): `backend/routes/adminRoutes.js`
- [Rewards and community](https://github.com/shehzadvx/capacity-connect/tree/main/backend/routes): `backend/routes`
- [Role authorization](https://github.com/shehzadvx/capacity-connect/blob/main/backend/middleware/auth.js): `backend/middleware/auth.js`

### MongoDB data

- [User records](https://github.com/shehzadvx/capacity-connect/blob/main/backend/models/User.js): `backend/models/User.js`
- [Course records](https://github.com/shehzadvx/capacity-connect/blob/main/backend/models/Course.js): `backend/models/Course.js`
- [Enrollment records](https://github.com/shehzadvx/capacity-connect/blob/main/backend/models/Enrollment.js): `backend/models/Enrollment.js`
- [Quiz attempts](https://github.com/shehzadvx/capacity-connect/blob/main/backend/models/QuizAttempt.js): `backend/models/QuizAttempt.js`
- [Certificates](https://github.com/shehzadvx/capacity-connect/blob/main/backend/models/Certificate.js): `backend/models/Certificate.js`
- [Credit transactions](https://github.com/shehzadvx/capacity-connect/blob/main/backend/models/CreditTransaction.js): `backend/models/CreditTransaction.js`

### Other components

- **Trainee**
- **Trainer**
- **Admin**
- [MongoDB](https://github.com/shehzadvx/capacity-connect/blob/main/backend/config/db.js): `backend/config/db.js`

## Connections

- Trainee → Role-based app: uses
- Trainer → Role-based app: uses
- Admin → Role-based app: uses
- Role-based app → Auth and app state: provides state
- Role-based app → Course screens: routes to
- Role-based app → Learning and quiz: routes to
- Role-based app → Course authoring: routes to
- Role-based app → Admin console: routes to
- Role-based app → Learner rewards: routes to
- Role-based app → Analytics screens: routes to
- Auth and app state → Authentication: calls login/signup
- API server → Authentication: mounts
- API server → Course management: mounts
- API server → Enrollment progress: mounts
- API server → Quiz and certification: mounts
- API server → Approval and analytics: mounts
- API server → Rewards and community: mounts
- Authentication → Role authorization: protects routes
- Course management → Role authorization: protects writes
- Enrollment progress → Role authorization: protects routes
- Quiz and certification → Role authorization: protects routes
- Approval and analytics → Role authorization: protects routes
- Role authorization → User records: loads user
- Authentication → User records: reads/writes
- Course management → Course records: reads/writes
- Enrollment progress → Course records: reads course
- Enrollment progress → Enrollment records: creates/updates
- Enrollment progress → Credit transactions: records deductions
- Quiz and certification → Course records: reads questions
- Quiz and certification → Quiz attempts: records attempts
- Quiz and certification → Certificates: issues certificate
- Quiz and certification → Credit transactions: records awards
- Approval and analytics → Course records: approves courses
- Approval and analytics → User records: approves trainers
- Approval and analytics → Enrollment records: reads completion
- Approval and analytics → Credit transactions: reads totals
- Rewards and community → MongoDB: uses models
- API server → MongoDB: connects
