How minhsuy/e-learning works
TMDEMY is a learning platform with student, teacher, and administrator experiences. The visible student workflow spans sign-in, discovering courses, enrollment, learning, and tracking progress toward certificates; teacher and admin areas support course operations and oversight. The frontend uses a shared shell, authentication context, and API client/services. Several product branches are clear from the tree but their internal calls were not sampled, so those relationships are omitted rather than inferred.
Main entry points: client.ts API client · page.tsx My courses · auth-context.tsx Auth state · auth.service.ts Auth API service
Components 23
Identity
- Sign-in and registration
src/app/(auth)/login/page.tsx - Auth state
src/contexts/auth-context.tsx - Auth API service
src/services/auth.service.ts - Auth contracts
src/types/auth.ts
Student learning
- Home dashboard
src/app/page.tsx - Course catalog
src/app/courses/page.tsx - Course detail
src/app/courses/[slug]/page.tsx - My courses
src/app/my-courses/page.tsx - Lesson learning
src/app/learn/[slug]/page.tsx - Enrollment service
src/services/enrollment.service.ts - Enrollment contracts
src/types/enrollment.ts - Progress service
src/services/progress.service.ts - Certificates
src/app/certificates/page.tsx - Personalized recommendations
src/components/home/personalized-recommendations-section.tsx - Messaging
src/app/messages/page.tsx
Teacher and admin
- Teacher workspace
src/app/teacher - Admin workspace
src/app/admin
Shared platform
- App shell
src/components/layout/app-shell.tsx - API client
src/lib/api/client.ts - Token handling
src/lib/api/token.ts - API contracts
src/types/api.ts
Other components
- Learner
- TMDEMY API
Connections 28
- Learner → Sign-in and registration: signs in
- Sign-in and registration → Auth state: uses auth
- Auth state → Auth API service: calls
src/contexts/auth-context.tsx - Auth API service → Auth contracts: uses contracts
src/services/auth.service.ts - Auth API service → API client: sends requests
src/services/auth.service.ts - Auth state → Token handling: manages tokens
src/contexts/auth-context.tsx - Learner → Home dashboard: opens
- Home dashboard → App shell: renders in
src/app/page.tsx - Home dashboard → Personalized recommendations: renders
src/app/page.tsx - Learner → Course catalog: browses
- Course catalog → App shell: renders in
src/app/courses/page.tsx - Course catalog → TMDEMY API: requests courses
- Learner → Course detail: views course
- Learner → My courses: tracks enrollment
- My courses → App shell: renders in
src/app/my-courses/page.tsx - My courses → Enrollment service: loads enrollments
src/app/my-courses/page.tsx - My courses → Progress service: loads progress
src/app/my-courses/page.tsx - Enrollment service → Enrollment contracts: uses contracts
src/services/enrollment.service.ts - Enrollment service → API client: sends requests
src/services/enrollment.service.ts - Progress service → API client: sends requests
src/services/progress.service.ts - Learner → Lesson learning: studies lessons
- Learner → Certificates: views certificates
- Learner → Messaging: uses messaging
- Learner → Teacher workspace: teaches
- Learner → Admin workspace: administers
- API client → Token handling: reads tokens
src/lib/api/client.ts - API client → API contracts: uses errors
src/lib/api/client.ts - API client → TMDEMY API: calls API