Yeo Yiheng's Project Portfolio Page
Project: TA2
TA2 is a desktop productivity application developed for teaching assistants to better manage student contacts and keep track of student’s assignments. 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 the ability to find information based on various tags.
- What it does: This feature allows the user to find students based on names, modules and / or tags.
- Justification: This feature allows users to filter the list of students should they need to find someone specific.
- Highlights: This command was challenging to implement due to the fact that many scenarios had to be considered to protect the application from malicious use or unintentional erroneous input. An example is finding with an empty prefix.
- Credits: The command is an existing overhaul on the original
FindCommandin the AddressBook-Level3 (AB3) project. The implementation has been largely revamped, though the concept of finding remains the same.
- New Feature: Added a user-friendly command input termed Friendly Commands to the giving of assignments.
- What it does: This feature allows the user to set deadlines for assignments in a very simplified manner
- Justification: This feature further improves efficiency in information management by reducing the amount of text a user has to input to set a deadline.
- Highlights: This feature has stretched my creativity in deciding what will be beneficial to the user to improve efficiency, and what will go against
the efficacy and instead serve as a drawback. Eventually, I settled on the simple and shortened forms of the upcoming days such as mon to represent
the upcoming monday. After adding friendly command inputs for the
findcommand, I wanted to extend this idea onto other commands to improve user efficiency but had to decide against it in the interest of time. - Credits: Java TemporalAdjusters API
- Pull Requests: #102
- New Feature: Created a Module to represent each student’s enrolled module
- What it does: This feature allows the user to classify students based on their enrolled module.
- Justification: This feature further improves the classification of students, where users can now easily identify which student and assignment list to look at.
- Highlights: The regular expression for detecting a module was a challenge to implement due to the vast options of module codes available. I had to decide whether we were strictly confining the pattern to NUS modules only or be flexible enough to accommodate other university’s module codes.
- Credits: The class is an existing overhaul on the address class of AddressBook-Level3 (AB3) project.
- Pull Requests: #62
-
Code contributed: RepoSense link
- Project management:
- Ensuring that the overall documentation of the program is up to standard with what is the convention and required.
- Enhancements to existing features:
- Documentation:
- User Guide:
- Developer Guide:
- Community:
- PRs reviewed (with non-trivial review comments): #130