How kkazami/lms-cdm works
CdM LMS is a multi-institute learning management system with web, mobile, and desktop clients. Its main user journey is signing in, accessing courses and classwork, submitting work, and viewing grades; instructors manage enrollments, course activity, and grading. The repository also includes flashcards, interactive coding activities, gamification, and a knowledge-exchange area. The README confirms the platform stack and institutes, while the tree identifies the major product areas. Several client-to-web relationships are therefore shown as unverified; unsampled implementations are not assumed to have been inspected.
Main entry points: index.ts API client · page.tsx Student app · engine.ts Gamification engine · courses.tsx Mobile app
Components 23
User clients
- Student app
apps/web/src/app/(dashboard)/[institute]/courses/[courseId]/page.tsx - Teacher app
apps/web/src/app/(dashboard)/[institute]/courses/[courseId]/page.tsx - Mobile app
apps/mobile/app/(student)/student/(tabs)/courses.tsx - Desktop console
apps/desktop/electron/main.ts
Learning workflow
- API client
packages/api-client/src/index.ts - Authentication
apps/web/src/app/api/auth/login/route.ts - Course access
apps/web/src/app/api/courses/route.ts - Classwork submissions
apps/web/src/app/api/courses/[courseId]/submissions/route.ts - Grades and gradebook
apps/web/src/app/api/courses/[courseId]/gradebook/route.ts - Flashcard study
apps/web/src/app/api/flashcards/auto-generate/route.ts - CodeLab activities
apps/web/src/app/api/codelab/run/route.ts - Knowledge exchange
apps/web/src/app/api/knowledge-exchange/posts/route.ts
Engagement features
- Gamification engine
apps/web/src/features/interactive-activities/gamification/engine.ts - Streak rules
apps/web/src/features/interactive-activities/gamification/streak.ts - Badge rules
apps/web/src/features/interactive-activities/gamification/badges.ts - Leaderboard cache
apps/web/src/features/interactive-activities/gamification/leaderboard-cache.ts
Institute operations
- Institute administration
apps/web/src/app/(dashboard)/[institute]/admin/page.tsx - Enrollment management
apps/web/src/lib/skills/enrollment-manager.ts - Skills execution
apps/web/src/lib/skills/index.ts - Desktop IPC
apps/desktop/electron/ipc/handlers.ts
Other components
- Learner
- Instructor
- Application database
Connections 24
- Learner → Student app: uses
- Instructor → Teacher app: uses
- Learner → Mobile app: uses
- Student app → Authentication: signs in
- Teacher app → Authentication: signs in
- Mobile app → API client: calls
- Student app → API client: requests data
- Teacher app → API client: requests data
- API client → Course access: requests courses
packages/api-client/src/index.ts - API client → Classwork submissions: submits work
packages/api-client/src/index.ts - API client → Grades and gradebook: requests grades
packages/api-client/src/index.ts - Mobile app → Flashcard study: studies
- Student app → CodeLab activities: runs activities
- Student app → Knowledge exchange: shares knowledge
- Classwork submissions → Gamification engine: records activity
- Gamification engine → Streak rules: calculates
apps/web/src/features/interactive-activities/gamification/engine.ts - Gamification engine → Badge rules: evaluates
apps/web/src/features/interactive-activities/gamification/engine.ts - Gamification engine → Leaderboard cache: refreshes
apps/web/src/features/interactive-activities/gamification/engine.ts - Teacher app → Enrollment management: manages enrollment
- Enrollment management → Skills execution: executes through
apps/web/src/lib/skills/enrollment-manager.ts - Enrollment management → Application database: reads and writes
apps/web/src/lib/skills/enrollment-manager.ts - Gamification engine → Application database: reads and writes
apps/web/src/features/interactive-activities/gamification/engine.ts - Desktop console → Desktop IPC: registers handlers
apps/desktop/electron/main.ts - Desktop console → Institute administration: loads console
apps/desktop/electron/main.ts