Overview

FastScheduler (FS) is a desktop app for restaurant managers to schedule employees for work, optimised for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast and prefer typing, FS can help you manage the schedules of employees and shifts faster than traditional GUI apps.


Summary of Contributions

Given below are details of my contributions to the project.


New Features

Implemented Shift class and its methods

Essential methods implemented:

Justification: This class is an essential class that represents a work shift using date, period (in 4 hour blocks using indexing), employees on the shift and number of vacancies remaining to be filled.


Implemented ShiftController class and its methods

Essential methods implemented:

Justification: These methods are essential to satisfy the functional requirements of the application.

Highlights: These features are challenging in the sense that they must be bug-free and are able to handle all sorts of inputs that the user may make. They are coded with numerous exception cases and error-handling, and many applications of proper control logic flow so that the order of inputs and outputs make sense to the user.


Enhancements implemented

Implemented reusable methods in ShiftController class

Methods Implemented:

Justifications: These methods are highly reusable as almost every essential feature that address the functional requirement in this class will use at least one method that is implemented. They can even be used for future upgrades of the application to fulfil more functional requirements.


Implemented error-handling in methods

Coming up with the error-handling with exceptions has solved a lot of the bugs that were pointed out during the Practical Exam Dry Run. This also helped to test the methods written and ensure that the logic flow is correct.


Contributions to documentation

User Guide

For the user guide, I have filled in the methods for add shift, assign employee, unassign employee, help and quit commands, as well as their step-by-step usage and explanation of certain terms. I have also answered 2 questions that may be commonly asked by new users or may be confusing to users who may not be familiar with our application. Lastly, I tallied the command summary with our AppController and added the missing commands.


Developer Guide

For the developer guide, my main contribution is the elaboration of Design and Implementation, as well as the sequence diagram of the assignEmployee section. I have also contributed by filling in the user stories section.


Team-based tasks