This is the API-Gateway for all micro-services of course-registration-system, acting as an entry point into the system by handling authentication and authorization using JWT tokens and managing communication across micro-services.

Micro services

Micro-serivce Description
Profile service Mangaes profiles for all users
Course service Manages courses which can be offered by professors
Registration service Manages offered courses for professors and registered courses for students

API Endpoints

Login

Action URL Description
POST /login Login using email_id and password

Admin profile endpoints

Action URL Description
PUT /admin/password/:email_id Update admin profile password
POST /admin/students Create new student profile
GET /admin/students Get all student profile
PUT /admin/students/:email_id Update a student profile using email_id
DELETE /admin/students/:email_id Delete a student profile using email_id
POST /admin/professors Create new professor profile
GET /admin/professors Get all professor profile
PUT /admin/professors/:email_id Update a professor profile using email_id
DELETE /admin/professors/:email_id Delete a professor profile using email_id

Admin course endpoints

Action URL Description
POST /admin/courses Add new course
GET /admin/courses Fetch all courses
PUT /admin/courses/:course_id Update a course using course_id
DELETE /admin/courses/:course_id Delete a course using course_id

Professor endpoints

Action URL Description
GET /professors/:email_id Fetch a professor's profile using email_id
PUT /professors/password/:email_id Update professor profile password
GET /professors/courses Fetch all courses
POST /professors/offered_course Offer a new course from available courses
GET /professors/offered_course?crn=?
/professors/offered_course?email_id=?
Fetch all offered courses by CRN or email id
PUT /professors/offered_course/:crn Update an offered course
DELETE /professors/offered_course/:crn Delete an offered course

Student endpoints

Action URL Description
GET /students/:email_id Fetch a student's profile using email_id
PUT /students/password/:email_id Update professor profile password
GET /students/offered_courses Fetch all offered courses
POST /students/register_course Register for an offered course
GET /students/register_course?email_id=? Get all registered courses for a student
PUT /students/register_course/:email_id Update registered courses for a student
DELETE /students/register_course/:email_id Delete registered courses for a student