# rk936503/edutrack---learning-management-system architecture

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

- Interactive diagram: https://gitdiagram.com/rk936503/edutrack---learning-management-system
- Repository: https://github.com/rk936503/edutrack---learning-management-system

## Overview

EduTrack is a role-based learning management system: users authenticate, then students browse and enroll in courses, complete lessons and assignments, and track progress; instructors manage courses and review student work; admins manage users and courses and view analytics. The React client uses Redux-backed API services to reach Django REST endpoints, with SQLite as the configured store and Stripe as an optional payment integration. The tree and README document the major domains, but most backend view implementations were not sampled, so internal backend call links are omitted where ownership cannot be confirmed.

Main entry points: [`frontend/src/services/api.js`](https://github.com/rk936503/edutrack---learning-management-system/blob/main/frontend/src/services/api.js) (HTTP API client), [`frontend/src/App.jsx`](https://github.com/rk936503/edutrack---learning-management-system/blob/main/frontend/src/App.jsx) (Route application), [`frontend/src/slices/authSlice.js`](https://github.com/rk936503/edutrack---learning-management-system/blob/main/frontend/src/slices/authSlice.js) (Auth state), [`frontend/src/pages/auth`](https://github.com/rk936503/edutrack---learning-management-system/tree/main/frontend/src/pages/auth) (Login and register)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Web client"]
  node_app["Route application<br/>[App.jsx]"]
  node_authpages["Login and register"]
  node_studentpages["Student pages"]
  node_instructorpages["Instructor pages"]
  node_adminpages["Admin pages"]
  node_apiservice["HTTP API client<br/>[api.js]"]
end

subgraph group_identity["Identity"]
  node_authstate["Auth state<br/>[authSlice.js]"]
  node_accountviews["Account endpoints<br/>[views.py]"]
  node_accountmodels["User model<br/>[models.py]"]
end

subgraph group_learning["Learning workflows"]
  node_courseviews["Course endpoints<br/>[views.py]"]
  node_coursemodels["Course and lessons<br/>[models.py]"]
  node_enrollmentstate["Enrollment state<br/>[enrollmentSlice.js]"]
  node_enrollmentviews["Enrollment endpoints<br/>[views.py]"]
  node_enrollmentmodels["Enrollment records<br/>[models.py]"]
  node_assignmentviews["Assignment endpoints<br/>[views.py]"]
  node_assignmentmodels["Assignment records<br/>[models.py]"]
end

subgraph group_platform["Platform operations"]
  node_paymentviews["Payment endpoints<br/>[views.py]"]
  node_analyticsviews["Analytics endpoints<br/>[views.py]"]
  node_analyticsmodels["Analytics records<br/>[models.py]"]
  node_sqlite[("SQLite database<br/>[settings.py]")]
end

node_user(("Student / staff"))
node_stripe["Stripe"]

node_user -->|"uses"| node_app
node_app -->|"routes"| node_authpages
node_app -->|"routes"| node_studentpages
node_app -->|"routes"| node_instructorpages
node_app -->|"routes"| node_adminpages
node_app -->|"restores identity"| node_authstate
node_authpages -->|"dispatches auth"| node_authstate
node_authstate -->|"requests"| node_apiservice
node_enrollmentstate -->|"requests"| node_apiservice
node_apiservice -->|"calls auth API"| node_accountviews
node_apiservice -->|"calls course API"| node_courseviews
node_apiservice -->|"calls enrollment API"| node_enrollmentviews
node_apiservice -->|"calls assignment API"| node_assignmentviews
node_apiservice -.->|"calls payment API"| node_paymentviews
node_apiservice -->|"calls analytics API"| node_analyticsviews
node_accountviews -->|"uses user data"| node_accountmodels
node_courseviews -->|"uses course data"| node_coursemodels
node_enrollmentviews -->|"uses enrollment data"| node_enrollmentmodels
node_assignmentviews -->|"uses assignment data"| node_assignmentmodels
node_analyticsviews -->|"uses analytics data"| node_analyticsmodels
node_paymentviews -.->|"processes payments"| node_stripe

click node_app "https://github.com/rk936503/edutrack---learning-management-system/blob/main/frontend/src/App.jsx"
click node_authpages "https://github.com/rk936503/edutrack---learning-management-system/tree/main/frontend/src/pages/auth"
click node_studentpages "https://github.com/rk936503/edutrack---learning-management-system/tree/main/frontend/src/pages/student"
click node_instructorpages "https://github.com/rk936503/edutrack---learning-management-system/tree/main/frontend/src/pages/instructor"
click node_adminpages "https://github.com/rk936503/edutrack---learning-management-system/tree/main/frontend/src/pages/admin"
click node_apiservice "https://github.com/rk936503/edutrack---learning-management-system/blob/main/frontend/src/services/api.js"
click node_authstate "https://github.com/rk936503/edutrack---learning-management-system/blob/main/frontend/src/slices/authSlice.js"
click node_accountviews "https://github.com/rk936503/edutrack---learning-management-system/blob/main/backend/apps/accounts/views.py"
click node_accountmodels "https://github.com/rk936503/edutrack---learning-management-system/blob/main/backend/apps/accounts/models.py"
click node_courseviews "https://github.com/rk936503/edutrack---learning-management-system/blob/main/backend/apps/courses/views.py"
click node_coursemodels "https://github.com/rk936503/edutrack---learning-management-system/blob/main/backend/apps/courses/models.py"
click node_enrollmentstate "https://github.com/rk936503/edutrack---learning-management-system/blob/main/frontend/src/slices/enrollmentSlice.js"
click node_enrollmentviews "https://github.com/rk936503/edutrack---learning-management-system/blob/main/backend/apps/enrollments/views.py"
click node_enrollmentmodels "https://github.com/rk936503/edutrack---learning-management-system/blob/main/backend/apps/enrollments/models.py"
click node_assignmentviews "https://github.com/rk936503/edutrack---learning-management-system/blob/main/backend/apps/assignments/views.py"
click node_assignmentmodels "https://github.com/rk936503/edutrack---learning-management-system/blob/main/backend/apps/assignments/models.py"
click node_paymentviews "https://github.com/rk936503/edutrack---learning-management-system/blob/main/backend/apps/payments/views.py"
click node_analyticsviews "https://github.com/rk936503/edutrack---learning-management-system/blob/main/backend/apps/analytics/views.py"
click node_analyticsmodels "https://github.com/rk936503/edutrack---learning-management-system/blob/main/backend/apps/analytics/models.py"
click node_sqlite "https://github.com/rk936503/edutrack---learning-management-system/blob/main/backend/edutrack/settings.py"

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_authpages,node_studentpages,node_instructorpages,node_adminpages,node_apiservice toneBlue
class node_authstate,node_accountviews,node_accountmodels toneAmber
class node_courseviews,node_coursemodels,node_enrollmentstate,node_enrollmentviews,node_enrollmentmodels,node_assignmentviews,node_assignmentmodels toneMint
class node_paymentviews,node_analyticsviews,node_analyticsmodels,node_sqlite toneRose
class node_user,node_stripe toneIndigo
```

## Components

### Web client

- [Route application](https://github.com/rk936503/edutrack---learning-management-system/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [Login and register](https://github.com/rk936503/edutrack---learning-management-system/tree/main/frontend/src/pages/auth): `frontend/src/pages/auth`
- [Student pages](https://github.com/rk936503/edutrack---learning-management-system/tree/main/frontend/src/pages/student): `frontend/src/pages/student`
- [Instructor pages](https://github.com/rk936503/edutrack---learning-management-system/tree/main/frontend/src/pages/instructor): `frontend/src/pages/instructor`
- [Admin pages](https://github.com/rk936503/edutrack---learning-management-system/tree/main/frontend/src/pages/admin): `frontend/src/pages/admin`
- [HTTP API client](https://github.com/rk936503/edutrack---learning-management-system/blob/main/frontend/src/services/api.js): `frontend/src/services/api.js`

### Identity

- [Auth state](https://github.com/rk936503/edutrack---learning-management-system/blob/main/frontend/src/slices/authSlice.js): `frontend/src/slices/authSlice.js`
- [Account endpoints](https://github.com/rk936503/edutrack---learning-management-system/blob/main/backend/apps/accounts/views.py): `backend/apps/accounts/views.py`
- [User model](https://github.com/rk936503/edutrack---learning-management-system/blob/main/backend/apps/accounts/models.py): `backend/apps/accounts/models.py`

### Learning workflows

- [Course endpoints](https://github.com/rk936503/edutrack---learning-management-system/blob/main/backend/apps/courses/views.py): `backend/apps/courses/views.py`
- [Course and lessons](https://github.com/rk936503/edutrack---learning-management-system/blob/main/backend/apps/courses/models.py): `backend/apps/courses/models.py`
- [Enrollment state](https://github.com/rk936503/edutrack---learning-management-system/blob/main/frontend/src/slices/enrollmentSlice.js): `frontend/src/slices/enrollmentSlice.js`
- [Enrollment endpoints](https://github.com/rk936503/edutrack---learning-management-system/blob/main/backend/apps/enrollments/views.py): `backend/apps/enrollments/views.py`
- [Enrollment records](https://github.com/rk936503/edutrack---learning-management-system/blob/main/backend/apps/enrollments/models.py): `backend/apps/enrollments/models.py`
- [Assignment endpoints](https://github.com/rk936503/edutrack---learning-management-system/blob/main/backend/apps/assignments/views.py): `backend/apps/assignments/views.py`
- [Assignment records](https://github.com/rk936503/edutrack---learning-management-system/blob/main/backend/apps/assignments/models.py): `backend/apps/assignments/models.py`

### Platform operations

- [Payment endpoints](https://github.com/rk936503/edutrack---learning-management-system/blob/main/backend/apps/payments/views.py): `backend/apps/payments/views.py`
- [Analytics endpoints](https://github.com/rk936503/edutrack---learning-management-system/blob/main/backend/apps/analytics/views.py): `backend/apps/analytics/views.py`
- [Analytics records](https://github.com/rk936503/edutrack---learning-management-system/blob/main/backend/apps/analytics/models.py): `backend/apps/analytics/models.py`
- [SQLite database](https://github.com/rk936503/edutrack---learning-management-system/blob/main/backend/edutrack/settings.py): `backend/edutrack/settings.py`

### Other components

- **Student / staff**
- **Stripe**

## Connections

- Student / staff → Route application: uses
- Route application → Login and register: routes
- Route application → Student pages: routes
- Route application → Instructor pages: routes
- Route application → Admin pages: routes
- Route application → Auth state: restores identity
- Login and register → Auth state: dispatches auth
- Auth state → HTTP API client: requests
- Enrollment state → HTTP API client: requests
- HTTP API client → Account endpoints: calls auth API
- HTTP API client → Course endpoints: calls course API
- HTTP API client → Enrollment endpoints: calls enrollment API
- HTTP API client → Assignment endpoints: calls assignment API
- HTTP API client → Payment endpoints: calls payment API
- HTTP API client → Analytics endpoints: calls analytics API
- Account endpoints → User model: uses user data
- Course endpoints → Course and lessons: uses course data
- Enrollment endpoints → Enrollment records: uses enrollment data
- Assignment endpoints → Assignment records: uses assignment data
- Analytics endpoints → Analytics records: uses analytics data
- Payment endpoints → Stripe: processes payments
