How urbish-mulmi/training-management-system works
This is a training-management platform: learners discover courses, enroll and pay, then administrators approve enrollment and assign a batch; instructors manage teaching and assignments, while students access batch classrooms. The frontend also exposes course, blog, job-placement, testimonial and contact experiences, with administrative management areas. The backend is an Express API backed by MongoDB, with separate route/controller/model areas and invitation and email services. Enrollment, batch, invitation, and application wiring is supported by sampled source; other domain links are limited to the repository structure and explicit route mounting.
Main entry points: App.jsx React app routes · enrollment.controller.js Enrollment workflow · invitation.service.js Invitation service · app.js Express application
Components 27
Web experience
- React app routes
frontend/vite-project/src/App.jsx - Enrollment pages
frontend/vite-project/src/pages/public/Enrollment.jsx - Student classroom
frontend/vite-project/src/pages/student/Classroom.jsx - Admin management
frontend/vite-project/src/pages/admin/AdminBatchManagement.jsx - Instructor tools
frontend/vite-project/src/pages/instructor/AssignmentManagement.jsx - Public content pages
frontend/vite-project/src/pages/public/Home.jsx - Enrollment API client
frontend/vite-project/src/api/enrollment.service.js - HTTP client
frontend/vite-project/src/api/apiInstance.js
API entry
- Express application
backend/app.js - Enrollment routes
backend/src/routes/enrollment.routes.js - Batch routes
backend/src/routes/batch.routes.js - Other domain routes
backend/src/routes/course.routes.js
Learning operations
- Enrollment workflow
backend/src/controllers/enrollment.controller.js - Batch operations
backend/src/controllers/batch.controller.js - Enrollment records
backend/src/models/enrollment.model.js - Batch records
backend/src/models/batch.model.js - Course records
backend/src/models/course.model.js - Assignments
backend/src/models/assignment.model.js - Learning resources
backend/src/models/resource.model.js
Public content
- Content endpoints
backend/src/routes/blog.routes.js
Identity services
- Invitation service
backend/src/services/invitation.service.js - Invitation records
backend/src/models/invitation.model.js - User records
backend/src/models/user.models.js - Invitation mailer
backend/src/utils/mailer.js
Other components
- Learner or staff
- eSewa payment
- Email provider
Connections 28
- Learner or staff → React app routes: opens
- React app routes → Enrollment pages: routes to
- React app routes → Student classroom: routes to
- React app routes → Admin management: routes to
- React app routes → Instructor tools: routes to
- React app routes → Public content pages: routes to
- Enrollment API client → HTTP client: sends requests
- Enrollment API client → Enrollment routes: calls endpoints
- Express application → Enrollment routes: mounts
- Express application → Batch routes: mounts
- Express application → Other domain routes: mounts
- Express application → Content endpoints: mounts
- Enrollment routes → Enrollment workflow: dispatches
- Batch routes → Batch operations: dispatches
- Enrollment workflow → Enrollment records: reads and writes
- Enrollment workflow → Course records: reads
- Enrollment workflow → Batch records: reads
- Enrollment workflow → Invitation service: creates invite
- Enrollment workflow → eSewa payment: initiates and verifies
- Batch operations → Batch records: reads and writes
- Batch operations → Assignments: reads and writes
- Batch operations → Learning resources: reads
- Invitation service → Invitation records: creates and updates
- Invitation service → User records: updates role
- Invitation service → Batch records: adds student
- Invitation service → Enrollment records: checks approval
- Invitation service → Invitation mailer: sends invitation
- Invitation mailer → Email provider: delivers email