Project: Tutor Tracker

Tutor Tracker is a desktop tuition management application meant for secondary students to track their tuition information, such as upcoming tuition appointments and tutor’s contact information. It focuses on the Command Line Interface (CLI) while providing users with a simple and clean Graphical User Interface (GUI).

Given below are my contributions to the project.

  • New Feature: Implemented list_appointments, find_appointment and view_appointment.
    • What it does: allows the user to view all the appointments, finding appointments based on tutor’s name and viewing appointments on a certain date in the Tutor Tracker.
    • Justification: This feature provides the basic necessity in the application as it allows tutees to track their appointments.
    • Highlights: It mainly supports the GUI in displaying the list of appointments of the tutees.
    • Credits: Codes are adapted from ListCommand and FindCommand in AddressBook 3.
    • Links: #88
  • New Feature: Implemented Event class.
    • What it does: serves as a superclass of Appointment and Schedule to ease of validation and GUI enhancement.
    • Justification: this feature improves the product significantly because it extends the usability of the product by providing supporting methods in validations and timetable GUI in Tutor Tracker.
    • Highlights: This enhancement affects all event-related commands to be added in the future.
    • Link: #142
  • New Feature: Implemented DateTimeValidationUtil.
    • What it does: serves as a thorough validation method to ensure the new Appointment and Schedule does not violate the datetime constraints.
    • Justification: this feature improves the product significantly because it extends the usability of the product by ensuring data integrity in Tutor Tracker.
    • Highlights: This method is used in AddAppointmentCommand, EditAppointmentCommand, AddScheduleCommand and EditScheduleCommand to ensure data are tested and validated before it can be added to TutorTracker.
    • Link: #304
  • New Feature: Implemented Schedule class.
    • What it does: allows the user to create new Schedule objects in Tutor Tracker.
    • Justification: this feature improves the product significantly because it extends the usability of the product by allowing tutees to plan and allocate their time to tuition related task/schedule in Tutor Tracker.
    • Highlights: This enhancement affects all schedule-related commands to be added in the future.
    • Credits: Codes are adapted from Person in AddressBook 3.
    • Links: #142, #172
  • New Feature: Implemented Schedule’s CRUD Commands.
    • What it does: allows the user to create, update, retrieve and delete schedule records from the Tutor Tracker’s Schedule Tracker.
    • Justification: this feature improves the product significantly because it extends the usability of the product by allowing tutees to track and manage their schedules.
    • Highlights: This enhancement affects all schedule-related commands to be added in the future. The implementation was challenging as it required changes to the existing model, logic, storage and UI.
    • Links: #142, #159
    • Credits: Codes are adapted from AddCommand, EditCommand, ListCommand and DeleteCommand in AddressBook 3.
  • New Feature: Implemented Reminder class.
    • What it does: allows the user to create new Reminder objects in Tutor Tracker.
    • Justification: this feature improves the product significantly because it extends the usability of the product by allowing tutees to store reminders in Tutor Tracker.
    • Highlights: This enhancement affects all reminder-related commands to be added in the future.
    • Links: #185, #204
    • Credits: Codes are adapted from Person in AddressBook 3.
  • New Feature: Implemented Reminder’s CRUD Commands.
    • What it does: allows the user to create, update, retrieve and delete reminder records from the Tutor Tracker’s Reminder Tracker.
    • Justification: this feature improves the product significantly because it extends the usability of the product by allowing tutees to track and manage their reminders.
    • Highlights: This enhancement affects all reminder-related commands to be added in the future. The implementation was challenging as it required changes to the existing model, logic, storage and UI.
    • Link: #185
    • Credits: Codes are adapted from AddCommand, EditCommand, ListCommand and DeleteCommand in AddressBook 3.
  • GUI Enhancement: Implemented TimeTable window GUI.
    • What it does: allows the user to view appointment and schedule in a timetable GUI in Tutor Tracker.
    • Justification: this feature improves the product significantly because it extends the usability of the product by allowing tutees to track and manage their appointments and schedules in a graphical representation.
    • Highlights: This feature allows tutees to open a window to view their appointments and schedules just like a typical school timetable. The implementation was challenging as it requires a lot of checks before the dynamic population of UI objects.
    • Link: #168
    • Credits: Solution adapted and reused some codes from senior team AY2021S1-CS2103T-W13-3.
  • GUI Enhancement: Added Calendar
    • What it does: allows the user to view appointment and schedule on a certain date through a calendar interface.
    • Justification: this feature improves the product significantly because it extends the usability of the product by offering an alternative way to view appointment and schedule on a certain date.
    • Highlights: This feature enhances the overall GUI’s look and feel as well as provide usability to user.
    • Credits: Solution adapted and reused codes from senior team AY1920S2-CS2103T-T10-3.
    • Link: #58
  • Testing: Performed JUnit Testing for Schedule, Reminder and Event related classes.
    • What it does: to ensure all the methods are working as expected and minimize the amount of bugs.
    • Credits: Codes are adapted from test folder in AddressBook 3.
    • Link: #311, #319
  • Code contributed: RepoSense link

  • Project management:
    • Contributed to the management of the issue tracker and pull requests on GitHub
    • Handles integration
    • Assisted team members with bugs fixing and documentation
  • Enhancements to existing features:
    • Update the overall GUI to fit the mockup design #58
    • Update the GUI for schedule feature #181
    • Update the GUI for reminder feature #201
    • Update the GUI for TabPane and auto tabs switching #290
  • Documentation:
    • User Guide:
      • Added documentation for the feature list_appointments, view_appointment and find_appointment #2
      • Added documentation for the feature add_schedule, list_schedules, edit_schedule, view_schedule and delete_schedule #212
      • Added documentation for the feature timetable #212
      • Added documentation for the feature add_reminder, list_reminders, edit_reminder and delete_reminder #212
      • Did cosmetic tweaks to existing documentation format #232
    • Developer Guide:
      • Added introduction: #5
      • Update and cosmetic tweaks to multiple sections: #5, #352, #341, #337, #332
      • Added use cases of the list_appointments feature: #5
      • Added implementation for Schedule: #317
      • Added implementation for Reminder: #5
      • Added implementation for Event: #5
      • Added manual testing for Schedule and Reminder commands as well as list_appointments, view_appointment and find_appointment: #5
  • Community:
    • Dedicated PR reviewer for 2 team members as well as adhoc review of other PRs
    • Constantly approved PRs of group members despite not being their dedicated reviewer.
    • Reported bugs and suggestions for other teams in the class.