cyntaria/UniPal-Backend

Classes API

arafaysaleem opened this issue ยท 2 comments

Description

This epic is a sub goal of the epic for Complete REST API and provides functionality surrounding management of classes. This epic requires multiple endpoints to be setup and tested along with their detailed documentation.

Initiative / goal

This API impacts our timetable module as without classes we can't create timetables. We want to create classes, along with their respective days and timeslots. We want to allow students query classes based on subjects or teachers. We should work on this immediately after setting up Classrooms API.

Hypothesis

We must have Authentication, Teachers, Classrooms, Timeslots and Subjects API setup prior to this. The following is true by the end of this API

  • We can query/manage possible classes
  • We can query/manage schedules of a class

Acceptance criteria and must have scope

In the end we need to have a collection of following endpoints:

  • #177
  • #178
  • #179 ๐Ÿ”’
  • #180 ๐Ÿ”’
  • #181 ๐Ÿ”’
  • Documentation For Each Endpoint
  • Tests For Each Endpoint

Note: ๐Ÿ”’ symbol indicates the route is protected and accessible to admin only

Stakeholders

None

Timeline

3 weeks are needed to setup all the foundation, along with testing and documentation. No blockers expected.

Notes for later

To implement timetable generator on the front-end:

  1. Fetch all classes along with the timeslots, parse them into models.
  2. Create a HashMap of classes with the subjects as key and a List of classes for that subject as a value.
  3. When user selects a subject, fetch it's classes and filter the teachers in a list.
  4. Show those teachers in second dropdown. If teacher selected return specific class else return entire list of classes.

Completed In #205