Project: TutorsPet

TutorsPet is a desktop app designed for private tutors to manage students’ information by helping to improve the efficiency and effectiveness of student management by categorizing relevant contact information and keeping track of both lesson schedules and important dates. It is optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI).

Given below are my contributions to the project.

  • New Feature: Added a schedule command and schedule GUI, and lesson storage. User is able to open a schedule window that displays weekly schedule. Pull Requests: #63, #93 #103, #114, #227, #275
    • What it does: allows the user to view their weekly schedule of tuition lessons.
    • Justification: This feature adds value to the product because since a user can view their weekly schedule, they can then plan their time around this schedule, and they will be more organised since they are well aware of the hectic tuition timings. Lessons now also stores a list of person, which enables each lesson to have more than one student.
    • Highlights: The implementation was challenging as it centered around lessons instead of students. Since only the student contacts were stored in storage, I decided to implement a storage for lessons, and modified lessons to have a list of students. In addition, the implementation of this feature caused several bugs, since this feature makes use of an ObservableList, which was used by other commands as well.
    • Credits: {UI code was from AB3}
  • New Feature: Added a detection of duplicate lessons during add and edit commands. Pull Requests: #105, #231
    • What it does: the user will be given a choice whether to proceed with adding or editing the contact that will result in duplicate lessons.
    • Justification: This feature adds value and flexibility to the product because the user will be warned when a contact with the same name or lesson is already in TutorsPet. This gives the user more control over TutorsPet, as the user is able to choose whether to have contacts with the same names or lessons. It could also warn the user of duplicate lessons, and the user can rearrange lesson timings with the student.
    • Highlights: The implementation was challenging as it involved many classes, and had quite some bugs due to its complexity. It also required an in-depth analysis of design alternatives.
  • Code contributed: RepoSense link

  • Project management:
    • Set up GitHub team repo
    • Managed releases v1.1 - v1.2 (2 releases) on GitHub
    • Updated documents not specific to a feature: about us page: #24, site-wide settings: #14, glossary for DG: #22
    • Managed milestones, labels and assignees on github issues and pull requests for team, where necessary.
  • Enhancements to existing features:
    • Changed the search feature to search using prefixes instead, so that users can search by more specific fields such as name and subject. (Pull Requests: #43, #61)
    • Updated help command to include a list of commands. (Pull Request: #376)
  • Documentation:
    • User Guide:
      • Added documentation for the features search and schedule. (Pull Requests: #19, #19, #48, #61, #95, #193)
      • Updated the existing documentation of features for add, edit to include the detection of duplicate name and lesson. (Pull Request: #232)
    • Developer Guide:
      • Added implementation details and UML diagrams of the search and schedule feature: (Pull Requests: #73, #233, #234, #241)
      • Added use cases, instructions for manual testing. (Pull Requests: #362, #360)
  • Community: