# dipanjan2907/skill_bridge_sih architecture

> Architecture diagram of the GitHub repository dipanjan2907/skill_bridge_sih, 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/dipanjan2907/skill_bridge_sih
- Repository: https://github.com/dipanjan2907/skill_bridge_sih

## Overview

SkillBridge is a multi-role academia–industry collaboration portal. Its student lifecycle runs from assessment and verified skill profiling through gap analysis, opportunity matching, application, and tracking; industry, institution, faculty, and admin workflows support that lifecycle. The graph includes the major documented capabilities and sampled routing, persistence, and frontend structure. Some feature implementations were not sampled, so their connections are omitted or marked unverified rather than inferred.

Main entry points: [`backend/src/server.ts`](https://github.com/dipanjan2907/skill_bridge_sih/blob/main/backend/src/server.ts) (REST API server), [`frontend/src/App.tsx`](https://github.com/dipanjan2907/skill_bridge_sih/blob/main/frontend/src/App.tsx) (Role-based portal), [`backend/src/controllers/assessment.controller.ts`](https://github.com/dipanjan2907/skill_bridge_sih/blob/main/backend/src/controllers/assessment.controller.ts) (Skill assessments), [`backend/src/config/db.ts`](https://github.com/dipanjan2907/skill_bridge_sih/blob/main/backend/src/config/db.ts) (MySQL data)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Web experience"]
  node_web["Role-based portal<br/>[App.tsx]"]
  node_authui["Sign-in and signup<br/>[Auth.tsx]"]
  node_authstate["Session context<br/>[AuthContext.tsx]"]
  node_apiurl["API configuration<br/>[api.ts]"]
end

subgraph group_api["API and access"]
  node_server["REST API server<br/>[server.ts]"]
  node_authguard["JWT access control<br/>[auth.middleware.ts]"]
  node_database[("MySQL data<br/>[db.ts]")]
end

subgraph group_skills["Skills and learning"]
  node_profiles["Profiles and portfolio"]
  node_assess["Skill assessments"]
  node_gapanalysis["Skill gap analysis"]
  node_demand["Industry demand insights<br/>[demand.service.ts]"]
end

subgraph group_work["Opportunities and collaboration"]
  node_matching["Opportunity matching"]
  node_opportunities["Opportunity management"]
  node_applications["Application pipeline"]
  node_documents["Digital documents"]
  node_storage["Cloud file storage<br/>[storage.service.ts]"]
  node_collaboration["Collaboration initiatives"]
end

subgraph group_governance["Ecosystem governance"]
  node_adminassess["Question moderation"]
  node_institution["Institution analytics"]
  node_industry["Partner verification"]
  node_admin["Platform administration"]
end

node_students(("Students"))
node_partners(("Industry partners"))
node_academia(("Faculty and institutions"))
node_admins(("Administrators"))

node_students -->|"use portal"| node_web
node_partners -->|"use portal"| node_web
node_academia -->|"use portal"| node_web
node_admins -->|"govern portal"| node_web
node_web -->|"routes to"| node_authui
node_web -->|"checks session"| node_authstate
node_authui -.->|"updates session"| node_authstate
node_web -.->|"configures API"| node_apiurl
node_server -.->|"routes through"| node_authguard
node_server -->|"mounts routes"| node_profiles
node_server -->|"mounts routes"| node_assess
node_server -->|"mounts routes"| node_opportunities
node_server -->|"mounts routes"| node_applications
node_server -->|"mounts routes"| node_collaboration
node_server -->|"mounts routes"| node_institution
node_server -->|"mounts routes"| node_industry
node_server -->|"mounts routes"| node_admin
node_assess -->|"reads and writes"| node_database
node_applications -->|"reads and writes"| node_database
node_profiles -.->|"queries"| node_database
node_opportunities -.->|"queries"| node_database
node_documents -->|"uploads files"| node_storage
node_storage -.->|"stores file metadata"| node_database
node_matching -.->|"loads matching data"| node_database
node_demand -.->|"aggregates demand"| node_database
node_students -->|"complete assessments"| node_assess
node_assess -->|"provides proficiency"| node_gapanalysis
node_opportunities -.->|"scores fit"| node_matching
node_matching -->|"recommends roles"| node_students
node_students -->|"apply and track"| node_applications
node_applications -->|"provides applicants"| node_partners
node_partners -->|"publish roles"| node_opportunities
node_partners -->|"contribute questions"| node_assess
node_academia -->|"contribute questions"| node_assess
node_admins -->|"moderate questions"| node_adminassess
node_adminassess -->|"manages question bank"| node_assess
node_academia -->|"monitor readiness"| node_institution
node_admins -->|"verify partners"| node_industry
node_academia -->|"host initiatives"| node_collaboration
node_students -->|"participate"| node_collaboration
node_students -->|"manage portfolio files"| node_documents

click node_web "https://github.com/dipanjan2907/skill_bridge_sih/blob/main/frontend/src/App.tsx"
click node_authui "https://github.com/dipanjan2907/skill_bridge_sih/blob/main/frontend/src/pages/Auth.tsx"
click node_authstate "https://github.com/dipanjan2907/skill_bridge_sih/blob/main/frontend/src/context/AuthContext.tsx"
click node_apiurl "https://github.com/dipanjan2907/skill_bridge_sih/blob/main/frontend/src/config/api.ts"
click node_server "https://github.com/dipanjan2907/skill_bridge_sih/blob/main/backend/src/server.ts"
click node_authguard "https://github.com/dipanjan2907/skill_bridge_sih/blob/main/backend/src/middlewares/auth.middleware.ts"
click node_database "https://github.com/dipanjan2907/skill_bridge_sih/blob/main/backend/src/config/db.ts"
click node_profiles "https://github.com/dipanjan2907/skill_bridge_sih/blob/main/backend/src/controllers/profile.controller.ts"
click node_assess "https://github.com/dipanjan2907/skill_bridge_sih/blob/main/backend/src/controllers/assessment.controller.ts"
click node_adminassess "https://github.com/dipanjan2907/skill_bridge_sih/blob/main/frontend/src/components/admin/AdminAssessmentModeration.tsx"
click node_gapanalysis "https://github.com/dipanjan2907/skill_bridge_sih/blob/main/frontend/src/pages/student/SkillGapAnalysis.tsx"
click node_demand "https://github.com/dipanjan2907/skill_bridge_sih/blob/main/backend/src/services/demand.service.ts"
click node_matching "https://github.com/dipanjan2907/skill_bridge_sih/blob/main/backend/src/services/matching.service.ts"
click node_opportunities "https://github.com/dipanjan2907/skill_bridge_sih/blob/main/backend/src/controllers/opportunity.controller.ts"
click node_applications "https://github.com/dipanjan2907/skill_bridge_sih/blob/main/backend/src/controllers/application.controller.ts"
click node_documents "https://github.com/dipanjan2907/skill_bridge_sih/blob/main/backend/src/controllers/document.controller.ts"
click node_storage "https://github.com/dipanjan2907/skill_bridge_sih/blob/main/backend/src/services/storage.service.ts"
click node_collaboration "https://github.com/dipanjan2907/skill_bridge_sih/blob/main/backend/src/controllers/collaboration.controller.ts"
click node_institution "https://github.com/dipanjan2907/skill_bridge_sih/blob/main/backend/src/controllers/institution.controller.ts"
click node_industry "https://github.com/dipanjan2907/skill_bridge_sih/blob/main/backend/src/controllers/industry.controller.ts"
click node_admin "https://github.com/dipanjan2907/skill_bridge_sih/blob/main/backend/src/controllers/admin.controller.ts"

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_web,node_authui,node_authstate,node_apiurl toneBlue
class node_server,node_authguard,node_database toneAmber
class node_profiles,node_assess,node_gapanalysis,node_demand toneMint
class node_matching,node_opportunities,node_applications,node_documents,node_storage,node_collaboration toneRose
class node_adminassess,node_institution,node_industry,node_admin,node_students,node_partners,node_academia,node_admins toneIndigo
```

## Components

### Web experience

- [Role-based portal](https://github.com/dipanjan2907/skill_bridge_sih/blob/main/frontend/src/App.tsx): `frontend/src/App.tsx`
- [Sign-in and signup](https://github.com/dipanjan2907/skill_bridge_sih/blob/main/frontend/src/pages/Auth.tsx): `frontend/src/pages/Auth.tsx`
- [Session context](https://github.com/dipanjan2907/skill_bridge_sih/blob/main/frontend/src/context/AuthContext.tsx): `frontend/src/context/AuthContext.tsx`
- [API configuration](https://github.com/dipanjan2907/skill_bridge_sih/blob/main/frontend/src/config/api.ts): `frontend/src/config/api.ts`

### API and access

- [REST API server](https://github.com/dipanjan2907/skill_bridge_sih/blob/main/backend/src/server.ts): `backend/src/server.ts`
- [JWT access control](https://github.com/dipanjan2907/skill_bridge_sih/blob/main/backend/src/middlewares/auth.middleware.ts): `backend/src/middlewares/auth.middleware.ts`
- [MySQL data](https://github.com/dipanjan2907/skill_bridge_sih/blob/main/backend/src/config/db.ts): `backend/src/config/db.ts`

### Skills and learning

- [Profiles and portfolio](https://github.com/dipanjan2907/skill_bridge_sih/blob/main/backend/src/controllers/profile.controller.ts): `backend/src/controllers/profile.controller.ts`
- [Skill assessments](https://github.com/dipanjan2907/skill_bridge_sih/blob/main/backend/src/controllers/assessment.controller.ts): `backend/src/controllers/assessment.controller.ts`
- [Skill gap analysis](https://github.com/dipanjan2907/skill_bridge_sih/blob/main/frontend/src/pages/student/SkillGapAnalysis.tsx): `frontend/src/pages/student/SkillGapAnalysis.tsx`
- [Industry demand insights](https://github.com/dipanjan2907/skill_bridge_sih/blob/main/backend/src/services/demand.service.ts): `backend/src/services/demand.service.ts`

### Opportunities and collaboration

- [Opportunity matching](https://github.com/dipanjan2907/skill_bridge_sih/blob/main/backend/src/services/matching.service.ts): `backend/src/services/matching.service.ts`
- [Opportunity management](https://github.com/dipanjan2907/skill_bridge_sih/blob/main/backend/src/controllers/opportunity.controller.ts): `backend/src/controllers/opportunity.controller.ts`
- [Application pipeline](https://github.com/dipanjan2907/skill_bridge_sih/blob/main/backend/src/controllers/application.controller.ts): `backend/src/controllers/application.controller.ts`
- [Digital documents](https://github.com/dipanjan2907/skill_bridge_sih/blob/main/backend/src/controllers/document.controller.ts): `backend/src/controllers/document.controller.ts`
- [Cloud file storage](https://github.com/dipanjan2907/skill_bridge_sih/blob/main/backend/src/services/storage.service.ts): `backend/src/services/storage.service.ts`
- [Collaboration initiatives](https://github.com/dipanjan2907/skill_bridge_sih/blob/main/backend/src/controllers/collaboration.controller.ts): `backend/src/controllers/collaboration.controller.ts`

### Ecosystem governance

- [Question moderation](https://github.com/dipanjan2907/skill_bridge_sih/blob/main/frontend/src/components/admin/AdminAssessmentModeration.tsx): `frontend/src/components/admin/AdminAssessmentModeration.tsx`
- [Institution analytics](https://github.com/dipanjan2907/skill_bridge_sih/blob/main/backend/src/controllers/institution.controller.ts): `backend/src/controllers/institution.controller.ts`
- [Partner verification](https://github.com/dipanjan2907/skill_bridge_sih/blob/main/backend/src/controllers/industry.controller.ts): `backend/src/controllers/industry.controller.ts`
- [Platform administration](https://github.com/dipanjan2907/skill_bridge_sih/blob/main/backend/src/controllers/admin.controller.ts): `backend/src/controllers/admin.controller.ts`

### Other components

- **Students**
- **Industry partners**
- **Faculty and institutions**
- **Administrators**

## Connections

- Students → Role-based portal: use portal (evidence: `README.md`)
- Industry partners → Role-based portal: use portal (evidence: `README.md`)
- Faculty and institutions → Role-based portal: use portal (evidence: `README.md`)
- Administrators → Role-based portal: govern portal (evidence: `README.md`)
- Role-based portal → Sign-in and signup: routes to (evidence: `frontend/src/App.tsx`)
- Role-based portal → Session context: checks session (evidence: `frontend/src/App.tsx`)
- Sign-in and signup → Session context: updates session (evidence: `frontend/src/pages/Auth.tsx`)
- Role-based portal → API configuration: configures API
- REST API server → JWT access control: routes through
- REST API server → Profiles and portfolio: mounts routes (evidence: `backend/src/server.ts`)
- REST API server → Skill assessments: mounts routes (evidence: `backend/src/server.ts`)
- REST API server → Opportunity management: mounts routes (evidence: `backend/src/server.ts`)
- REST API server → Application pipeline: mounts routes (evidence: `backend/src/server.ts`)
- REST API server → Collaboration initiatives: mounts routes (evidence: `backend/src/server.ts`)
- REST API server → Institution analytics: mounts routes (evidence: `backend/src/server.ts`)
- REST API server → Partner verification: mounts routes (evidence: `backend/src/server.ts`)
- REST API server → Platform administration: mounts routes (evidence: `backend/src/server.ts`)
- Skill assessments → MySQL data: reads and writes (evidence: `backend/src/controllers/assessment.controller.ts`)
- Application pipeline → MySQL data: reads and writes (evidence: `backend/src/controllers/application.controller.ts`)
- Profiles and portfolio → MySQL data: queries
- Opportunity management → MySQL data: queries (evidence: `backend/src/controllers/opportunity.controller.ts`)
- Digital documents → Cloud file storage: uploads files (evidence: `backend/src/controllers/document.controller.ts`)
- Cloud file storage → MySQL data: stores file metadata
- Opportunity matching → MySQL data: loads matching data
- Industry demand insights → MySQL data: aggregates demand
- Students → Skill assessments: complete assessments (evidence: `README.md`)
- Skill assessments → Skill gap analysis: provides proficiency (evidence: `README.md`)
- Opportunity management → Opportunity matching: scores fit
- Opportunity matching → Students: recommends roles (evidence: `README.md`)
- Students → Application pipeline: apply and track
- Application pipeline → Industry partners: provides applicants
- Industry partners → Opportunity management: publish roles (evidence: `README.md`)
- Industry partners → Skill assessments: contribute questions
- Faculty and institutions → Skill assessments: contribute questions
- Administrators → Question moderation: moderate questions
- Question moderation → Skill assessments: manages question bank (evidence: `frontend/src/components/admin/AdminAssessmentModeration.tsx`)
- Faculty and institutions → Institution analytics: monitor readiness (evidence: `README.md`)
- Administrators → Partner verification: verify partners (evidence: `README.md`)
- Faculty and institutions → Collaboration initiatives: host initiatives (evidence: `README.md`)
- Students → Collaboration initiatives: participate (evidence: `README.md`)
- Students → Digital documents: manage portfolio files (evidence: `README.md`)
