Jet Tan Ee Kiat's Project Portfolio Page
Project: Teaching Assistant’s Personal Assistant (TAPA)
TAPA is a desktop contact management application used to manage students’ contact and progress. 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.
-
Code contributed: RepoSense link
- New Feature:
- Added the ability to
find
students by specifying name and matriculation number. #47- What it does: Allows the user to search for students in TAPA based on their name or matriculation number.
- Justification: This feature allows users to easily find students of interest, allowing TAs to easily get their contact details or for follow-up commands.
- Highlights: The original
find
feature allows users to find students by keywords in their names, but due to the use of additional fields I believe the functionality was insufficient and added an additional ability to search by matriculation number. For this purpose, I created an additional predicate for the purpose of matching matriculation numbers.
- Added the ability to
- New Feature:
- Added the ability to filter students by module code. #105
- What it does: Allows the user to filter students in TAPA by their module code.
- Justification: This feature allows users to easily filter students by their module codes, allowing TAs to easily get their contact details or for follow-up commands.
- Highlights: This feature was originally meant to be a standalone command separate from
find
, but I decided to make it an extension of it as there is some overlap in functionality. This proved tricky as it meant there were more complex cases to handle during input validation, but I was able to implement it successfully.
- Added the ability to filter students by module code. #105
- New Feature:
- Added the ability to delete all students in a particular module. #135
- What it does: Deletes all students of a particular module by the inputted module code.
- Justification: This feature allows users to easily remove all students of a particular module after the semester is over.
- Added the ability to delete all students in a particular module. #135
- Enhancements to existing features:
- Modified the
delete
feature to allow deletion by a student’s matriculation number. #56- Justification: The
delete
command ships with the default AB3, but only takes in a single index as a possible parameter. I extended it to also allow users to input the student’s matriculation number as an alternative, as it will be easier for users to delete individual students if the list gets too long. - Highlights: I made use of the new predicate that I created for my implementation of the
find
command to implement this feature.
- Justification: The
- Modified the
delete
feature to allow deletion with multiple indices. #126- Justification: The
delete
command ships with the default AB3, but only takes in a single index as a possible parameter. I extended it to also allow users to input multiple indices, such that users can conveniently delete multiple students at once without having to retype the command again and again.
- Justification: The
- Wrote additional tests for new and existing features to increase code coverage. (#113, #229, #244)
- Modified the
- Contribution to team-based tasks:
- Joint effort in renaming the product to “TAPA”.
- Joint effort in creating the product icon.
- Joint effort in morphing product into “TAPA” by extending relevant features.
- Maintained the issue tracker by assigning/labelling issues.
- Tested product for cross-platform compatibility for MacOS.
- Created product banner image.
- Documentation:
- User Guide:
- Developer Guide:
- Community: