From b42ce3ef82eb963a3a9c6dd6a2e086461fd551b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Ckirukib=E2=80=9D?= <“kirubeljkl679@gmail.com”> Date: Mon, 19 Jan 2026 01:48:09 +0300 Subject: [PATCH] - --- course_hierarchy.md | 365 ++++++++++++++++++++++++++++++++++++++++++++ er_diagram.md | 0 2 files changed, 365 insertions(+) create mode 100644 course_hierarchy.md create mode 100644 er_diagram.md diff --git a/course_hierarchy.md b/course_hierarchy.md new file mode 100644 index 0000000..a82d9bc --- /dev/null +++ b/course_hierarchy.md @@ -0,0 +1,365 @@ +Below is the clean Markdown (.md) version of the architecture, ready to copy directly into a file like +learning-platform-architecture.md. + +⸻ + + +# Learning Platform System Architecture +**Admin & Learner Content Management, Video (Vimeo), Assessment & Progress Tracking** + +--- + +## 1. Architecture Overview + +### Architecture Style +**Modular Monolith (MVP-ready, Microservices-friendly)** + +This approach enables: +- Fast MVP delivery +- Clear separation of responsibilities +- Easy future extraction into microservices (Assessment, Video, Analytics) + +Admin Web / Mobile App +↓ +API Gateway / BFF +↓ +Core Application Services +↓ +Domain Modules +↓ +Databases & External Integrations + +--- + +## 2. Client Layer + +### 2.1 Admin Panel (Web) + +**Responsibilities** +- Program, Course, Module creation +- Video upload & Vimeo integration +- Assessment & practice creation +- Publishing workflows +- Analytics & reporting + +**Consumes** +- Secured Admin APIs +- Role-based access control + +--- + +### 2.2 Learner App (Mobile / Web) + +**Responsibilities** +- Fetch courses and modules +- Watch videos (Vimeo player) +- Take assessments & practices +- Track and resume learning progress + +**Consumes** +- Read-optimized Learner APIs + +--- + +## 3. API Gateway / Backend-for-Frontend (BFF) + +**Purpose** +- Separate Admin and Learner concerns +- Aggregate responses +- Enforce security and versioning + +**Endpoints** + +/api/admin/* +/api/learner/* + +**Capabilities** +- Authentication & authorization +- Rate limiting +- API versioning +- Response aggregation (content + progress) + +--- + +## 4. Core Domain Modules + +--- + +## 4.1 Content Structure Module (Foundation) + +Defines the **learning hierarchy** and core relationships. + +### Learning Hierarchy + +Program +└── Course +└── Module +├── Video +└── Assessment + +### Core Entities + +#### Program + +id +name +description +level (Beginner | Intermediate | Advanced) +metadata (JSON) +status (draft | published) + +#### Course + +id +program_id +name +CEFR_level +order +metadata (JSON) +status + +#### Module + +id +course_id +title +order +metadata (JSON) +status + +> **Why metadata (JSON)?** +> - Allows future parameters without database migrations +> - Examples: difficulty, tags, AI flags, localization, prerequisites + +--- + +## 4.2 Video Module (Vimeo Integrated) + +### Responsibilities +- Store video metadata +- Integrate with Vimeo +- Track watch progress +- Enforce publishing dependencies + +### Video Entity + +id +module_id +title +description +order +vimeo_video_id +duration +thumbnail_url +status (draft | published) +metadata (JSON) + +### Vimeo Integration Flow +1. Admin uploads video +2. Backend uploads to Vimeo +3. Store Vimeo metadata: + - video ID + - duration + - thumbnails +4. Listen to Vimeo webhooks: + - video.processed + - video.deleted + +**Publishing Rule** +- An assessment linked to a video **cannot be published** unless the video is published + +--- + +## 4.3 Assessment & Practice Module (Isolated) + +This module is **fully decoupled** from videos and modules. + +### Why Isolation? +- Supports course-level, module-level, and video-level practices +- Enables future AI grading and certification +- Allows independent scaling + +--- + +### Assessment Entities + +#### Assessment + +id +scope_type (PROGRAM | COURSE | MODULE | VIDEO) +scope_id +title +assessment_type (speaking | mcq | listening | mock_test) +status (draft | published) +metadata (JSON) + +#### Question + +id +assessment_id +type (text | voice | mcq) +prompt +sample_answer +tips +order +metadata (JSON) + +#### Persona + +id +name +voice +avatar +metadata (JSON) + +### Flexible Linking +Assessments can be attached to: +- Entire courses +- Specific modules +- Individual videos + +--- + +## 4.4 Progress Tracking Module + +Tracks **all learner activity** without modifying content logic. + +### Responsibilities +- Video progress tracking +- Assessment attempts +- Completion states +- Resume learning + +--- + +### Progress Entities + +#### User Content Progress + +user_id +content_type (PROGRAM | COURSE | MODULE) +content_id +progress_percentage +status (not_started | in_progress | completed) + +#### User Video Progress + +user_id +video_id +watched_seconds +completion_percentage +completed_at + +#### User Assessment Progress + +user_id +assessment_id +attempt_no +score +feedback +completed_at + +**Supports** +- Resume playback +- Lock/unlock content +- Accurate dashboards + +--- + +## 5. Publishing & Dependency Rules Engine + +A configurable rule-based system. + +### Examples +- Course cannot be published without published modules +- Module cannot be published without at least one published video +- Assessment cannot be published if linked video is draft + +### Rule Model + +entity_type +condition +error_message + +--- + +## 6. Analytics & Reporting Module + +Analytics consume **events**, not business logic. + +### Events +- video.started +- video.completed +- assessment.started +- assessment.completed +- course.completed + +Stored in: +- Analytics database +- Event stream (Kafka-ready) + +--- + +## 7. Data Layer + +### Recommended Stack +- **PostgreSQL** – relational core data +- **Redis** – progress caching & resume states +- **Object Storage** – thumbnails, audio prompts + +--- + +## 8. Security & Roles + +### Roles + +Admin +Content Manager +Instructor +Learner + +### Enforcement +- API-level authorization +- Draft vs published access rules + +--- + +## 9. Extensibility & Future Readiness + +This architecture supports: +- AI scoring & feedback +- New assessment types +- Certificates +- Offline sync +- Multiple video providers (Vimeo → AWS IVS) + +Without refactoring core modules. + +--- + +## 10. Roadmap + +### MVP Scope +- Programs, Courses, Modules +- Vimeo videos +- Assessments & practices +- Progress tracking +- Admin publishing rules + +### Phase 2 +- AI-driven personalization +- Adaptive learning paths +- Gamification +- Certification engine + +--- + +**Architectural Principle** +Clear separation between: +- Content +- Video +- Assessment +- Progress +- Analytics + +Ensuring scalability, maintainability, and rapid feature expansion. diff --git a/er_diagram.md b/er_diagram.md new file mode 100644 index 0000000..e69de29