# vishalpanda-27/collegemanagementsystem architecture

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

- Interactive diagram: https://gitdiagram.com/vishalpanda-27/collegemanagementsystem
- Repository: https://github.com/vishalpanda-27/collegemanagementsystem

## Overview

This is a campus-management system with a React frontend and Spring backend. Users enter through authentication and role-aware dashboards, then manage academic records and workflows such as enrollment, attendance, schedules, and results. The frontend exposes these capabilities as feature pages and API modules; backend controllers delegate to services, which apply domain rules and use repositories. The excerpts directly show routing, dashboard role dispatch, enrollment handling, and several service-to-repository/domain dependencies. Other feature links are shown as unverified where their source was not sampled.

Main entry points: [`frontend/src/features/dashboard/DashboardRoutes.tsx`](https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/frontend/src/features/dashboard/DashboardRoutes.tsx) (Role dashboards), [`frontend/src/App.tsx`](https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/frontend/src/App.tsx) (React application), [`backend/src/main/java/com/vishal/cms/enrollment/EnrollmentService.java`](https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/enrollment/EnrollmentService.java) (Enrollment rules), [`backend/src/main/java/com/vishal/cms/CmsApplication.java`](https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/CmsApplication.java) (Spring API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Access and navigation"]
  node_frontend["React application<br/>[App.tsx]"]
  node_dashboards["Role dashboards"]
  node_apiclient["HTTP API client<br/>[client.ts]"]
end

subgraph group_academic["Academic records"]
  node_students["Student records"]
  node_teachers["Teacher records"]
  node_departments["Departments"]
  node_programs["Programs"]
  node_courses["Courses and subjects<br/>[Course.java]"]
  node_studentrepo["Student repository"]
  node_courserepo["Course repository"]
end

subgraph group_operations["Academic operations"]
  node_enrollmentui["Enrollment workflow<br/>[useEnrollments.ts]"]
  node_enrollmentapi["Enrollment API"]
  node_enrollmentservice["Enrollment rules"]
  node_enrollmentstore["Enrollment repository"]
  node_attendance["Attendance tracking"]
  node_classroom["Classrooms"]
  node_schedules["Class schedules"]
  node_timetable["Timetables"]
  node_results["Results and transcripts<br/>[ResultService.java]"]
end

subgraph group_backend["Backend services"]
  node_backendapi["Spring API"]
  node_backendservice["Error handling"]
end

subgraph group_identity["Identity and access"]
  node_authui["Auth context<br/>[AuthContext.tsx]"]
  node_authservice["Authentication<br/>[AuthService.java]"]
  node_users["User management<br/>[UserService.java]"]
  node_springsecurity["Security configuration"]
end

node_user(("Campus user"))
node_externalapi["Backend endpoint"]

node_user -->|"uses"| node_frontend
node_frontend -->|"routes to"| node_dashboards
node_frontend -->|"provides context"| node_authui
node_dashboards -->|"reads role"| node_authui
node_frontend -.->|"calls APIs"| node_apiclient
node_apiclient -->|"sends requests"| node_externalapi
node_externalapi -.->|"serves API"| node_backendapi
node_authui -.->|"authenticates"| node_authservice
node_backendapi -.->|"secures requests"| node_springsecurity
node_enrollmentui -.->|"requests enrollment"| node_enrollmentapi
node_enrollmentapi -->|"delegates to"| node_enrollmentservice
node_enrollmentservice -->|"queries and writes"| node_enrollmentstore
node_enrollmentservice -->|"looks up students"| node_studentrepo
node_enrollmentservice -->|"looks up courses"| node_courserepo
node_attendance -->|"checks students"| node_studentrepo
node_attendance -->|"checks enrollment"| node_enrollmentstore
node_dashboards -.->|"presents records"| node_students
node_dashboards -.->|"presents records"| node_teachers
node_dashboards -.->|"presents records"| node_departments
node_dashboards -.->|"presents records"| node_programs
node_dashboards -.->|"presents records"| node_courses
node_dashboards -.->|"opens tracking"| node_attendance
node_dashboards -.->|"opens rooms"| node_classroom
node_dashboards -.->|"opens schedules"| node_schedules
node_dashboards -.->|"opens timetable"| node_timetable
node_dashboards -.->|"opens results"| node_results
node_backendapi -.->|"handles errors"| node_backendservice

click node_frontend "https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/frontend/src/App.tsx"
click node_dashboards "https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/frontend/src/features/dashboard/DashboardRoutes.tsx"
click node_authui "https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/frontend/src/contexts/AuthContext.tsx"
click node_apiclient "https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/frontend/src/api/client.ts"
click node_backendapi "https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/CmsApplication.java"
click node_authservice "https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/auth/AuthService.java"
click node_users "https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/user/UserService.java"
click node_students "https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/student/StudentService.java"
click node_teachers "https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/teacher/TeacherService.java"
click node_departments "https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/department/DepartmentService.java"
click node_programs "https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/program/ProgramService.java"
click node_courses "https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/course/Course.java"
click node_enrollmentui "https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/frontend/src/features/enrollment/hooks/useEnrollments.ts"
click node_enrollmentapi "https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/enrollment/EnrollmentController.java"
click node_enrollmentservice "https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/enrollment/EnrollmentService.java"
click node_enrollmentstore "https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/enrollment/EnrollmentRepository.java"
click node_attendance "https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/attendance/AttendanceService.java"
click node_classroom "https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/classroom/ClassroomService.java"
click node_schedules "https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/classschedule/ClassScheduleService.java"
click node_timetable "https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/timetable/TimetableService.java"
click node_results "https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/result/ResultService.java"
click node_backendservice "https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/exceptions/GlobalExceptionHandler.java"
click node_springsecurity "https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/security/config/SecurityConfig.java"
click node_studentrepo "https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/student/StudentRepository.java"
click node_courserepo "https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/course/CourseRepository.java"

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_frontend,node_dashboards,node_apiclient,node_user toneBlue
class node_students,node_teachers,node_departments,node_programs,node_courses,node_studentrepo,node_courserepo toneAmber
class node_enrollmentui,node_enrollmentapi,node_enrollmentservice,node_enrollmentstore,node_attendance,node_classroom,node_schedules,node_timetable,node_results toneMint
class node_backendapi,node_backendservice toneRose
class node_authui,node_authservice,node_users,node_springsecurity,node_externalapi toneIndigo
```

## Components

### Access and navigation

- [React application](https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/frontend/src/App.tsx): `frontend/src/App.tsx`
- [Role dashboards](https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/frontend/src/features/dashboard/DashboardRoutes.tsx): `frontend/src/features/dashboard/DashboardRoutes.tsx`
- [HTTP API client](https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/frontend/src/api/client.ts): `frontend/src/api/client.ts`

### Academic records

- [Student records](https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/student/StudentService.java): `backend/src/main/java/com/vishal/cms/student/StudentService.java`
- [Teacher records](https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/teacher/TeacherService.java): `backend/src/main/java/com/vishal/cms/teacher/TeacherService.java`
- [Departments](https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/department/DepartmentService.java): `backend/src/main/java/com/vishal/cms/department/DepartmentService.java`
- [Programs](https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/program/ProgramService.java): `backend/src/main/java/com/vishal/cms/program/ProgramService.java`
- [Courses and subjects](https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/course/Course.java): `backend/src/main/java/com/vishal/cms/course/Course.java`
- [Student repository](https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/student/StudentRepository.java): `backend/src/main/java/com/vishal/cms/student/StudentRepository.java`
- [Course repository](https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/course/CourseRepository.java): `backend/src/main/java/com/vishal/cms/course/CourseRepository.java`

### Academic operations

- [Enrollment workflow](https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/frontend/src/features/enrollment/hooks/useEnrollments.ts): `frontend/src/features/enrollment/hooks/useEnrollments.ts`
- [Enrollment API](https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/enrollment/EnrollmentController.java): `backend/src/main/java/com/vishal/cms/enrollment/EnrollmentController.java`
- [Enrollment rules](https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/enrollment/EnrollmentService.java): `backend/src/main/java/com/vishal/cms/enrollment/EnrollmentService.java`
- [Enrollment repository](https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/enrollment/EnrollmentRepository.java): `backend/src/main/java/com/vishal/cms/enrollment/EnrollmentRepository.java`
- [Attendance tracking](https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/attendance/AttendanceService.java): `backend/src/main/java/com/vishal/cms/attendance/AttendanceService.java`
- [Classrooms](https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/classroom/ClassroomService.java): `backend/src/main/java/com/vishal/cms/classroom/ClassroomService.java`
- [Class schedules](https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/classschedule/ClassScheduleService.java): `backend/src/main/java/com/vishal/cms/classschedule/ClassScheduleService.java`
- [Timetables](https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/timetable/TimetableService.java): `backend/src/main/java/com/vishal/cms/timetable/TimetableService.java`
- [Results and transcripts](https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/result/ResultService.java): `backend/src/main/java/com/vishal/cms/result/ResultService.java`

### Backend services

- [Spring API](https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/CmsApplication.java): `backend/src/main/java/com/vishal/cms/CmsApplication.java`
- [Error handling](https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/exceptions/GlobalExceptionHandler.java): `backend/src/main/java/com/vishal/cms/exceptions/GlobalExceptionHandler.java`

### Identity and access

- [Auth context](https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/frontend/src/contexts/AuthContext.tsx): `frontend/src/contexts/AuthContext.tsx`
- [Authentication](https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/auth/AuthService.java): `backend/src/main/java/com/vishal/cms/auth/AuthService.java`
- [User management](https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/user/UserService.java): `backend/src/main/java/com/vishal/cms/user/UserService.java`
- [Security configuration](https://github.com/vishalpanda-27/collegemanagementsystem/blob/main/backend/src/main/java/com/vishal/cms/security/config/SecurityConfig.java): `backend/src/main/java/com/vishal/cms/security/config/SecurityConfig.java`

### Other components

- **Campus user**
- **Backend endpoint**

## Connections

- Campus user → React application: uses
- React application → Role dashboards: routes to (evidence: `frontend/src/App.tsx`)
- React application → Auth context: provides context (evidence: `frontend/src/App.tsx`)
- Role dashboards → Auth context: reads role (evidence: `frontend/src/features/dashboard/DashboardRoutes.tsx`)
- React application → HTTP API client: calls APIs
- HTTP API client → Backend endpoint: sends requests (evidence: `frontend/src/api/client.ts`)
- Backend endpoint → Spring API: serves API
- Auth context → Authentication: authenticates
- Spring API → Security configuration: secures requests
- Enrollment workflow → Enrollment API: requests enrollment
- Enrollment API → Enrollment rules: delegates to (evidence: `backend/src/main/java/com/vishal/cms/enrollment/EnrollmentController.java`)
- Enrollment rules → Enrollment repository: queries and writes (evidence: `backend/src/main/java/com/vishal/cms/enrollment/EnrollmentService.java`)
- Enrollment rules → Student repository: looks up students (evidence: `backend/src/main/java/com/vishal/cms/enrollment/EnrollmentService.java`)
- Enrollment rules → Course repository: looks up courses (evidence: `backend/src/main/java/com/vishal/cms/enrollment/EnrollmentService.java`)
- Attendance tracking → Student repository: checks students (evidence: `backend/src/main/java/com/vishal/cms/attendance/AttendanceService.java`)
- Attendance tracking → Enrollment repository: checks enrollment (evidence: `backend/src/main/java/com/vishal/cms/attendance/AttendanceService.java`)
- Role dashboards → Student records: presents records
- Role dashboards → Teacher records: presents records
- Role dashboards → Departments: presents records
- Role dashboards → Programs: presents records
- Role dashboards → Courses and subjects: presents records
- Role dashboards → Attendance tracking: opens tracking
- Role dashboards → Classrooms: opens rooms
- Role dashboards → Class schedules: opens schedules
- Role dashboards → Timetables: opens timetable
- Role dashboards → Results and transcripts: opens results
- Spring API → Error handling: handles errors
