Keng I's Project Portfolio Page
Project: Track-O
Track-O is a desktop address book application used by private tutors to schedule lessons and track payments. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC.
Given below are my contributions to the project.
- New Feature: Added a
levelfield toTutee.- What it does: Tutors can now save the education level of
tuteeswhen adding them to Track-O. When the tutor provides the abbreviation of the education level, Track-O parses it into the full title.
e.gp4parses intoPrimary 4
e.gs2parses intoSecondary 2
e.gj1parses intoJC1 - Justification: We want tutors to be able to recall the current academic progress of a tutee just by
looking at the tutee list. Having the information of the education level allows tutors to quickly identify the topics
are relevant.
Instead of creating a completely new field for that, we decided to replace the existingemailfield with education level because email would not be relevant if tutors are teaching younger tutees in the primary level and do not use email for communication purpose. - Highlights: This enhancement affects existing commands such as
addandeditas theemailfield now contains different information and parameter constraints. - Credits: -
- What it does: Tutors can now save the education level of
- New Feature: Added the ability to delete lessons from a tutee.
- What it does: the
DeleteLessonCommandidentifies thelessonto be deleted and removes it from the user’s schedule as well as thelessonlistof thetutee. - Justification: Track-O supports adding
lessonto individualtutee. If the tutee decides to quit the tuition lesson permanently, the user has the ability to free up his schedule and remove the lesson. - Credits: -
- What it does: the
-
Code contributed: RepoSense link
- Project management:
- Managed the deadline and closure of milestones v1.3 - v1.3b (2 milestones) on GitHub.
- Set up the About-Us page and took pictures used for the profile of each team member.
- Enhancements to existing features: Modified the
FindCommandto work like a filter.- What it does:
FindCommandsupports keyword search forname,level,subjectsandoverduestatus. - Justification: The previous
findfunction returns matchedtuteewhose name fulfils any of the keyword supplied. However, we felt that the feature is not very helpful for tutors if we wanted to extend it to supportlevel,subjectandoverduestatus as well.
For example, if the tutor wants to search up all secondary 4 students taking math classes, usingfind l/p4 subject/mathwill return tutees who are either primary 4 or tutees taking math classes. The tutor would then have to sieve through the results once again to find the tutee of interest.
Hence, we modified the implementation to work just like a filter placed sequentially: a matched tutee has to pass all the filters to be returned as a matched tutee. - Highlights: This enhancement did not affect existing commands and commands to be added in future, but the old
test cases using the old implementation had to be modified to align with our new design of the
FindCommand. - Credits: -
- What it does:
- Documentation:
- User Guide:
- Added documentation for the features
deleteLessonandfind.
- Added documentation for the features
- Developer Guide:
- Added implementation details of the
findfeature.
- Added implementation details of the
- User Guide:
- Community:
- PRs reviewed (with non-trivial review comments): #39, #74, #155, #159,