# rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl- architecture

> Architecture diagram of the GitHub repository rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-15). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-
- Repository: https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-

## Overview

Mentor Match is a console application for student–teacher mentor recommendations, with registration, topic preferences, and administrator directories. Its main workflow loads local CSV data, routes users through login or registration, lets students choose prioritized topics, and ranks teachers by shared expertise. The graph separates user journeys, matching, shared account/topic logic, and CSV-backed records. The excerpts show the core calls and file operations; other than the README’s capability summary, no unsampled implementation details are assumed.

Main entry points: [`src/main.cpp`](https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-/blob/main/src/main.cpp) (Startup and menus), [`include/utils.h`](https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-/blob/main/include/utils.h) (CSV utilities), [`include/staff.h`](https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-/blob/main/include/staff.h) (Admin dashboard), [`include/student.h`](https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-/blob/main/include/student.h) (Student journey)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Application entry"]
  node_main["Startup and menus<br/>[main.cpp]"]
end

subgraph group_accounts["Accounts and topics"]
  node_auth["Login<br/>[core.h]"]
  node_student["Student journey<br/>[student.h]"]
  node_teacher["Teacher journey<br/>[staff.h]"]
  node_topics["Topic model<br/>[core.h]"]
end

subgraph group_matching["Mentor matching"]
  node_recommend["Mentor ranking<br/>[matching.h]"]
end

subgraph group_admin["Administration"]
  node_admin["Admin dashboard<br/>[staff.h]"]
  node_directories["Profile directories<br/>[staff.h]"]
  node_overview["System overview<br/>[staff.h]"]
  node_topicsview["Topic directory<br/>[staff.h]"]
end

subgraph group_storage["CSV records"]
  node_csv["CSV utilities<br/>[utils.h]"]
  node_studentsdb[("Student records<br/>[students.csv]")]
  node_teachersdb[("Teacher records<br/>[teachers.csv]")]
  node_adminsdb[("Admin records<br/>[admins.csv]")]
  node_topicsdb[("Topic records<br/>[topics.csv]")]
end

node_operator(("Console user"))

node_operator -->|"chooses options"| node_main
node_main -->|"loads topics"| node_topics
node_main -->|"loads students"| node_student
node_main -->|"loads teachers"| node_teacher
node_main -->|"loads admins"| node_admin
node_main -->|"routes login"| node_auth
node_main -->|"registers student"| node_student
node_main -->|"registers teacher"| node_teacher
node_auth -->|"dispatches dashboard"| node_student
node_auth -->|"dispatches dashboard"| node_teacher
node_auth -->|"dispatches dashboard"| node_admin
node_student -->|"updates preferences"| node_topics
node_teacher -->|"updates expertise"| node_topics
node_student -->|"requests matches"| node_recommend
node_recommend -->|"ranks expertise"| node_teacher
node_admin -->|"opens directories"| node_directories
node_admin -->|"opens topics"| node_topicsview
node_admin -->|"shows counts"| node_overview
node_topics -->|"reads through"| node_csv
node_student -->|"loads and saves"| node_csv
node_teacher -->|"loads and saves"| node_csv
node_admin -->|"loads records"| node_csv
node_csv -->|"reads and writes"| node_studentsdb
node_csv -->|"reads and writes"| node_teachersdb
node_csv -->|"reads"| node_adminsdb
node_csv -->|"reads"| node_topicsdb

