# vipulsahani19/capacity-connect-shi architecture

> Architecture diagram of the GitHub repository vipulsahani19/capacity-connect-shi, 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/vipulsahani19/capacity-connect-shi
- Repository: https://github.com/vipulsahani19/capacity-connect-shi

## Overview

Capacity Connect is a role-based training and workforce-skills platform: trainees browse and take courses and assessments, track skills and learning progress, and access certificates; trainers create learning material and review skill-gap assessments; administrators manage users and competency analytics. The frontend route structure and backend API mounts are visible, as are selected controller interactions with the database and Gemini. The README provides no capability detail, and most frontend-to-API calls and unsampled controller wiring cannot be verified from the excerpts, so those links are omitted.

Main entry points: [`backend/src/app.js`](https://github.com/vipulsahani19/capacity-connect-shi/blob/main/backend/src/app.js) (REST API), [`frontend/src/App.jsx`](https://github.com/vipulsahani19/capacity-connect-shi/blob/main/frontend/src/App.jsx) (Browser application), [`backend/src/controllers/skillGapAssessment.controller.js`](https://github.com/vipulsahani19/capacity-connect-shi/blob/main/backend/src/controllers/skillGapAssessment.controller.js) (Skill-gap assessment), [`backend/src/config/database.js`](https://github.com/vipulsahani19/capacity-connect-shi/blob/main/backend/src/config/database.js) (Application database)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Web application"]
  node_webapp["Browser application<br/>[App.jsx]"]
  node_authui["Sign-in and registration"]
end

subgraph group_learning["Learning workflow"]
  node_traineeui["Trainee learning"]
  node_courseroutes["Course routes<br/>[course.routes.js]"]
  node_enrollroutes["Enrollment routes"]
  node_enrollcontroller["Enrollment progress"]
  node_assessmentcontroller["Assessments"]
end

subgraph group_skills["Skills and guidance"]
  node_skillgaproutes["Skill-gap routes"]
  node_skillgapcontroller["Skill-gap assessment"]
  node_geminiservice["AI generation<br/>[gemini.service.js]"]
end

subgraph group_operations["Training operations"]
  node_trainerui["Trainer workspace"]
  node_adminui["Admin workspace"]
  node_traineroutes["Trainer routes<br/>[trainer.routes.js]"]
  node_notificationservice["Notifications"]
end

subgraph group_platform["Backend platform"]
  node_api["REST API<br/>[app.js]"]
  node_authroutes["Authentication routes<br/>[auth.routes.js]"]
  node_featurecontrollers["Domain controllers"]
  node_services["Domain services"]
  node_db[("Application database<br/>[database.js]")]
end

node_learner(("Trainee or staff"))
node_gemini{{"Google Gemini"}}

node_learner -->|"uses"| node_webapp
node_webapp -->|"renders"| node_traineeui
node_webapp -->|"renders"| node_trainerui
node_webapp -->|"renders"| node_adminui
node_webapp -->|"renders"| node_authui
node_api -->|"mounts"| node_authroutes
node_api -->|"mounts"| node_courseroutes
node_api -->|"mounts"| node_enrollroutes
node_api -->|"mounts"| node_traineroutes
node_api -->|"mounts"| node_skillgaproutes
node_courseroutes -->|"dispatches"| node_featurecontrollers
node_traineroutes -->|"dispatches"| node_featurecontrollers
node_skillgaproutes -->|"dispatches"| node_skillgapcontroller
node_enrollroutes -->|"dispatches"| node_enrollcontroller
node_enrollcontroller -->|"reads and writes"| node_db
node_assessmentcontroller -->|"reads and writes"| node_db
node_skillgapcontroller -->|"reads and writes"| node_db
node_skillgapcontroller -->|"requests questions"| node_geminiservice
node_geminiservice -->|"generates content"| node_gemini
node_skillgapcontroller -->|"sends updates"| node_notificationservice

click node_webapp "https://github.com/vipulsahani19/capacity-connect-shi/blob/main/frontend/src/App.jsx"
click node_traineeui "https://github.com/vipulsahani19/capacity-connect-shi/tree/main/frontend/src/pages/trainee"
click node_trainerui "https://github.com/vipulsahani19/capacity-connect-shi/tree/main/frontend/src/pages/trainer"
click node_adminui "https://github.com/vipulsahani19/capacity-connect-shi/tree/main/frontend/src/pages/admin"
click node_authui "https://github.com/vipulsahani19/capacity-connect-shi/tree/main/frontend/src/pages/auth"
click node_api "https://github.com/vipulsahani19/capacity-connect-shi/blob/main/backend/src/app.js"
click node_authroutes "https://github.com/vipulsahani19/capacity-connect-shi/blob/main/backend/src/routes/auth.routes.js"
click node_courseroutes "https://github.com/vipulsahani19/capacity-connect-shi/blob/main/backend/src/routes/course.routes.js"
click node_enrollroutes "https://github.com/vipulsahani19/capacity-connect-shi/blob/main/backend/src/routes/enrollment.routes.js"
click node_traineroutes "https://github.com/vipulsahani19/capacity-connect-shi/blob/main/backend/src/routes/trainer.routes.js"
click node_skillgaproutes "https://github.com/vipulsahani19/capacity-connect-shi/blob/main/backend/src/routes/skillGapAssessment.routes.js"
click node_featurecontrollers "https://github.com/vipulsahani19/capacity-connect-shi/tree/main/backend/src/controllers"
click node_enrollcontroller "https://github.com/vipulsahani19/capacity-connect-shi/blob/main/backend/src/controllers/enrollment.controller.js"
click node_assessmentcontroller "https://github.com/vipulsahani19/capacity-connect-shi/blob/main/backend/src/controllers/assessment.controller.js"
click node_skillgapcontroller "https://github.com/vipulsahani19/capacity-connect-shi/blob/main/backend/src/controllers/skillGapAssessment.controller.js"
click node_services "https://github.com/vipulsahani19/capacity-connect-shi/tree/main/backend/src/services"
click node_geminiservice "https://github.com/vipulsahani19/capacity-connect-shi/blob/main/backend/src/services/gemini.service.js"
click node_notificationservice "https://github.com/vipulsahani19/capacity-connect-shi/blob/main/backend/src/services/notification.service.js"
click node_db "https://github.com/vipulsahani19/capacity-connect-shi/blob/main/backend/src/config/database.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_webapp,node_authui toneBlue
class node_traineeui,node_courseroutes,node_enrollroutes,node_enrollcontroller,node_assessmentcontroller toneAmber
class node_skillgaproutes,node_skillgapcontroller,node_geminiservice toneMint
class node_trainerui,node_adminui,node_traineroutes,node_notificationservice toneRose
class node_api,node_authroutes,node_featurecontrollers,node_services,node_db,node_learner,node_gemini toneIndigo
```

## Components

### Web application

- [Browser application](https://github.com/vipulsahani19/capacity-connect-shi/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [Sign-in and registration](https://github.com/vipulsahani19/capacity-connect-shi/tree/main/frontend/src/pages/auth): `frontend/src/pages/auth`

### Learning workflow

- [Trainee learning](https://github.com/vipulsahani19/capacity-connect-shi/tree/main/frontend/src/pages/trainee): `frontend/src/pages/trainee`
- [Course routes](https://github.com/vipulsahani19/capacity-connect-shi/blob/main/backend/src/routes/course.routes.js): `backend/src/routes/course.routes.js`
- [Enrollment routes](https://github.com/vipulsahani19/capacity-connect-shi/blob/main/backend/src/routes/enrollment.routes.js): `backend/src/routes/enrollment.routes.js`
- [Enrollment progress](https://github.com/vipulsahani19/capacity-connect-shi/blob/main/backend/src/controllers/enrollment.controller.js): `backend/src/controllers/enrollment.controller.js`
- [Assessments](https://github.com/vipulsahani19/capacity-connect-shi/blob/main/backend/src/controllers/assessment.controller.js): `backend/src/controllers/assessment.controller.js`

### Skills and guidance

- [Skill-gap routes](https://github.com/vipulsahani19/capacity-connect-shi/blob/main/backend/src/routes/skillGapAssessment.routes.js): `backend/src/routes/skillGapAssessment.routes.js`
- [Skill-gap assessment](https://github.com/vipulsahani19/capacity-connect-shi/blob/main/backend/src/controllers/skillGapAssessment.controller.js): `backend/src/controllers/skillGapAssessment.controller.js`
- [AI generation](https://github.com/vipulsahani19/capacity-connect-shi/blob/main/backend/src/services/gemini.service.js): `backend/src/services/gemini.service.js`

### Training operations

- [Trainer workspace](https://github.com/vipulsahani19/capacity-connect-shi/tree/main/frontend/src/pages/trainer): `frontend/src/pages/trainer`
- [Admin workspace](https://github.com/vipulsahani19/capacity-connect-shi/tree/main/frontend/src/pages/admin): `frontend/src/pages/admin`
- [Trainer routes](https://github.com/vipulsahani19/capacity-connect-shi/blob/main/backend/src/routes/trainer.routes.js): `backend/src/routes/trainer.routes.js`
- [Notifications](https://github.com/vipulsahani19/capacity-connect-shi/blob/main/backend/src/services/notification.service.js): `backend/src/services/notification.service.js`

### Backend platform

- [REST API](https://github.com/vipulsahani19/capacity-connect-shi/blob/main/backend/src/app.js): `backend/src/app.js`
- [Authentication routes](https://github.com/vipulsahani19/capacity-connect-shi/blob/main/backend/src/routes/auth.routes.js): `backend/src/routes/auth.routes.js`
- [Domain controllers](https://github.com/vipulsahani19/capacity-connect-shi/tree/main/backend/src/controllers): `backend/src/controllers`
- [Domain services](https://github.com/vipulsahani19/capacity-connect-shi/tree/main/backend/src/services): `backend/src/services`
- [Application database](https://github.com/vipulsahani19/capacity-connect-shi/blob/main/backend/src/config/database.js): `backend/src/config/database.js`

### Other components

- **Trainee or staff**
- **Google Gemini**

## Connections

- Trainee or staff → Browser application: uses
- Browser application → Trainee learning: renders
- Browser application → Trainer workspace: renders
- Browser application → Admin workspace: renders
- Browser application → Sign-in and registration: renders
- REST API → Authentication routes: mounts
- REST API → Course routes: mounts
- REST API → Enrollment routes: mounts
- REST API → Trainer routes: mounts
- REST API → Skill-gap routes: mounts
- Course routes → Domain controllers: dispatches
- Trainer routes → Domain controllers: dispatches
- Skill-gap routes → Skill-gap assessment: dispatches
- Enrollment routes → Enrollment progress: dispatches
- Enrollment progress → Application database: reads and writes
- Assessments → Application database: reads and writes
- Skill-gap assessment → Application database: reads and writes
- Skill-gap assessment → AI generation: requests questions
- AI generation → Google Gemini: generates content
- Skill-gap assessment → Notifications: sends updates
