# deekshas07/student-course-management-system architecture

> Architecture diagram of the GitHub repository deekshas07/student-course-management-system, 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/deekshas07/student-course-management-system
- Repository: https://github.com/deekshas07/student-course-management-system

## Overview

The Student Course Management System lets staff use a dashboard and CRUD screens to manage programs, faculty, courses, students, and student course attempts. The frontend services send REST requests to Express routes, which delegate domain operations to models backed by Microsoft SQL Server. The README documents the full set of management areas; the sampled source confirms the server dispatch pattern and several route-to-model and model-to-database interactions. Some frontend page wiring and model implementations were not sampled, so those internal links are shown at subsystem level.

Main entry points: [`backend/server.js`](https://github.com/deekshas07/student-course-management-system/blob/main/backend/server.js) (Express server), [`backend/config/db.js`](https://github.com/deekshas07/student-course-management-system/blob/main/backend/config/db.js) (SQL connection), [`frontend/src/App.js`](https://github.com/deekshas07/student-course-management-system/blob/main/frontend/src/App.js) (App routes), [`frontend/src/services`](https://github.com/deekshas07/student-course-management-system/tree/main/frontend/src/services) (API services)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Frontend"]
  node_app["App routes<br/>[App.js]"]
  node_dashboard["Dashboard<br/>[Dashboard.js]"]
  node_management["Management pages"]
  node_attempts["Attempt pages"]
  node_services["API services"]
  node_api_client["HTTP client<br/>[api.js]"]
end

subgraph group_api["REST API"]
  node_program_routes["Program routes<br/>[programRoutes.js]"]
  node_faculty_routes["Faculty routes<br/>[facultyRoutes.js]"]
  node_course_routes["Course routes<br/>[courseRoutes.js]"]
  node_student_routes["Student routes<br/>[studentRoutes.js]"]
  node_attempt_routes["Attempt routes<br/>[attemptRoutes.js]"]
end

subgraph group_domain["Domain data"]
  node_program_model["Program model<br/>[Program.js]"]
  node_faculty_model["Faculty model<br/>[Faculty.js]"]
  node_course_model["Course model<br/>[Course.js]"]
  node_student_model["Student model<br/>[Student.js]"]
  node_attempt_model["Attempt model"]
end

subgraph group_runtime["Runtime"]
  node_server["Express server<br/>[server.js]"]
  node_db_config["SQL connection<br/>[db.js]"]
end

node_staff(("Staff user"))
node_sql_server[("SQL Server")]

node_staff -->|"uses"| node_app
node_app -->|"renders"| node_dashboard
node_app -->|"routes to"| node_management
node_app -->|"routes to"| node_attempts
node_management -->|"requests data"| node_services
node_attempts -->|"requests data"| node_services
node_services -->|"uses"| node_api_client
node_api_client -->|"HTTP requests"| node_server
node_server -->|"dispatches"| node_program_routes
node_server -->|"dispatches"| node_faculty_routes
node_server -->|"dispatches"| node_course_routes
node_server -->|"dispatches"| node_student_routes
node_server -->|"dispatches"| node_attempt_routes
node_program_routes -->|"calls"| node_program_model
node_faculty_routes -->|"calls"| node_faculty_model
node_course_routes -->|"calls"| node_course_model
node_student_routes -->|"calls"| node_student_model
node_attempt_routes -->|"calls"| node_attempt_model
node_program_model -->|"queries via"| node_db_config
node_faculty_model -->|"queries via"| node_db_config
node_course_model -->|"queries via"| node_db_config
node_student_model -->|"queries via"| node_db_config
node_attempt_model -->|"queries via"| node_db_config
node_db_config -->|"connects"| node_sql_server

click node_app "https://github.com/deekshas07/student-course-management-system/blob/main/frontend/src/App.js"
click node_dashboard "https://github.com/deekshas07/student-course-management-system/blob/main/frontend/src/pages/Dashboard.js"
click node_management "https://github.com/deekshas07/student-course-management-system/tree/main/frontend/src/pages"
click node_attempts "https://github.com/deekshas07/student-course-management-system/tree/main/frontend/src/pages"
click node_services "https://github.com/deekshas07/student-course-management-system/tree/main/frontend/src/services"
click node_api_client "https://github.com/deekshas07/student-course-management-system/blob/main/frontend/src/services/api.js"
click node_server "https://github.com/deekshas07/student-course-management-system/blob/main/backend/server.js"
click node_program_routes "https://github.com/deekshas07/student-course-management-system/blob/main/backend/routes/programRoutes.js"
click node_faculty_routes "https://github.com/deekshas07/student-course-management-system/blob/main/backend/routes/facultyRoutes.js"
click node_course_routes "https://github.com/deekshas07/student-course-management-system/blob/main/backend/routes/courseRoutes.js"
click node_student_routes "https://github.com/deekshas07/student-course-management-system/blob/main/backend/routes/studentRoutes.js"
click node_attempt_routes "https://github.com/deekshas07/student-course-management-system/blob/main/backend/routes/attemptRoutes.js"
click node_program_model "https://github.com/deekshas07/student-course-management-system/blob/main/backend/models/Program.js"
click node_faculty_model "https://github.com/deekshas07/student-course-management-system/blob/main/backend/models/Faculty.js"
click node_course_model "https://github.com/deekshas07/student-course-management-system/blob/main/backend/models/Course.js"
click node_student_model "https://github.com/deekshas07/student-course-management-system/blob/main/backend/models/Student.js"
click node_attempt_model "https://github.com/deekshas07/student-course-management-system/blob/main/backend/models/StudentCourseAttempt.js"
click node_db_config "https://github.com/deekshas07/student-course-management-system/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_dashboard,node_management,node_attempts,node_services,node_api_client,node_staff toneBlue
class node_program_routes,node_faculty_routes,node_course_routes,node_student_routes,node_attempt_routes,node_sql_server toneAmber
class node_program_model,node_faculty_model,node_course_model,node_student_model,node_attempt_model toneMint
class node_server,node_db_config toneRose
```

## Components

### Frontend

- [App routes](https://github.com/deekshas07/student-course-management-system/blob/main/frontend/src/App.js): `frontend/src/App.js`
- [Dashboard](https://github.com/deekshas07/student-course-management-system/blob/main/frontend/src/pages/Dashboard.js): `frontend/src/pages/Dashboard.js`
- [Management pages](https://github.com/deekshas07/student-course-management-system/tree/main/frontend/src/pages): `frontend/src/pages`
- [Attempt pages](https://github.com/deekshas07/student-course-management-system/tree/main/frontend/src/pages): `frontend/src/pages`
- [API services](https://github.com/deekshas07/student-course-management-system/tree/main/frontend/src/services): `frontend/src/services`
- [HTTP client](https://github.com/deekshas07/student-course-management-system/blob/main/frontend/src/services/api.js): `frontend/src/services/api.js`

### REST API

- [Program routes](https://github.com/deekshas07/student-course-management-system/blob/main/backend/routes/programRoutes.js): `backend/routes/programRoutes.js`
- [Faculty routes](https://github.com/deekshas07/student-course-management-system/blob/main/backend/routes/facultyRoutes.js): `backend/routes/facultyRoutes.js`
- [Course routes](https://github.com/deekshas07/student-course-management-system/blob/main/backend/routes/courseRoutes.js): `backend/routes/courseRoutes.js`
- [Student routes](https://github.com/deekshas07/student-course-management-system/blob/main/backend/routes/studentRoutes.js): `backend/routes/studentRoutes.js`
- [Attempt routes](https://github.com/deekshas07/student-course-management-system/blob/main/backend/routes/attemptRoutes.js): `backend/routes/attemptRoutes.js`

### Domain data

- [Program model](https://github.com/deekshas07/student-course-management-system/blob/main/backend/models/Program.js): `backend/models/Program.js`
- [Faculty model](https://github.com/deekshas07/student-course-management-system/blob/main/backend/models/Faculty.js): `backend/models/Faculty.js`
- [Course model](https://github.com/deekshas07/student-course-management-system/blob/main/backend/models/Course.js): `backend/models/Course.js`
- [Student model](https://github.com/deekshas07/student-course-management-system/blob/main/backend/models/Student.js): `backend/models/Student.js`
- [Attempt model](https://github.com/deekshas07/student-course-management-system/blob/main/backend/models/StudentCourseAttempt.js): `backend/models/StudentCourseAttempt.js`

### Runtime

- [Express server](https://github.com/deekshas07/student-course-management-system/blob/main/backend/server.js): `backend/server.js`
- [SQL connection](https://github.com/deekshas07/student-course-management-system/blob/main/backend/config/db.js): `backend/config/db.js`

### Other components

- **Staff user**
- **SQL Server**

## Connections

- Staff user → App routes: uses
- App routes → Dashboard: renders
- App routes → Management pages: routes to
- App routes → Attempt pages: routes to
- Management pages → API services: requests data
- Attempt pages → API services: requests data
- API services → HTTP client: uses
- HTTP client → Express server: HTTP requests
- Express server → Program routes: dispatches
- Express server → Faculty routes: dispatches
- Express server → Course routes: dispatches
- Express server → Student routes: dispatches
- Express server → Attempt routes: dispatches
- Program routes → Program model: calls
- Faculty routes → Faculty model: calls
- Course routes → Course model: calls
- Student routes → Student model: calls
- Attempt routes → Attempt model: calls
- Program model → SQL connection: queries via
- Faculty model → SQL connection: queries via
- Course model → SQL connection: queries via
- Student model → SQL connection: queries via
- Attempt model → SQL connection: queries via
- SQL connection → SQL Server: connects
