# sifatahammed/learnlogix-lms architecture

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

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

## Overview

This is a course-learning platform with student and instructor experiences. Students browse and inspect courses, purchase through PayPal, gain course access, and track lecture progress; instructors create and update courses and upload media. The graph follows sampled route, controller, model, and payment code. Frontend service wiring and several backend subsystems are represented only at their tree-supported boundaries because their source was not sampled.

Main entry points: [`project-frontend/src/App.jsx`](https://github.com/sifatahammed/learnlogix-lms/blob/main/project-frontend/src/App.jsx) (App routes), [`project-backend/server.js`](https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/server.js) (API server), [`project-backend/controllers/student-controllers/order-controller.js`](https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/controllers/student-controllers/order-controller.js) (Order processing), [`project-backend/models/Course.js`](https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/models/Course.js) (Course records)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Frontend"]
  node_app["App routes<br/>[App.jsx]"]
  node_auth_ui["Authentication UI<br/>[index.jsx]"]
  node_instructor_ui["Instructor UI<br/>[index.jsx]"]
  node_course_editor["Course editor<br/>[add-new-course.jsx]"]
  node_student_home["Student home<br/>[index.jsx]"]
  node_course_catalog["Course catalog<br/>[index.jsx]"]
  node_course_details["Course details<br/>[index.jsx]"]
  node_payment_return["Payment return<br/>[index.jsx]"]
  node_my_courses["Purchased courses<br/>[index.jsx]"]
  node_course_player["Course player<br/>[index.jsx]"]
  node_frontend_services["API services<br/>[index.js]"]
end

subgraph group_course["Course management"]
  node_instructor_routes["Instructor course routes<br/>[course-routes.js]"]
  node_instructor_controller["Course authoring"]
  node_media_routes["Media routes<br/>[media-routes.js]"]
  node_cloudinary_helper["Cloudinary integration<br/>[cloudinary.js]"]
end

subgraph group_student["Student learning"]
  node_student_routes["Student course routes<br/>[course-routes.js]"]
  node_student_controller["Course discovery"]
  node_order_routes["Order routes<br/>[order-routes.js]"]
  node_order_controller["Order processing"]
  node_enrollment_routes["Enrollment routes"]
  node_progress_routes["Progress routes"]
  node_progress_controller["Progress tracking"]
end

subgraph group_platform["Platform services"]
  node_server["API server<br/>[server.js]"]
  node_auth_routes["Auth routes<br/>[index.js]"]
  node_auth_controller["Auth controller<br/>[index.js]"]
  node_course_model[("Course records<br/>[Course.js]")]
  node_order_model[("Order records<br/>[Order.js]")]
  node_enrollment_model[("Enrollment records<br/>[StudentCourses.js]")]
  node_progress_model[("Progress records<br/>[CourseProgress.js]")]
end

node_student_actor(("Student"))
node_instructor_actor(("Instructor"))
node_paypal["PayPal<br/>[paypal.js]"]
node_mongo[("MongoDB")]

node_student_actor -->|"uses"| node_app
node_instructor_actor -->|"uses"| node_app
node_app -->|"routes"| node_auth_ui
node_app -->|"routes"| node_instructor_ui
node_app -->|"routes"| node_course_editor
node_app -->|"routes"| node_student_home
node_app -->|"routes"| node_course_catalog
node_app -->|"routes"| node_course_details
node_app -->|"routes"| node_payment_return
node_app -->|"routes"| node_my_courses
node_app -->|"routes"| node_course_player
node_server -->|"mounts"| node_auth_routes
node_auth_routes -->|"dispatches"| node_auth_controller
node_server -->|"mounts"| node_instructor_routes
node_instructor_routes -->|"dispatches"| node_instructor_controller
node_server -->|"mounts"| node_media_routes
node_media_routes -->|"uploads media"| node_cloudinary_helper
node_server -->|"mounts"| node_student_routes
node_student_routes -->|"dispatches"| node_student_controller
node_server -->|"mounts"| node_order_routes
node_order_routes -->|"dispatches"| node_order_controller
node_order_controller -->|"creates payment"| node_paypal
node_server -->|"mounts"| node_enrollment_routes
node_server -->|"mounts"| node_progress_routes
node_progress_routes -->|"dispatches"| node_progress_controller
node_instructor_controller -->|"reads/writes"| node_course_model
node_student_controller -->|"reads"| node_course_model
node_student_controller -->|"checks purchase"| node_enrollment_model
node_order_controller -->|"creates/updates"| node_order_model
node_order_controller -->|"grants access"| node_enrollment_model
node_order_controller -->|"updates enrollment"| node_course_model
node_progress_controller -->|"checks access"| node_enrollment_model
node_progress_controller -->|"reads/writes"| node_progress_model
node_progress_controller -->|"reads curriculum"| node_course_model
node_course_model -->|"persists"| node_mongo
node_order_model -->|"persists"| node_mongo
node_enrollment_model -->|"persists"| node_mongo
node_progress_model -->|"persists"| node_mongo

click node_app "https://github.com/sifatahammed/learnlogix-lms/blob/main/project-frontend/src/App.jsx"
click node_auth_ui "https://github.com/sifatahammed/learnlogix-lms/blob/main/project-frontend/src/pages/auth/index.jsx"
click node_instructor_ui "https://github.com/sifatahammed/learnlogix-lms/blob/main/project-frontend/src/pages/instructor/index.jsx"
click node_course_editor "https://github.com/sifatahammed/learnlogix-lms/blob/main/project-frontend/src/pages/instructor/add-new-course.jsx"
click node_student_home "https://github.com/sifatahammed/learnlogix-lms/blob/main/project-frontend/src/pages/student/home/index.jsx"
click node_course_catalog "https://github.com/sifatahammed/learnlogix-lms/blob/main/project-frontend/src/pages/student/courses/index.jsx"
click node_course_details "https://github.com/sifatahammed/learnlogix-lms/blob/main/project-frontend/src/pages/student/course-details/index.jsx"
click node_payment_return "https://github.com/sifatahammed/learnlogix-lms/blob/main/project-frontend/src/pages/student/payment-return/index.jsx"
click node_my_courses "https://github.com/sifatahammed/learnlogix-lms/blob/main/project-frontend/src/pages/student/student-courses/index.jsx"
click node_course_player "https://github.com/sifatahammed/learnlogix-lms/blob/main/project-frontend/src/pages/student/course-progress/index.jsx"
click node_frontend_services "https://github.com/sifatahammed/learnlogix-lms/blob/main/project-frontend/src/services/index.js"
click node_server "https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/server.js"
click node_auth_routes "https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/routes/auth-routes/index.js"
click node_auth_controller "https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/controllers/auth-controllers/index.js"
click node_instructor_routes "https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/routes/instructor-routes/course-routes.js"
click node_instructor_controller "https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/controllers/instructor-controller/course-controller.js"
click node_media_routes "https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/routes/instructor-routes/media-routes.js"
click node_cloudinary_helper "https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/external-helpers/cloudinary.js"
click node_student_routes "https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/routes/student-routes/course-routes.js"
click node_student_controller "https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/controllers/student-controllers/course-controller.js"
click node_order_routes "https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/routes/student-routes/order-routes.js"
click node_order_controller "https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/controllers/student-controllers/order-controller.js"
click node_paypal "https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/external-helpers/paypal.js"
click node_enrollment_routes "https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/routes/student-routes/student-courses-routes.js"
click node_progress_routes "https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/routes/student-routes/course-progress-routes.js"
click node_progress_controller "https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/controllers/student-controllers/course-progress-controller.js"
click node_course_model "https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/models/Course.js"
click node_order_model "https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/models/Order.js"
click node_enrollment_model "https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/models/StudentCourses.js"
click node_progress_model "https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/models/CourseProgress.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_auth_ui,node_instructor_ui,node_course_editor,node_student_home,node_course_catalog,node_course_details,node_payment_return,node_my_courses,node_course_player,node_frontend_services toneBlue
class node_instructor_routes,node_instructor_controller,node_media_routes,node_cloudinary_helper,node_mongo toneAmber
class node_student_routes,node_student_controller,node_order_routes,node_order_controller,node_enrollment_routes,node_progress_routes,node_progress_controller toneMint
class node_server,node_auth_routes,node_auth_controller,node_course_model,node_order_model,node_enrollment_model,node_progress_model toneRose
class node_student_actor,node_instructor_actor toneIndigo
class node_paypal toneTeal
```

## Components

### Frontend

- [App routes](https://github.com/sifatahammed/learnlogix-lms/blob/main/project-frontend/src/App.jsx): `project-frontend/src/App.jsx`
- [Authentication UI](https://github.com/sifatahammed/learnlogix-lms/blob/main/project-frontend/src/pages/auth/index.jsx): `project-frontend/src/pages/auth/index.jsx`
- [Instructor UI](https://github.com/sifatahammed/learnlogix-lms/blob/main/project-frontend/src/pages/instructor/index.jsx): `project-frontend/src/pages/instructor/index.jsx`
- [Course editor](https://github.com/sifatahammed/learnlogix-lms/blob/main/project-frontend/src/pages/instructor/add-new-course.jsx): `project-frontend/src/pages/instructor/add-new-course.jsx`
- [Student home](https://github.com/sifatahammed/learnlogix-lms/blob/main/project-frontend/src/pages/student/home/index.jsx): `project-frontend/src/pages/student/home/index.jsx`
- [Course catalog](https://github.com/sifatahammed/learnlogix-lms/blob/main/project-frontend/src/pages/student/courses/index.jsx): `project-frontend/src/pages/student/courses/index.jsx`
- [Course details](https://github.com/sifatahammed/learnlogix-lms/blob/main/project-frontend/src/pages/student/course-details/index.jsx): `project-frontend/src/pages/student/course-details/index.jsx`
- [Payment return](https://github.com/sifatahammed/learnlogix-lms/blob/main/project-frontend/src/pages/student/payment-return/index.jsx): `project-frontend/src/pages/student/payment-return/index.jsx`
- [Purchased courses](https://github.com/sifatahammed/learnlogix-lms/blob/main/project-frontend/src/pages/student/student-courses/index.jsx): `project-frontend/src/pages/student/student-courses/index.jsx`
- [Course player](https://github.com/sifatahammed/learnlogix-lms/blob/main/project-frontend/src/pages/student/course-progress/index.jsx): `project-frontend/src/pages/student/course-progress/index.jsx`
- [API services](https://github.com/sifatahammed/learnlogix-lms/blob/main/project-frontend/src/services/index.js): `project-frontend/src/services/index.js`

### Course management

- [Instructor course routes](https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/routes/instructor-routes/course-routes.js): `project-backend/routes/instructor-routes/course-routes.js`
- [Course authoring](https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/controllers/instructor-controller/course-controller.js): `project-backend/controllers/instructor-controller/course-controller.js`
- [Media routes](https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/routes/instructor-routes/media-routes.js): `project-backend/routes/instructor-routes/media-routes.js`
- [Cloudinary integration](https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/external-helpers/cloudinary.js): `project-backend/external-helpers/cloudinary.js`

### Student learning

- [Student course routes](https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/routes/student-routes/course-routes.js): `project-backend/routes/student-routes/course-routes.js`
- [Course discovery](https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/controllers/student-controllers/course-controller.js): `project-backend/controllers/student-controllers/course-controller.js`
- [Order routes](https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/routes/student-routes/order-routes.js): `project-backend/routes/student-routes/order-routes.js`
- [Order processing](https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/controllers/student-controllers/order-controller.js): `project-backend/controllers/student-controllers/order-controller.js`
- [Enrollment routes](https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/routes/student-routes/student-courses-routes.js): `project-backend/routes/student-routes/student-courses-routes.js`
- [Progress routes](https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/routes/student-routes/course-progress-routes.js): `project-backend/routes/student-routes/course-progress-routes.js`
- [Progress tracking](https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/controllers/student-controllers/course-progress-controller.js): `project-backend/controllers/student-controllers/course-progress-controller.js`

### Platform services

- [API server](https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/server.js): `project-backend/server.js`
- [Auth routes](https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/routes/auth-routes/index.js): `project-backend/routes/auth-routes/index.js`
- [Auth controller](https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/controllers/auth-controllers/index.js): `project-backend/controllers/auth-controllers/index.js`
- [Course records](https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/models/Course.js): `project-backend/models/Course.js`
- [Order records](https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/models/Order.js): `project-backend/models/Order.js`
- [Enrollment records](https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/models/StudentCourses.js): `project-backend/models/StudentCourses.js`
- [Progress records](https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/models/CourseProgress.js): `project-backend/models/CourseProgress.js`

### Other components

- **Student**
- **Instructor**
- [PayPal](https://github.com/sifatahammed/learnlogix-lms/blob/main/project-backend/external-helpers/paypal.js): `project-backend/external-helpers/paypal.js`
- **MongoDB**

## Connections

- Student → App routes: uses
- Instructor → App routes: uses
- App routes → Authentication UI: routes
- App routes → Instructor UI: routes
- App routes → Course editor: routes
- App routes → Student home: routes
- App routes → Course catalog: routes
- App routes → Course details: routes
- App routes → Payment return: routes
- App routes → Purchased courses: routes
- App routes → Course player: routes
- API server → Auth routes: mounts
- Auth routes → Auth controller: dispatches
- API server → Instructor course routes: mounts
- Instructor course routes → Course authoring: dispatches
- API server → Media routes: mounts
- Media routes → Cloudinary integration: uploads media
- API server → Student course routes: mounts
- Student course routes → Course discovery: dispatches
- API server → Order routes: mounts
- Order routes → Order processing: dispatches
- Order processing → PayPal: creates payment
- API server → Enrollment routes: mounts
- API server → Progress routes: mounts
- Progress routes → Progress tracking: dispatches
- Course authoring → Course records: reads/writes
- Course discovery → Course records: reads
- Course discovery → Enrollment records: checks purchase
- Order processing → Order records: creates/updates
- Order processing → Enrollment records: grants access
- Order processing → Course records: updates enrollment
- Progress tracking → Enrollment records: checks access
- Progress tracking → Progress records: reads/writes
- Progress tracking → Course records: reads curriculum
- Course records → MongoDB: persists
- Order records → MongoDB: persists
- Enrollment records → MongoDB: persists
- Progress records → MongoDB: persists
