Skip to main content
Version: 1.0

Course Service

Repo: o-apps/course-service · Port: 8088

The platform's LMS backend: courses, learning paths, certificates, and enrollments.

Key Capabilities​

  • Courses — full CRUD
  • Learning paths — full CRUD (a learning path is a curated sequence of courses)
  • Certificates — issue and retrieve certificates, verify a certificate by credential ID, download, and browse available templates
  • Enrollments — enroll a user in a course, list a user's enrollments

Auth​

Requires a valid JWT on every route (via pkg/authmiddleware) — only /health and swagger docs are public. Not currently called by the frontend (no app/api proxy route references it), so there's no live integration to break by this being gated.

REST API​

MethodPathDescription
GET | POST/coursesList / create courses
GET | PUT | DELETE/courses/{courseId}Get / update / delete a course
GET | POST/learning-pathsList / create learning paths
GET | PUT | DELETE/learning-paths/{pathId}Get / update / delete a learning path
GET/certificates/templatesAvailable certificate templates
GET/certificates/verify/{credentialId}Verify a certificate
POST/certificates/generateGenerate a certificate
GET/certificatesList the caller's certificates
GET | DELETE/certificates/{id}Get / delete a certificate
GET/certificates/{id}/downloadDownload a certificate
POST/courses/{courseId}/enrollEnroll in a course
GET/users/{userId}/enrollmentsList a user's enrollments
GET/healthHealth check

Environment Variables​

VariableDescription
DATABASE_URLPostgreSQL connection — required, no fallback
AUTH_JWT_ACCESS_SECRETShared JWT signing secret
COURSE_SERVICE_ADDR / HTTP_PORTHTTP bind address / port (default: :8088)