Fang Yiye's Project Portfolio Page
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.
Project: NotionUS
Given below are my contributions to the project.
- New Feature: Added the ability to list tasks by modules and list all unmarked tasks (
ls -a
,ls --module MODULE
,ls -u
).- What it does: allows the user all unmarked tasks and all tasks under a specific module.
- Justification: This feature improves the product significantly because a user might want to view all tasks under a specific module before a tutorial.
- Highlights: The features was challenging as many new list commands were created and also new predicates are needed for the new list commands. This requires analysis of the design of the list command and how the predicates work.
- Credits: The design of the code was modelled after existing AB3 list command codes, due to the existing
Parser
andCommand
associations.
- New Feature: Added the
archive
feature.- What it does: allows the user to archive the tasks when then have completed it and want it removed from the list of tasks showed in the UI.
- Justification: This features allows users to store the done tasks in another file which may provide them a sense of accomplishment when looking at the list of archived tasks.
- Highlights: This feature creates a new
ArchivedTaskList
which is stored in a separate JSON file. This was challenging as it requires extra effort to edit the constructor ofModelManager
and make sure it cannot be modified. - Credits: This was modelled after the existing AB3 storage code.
- New Feature: Added
showarchive
feature.- What it does: allows the user view archived tasks.
- Justification: This feature improves the product significantly because a user might want to view all archived tasks to track his own academic progress.
- Highlights: The features was challenging it requires the modification UI to show the archived task list.
-
Code contributed: Click here to view the code I have contributed.
- Enhancements to existing features:
- Edited the list command to allow it to take multiple type of list commands through a new parser and added tests for them.
- Contributions to the UG:
- Added documentation for the features
archive
andshowarchive
- Added FAQ questions and answers.
- Added glossary section.
- Added documentation for the features
- Contributions to the UG:
- Added implementation details of the
archive
feature. - Modified class diagram for Storage.
- Added sequence diagram for
archive
. - Added 2 instructions to manual testing.
- Added Non-Functional requirements.
- Added implementation details of the
- Contributions to team-based-tasks:
- Rename JSON file from “addressbook.json” to “taskList.json”.
- Added appendix for effort in the developer guide.
- Community: