How faisalgul786/skillgrid_backend works
This is a backend for a learning-management platform: users register and authenticate, enroll in courses, and access learning content; instructors create courses, lessons, quizzes, and assignments, while students submit work and instructors grade it. The sampled code confirms enrollment and authentication service/repository flows, plus controller-to-service calls for the other learning features. Wiring from the application entry point and several unsampled routes is not established here, so those connections are omitted.
Main entry points: auth-service.js Auth service · auth-repository.js Auth repository · enrollment-routes.js Enrollment routes · auth-controller.js Auth controller
Components 21
Platform access
- Auth controller
src/modules/authentication/controllers/auth-controller.js - Auth service
src/modules/authentication/services/auth-service.js - Auth repository
src/modules/authentication/repositories/auth-repository.js - Authentication middleware
src/shared/middleware/authenticate.js
Course learning
- Enrollment routes
src/modules/enrollment/routes/enrollment-routes.js - Enrollment controller
src/modules/enrollment/controllers/enrollment-controller.js - Enrollment service
src/modules/enrollment/services/enrollment-service.js - Enrollment repository
src/modules/enrollment/repositories/enrollment-repository.js - Course controller
src/modules/course_management/controllers/course-management-controller.js - Course service
src/modules/course_management/services/course-management-service.js - Lesson controller
src/modules/lesson_management/controllers/lesson-management-controller.js - Lesson service
src/modules/lesson_management/services/lesson-management-service.js
Assessment work
- Quiz controller
src/modules/quiz_management/controllers/quiz-management-controller.js - Quiz service
src/modules/quiz_management/services/quiz-management-service.js - Assignment controller
src/modules/assignment_management/controllers/assignment-management-controller.js - Assignment service
src/modules/assignment_management/services/assignment-management-service.js
Shared services
- SQL database
src/shared/database/config/db-connection.js - Upstash Redis
src/shared/redis_database/upstash-client.js - Email service
src/external_services/email_service/send-email.js
Other components
- Learner
- Instructor
Connections 25
- Learner → Enrollment routes: requests enrollment
- Enrollment routes → Authentication middleware: authenticates
- Enrollment routes → Enrollment controller: dispatches
- Enrollment controller → Enrollment service: calls
- Enrollment service → Enrollment repository: checks and creates
- Enrollment repository → SQL database: reads and writes
- Learner → Auth controller: registers or logs in
- Instructor → Auth controller: registers or logs in
- Auth controller → Auth service: calls
- Auth service → Auth repository: calls
- Auth repository → SQL database: reads and writes
- Auth repository → Upstash Redis: stores temporary data
- Auth service → Email service: sends OTP
- Instructor → Course controller: manages courses
- Course controller → Course service: calls
- Learner → Course controller: browses courses
- Learner → Lesson controller: accesses lessons
- Instructor → Lesson controller: creates lessons
- Lesson controller → Lesson service: calls
- Instructor → Quiz controller: creates quizzes
- Learner → Quiz controller: takes quizzes
- Quiz controller → Quiz service: calls
- Instructor → Assignment controller: creates and grades
- Learner → Assignment controller: views and submits
- Assignment controller → Assignment service: calls