# sadmanulhoque/lms architecture

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

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

## Overview

This is a Laravel-based learning-management and course-commerce application. Learners browse courses, pay through a gateway, receive enrollment access, and study course content; instructors create and manage courses, while administrators manage platform settings and site content. The excerpts directly show course authoring, registration, payment callbacks, and order fulfillment. Admin, student, and broader storefront capabilities are represented from the file tree; their internal wiring was not sampled, so those links are marked unverified.

Main entry points: [`routes/web.php`](https://github.com/sadmanulhoque/lms/blob/main/routes/web.php) (Web routes), [`app/Service/OrderService.php`](https://github.com/sadmanulhoque/lms/blob/main/app/Service/OrderService.php) (Order fulfillment), [`app/Http/Controllers/Instructor/CourseController.php`](https://github.com/sadmanulhoque/lms/blob/main/app/Http/Controllers/Instructor/CourseController.php) (Course authoring), [`app/Http/Controllers/Frontend/PaymentController.php`](https://github.com/sadmanulhoque/lms/blob/main/app/Http/Controllers/Frontend/PaymentController.php) (Payment processing)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Identity and access"]
  node_web["Web routes<br/>[web.php]"]
  node_authroutes["Auth routes<br/>[auth.php]"]
  node_registration["Registration"]
  node_accounts[("User accounts<br/>[User.php]")]
end

subgraph group_learning["Course lifecycle"]
  node_catalog[("Course catalog<br/>[Course.php]")]
  node_authoring["Course authoring"]
  node_curriculum["Course curriculum"]
  node_chapters[("Chapters and lessons<br/>[CourseChapter.php]")]
  node_studentlearning["Student learning"]
  node_enrollments[("Enrollments<br/>[Enrollment.php]")]
end

subgraph group_commerce["Course commerce"]
  node_storefront["Course storefront<br/>[HomeController.php]"]
  node_cartcheckout["Cart and checkout"]
  node_payments["Payment processing"]
  node_sslpayments["SSLCommerz callbacks"]
  node_sslclient["SSLCommerz client"]
  node_fulfillment["Order fulfillment<br/>[OrderService.php]"]
  node_orders[("Orders and items<br/>[Order.php]")]
end

subgraph group_operations["Platform operations"]
  node_siteadmin["Site administration"]
  node_sitecontent[("Site content<br/>[Settings.php]")]
  node_payouts["Instructor payouts"]
end

node_learner(("Learner"))
node_instructor(("Instructor"))
node_admin(("Administrator"))
node_gateway["Payment gateways"]

node_learner -.->|"uses storefront"| node_web
node_instructor -.->|"uses workspace"| node_web
node_admin -.->|"uses admin"| node_web
node_web -.->|"routes to"| node_storefront
node_web -.->|"routes to"| node_cartcheckout
node_web -.->|"routes to"| node_authoring
node_web -.->|"routes to"| node_studentlearning
node_web -.->|"routes to"| node_siteadmin
node_authroutes -->|"routes to"| node_registration
node_registration -->|"creates account"| node_accounts
node_authoring -->|"saves course"| node_catalog
node_authoring -->|"loads curriculum"| node_chapters
node_curriculum -->|"updates course"| node_catalog
node_storefront -.->|"reads courses"| node_catalog
node_cartcheckout -.->|"starts payment"| node_payments
node_payments -->|"creates payment"| node_gateway
node_payments -->|"records paid order"| node_fulfillment
node_sslpayments -->|"validates payment"| node_sslclient
node_sslpayments -->|"stores order"| node_fulfillment
node_fulfillment -->|"creates order"| node_orders
node_fulfillment -->|"grants access"| node_enrollments
node_studentlearning -.->|"checks access"| node_enrollments
node_siteadmin -->|"updates settings"| node_sitecontent
node_siteadmin -.->|"manages payouts"| node_payouts

click node_web "https://github.com/sadmanulhoque/lms/blob/main/routes/web.php"
click node_authroutes "https://github.com/sadmanulhoque/lms/blob/main/routes/auth.php"
click node_registration "https://github.com/sadmanulhoque/lms/blob/main/app/Http/Controllers/Auth/RegisteredUserController.php"
click node_accounts "https://github.com/sadmanulhoque/lms/blob/main/app/Models/User.php"
click node_catalog "https://github.com/sadmanulhoque/lms/blob/main/app/Models/Course.php"
click node_authoring "https://github.com/sadmanulhoque/lms/blob/main/app/Http/Controllers/Instructor/CourseController.php"
click node_curriculum "https://github.com/sadmanulhoque/lms/blob/main/app/Http/Controllers/Instructor/CourseContentController.php"
click node_chapters "https://github.com/sadmanulhoque/lms/blob/main/app/Models/CourseChapter.php"
click node_studentlearning "https://github.com/sadmanulhoque/lms/blob/main/app/Http/Controllers/Student/MyCourseController.php"
click node_storefront "https://github.com/sadmanulhoque/lms/blob/main/app/Http/Controllers/Frontend/HomeController.php"
click node_cartcheckout "https://github.com/sadmanulhoque/lms/blob/main/app/Http/Controllers/Frontend/CheckoutController.php"
click node_payments "https://github.com/sadmanulhoque/lms/blob/main/app/Http/Controllers/Frontend/PaymentController.php"
click node_sslpayments "https://github.com/sadmanulhoque/lms/blob/main/app/Http/Controllers/SslCommerzPaymentController.php"
click node_sslclient "https://github.com/sadmanulhoque/lms/blob/main/app/Library/SslCommerz/SslCommerzNotification.php"
click node_fulfillment "https://github.com/sadmanulhoque/lms/blob/main/app/Service/OrderService.php"
click node_orders "https://github.com/sadmanulhoque/lms/blob/main/app/Models/Order.php"
click node_enrollments "https://github.com/sadmanulhoque/lms/blob/main/app/Models/Enrollment.php"
click node_siteadmin "https://github.com/sadmanulhoque/lms/blob/main/app/Http/Controllers/Admin/SettingsController.php"
click node_sitecontent "https://github.com/sadmanulhoque/lms/blob/main/app/Models/Settings.php"
click node_payouts "https://github.com/sadmanulhoque/lms/blob/main/app/Http/Controllers/Instructor/InstructorWithdrawController.php"

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_web,node_authroutes,node_registration,node_accounts toneBlue
class node_catalog,node_authoring,node_curriculum,node_chapters,node_studentlearning,node_enrollments toneAmber
class node_storefront,node_cartcheckout,node_payments,node_sslpayments,node_sslclient,node_fulfillment,node_orders toneMint
class node_siteadmin,node_sitecontent,node_payouts toneRose
class node_learner,node_instructor,node_admin,node_gateway toneIndigo
```

## Components

### Identity and access

- [Web routes](https://github.com/sadmanulhoque/lms/blob/main/routes/web.php): `routes/web.php`
- [Auth routes](https://github.com/sadmanulhoque/lms/blob/main/routes/auth.php): `routes/auth.php`
- [Registration](https://github.com/sadmanulhoque/lms/blob/main/app/Http/Controllers/Auth/RegisteredUserController.php): `app/Http/Controllers/Auth/RegisteredUserController.php`
- [User accounts](https://github.com/sadmanulhoque/lms/blob/main/app/Models/User.php): `app/Models/User.php`

### Course lifecycle

- [Course catalog](https://github.com/sadmanulhoque/lms/blob/main/app/Models/Course.php): `app/Models/Course.php`
- [Course authoring](https://github.com/sadmanulhoque/lms/blob/main/app/Http/Controllers/Instructor/CourseController.php): `app/Http/Controllers/Instructor/CourseController.php`
- [Course curriculum](https://github.com/sadmanulhoque/lms/blob/main/app/Http/Controllers/Instructor/CourseContentController.php): `app/Http/Controllers/Instructor/CourseContentController.php`
- [Chapters and lessons](https://github.com/sadmanulhoque/lms/blob/main/app/Models/CourseChapter.php): `app/Models/CourseChapter.php`
- [Student learning](https://github.com/sadmanulhoque/lms/blob/main/app/Http/Controllers/Student/MyCourseController.php): `app/Http/Controllers/Student/MyCourseController.php`
- [Enrollments](https://github.com/sadmanulhoque/lms/blob/main/app/Models/Enrollment.php): `app/Models/Enrollment.php`

### Course commerce

- [Course storefront](https://github.com/sadmanulhoque/lms/blob/main/app/Http/Controllers/Frontend/HomeController.php): `app/Http/Controllers/Frontend/HomeController.php`
- [Cart and checkout](https://github.com/sadmanulhoque/lms/blob/main/app/Http/Controllers/Frontend/CheckoutController.php): `app/Http/Controllers/Frontend/CheckoutController.php`
- [Payment processing](https://github.com/sadmanulhoque/lms/blob/main/app/Http/Controllers/Frontend/PaymentController.php): `app/Http/Controllers/Frontend/PaymentController.php`
- [SSLCommerz callbacks](https://github.com/sadmanulhoque/lms/blob/main/app/Http/Controllers/SslCommerzPaymentController.php): `app/Http/Controllers/SslCommerzPaymentController.php`
- [SSLCommerz client](https://github.com/sadmanulhoque/lms/blob/main/app/Library/SslCommerz/SslCommerzNotification.php): `app/Library/SslCommerz/SslCommerzNotification.php`
- [Order fulfillment](https://github.com/sadmanulhoque/lms/blob/main/app/Service/OrderService.php): `app/Service/OrderService.php`
- [Orders and items](https://github.com/sadmanulhoque/lms/blob/main/app/Models/Order.php): `app/Models/Order.php`

### Platform operations

- [Site administration](https://github.com/sadmanulhoque/lms/blob/main/app/Http/Controllers/Admin/SettingsController.php): `app/Http/Controllers/Admin/SettingsController.php`
- [Site content](https://github.com/sadmanulhoque/lms/blob/main/app/Models/Settings.php): `app/Models/Settings.php`
- [Instructor payouts](https://github.com/sadmanulhoque/lms/blob/main/app/Http/Controllers/Instructor/InstructorWithdrawController.php): `app/Http/Controllers/Instructor/InstructorWithdrawController.php`

### Other components

- **Learner**
- **Instructor**
- **Administrator**
- **Payment gateways**

## Connections

- Learner → Web routes: uses storefront
- Instructor → Web routes: uses workspace
- Administrator → Web routes: uses admin
- Web routes → Course storefront: routes to
- Web routes → Cart and checkout: routes to
- Web routes → Course authoring: routes to
- Web routes → Student learning: routes to
- Web routes → Site administration: routes to
- Auth routes → Registration: routes to (evidence: `routes/auth.php`)
- Registration → User accounts: creates account (evidence: `app/Http/Controllers/Auth/RegisteredUserController.php`)
- Course authoring → Course catalog: saves course (evidence: `app/Http/Controllers/Instructor/CourseController.php`)
- Course authoring → Chapters and lessons: loads curriculum (evidence: `app/Http/Controllers/Instructor/CourseController.php`)
- Course curriculum → Course catalog: updates course (evidence: `app/Http/Controllers/Instructor/CourseContentController.php`)
- Course storefront → Course catalog: reads courses
- Cart and checkout → Payment processing: starts payment
- Payment processing → Payment gateways: creates payment (evidence: `app/Http/Controllers/Frontend/PaymentController.php`)
- Payment processing → Order fulfillment: records paid order (evidence: `app/Http/Controllers/Frontend/PaymentController.php`)
- SSLCommerz callbacks → SSLCommerz client: validates payment (evidence: `app/Http/Controllers/SslCommerzPaymentController.php`)
- SSLCommerz callbacks → Order fulfillment: stores order (evidence: `app/Http/Controllers/SslCommerzPaymentController.php`)
- Order fulfillment → Orders and items: creates order (evidence: `app/Service/OrderService.php`)
- Order fulfillment → Enrollments: grants access (evidence: `app/Service/OrderService.php`)
- Student learning → Enrollments: checks access
- Site administration → Site content: updates settings (evidence: `app/Http/Controllers/Admin/SettingsController.php`)
- Site administration → Instructor payouts: manages payouts
