Course Enrollment API

  This Course Enrollment project is built with a microservices architecture and follows the Clean Architecture principles across both services:

Sub-Projects

πŸ”‘ Identity.Api

  Handles user registration, login, logout, token refreshing, and user data retrieval using JWT. It supports three roles (Admin, Instructor, and Student), role-based access control. This service is designed to work with other microservices by issuing and validating JWT tokens.

πŸ“š Courses.Api

  Manages all course-related operations, including creating, updating, deleting, and enrolling in courses. It validates tokens issued by Identity.Api and ensures proper access control based on user roles.

πŸ§‘β€πŸ’» User Use Cases

🌐 Anyone

  • View a list of available courses
  • Get detailed information for a specific course by ID
  • View the list of enrolled students in a course

πŸ”§ Admin

  • Create courses and assign instructors
  • Update any course details
  • Reassign instructors for specific courses
  • Delete any course

πŸ‘¨β€πŸ« Instructor

  • Create, read, update, and delete (CRUD) their own courses

πŸŽ“ Student

  • View their enrolled courses
  • Enroll in or un-enroll from a course