Choon Wei's Project Portfolio Page
Project: TutorBuddy
TutorBuddy is a desktop application made for freelance tutors who give one-to-one tuition to efficiently manage their students’ contacts, provide a quick overview of scheduled tuition sessions, and handle monthly tuition fees calculation. TutorBuddy is also optimized for fast typing users to handle their day-to-day administrative responsibilities effectively.
Summary of Contributions
Given below is a summary of my contributions to the development of TutorBuddy.
Major Enhancement
- Overlapping Sessions Check
- What it does: This feature helps to validate the specified session date in the
add_session
andadd_rec_session
command. - Justification: This feature provides an important check that informs the tutor if he/she already has a session that falls within the specified date. This prevents the tutor from scheduling two students on the same date and time, reducing the possibilities of awkward session cancellation/postponement.
- Highlights: The intricacies of this feature was very much underestimated. Everytime
add_session
andadd_rec_session
is called, the check will take place. We will use the specified date and time to check with all existing session to see if they fall within an existing session. Comparisons between two normal sessions and a normal session with a recurring session is simple; however, comparing a recurring session with another recurring session is complicated. For comparisons between recurring sessions, TutorBuddy runs a walk-through from the earlier recurring session, and compares with all the subsequent dates of both recurring session. Appropriate validations are present. Test cases were also introduced to ensure that the overlapping checks work as expected under extreme recurring lengths. - Related PR: PR #112, PR #150
- What it does: This feature helps to validate the specified session date in the
- Delete Single Session from Recurring Session Command
- What it does: This feature allows tutors to remove a single session from a valid recurring session.
- Justification: This feature provides a more convenient way of removing a single session from a currently recurring session if a student decides to cancel a class on a certain date. Rather than having to delete the entire recurring session then creating separate recurring session past the specified deleted date, TutorBuddy helps split the recurring session into two recurring sessions.
- Highlights: As this feature involves the use of a command, a new command class
DeleteRecurringSessionCommand
was created. The logic behind this command is relatively simple. TutorBuddy will split the recurring session period into two, creating a recurring session prior to the specified deleted date, and a recurring session after the specified date. Defensive code were implemented in several areas. Appropriate validations are present to deal with incorrect specified session and invalid session date that does not belong to the recurring session. Test cases were also introduced to ensure that the command works as expected. - Related PR: PR #155
Minor Enhancement
- Added a
Session
list panel that observes changes to the student list and reflects the sessions contained in the list of students on the UI - Added list of session attribute to
Student
class - Added a
Tuition
class to bindStudent
withSession
utilised in the Calendar page - Modifying several command feedback description to be in check with user guide specification
Other Contribution
- Project Management
- In charge of the overall project coordination
- Responsible for the integration of different components
- Set up the GitHub team organisation and repository
- Testing
- Documentation
- User Guide
- Developer Guide
- Codes Contributed