# shibincozmek/lms-develop- architecture

> Architecture diagram of the GitHub repository shibincozmek/lms-develop-, 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/shibincozmek/lms-develop-
- Repository: https://github.com/shibincozmek/lms-develop-

## Overview

EduFlow is a React frontend for a gamified learning platform. Learners enter through routed landing, account, course, event, and student pages; the dashboard workflow loads enrolled-course data through a hook and service, then presents courses, calendar, and activity. The tree also supports course discovery, profile management, and gamification/marketing surfaces. The README describes broader context, Redux, and UI-mode layers, but those are not present in this tree; event-page internals and some UI components are unsampled, so their internal links are omitted.

Main entry points: [`src/App.jsx`](https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/App.jsx) (Route application), [`src/pages/dashboard.jsx`](https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/pages/dashboard.jsx) (Learning dashboard), [`src/pages/course.jsx`](https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/pages/course.jsx) (Course discovery), [`src/api/auth.jsx`](https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/api/auth.jsx) (Authentication API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_routing["App and routing"]
  node_app["Route application<br/>[App.jsx]"]
end

subgraph group_learning["Learning experience"]
  node_landing["Landing experience<br/>[App.jsx]"]
  node_courses["Course discovery<br/>[course.jsx]"]
  node_course_filter["Course filter<br/>[coursefilter.jsx]"]
  node_course_catalog["Course catalog data<br/>[data.js]"]
  node_course_card["Course card<br/>[card.jsx]"]
end

subgraph group_student["Student workspace"]
  node_dashboard_layout["Dashboard layout<br/>[dashbordlayout.jsx]"]
  node_dashboard["Learning dashboard<br/>[dashboard.jsx]"]
  node_enrolled_hook["Enrolled-course hook"]
  node_course_service["Course service<br/>[courseservice.js]"]
  node_enrolled_data["Enrolled-course data"]
  node_enrolled_card["Enrolled course card"]
  node_calendar["Learning calendar<br/>[calender.jsx]"]
  node_recent_activity["Recent activity view<br/>[recentactivity.jsx]"]
  node_activity_hook["Activity hook"]
  node_activity_service["Activity service<br/>[activityservice.js]"]
  node_activity_data["Activity data"]
end

subgraph group_identity["Account and profile"]
  node_login["Login page<br/>[login.jsx]"]
  node_auth_api["Authentication API<br/>[auth.jsx]"]
  node_http_client["Axios client<br/>[axios.jsx]"]
  node_register["Registration page<br/>[register.jsx]"]
  node_validation["Form validation<br/>[validation.jsx]"]
  node_profile["Student profile<br/>[profilepage.jsx]"]
  node_profile_sections["Profile sections"]
end

subgraph group_engagement["Gamification and events"]
  node_events["Event experience<br/>[eventpage.jsx]"]
  node_gamified_home["Gamified home sections"]
end

node_learner(("Learner"))
node_backend(("Authentication backend"))

node_learner -->|"opens"| node_app
node_app -->|"renders route"| node_landing
node_app -->|"routes to"| node_courses
node_app -->|"routes to"| node_events
node_app -->|"routes to"| node_login
node_app -->|"routes to"| node_register
node_app -->|"wraps routes"| node_dashboard_layout
node_app -->|"routes to"| node_profile
node_landing -->|"renders sections"| node_gamified_home
node_courses -->|"renders"| node_course_filter
node_courses -->|"filters data"| node_course_catalog
node_courses -->|"renders results"| node_course_card
node_login -->|"calls login"| node_auth_api
node_auth_api -->|"sends request"| node_http_client
node_auth_api -->|"authenticates"| node_backend
node_register -->|"validates fields"| node_validation
node_dashboard_layout -->|"hosts route"| node_dashboard
node_dashboard -->|"loads courses"| node_enrolled_hook
node_enrolled_hook -->|"requests courses"| node_course_service
node_course_service -->|"returns data"| node_enrolled_data
node_dashboard -->|"renders courses"| node_enrolled_card
node_dashboard -->|"renders"| node_calendar
node_dashboard -->|"renders"| node_recent_activity
node_profile -->|"renders sections"| node_profile_sections

click node_app "https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/App.jsx"
click node_landing "https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/App.jsx"
click node_courses "https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/pages/course.jsx"
click node_course_filter "https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/components/coursefilter/coursefilter.jsx"
click node_course_catalog "https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/data/gamified/data.js"
click node_course_card "https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/cards/gamified/card.jsx"
click node_events "https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/pages/eventpage.jsx"
click node_login "https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/pages/login.jsx"
click node_auth_api "https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/api/auth.jsx"
click node_http_client "https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/api/axios.jsx"
click node_register "https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/pages/register.jsx"
click node_validation "https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/validation/validation.jsx"
click node_dashboard_layout "https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/layout/dashbordlayout.jsx"
click node_dashboard "https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/pages/dashboard.jsx"
click node_enrolled_hook "https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/hooks/useenrolledcourse.js"
click node_course_service "https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/services/student/courseservice.js"
click node_enrolled_data "https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/data/gamified/enrolledcoursedata.js"
click node_enrolled_card "https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/cards/gamified/enrolledcoursecard.jsx"
click node_calendar "https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/components/dashboad/calender.jsx"
click node_recent_activity "https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/components/dashboad/recentactivity.jsx"
click node_activity_hook "https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/hooks/userecentactivity.js"
click node_activity_service "https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/services/dashboard/activityservice.js"
click node_activity_data "https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/data/gamified/recentactivitydata.js"
click node_profile "https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/pages/profilepage.jsx"
click node_profile_sections "https://github.com/shibincozmek/lms-develop-/tree/dashboard/src/components/profilepage"
click node_gamified_home "https://github.com/shibincozmek/lms-develop-/tree/dashboard/src/components"

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 toneBlue
class node_landing,node_courses,node_course_filter,node_course_catalog,node_course_card toneAmber
class node_dashboard_layout,node_dashboard,node_enrolled_hook,node_course_service,node_enrolled_data,node_enrolled_card,node_calendar,node_recent_activity,node_activity_hook,node_activity_service,node_activity_data toneMint
class node_login,node_auth_api,node_http_client,node_register,node_validation,node_profile,node_profile_sections toneRose
class node_events,node_gamified_home,node_learner,node_backend toneIndigo
```

## Components

### App and routing

- [Route application](https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/App.jsx): `src/App.jsx`

### Learning experience

- [Landing experience](https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/App.jsx): `src/App.jsx`
- [Course discovery](https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/pages/course.jsx): `src/pages/course.jsx`
- [Course filter](https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/components/coursefilter/coursefilter.jsx): `src/components/coursefilter/coursefilter.jsx`
- [Course catalog data](https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/data/gamified/data.js): `src/data/gamified/data.js`
- [Course card](https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/cards/gamified/card.jsx): `src/cards/gamified/card.jsx`

### Student workspace

- [Dashboard layout](https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/layout/dashbordlayout.jsx): `src/layout/dashbordlayout.jsx`
- [Learning dashboard](https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/pages/dashboard.jsx): `src/pages/dashboard.jsx`
- [Enrolled-course hook](https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/hooks/useenrolledcourse.js): `src/hooks/useenrolledcourse.js`
- [Course service](https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/services/student/courseservice.js): `src/services/student/courseservice.js`
- [Enrolled-course data](https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/data/gamified/enrolledcoursedata.js): `src/data/gamified/enrolledcoursedata.js`
- [Enrolled course card](https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/cards/gamified/enrolledcoursecard.jsx): `src/cards/gamified/enrolledcoursecard.jsx`
- [Learning calendar](https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/components/dashboad/calender.jsx): `src/components/dashboad/calender.jsx`
- [Recent activity view](https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/components/dashboad/recentactivity.jsx): `src/components/dashboad/recentactivity.jsx`
- [Activity hook](https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/hooks/userecentactivity.js): `src/hooks/userecentactivity.js`
- [Activity service](https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/services/dashboard/activityservice.js): `src/services/dashboard/activityservice.js`
- [Activity data](https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/data/gamified/recentactivitydata.js): `src/data/gamified/recentactivitydata.js`

### Account and profile

- [Login page](https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/pages/login.jsx): `src/pages/login.jsx`
- [Authentication API](https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/api/auth.jsx): `src/api/auth.jsx`
- [Axios client](https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/api/axios.jsx): `src/api/axios.jsx`
- [Registration page](https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/pages/register.jsx): `src/pages/register.jsx`
- [Form validation](https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/validation/validation.jsx): `src/validation/validation.jsx`
- [Student profile](https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/pages/profilepage.jsx): `src/pages/profilepage.jsx`
- [Profile sections](https://github.com/shibincozmek/lms-develop-/tree/dashboard/src/components/profilepage): `src/components/profilepage`

### Gamification and events

- [Event experience](https://github.com/shibincozmek/lms-develop-/blob/dashboard/src/pages/eventpage.jsx): `src/pages/eventpage.jsx`
- [Gamified home sections](https://github.com/shibincozmek/lms-develop-/tree/dashboard/src/components): `src/components`

### Other components

- **Learner**
- **Authentication backend**

## Connections

- Learner → Route application: opens
- Route application → Landing experience: renders route (evidence: `src/App.jsx`)
- Route application → Course discovery: routes to (evidence: `src/App.jsx`)
- Route application → Event experience: routes to (evidence: `src/App.jsx`)
- Route application → Login page: routes to (evidence: `src/App.jsx`)
- Route application → Registration page: routes to (evidence: `src/App.jsx`)
- Route application → Dashboard layout: wraps routes (evidence: `src/App.jsx`)
- Route application → Student profile: routes to (evidence: `src/App.jsx`)
- Landing experience → Gamified home sections: renders sections (evidence: `src/App.jsx`)
- Course discovery → Course filter: renders (evidence: `src/pages/course.jsx`)
- Course discovery → Course catalog data: filters data (evidence: `src/pages/course.jsx`)
- Course discovery → Course card: renders results (evidence: `src/pages/course.jsx`)
- Login page → Authentication API: calls login (evidence: `src/pages/login.jsx`)
- Authentication API → Axios client: sends request (evidence: `src/api/auth.jsx`)
- Authentication API → Authentication backend: authenticates (evidence: `src/api/auth.jsx`)
- Registration page → Form validation: validates fields (evidence: `src/pages/register.jsx`)
- Dashboard layout → Learning dashboard: hosts route (evidence: `src/layout/dashbordlayout.jsx`)
- Learning dashboard → Enrolled-course hook: loads courses (evidence: `src/pages/dashboard.jsx`)
- Enrolled-course hook → Course service: requests courses (evidence: `src/hooks/useenrolledcourse.js`)
- Course service → Enrolled-course data: returns data (evidence: `src/services/student/courseservice.js`)
- Learning dashboard → Enrolled course card: renders courses (evidence: `src/pages/dashboard.jsx`)
- Learning dashboard → Learning calendar: renders (evidence: `src/pages/dashboard.jsx`)
- Learning dashboard → Recent activity view: renders (evidence: `src/pages/dashboard.jsx`)
- Student profile → Profile sections: renders sections (evidence: `src/pages/profilepage.jsx`)
