This is a slightly harder GFI, but it's a challenge that will definitely solidify your knowledge of the scheduler logic.
So far, the scheduler assumes that each week will follow a MTF = regular, WTh = block schedule. This will not be the case when there are holidays or when the school transitions into a regular-only week as it eases into end-of-year finals.
To accommodate for the irregularities in the school schedule, please design the exceptions feature to fulfill all of the following requirements. The system:
- should allow overrides for a range of weeks (beginning + end of school year, summer)
- should allow overrides for specific days (assembly for assembly days, minimum days, etc.)
- should remain flexible to changes in
Schedule
types (for example, there should not be a hard-code specifically for assembly days)
- should generally use a table-like format to store overrides (ex: see how schedule types are defined in schedules.ts)
More requirements to be added as needed. Soft deadline is one week before April.