How kaistrum/academy_backend works
Kaistrum Academy is an Express/MongoDB learning API. Learners browse and inspect courses, enrol (or complete Paystack checkout for premium access), work through gated lessons and record progress; completion enables reviews and certificates. The back office supports admin and instructor course operations. The graph retains the README’s major product capabilities, while sampled source confirms only some service calls; dashed links mark documented or otherwise unverified wiring. The database is a shared persistence layer.
Main entry points: collections.js MongoDB collections · app.js Express API · enrollments.service.js Enrolment and progress · courses.service.js Course catalogue
Components 20
API entry
- Express API
src/app.js - Request controls
src/middleware/validate.js - MongoDB collections
src/db/collections.js
Learning experience
- Course catalogue
src/modules/courses/courses.service.js - Tracks
src/modules/tracks/tracks.service.js - Enrolment and progress
src/modules/enrollments/enrollments.service.js - Favourites
src/modules/favourites/favourites.service.js - Reviews
src/modules/reviews/reviews.service.js
Identity and people
- Authentication
src/modules/auth/auth.service.js - User accounts
src/modules/users/users.service.js - Instructor profiles
src/modules/instructors/instructors.service.js - Email delivery
src/lib/mailer.js
Commerce and outcomes
- Payments
src/modules/payments/payments.service.js - Certificates
src/modules/certificates/certificates.service.js
Back office
- Admin operations
src/modules/admin/admin.service.js - Course management
src/modules/admin/courses.admin.service.js - Audit logging
src/lib/audit.js
Other components
- Learner
- Paystack
- OAuth providers
Connections 30
- Learner → Express API: uses API
- Express API → Request controls: validates requests
src/app.js - Express API → Authentication: routes auth
- Express API → Course catalogue: routes catalogue
- Express API → Enrolment and progress: routes enrolment
- Express API → Payments: routes payments
- Express API → Certificates: routes certificates
- Express API → Admin operations: routes back office
- Authentication → MongoDB collections: reads accounts
src/modules/auth/auth.service.js - Course catalogue → MongoDB collections: queries courses
src/modules/courses/courses.service.js - Enrolment and progress → Course catalogue: finds course
src/modules/enrollments/enrollments.service.js - Enrolment and progress → MongoDB collections: reads and writes
src/modules/enrollments/enrollments.service.js - Enrolment and progress → Certificates: unlocks on completion
- Enrolment and progress → Email delivery: sends notice
src/modules/enrollments/enrollments.service.js - Payments → Paystack: verifies checkout
src/modules/payments/payments.service.js - Payments → Enrolment and progress: creates enrolment
src/modules/payments/payments.service.js - Learner → Paystack: pays externally
- Learner → OAuth providers: signs in
- Authentication → Email delivery: sends account mail
src/modules/auth/auth.service.js - Admin operations → MongoDB collections: reads and writes
src/modules/admin/admin.service.js - Admin operations → Audit logging: records actions
src/modules/admin/admin.routes.js - Admin operations → Course management: delegates course work
src/modules/admin/admin.routes.js - Reviews → MongoDB collections: reads and writes
src/modules/reviews/reviews.service.js - Course catalogue → Tracks: uses track data
- Course catalogue → Instructor profiles: uses instructor data
- Favourites → MongoDB collections: reads and writes
- User accounts → MongoDB collections: reads and writes
- Tracks → MongoDB collections: reads and writes
- Instructor profiles → MongoDB collections: reads and writes
- Certificates → MongoDB collections: reads and writes