Lin Leyi's Project Portfolio Page
Project: NotionUS
NotionUS is a desktop task tracking application used for tasks, and specially tailored toward university students. 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
- Enhancements implemented:
- Command History (Returning to a previous command)
- The challenging part of the implementation of this feature was that it had to be integrated with the UI. I explored and had to understand how FXML worked from scratch to find the correct place to incorporate my functions.
- List
- By tag
- By deadline
- Enhancing
List
to take in multiple tags- Prior to this enhancement, only one filter could be applied in every list command. However, we found that this wouldn’t be optimised for our target users’ usage, and decided to implement stacking of filters in a single command.
- Taking inspiration from how
add
takes in multiple flags with the help ofArgumentMultimap
,ListCommandParser
was designed in a similar manner. - Adapted
ListCommand
to take in a list ofPredicates
that represented each filter, and reduced them into one in theListCommand#execute
method to be passed intoModel#updateFilteredTaskList
- Command History (Returning to a previous command)
- Contributions to the UG:
- Made some example diagrams for the individual commands, showing the before and after effects
- For
add
,delete
,tag
,list
, etc.
- For
- Ensured that the tone was appropriate and consistent throughout
- Contributed to writing a portion of the command structure
- Wrote the portions on Returning to a previous command and some
list
commands (tag
,deadline
)
- Made some example diagrams for the individual commands, showing the before and after effects
- Contributions to the DG:
- Wrote implementation details for List feature
- Created UML sequence diagrams to showcase the mechanism at each step under Usage Scenario
- Wrote implementation details for Returning to a previous command
- Created UML action diagram
- Created diagrams to showcase how the mechanism works at each step under Usage Scenario
- Wrote some manual testing examples (8.2, 8.3, 8.6, 8.7)
- Numbering of sections to make the DG more organised
- Wrote implementation details for List feature
- Contributions to team-based-tasks:
- Take minutes in meetings
- Helped to communicate with TA for tutorial submissions
- Facilitated discussion for PE-D Reviewers Peer Review and submitted on behalf of the team
- Review/mentoring contributions:
- Help to review and merge PRs of other team members (View here)
- Contributions beyond the project team:
- Helped to bug-check and give suggestions to other teams (View here)