click node_main "https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-/blob/main/src/main.cpp"
click node_auth "https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-/blob/main/include/core.h"
click node_student "https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-/blob/main/include/student.h"
click node_teacher "https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-/blob/main/include/staff.h"
click node_topics "https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-/blob/main/include/core.h"
click node_csv "https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-/blob/main/include/utils.h"
click node_recommend "https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-/blob/main/include/matching.h"
click node_admin "https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-/blob/main/include/staff.h"
click node_directories "https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-/blob/main/include/staff.h"
click node_overview "https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-/blob/main/include/staff.h"
click node_topicsview "https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-/blob/main/include/staff.h"
click node_studentsdb "https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-/blob/main/database/students.csv"
click node_teachersdb "https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-/blob/main/database/teachers.csv"
click node_adminsdb "https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-/blob/main/database/admins.csv"
click node_topicsdb "https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-/blob/main/database/topics.csv"

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_main,node_operator toneBlue
class node_auth,node_student,node_teacher,node_topics toneAmber
class node_recommend toneMint
class node_admin,node_directories,node_overview,node_topicsview toneRose
class node_csv,node_studentsdb,node_teachersdb,node_adminsdb,node_topicsdb toneIndigo
```

## Components

### Application entry

- [Startup and menus](https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-/blob/main/src/main.cpp): `src/main.cpp`

### Accounts and topics

- [Login](https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-/blob/main/include/core.h): `include/core.h`
- [Student journey](https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-/blob/main/include/student.h): `include/student.h`
- [Teacher journey](https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-/blob/main/include/staff.h): `include/staff.h`
- [Topic model](https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-/blob/main/include/core.h): `include/core.h`

### Mentor matching

- [Mentor ranking](https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-/blob/main/include/matching.h): `include/matching.h`

### Administration

- [Admin dashboard](https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-/blob/main/include/staff.h): `include/staff.h`
- [Profile directories](https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-/blob/main/include/staff.h): `include/staff.h`
- [System overview](https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-/blob/main/include/staff.h): `include/staff.h`
- [Topic directory](https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-/blob/main/include/staff.h): `include/staff.h`

### CSV records

- [CSV utilities](https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-/blob/main/include/utils.h): `include/utils.h`
- [Student records](https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-/blob/main/database/students.csv): `database/students.csv`
- [Teacher records](https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-/blob/main/database/teachers.csv): `database/teachers.csv`
- [Admin records](https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-/blob/main/database/admins.csv): `database/admins.csv`
- [Topic records](https://github.com/rishabhsinghnegi-hub/mentor-match-3rd-semester-pbl-/blob/main/database/topics.csv): `database/topics.csv`

### Other components

- **Console user**

## Connections

- Console user → Startup and menus: chooses options (evidence: `src/main.cpp`)
- Startup and menus → Topic model: loads topics (evidence: `src/main.cpp`)
- Startup and menus → Student journey: loads students (evidence: `src/main.cpp`)
- Startup and menus → Teacher journey: loads teachers (evidence: `src/main.cpp`)
- Startup and menus → Admin dashboard: loads admins (evidence: `src/main.cpp`)
- Startup and menus → Login: routes login (evidence: `src/main.cpp`)
- Startup and menus → Student journey: registers student (evidence: `src/main.cpp`)
- Startup and menus → Teacher journey: registers teacher (evidence: `src/main.cpp`)
- Login → Student journey: dispatches dashboard (evidence: `include/core.h`)
- Login → Teacher journey: dispatches dashboard (evidence: `include/core.h`)
- Login → Admin dashboard: dispatches dashboard (evidence: `include/core.h`)
- Student journey → Topic model: updates preferences (evidence: `include/student.h`)
- Teacher journey → Topic model: updates expertise (evidence: `include/staff.h`)
- Student journey → Mentor ranking: requests matches (evidence: `include/student.h`)
- Mentor ranking → Teacher journey: ranks expertise (evidence: `include/matching.h`)
- Admin dashboard → Profile directories: opens directories (evidence: `include/staff.h`)
- Admin dashboard → Topic directory: opens topics (evidence: `include/staff.h`)
- Admin dashboard → System overview: shows counts (evidence: `include/staff.h`)
- Topic model → CSV utilities: reads through (evidence: `include/core.h`)
- Student journey → CSV utilities: loads and saves (evidence: `include/student.h`)
- Teacher journey → CSV utilities: loads and saves (evidence: `include/staff.h`)
- Admin dashboard → CSV utilities: loads records (evidence: `include/staff.h`)
- CSV utilities → Student records: reads and writes
- CSV utilities → Teacher records: reads and writes
- CSV utilities → Admin records: reads
- CSV utilities → Topic records: reads
