Overview
Nuke is a simply yet powerful task management application that targets towards NUS students and aims to facilitate record, classification, management and navigation of their acdemical tasks. The users can interact with Nuke using both a Command Line Interface (CLI) and a complementary Graphical User Interface (GUI). Nuke is written in Java, and has about 17000 lines of code.
Summary of Contributions
Code Contributed
Functional and Test Code from GitHub RepoSense
Major Enhancement
Implemented List Sorted Taks Features
-
What it does: allows the user to check their task_s of different _module_s or all _module_s in the ascending order of _deadline or descending order of priority.
-
Justification: these features improve filtering function of the product and benefit the user greatly because a user can see the most urgent task and the least urgent task and then determine which task to complete right after.
-
Highlights: the implementation mainly consists of two parts include integrating all tasks from different categories of different modules as user-added tasks are stored in a multitude of seperated lists and sorting the all these tasks in terms of deadine or priority. As users may simplify commands by omitting prefix or only type into keywords, the implementation need to deal with different situations and filter tasks correctly which is challenging.
Implemented Tag Features
-
What it does: allows the user to add, delete several tags to every task to give more customized descriptions to their tasks and then list tasks out based on different tags.
-
Justification: these features will improve filtering function of the application significantly. Users can use customized tags to describe tasks and filter tasks according to these tags to find tasks catering to their needs well.
-
Highlights: This enhancement provides a new criteria for users to manage and navigate their tasks. The implementation is challenging as a new attribute is added to Task object which means all operations on this new attributes need to be implemented. Therefore, a lot of other classes and components is modified and connected to realize new features of tag.
Minor Enhancement
- Added help command which will show a simple user guide to enable users find valid commands and corresponding format when using Nuke.
- Added Data Manager which is a base class used to realize some commands.
Other Contributions
- Project managment:
- Necessary general code enhancements
- Maintaing the issue tracker
- Modify codes and add JavaDoc (includes mine and others) to pass CI on GitHub regularly.
- Enhancements to existing features:
- Documentation
- User Guide:
- Developer Guide
- Documented User Stories Section of Appendix Section. (#commit)
- Documented Class Diagrams of Add Command Classes and List Command Classes(#commit), Documented Arichitecture Diagram(#commit) and Component Interactions Diagram (#commit)
- Added up more test cases of Tag features in Manul Testing Section (#commit)
- Documented Design Section (#commit)
- Community