# inam003/lms architecture

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

- Interactive diagram: https://gitdiagram.com/inam003/lms
- Repository: https://github.com/inam003/lms

## Overview

This is a React learning-management frontend, not a backend service. Its main user journey is role-based: users enter through the public/authentication screens, then use student, teacher, or administrator workspaces for learning, assessment, course, and institutional tasks. The tree also documents an admission application flow; the sampled admission excerpt shows Supabase authentication, document uploads, and application insertion. The README is only a generic Vite template, and most page implementations were not sampled, so the graph reflects routing and documented capabilities without asserting unsampled page-to-page wiring.

Main entry points: [`src/App.jsx`](https://github.com/inam003/lms/blob/main/src/App.jsx) (Router and app), [`src/Dashboards/StudentsDashboard.jsx`](https://github.com/inam003/lms/blob/main/src/Dashboards/StudentsDashboard.jsx) (Student dashboard), [`src/Dashboards/AdminDashboard.jsx`](https://github.com/inam003/lms/blob/main/src/Dashboards/AdminDashboard.jsx) (Admin dashboard), [`src/Pages/Public/AdmissionPortal.jsx`](https://github.com/inam003/lms/blob/main/src/Pages/Public/AdmissionPortal.jsx) (Admission application)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Public Entry"]
  node_app["Router and app<br/>[App.jsx]"]
  node_landing["Landing page<br/>[Home.jsx]"]
  node_access["Login and signup<br/>[Login.jsx]"]
end

subgraph group_admissions["Admissions"]
  node_admission["Admission application"]
  node_auth["Supabase Auth"]
  node_documents[("Admission documents")]
  node_applications[("Admission applications")]
end

subgraph group_student["Student Workspace"]
  node_student_shell["Student dashboard"]
  node_student_learning["Courses and coursework<br/>[Courses.jsx]"]
  node_student_assessment["Exams and results<br/>[Exams.jsx]"]
  node_student_progress["Progress and profile<br/>[Progress.jsx]"]
  node_student_updates["Announcements and contact<br/>[Announcements.jsx]"]
end

subgraph group_teacher["Teacher Workspace"]
  node_teacher_shell["Teacher dashboard"]
  node_teaching["Assignments and quizzes<br/>[Assignments.jsx]"]
  node_teacher_assessment["Exams and grading<br/>[Grading.jsx]"]
  node_teacher_updates["Students and announcements<br/>[Students.jsx]"]
end

subgraph group_admin["Administration"]
  node_admin_shell["Admin dashboard<br/>[AdminDashboard.jsx]"]
  node_admin_operations["Users and courses<br/>[UserManagement.jsx]"]
  node_admin_academics["Content and grading"]
  node_admin_services["Finance and support<br/>[Finance.jsx]"]
  node_admin_communications["Communications<br/>[Communication.jsx]"]
end

node_prospective(("Prospective user"))
node_learner(("Student"))
node_instructor(("Teacher"))
node_operator(("Administrator"))

node_prospective -->|"opens"| node_app
node_learner -->|"opens"| node_app
node_instructor -->|"opens"| node_app
node_operator -->|"opens"| node_app
node_app -->|"routes to"| node_landing
node_app -->|"routes to"| node_access
node_app -->|"routes to"| node_student_shell
node_app -->|"routes to"| node_teacher_shell
node_app -->|"routes to"| node_admin_shell
node_prospective -->|"applies"| node_admission
node_admission -->|"creates account"| node_auth
node_admission -->|"uploads files"| node_documents
node_admission -->|"inserts application"| node_applications
node_app -.->|"route not shown"| node_admission
node_student_shell -->|"renders route"| node_student_learning
node_student_shell -->|"renders route"| node_student_assessment
node_student_shell -->|"renders route"| node_student_progress
node_student_shell -->|"renders route"| node_student_updates
node_teacher_shell -->|"renders route"| node_teaching
node_teacher_shell -->|"renders route"| node_teacher_assessment
node_teacher_shell -->|"renders route"| node_teacher_updates
node_admin_shell -->|"renders route"| node_admin_operations
node_admin_shell -->|"renders route"| node_admin_academics
node_admin_shell -->|"renders route"| node_admin_services
node_admin_shell -->|"renders route"| node_admin_communications

click node_app "https://github.com/inam003/lms/blob/main/src/App.jsx"
click node_landing "https://github.com/inam003/lms/blob/main/src/Pages/LandingPage/Home.jsx"
click node_access "https://github.com/inam003/lms/blob/main/src/Pages/Login.jsx"
click node_admission "https://github.com/inam003/lms/blob/main/src/Pages/Public/AdmissionPortal.jsx"
click node_student_shell "https://github.com/inam003/lms/blob/main/src/Dashboards/StudentsDashboard.jsx"
click node_student_learning "https://github.com/inam003/lms/blob/main/src/Pages/Student/Courses.jsx"
click node_student_assessment "https://github.com/inam003/lms/blob/main/src/Pages/Student/Exams.jsx"
click node_student_progress "https://github.com/inam003/lms/blob/main/src/Pages/Student/Progress.jsx"
click node_student_updates "https://github.com/inam003/lms/blob/main/src/Pages/Student/Announcements.jsx"
click node_teacher_shell "https://github.com/inam003/lms/blob/main/src/Dashboards/TeachersDashboard.jsx"
click node_teaching "https://github.com/inam003/lms/blob/main/src/Pages/Teacher/Assignments.jsx"
click node_teacher_assessment "https://github.com/inam003/lms/blob/main/src/Pages/Teacher/Grading.jsx"
click node_teacher_updates "https://github.com/inam003/lms/blob/main/src/Pages/Teacher/Students.jsx"
click node_admin_shell "https://github.com/inam003/lms/blob/main/src/Dashboards/AdminDashboard.jsx"
click node_admin_operations "https://github.com/inam003/lms/blob/main/src/Pages/Admin/UserManagement.jsx"
click node_admin_academics "https://github.com/inam003/lms/blob/main/src/Pages/Admin/ContentManagement.jsx"
click node_admin_services "https://github.com/inam003/lms/blob/main/src/Pages/Admin/Finance.jsx"
click node_admin_communications "https://github.com/inam003/lms/blob/main/src/Pages/Admin/Communication.jsx"

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_landing,node_access,node_prospective toneBlue
class node_admission,node_auth,node_documents,node_applications toneAmber
class node_student_shell,node_student_learning,node_student_assessment,node_student_progress,node_student_updates toneMint
class node_teacher_shell,node_teaching,node_teacher_assessment,node_teacher_updates toneRose
class node_admin_shell,node_admin_operations,node_admin_academics,node_admin_services,node_admin_communications,node_learner,node_instructor,node_operator toneIndigo
```

## Components

### Public Entry

- [Router and app](https://github.com/inam003/lms/blob/main/src/App.jsx): `src/App.jsx`
- [Landing page](https://github.com/inam003/lms/blob/main/src/Pages/LandingPage/Home.jsx): `src/Pages/LandingPage/Home.jsx`
- [Login and signup](https://github.com/inam003/lms/blob/main/src/Pages/Login.jsx): `src/Pages/Login.jsx`

### Admissions

- [Admission application](https://github.com/inam003/lms/blob/main/src/Pages/Public/AdmissionPortal.jsx): `src/Pages/Public/AdmissionPortal.jsx`
- **Supabase Auth**
- **Admission documents**
- **Admission applications**

### Student Workspace

- [Student dashboard](https://github.com/inam003/lms/blob/main/src/Dashboards/StudentsDashboard.jsx): `src/Dashboards/StudentsDashboard.jsx`
- [Courses and coursework](https://github.com/inam003/lms/blob/main/src/Pages/Student/Courses.jsx): `src/Pages/Student/Courses.jsx`
- [Exams and results](https://github.com/inam003/lms/blob/main/src/Pages/Student/Exams.jsx): `src/Pages/Student/Exams.jsx`
- [Progress and profile](https://github.com/inam003/lms/blob/main/src/Pages/Student/Progress.jsx): `src/Pages/Student/Progress.jsx`
- [Announcements and contact](https://github.com/inam003/lms/blob/main/src/Pages/Student/Announcements.jsx): `src/Pages/Student/Announcements.jsx`

### Teacher Workspace

- [Teacher dashboard](https://github.com/inam003/lms/blob/main/src/Dashboards/TeachersDashboard.jsx): `src/Dashboards/TeachersDashboard.jsx`
- [Assignments and quizzes](https://github.com/inam003/lms/blob/main/src/Pages/Teacher/Assignments.jsx): `src/Pages/Teacher/Assignments.jsx`
- [Exams and grading](https://github.com/inam003/lms/blob/main/src/Pages/Teacher/Grading.jsx): `src/Pages/Teacher/Grading.jsx`
- [Students and announcements](https://github.com/inam003/lms/blob/main/src/Pages/Teacher/Students.jsx): `src/Pages/Teacher/Students.jsx`

### Administration

- [Admin dashboard](https://github.com/inam003/lms/blob/main/src/Dashboards/AdminDashboard.jsx): `src/Dashboards/AdminDashboard.jsx`
- [Users and courses](https://github.com/inam003/lms/blob/main/src/Pages/Admin/UserManagement.jsx): `src/Pages/Admin/UserManagement.jsx`
- [Content and grading](https://github.com/inam003/lms/blob/main/src/Pages/Admin/ContentManagement.jsx): `src/Pages/Admin/ContentManagement.jsx`
- [Finance and support](https://github.com/inam003/lms/blob/main/src/Pages/Admin/Finance.jsx): `src/Pages/Admin/Finance.jsx`
- [Communications](https://github.com/inam003/lms/blob/main/src/Pages/Admin/Communication.jsx): `src/Pages/Admin/Communication.jsx`

### Other components

- **Prospective user**
- **Student**
- **Teacher**
- **Administrator**

## Connections

- Prospective user → Router and app: opens
- Student → Router and app: opens
- Teacher → Router and app: opens
- Administrator → Router and app: opens
- Router and app → Landing page: routes to
- Router and app → Login and signup: routes to
- Router and app → Student dashboard: routes to
- Router and app → Teacher dashboard: routes to
- Router and app → Admin dashboard: routes to
- Prospective user → Admission application: applies
- Admission application → Supabase Auth: creates account
- Admission application → Admission documents: uploads files
- Admission application → Admission applications: inserts application
- Router and app → Admission application: route not shown
- Student dashboard → Courses and coursework: renders route
- Student dashboard → Exams and results: renders route
- Student dashboard → Progress and profile: renders route
- Student dashboard → Announcements and contact: renders route
- Teacher dashboard → Assignments and quizzes: renders route
- Teacher dashboard → Exams and grading: renders route
- Teacher dashboard → Students and announcements: renders route
- Admin dashboard → Users and courses: renders route
- Admin dashboard → Content and grading: renders route
- Admin dashboard → Finance and support: renders route
- Admin dashboard → Communications: renders route
