Skip to the content.

Developer Guide

Duke is a desktop app for managing your daily tasks with a beautiful chatbot graphical user interface (GUI) and command line interface (CLI) like command input.

Acknowledgements

Set up

For user to try out the result of application, can simply download the ip.jar file from the latest release, double click to run the application (JDK 11 is required).

For developers to contribute to the code:

git clone https://github.com/l-shihao/ip.git

Design

Class diagram as below: Class diagram Seems there is a need to set up a dispatcher in the middle to decouple the parsing and message printing requests [plan for future version].

Implementation

For example, how the interface MainWindow takes from user input to initiate a concrete command: Sequence diagram Note that because CommandCaller subscribes to the StringParser as a Listener, once StringParser done its parsing and fired a PropertyChange event, Event Listener would get the changes and take action to run corresponding methods. Similar thing often occurs when changes happen and Storage automatically writes to data file.

Testing

Gradle and GiHub Action was setup to run CI test checks upon commit, refer to Java CI records here.


Appendix

User Stories

As a I want to so that I can
productive user delete multiple tasks in one command line save the time to key command many times
forgetful user have a command that shows all the command keywords remember what features I could use
organised user assign tasks tags group similar tasks together in a view
organised user find all tasks with a tag sort out only the tasks I care under one context

Requirements