# taseen007/skill-bridge architecture

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

- Interactive diagram: https://gitdiagram.com/taseen007/skill-bridge
- Repository: https://github.com/taseen007/skill-bridge

## Overview

SkillBridge is a teacher–learner marketplace for finding instruction, arranging one-to-one sessions, and exchanging feedback. The main journey moves from skill discovery and teacher skill/listing setup to booking, session coordination, then ratings and reviews. Profiles and authentication support that journey; chat and notifications provide communication. The README documents broader capabilities than the sampled source excerpts, so unsampled feature wiring is represented only where the tree or documentation supports it. Backend request handling and persistence are shown at a useful internal layer.

Main entry points: [`backend/index.js`](https://github.com/taseen007/skill-bridge/blob/main/backend/index.js) (HTTP and socket server), [`frontend/src/App.jsx`](https://github.com/taseen007/skill-bridge/blob/main/frontend/src/App.jsx) (Web app and routes), [`backend/routes/sessionRoutes.js`](https://github.com/taseen007/skill-bridge/blob/main/backend/routes/sessionRoutes.js) (Session endpoints), [`backend/routes/reviewRoutes.js`](https://github.com/taseen007/skill-bridge/blob/main/backend/routes/reviewRoutes.js) (Rating and review endpoints)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["Web experience"]
  node_webapp["Web app and routes<br/>[App.jsx]"]
  node_authui["Sign-in and profiles"]
  node_discoveryui["Skills discovery<br/>[page.jsx]"]
  node_listingui["Skill setup<br/>[AddListings.jsx]"]
  node_sessionui["Session pages"]
  node_feedbackui["Ratings and reviews"]
end

subgraph group_marketplace["Skills marketplace"]
  node_skillrecords[("Detailed skill records<br/>[skills.js]")]
  node_listings[("Skill listings<br/>[skillListing.js]")]
end

subgraph group_sessions["Learning sessions"]
  node_sessions[("Booking and status<br/>[session.js]")]
end

subgraph group_engagement["Communication and feedback"]
  node_notifications[("Notifications")]
  node_chat["Real-time chat<br/>[chatRoutes.js]"]
  node_feedback[("Ratings and reviews<br/>[rating.js]")]
  node_reviewmodel[("Review records<br/>[review.js]")]
  node_realtime["Realtime dispatch<br/>[realtime.js]"]
  node_email["Email notifications<br/>[email.js]"]
end

subgraph group_backend["Backend services"]
  node_userapi["User endpoints<br/>[user.route.js]"]
  node_skillapi["Skill endpoints<br/>[skillRoutes.js]"]
  node_listingapi["Listing endpoints<br/>[listingRoutes.js]"]
  node_sessionapi["Session endpoints<br/>[sessionRoutes.js]"]
  node_feedbackapi["Rating and review endpoints<br/>[reviewRoutes.js]"]
  node_auth["Identity and roles<br/>[user.controller.js]"]
  node_server["HTTP and socket server<br/>[index.js]"]
end

node_learner(("Learner"))
node_teacher(("Teacher"))
node_mongodb[("MongoDB")]

node_learner -->|"uses"| node_webapp
node_teacher -->|"uses"| node_webapp
node_webapp -->|"routes to"| node_authui
node_webapp -->|"routes to"| node_discoveryui
node_webapp -->|"routes to"| node_listingui
node_webapp -->|"routes to"| node_sessionui
node_webapp -->|"routes to"| node_feedbackui
node_authui -->|"requests"| node_userapi
node_discoveryui -->|"requests"| node_skillapi
node_discoveryui -->|"browses"| node_listingapi
node_listingui -->|"creates skills"| node_skillapi
node_listingui -->|"publishes listing"| node_listingapi
node_sessionui -->|"books and manages"| node_sessionapi
node_feedbackui -->|"submits feedback"| node_feedbackapi
node_server -->|"mounts"| node_userapi
node_server -->|"mounts"| node_skillapi
node_server -->|"mounts"| node_listingapi
node_server -->|"mounts"| node_sessionapi
node_server -->|"mounts"| node_feedbackapi
node_skillapi -->|"dispatches to"| node_skillrecords
node_listingapi -->|"dispatches to"| node_listings
node_sessionapi -->|"dispatches to"| node_sessions
node_feedbackapi -->|"dispatches to"| node_feedback
node_feedbackapi -->|"dispatches to"| node_reviewmodel
node_sessionapi -->|"creates"| node_notifications
node_sessionapi -->|"emits updates"| node_realtime
node_sessionapi -->|"sends email"| node_email
node_server -->|"configures"| node_realtime
node_server -->|"mounts"| node_chat
node_auth -->|"reads and writes"| node_mongodb
node_skillrecords -->|"persists in"| node_mongodb
node_listings -->|"persists in"| node_mongodb
node_sessions -->|"persists in"| node_mongodb
node_notifications -->|"persists in"| node_mongodb
node_feedback -->|"persists in"| node_mongodb
node_reviewmodel -->|"persists in"| node_mongodb

click node_webapp "https://github.com/taseen007/skill-bridge/blob/main/frontend/src/App.jsx"
click node_authui "https://github.com/taseen007/skill-bridge/tree/main/frontend/src/components/pages/Authentication"
click node_discoveryui "https://github.com/taseen007/skill-bridge/blob/main/frontend/src/components/pages/Skills/page.jsx"
click node_listingui "https://github.com/taseen007/skill-bridge/blob/main/frontend/src/components/pages/Skills/AddListings.jsx"
click node_sessionui "https://github.com/taseen007/skill-bridge/tree/main/frontend/src/components/pages/Sessions"
click node_feedbackui "https://github.com/taseen007/skill-bridge/blob/main/frontend/src/components/pages/Rating/RatingReviewPage.jsx"
click node_userapi "https://github.com/taseen007/skill-bridge/blob/main/backend/routes/user.route.js"
click node_skillapi "https://github.com/taseen007/skill-bridge/blob/main/backend/routes/skillRoutes.js"
click node_listingapi "https://github.com/taseen007/skill-bridge/blob/main/backend/routes/listingRoutes.js"
click node_sessionapi "https://github.com/taseen007/skill-bridge/blob/main/backend/routes/sessionRoutes.js"
click node_feedbackapi "https://github.com/taseen007/skill-bridge/blob/main/backend/routes/reviewRoutes.js"
click node_auth "https://github.com/taseen007/skill-bridge/blob/main/backend/controllers/user.controller.js"
click node_skillrecords "https://github.com/taseen007/skill-bridge/blob/main/backend/models/skills.js"
click node_listings "https://github.com/taseen007/skill-bridge/blob/main/backend/models/skillListing.js"
click node_sessions "https://github.com/taseen007/skill-bridge/blob/main/backend/models/session.js"
click node_notifications "https://github.com/taseen007/skill-bridge/blob/main/backend/models/notificationModel.js"
click node_chat "https://github.com/taseen007/skill-bridge/blob/main/backend/routes/chatRoutes.js"
click node_feedback "https://github.com/taseen007/skill-bridge/blob/main/backend/models/rating.js"
click node_reviewmodel "https://github.com/taseen007/skill-bridge/blob/main/backend/models/review.js"
click node_server "https://github.com/taseen007/skill-bridge/blob/main/backend/index.js"
click node_realtime "https://github.com/taseen007/skill-bridge/blob/main/backend/utils/realtime.js"
click node_email "https://github.com/taseen007/skill-bridge/blob/main/backend/utils/email.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,node_discoveryui,node_listingui,node_sessionui,node_feedbackui toneBlue
class node_skillrecords,node_listings,node_mongodb toneAmber
class node_sessions toneMint
class node_notifications,node_chat,node_feedback,node_reviewmodel,node_realtime,node_email toneRose
class node_userapi,node_skillapi,node_listingapi,node_sessionapi,node_feedbackapi,node_auth,node_server,node_learner,node_teacher toneIndigo
```

## Components

### Web experience

- [Web app and routes](https://github.com/taseen007/skill-bridge/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [Sign-in and profiles](https://github.com/taseen007/skill-bridge/tree/main/frontend/src/components/pages/Authentication): `frontend/src/components/pages/Authentication`
- [Skills discovery](https://github.com/taseen007/skill-bridge/blob/main/frontend/src/components/pages/Skills/page.jsx): `frontend/src/components/pages/Skills/page.jsx`
- [Skill setup](https://github.com/taseen007/skill-bridge/blob/main/frontend/src/components/pages/Skills/AddListings.jsx): `frontend/src/components/pages/Skills/AddListings.jsx`
- [Session pages](https://github.com/taseen007/skill-bridge/tree/main/frontend/src/components/pages/Sessions): `frontend/src/components/pages/Sessions`
- [Ratings and reviews](https://github.com/taseen007/skill-bridge/blob/main/frontend/src/components/pages/Rating/RatingReviewPage.jsx): `frontend/src/components/pages/Rating/RatingReviewPage.jsx`

### Skills marketplace

- [Detailed skill records](https://github.com/taseen007/skill-bridge/blob/main/backend/models/skills.js): `backend/models/skills.js`
- [Skill listings](https://github.com/taseen007/skill-bridge/blob/main/backend/models/skillListing.js): `backend/models/skillListing.js`

### Learning sessions

- [Booking and status](https://github.com/taseen007/skill-bridge/blob/main/backend/models/session.js): `backend/models/session.js`

### Communication and feedback

- [Notifications](https://github.com/taseen007/skill-bridge/blob/main/backend/models/notificationModel.js): `backend/models/notificationModel.js`
- [Real-time chat](https://github.com/taseen007/skill-bridge/blob/main/backend/routes/chatRoutes.js): `backend/routes/chatRoutes.js`
- [Ratings and reviews](https://github.com/taseen007/skill-bridge/blob/main/backend/models/rating.js): `backend/models/rating.js`
- [Review records](https://github.com/taseen007/skill-bridge/blob/main/backend/models/review.js): `backend/models/review.js`
- [Realtime dispatch](https://github.com/taseen007/skill-bridge/blob/main/backend/utils/realtime.js): `backend/utils/realtime.js`
- [Email notifications](https://github.com/taseen007/skill-bridge/blob/main/backend/utils/email.js): `backend/utils/email.js`

### Backend services

- [User endpoints](https://github.com/taseen007/skill-bridge/blob/main/backend/routes/user.route.js): `backend/routes/user.route.js`
- [Skill endpoints](https://github.com/taseen007/skill-bridge/blob/main/backend/routes/skillRoutes.js): `backend/routes/skillRoutes.js`
- [Listing endpoints](https://github.com/taseen007/skill-bridge/blob/main/backend/routes/listingRoutes.js): `backend/routes/listingRoutes.js`
- [Session endpoints](https://github.com/taseen007/skill-bridge/blob/main/backend/routes/sessionRoutes.js): `backend/routes/sessionRoutes.js`
- [Rating and review endpoints](https://github.com/taseen007/skill-bridge/blob/main/backend/routes/reviewRoutes.js): `backend/routes/reviewRoutes.js`
- [Identity and roles](https://github.com/taseen007/skill-bridge/blob/main/backend/controllers/user.controller.js): `backend/controllers/user.controller.js`
- [HTTP and socket server](https://github.com/taseen007/skill-bridge/blob/main/backend/index.js): `backend/index.js`

### Other components

- **Learner**
- **Teacher**
- **MongoDB**

## Connections

- Learner → Web app and routes: uses
- Teacher → Web app and routes: uses
- Web app and routes → Sign-in and profiles: routes to
- Web app and routes → Skills discovery: routes to
- Web app and routes → Skill setup: routes to
- Web app and routes → Session pages: routes to
- Web app and routes → Ratings and reviews: routes to
- Sign-in and profiles → User endpoints: requests
- Skills discovery → Skill endpoints: requests
- Skills discovery → Listing endpoints: browses
- Skill setup → Skill endpoints: creates skills
- Skill setup → Listing endpoints: publishes listing
- Session pages → Session endpoints: books and manages
- Ratings and reviews → Rating and review endpoints: submits feedback
- HTTP and socket server → User endpoints: mounts
- HTTP and socket server → Skill endpoints: mounts
- HTTP and socket server → Listing endpoints: mounts
- HTTP and socket server → Session endpoints: mounts
- HTTP and socket server → Rating and review endpoints: mounts
- Skill endpoints → Detailed skill records: dispatches to
- Listing endpoints → Skill listings: dispatches to
- Session endpoints → Booking and status: dispatches to
- Rating and review endpoints → Ratings and reviews: dispatches to
- Rating and review endpoints → Review records: dispatches to
- Session endpoints → Notifications: creates
- Session endpoints → Realtime dispatch: emits updates
- Session endpoints → Email notifications: sends email
- HTTP and socket server → Realtime dispatch: configures
- HTTP and socket server → Real-time chat: mounts
- Identity and roles → MongoDB: reads and writes
- Detailed skill records → MongoDB: persists in
- Skill listings → MongoDB: persists in
- Booking and status → MongoDB: persists in
- Notifications → MongoDB: persists in
- Ratings and reviews → MongoDB: persists in
- Review records → MongoDB: persists in
