πŸŽ“ Course Enrollment

πŸ”‘ Enrollment Process

  • Users browse the course catalog and select courses to enroll in.

  • For free courses, enrollment is instant upon user action.

  • For paid courses, enrollment triggers the transaction/payment process before granting access.

  • Users cannot enroll in the same course multiple times.


πŸ”„ Backend Flow

  • Enrollment request sent to POST /courses/:courseId/enroll

  • Server validates user status and course availability

  • If payment is required, enrollment waits for successful transaction confirmation

  • Enrollment status updated and accessible via user dashboard


πŸ’³ Payment Integration

  • Supported payment gateways: Stripe, PayPal (example)

  • Payment process linked directly with enrollment to ensure access only after payment completion

  • Transaction records stored and tied to user profiles


πŸ›‘οΈ Restrictions & Validations

  • Prevent duplicate enrollments

  • Enforce prerequisites if applicable (e.g., must complete Course A before enrolling in Course B)

  • Verify user subscription status for subscription-based access


πŸ“¨ User Feedback

  • Confirmation message upon successful enrollment

  • Error messages for failed payments or validation issues

  • Email notification (optional) confirming enrollment


πŸ“‘ Example API Request / Response

Enroll in a Course

Success Response:

Error Response (Duplicate Enrollment):

Last updated