Specifications

For COMP110 TA Scheduler "Karen Bot"

Functional requirements:

Definite:

  • TAs should be able to select their hourly availability using a simple UI.
  • UI should write out TA’s availability in the standardized CSV format so that it can be ingested by the scheduler and save it persistently on their file system.
  • Admin should be able to automatically generate an office hours schedule based on availability


Perhaps:

  • TA should be able to determine at any given time all other available TAs who they can swap shifts with.


Improbable:

  • Finished schedule should be exported to Google Calendar in order to be hosted on COMP110 Course Website

Non-Functional requirements:

Definite:

  • The backend storage for the TA availability and the final schedule will be hosted in CSV files on Github.com
  • JavaFX app should be able to push and pull the latest scheduling information from the Github repository transparently to the user. It should also smoothly resolve any merge conflicts.
  • Intuitive GUI that allows TAs to input their availabilities

Perhaps:

  • Improve the scheduler algorithm in terms of both runtime and overall score.


Improbable:

  • UI should be able to negotiate swaps and update schedule

Interface:

Definite:

  • Show week and allows TA to mark days/times available with submission button
  • The UI should prompt the TA for their onyen so it can pull the appropriate CSV
  • Application will interface with github.com for storage of all file resources.
  • The instructor should be able to create an executable jar of the Karenbot repository and run it via the command line.

Perhaps:

  • Show current office hours schedule in the UI.
  • Show a list of all TAs available at any given time so TAs can know who to contact to try and negotiate a shift swap


Improbable:

  • Render schedule on the comp110 website backend.
  • Update schedule stored in the repository in real-time as swaps are made