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
level
field toTutee
.- What it does: Tutors can now save the education level of
tutees
when adding them to Track-O. When the tutor provides the abbreviation of the education level, Track-O parses it into the full title.
e.gp4
parses intoPrimary 4
e.gs2
parses intoSecondary 2
e.gj1
parses 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 existingemail
field 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
add
andedit
as theemail
field 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
DeleteLessonCommand
identifies thelesson
to be deleted and removes it from the user’s schedule as well as thelessonlist
of thetutee
. - Justification: Track-O supports adding
lesson
to 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
FindCommand
to work like a filter.- What it does:
FindCommand
supports keyword search forname
,level
,subjects
andoverdue
status. - Justification: The previous
find
function returns matchedtutee
whose 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
,subject
andoverdue
status as well.
For example, if the tutor wants to search up all secondary 4 students taking math classes, usingfind l/p4 subject/math
will 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
deleteLesson
andfind
.
- Added documentation for the features
- Developer Guide:
- Added implementation details of the
find
feature.
- Added implementation details of the
- User Guide:
- Community:
- PRs reviewed (with non-trivial review comments): #39, #74, #155, #159,