Rachel Lim's Project Portfolio Page
Project: HEY MATEz
HEY MATEz is a desktop application to get rid of your woes by allowing you to track members and tasks within a club efficiently and easily! It is a Command Line Interface (CLI) application which handles user requests that are typed into the input box as commands 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 delete tasks. (Pull Requests: #67, #106, #246)
- What it does: Allows the user to delete a specific task given a valid index.
- Justification: This feature allows the user to delete an existing task in the list based on a given index.
Should the user accidentally add a task, they can delete it easily just by using the
deleteTask
command. - Highlights: The implementation was challenging as it required changes to existing commands. When the index is parsed, I had to take into account of the different scenarios. For instance, I had to change the function of isNonZeroUnsignedInteger in StringUtil.java from a boolean function to an int function so that ‘1’ will be returned if the index is a valid integer(positive integer), ‘2’ for an invalid integer(non-positive integer) and ‘3’ for an invalid input(spaces, alphanumeric) such that different error messages would be thrown should the index differ from the format.
- New Feature: Added the ability to view a list of uncompleted tasks. (Pull Requests: #117, #252)
- What it does: Allows the user to view a list of tasks that have not been completed.
- Justification: This feature improves the product significantly because a user can easily view a list of uncompleted tasks upon inputting the command which greatly saves the time of the user, instead of manually searching for a list uncompleted tasks.
- Highlights: The implementation was challenging as it required me to create another predicate to filter a list of
uncompleted tasks. Furthermore, I had to create a boolean function
isCompleted
in theTask
class instead of callingtask.taskStatus
to prevent breaking the abstraction barrier in order to filter the list of uncompleted tasks. Also, I had to take into account of the different messages displayed in different situations such as when there are no uncompleted tasks found. Lastly, I had to do heavy testing to account for the different scenarios of usage which was quite tedious as some commands have to be modified.
- New Feature: Added the ability to view a list of unassigned tasks. (Pull Requests #162, #252)
- What it does: Allows the user to view a list of tasks that have not been assigned to any member.
- Justification: This feature improves the product significantly because a user can easily view a list of unassigned tasks upon inputting the command which greatly saves the time of the user, instead of manually searching for a list of unassigned tasks.
- Highlights: The implementation was challenging as it required me to create another predicate to filter a list of
unassigned tasks. Furthermore, I had to create a boolean function
isAssigned
inTask
class instead of callingtask.assignees.isEmpty()
to prevent breaking the abstraction barrier in order to filter the list of unassigned tasks. Also, I had to take into account of the different messages displayed in different situations such as when there are no unassigned tasks found. Finally, I had to do heavy testing to account for the different scenarios of usage which was quite challenging as some commands have to be changed.
-
Code contributed: RepoSense link
- Project management:
- Create issues
- Set up unit testing for tasks
- Managed milestones and issues
- Enhancements to existing features:
- Documentation:
- User Guide:
- Developer Guide:
- Updated the user stories in the Developer Guide (Pull requests: #138, #169, #274)
- Updated the User Interface UML Diagram, Sequence Diagram in the Developer Guide (Pull requests: #185)
- Updated the Architecture Sequence Diagram in the Developer Guide (Pull requests: #189)
- Added the implementation explanation for
deleteTask
(Pull requests: #185) - Added activity diagram for
deleteTask
(Pull requests: #290) - Added manual testing instructions for
viewTasks
,deleteTask
,viewUnassignedTasks
,viewUncompletedTasks
(Pull requests: #285)
- Community: