How minhsuy/e-learning_server works
This repository is the TypeScript/Express backend for an e-learning platform. Students and teachers use its API to discover and manage courses, enroll, study lessons, track progress, and take quizzes; the platform also supports orders, certificates, notifications, and real-time chat. Routes dispatch requests to controllers and services, with MongoDB models holding domain state. Socket.IO handles live messaging and call signaling. The README documents several capabilities whose detailed implementation was not sampled, so those branches are shown at subsystem level; edges are limited to documented or indexed relationships.
Main entry points: index.route.ts API route registry · order.service.ts Orders and coupons · pdfGenerator.ts Certificates · course.model.ts Course catalog
Components 19
API and identity
- API route registry
src/routes/index.route.ts - Accounts and access
src/controller/user.controller.ts - Administration
src/services/admin.service.ts
Courses and learning
- Course management
src/services/course.service.ts - Course catalog
src/models/course.model.ts - Chapters and lessons
src/services/lesson.service.ts - Enrollment tracking
src/services/enrollment.service.ts - Enrollment records
src/models/enrollment.model.ts - Learning progress
src/services/progress.service.ts - Quizzes and scoring
src/services/quizSubmission.service.ts
Commerce and outcomes
- Orders and coupons
src/services/order.service.ts - Order records
src/models/order.model.ts - Certificates
src/utils/pdfGenerator.ts
Communication
- Notifications
src/services/notification.service.ts - Chat messaging
src/services/message.service.ts - Live socket events
src/socket/initSocket.ts
Other components
- Students and teachers
- MongoDB
- Cloudinary storage
Connections 26
- Students and teachers → API route registry: use API
- API route registry → Accounts and access: routes requests
- API route registry → Administration: routes requests
src/routes/index.route.ts - API route registry → Course management: routes requests
src/routes/index.route.ts - API route registry → Enrollment tracking: routes requests
- API route registry → Orders and coupons: routes requests
src/routes/index.route.ts - API route registry → Quizzes and scoring: routes requests
src/routes/index.route.ts - API route registry → Certificates: routes requests
src/routes/index.route.ts - API route registry → Chat messaging: routes requests
src/routes/index.route.ts - Course management → Course catalog: manages courses
- Chapters and lessons → Course catalog: organizes content
- Enrollment tracking → Enrollment records: reads and updates
src/services/enrollment.service.ts - Enrollment tracking → Course catalog: checks course
src/services/enrollment.service.ts - Learning progress → Enrollment records: tracks completion
- Quizzes and scoring → MongoDB: stores submissions
- Orders and coupons → Order records: creates and updates
src/services/order.service.ts - Orders and coupons → Course catalog: checks course
src/services/order.service.ts - Orders and coupons → Enrollment records: enrolls buyers
src/services/order.service.ts - Orders and coupons → Notifications: sends alerts
src/services/order.service.ts - Certificates → Cloudinary storage: stores PDFs
- Learning progress → Certificates: qualifies completion
- Quizzes and scoring → Certificates: provides score
- Live socket events → Chat messaging: dispatches messages
src/socket/initSocket.ts - Live socket events → Students and teachers: signals calls
src/socket/initSocket.ts - Notifications → MongoDB: persists alerts
src/services/notification.service.ts - Chat messaging → MongoDB: stores messages