A lightweight, fast and fun personal assistant chatbot built with Java 11. Duke helps you organise todos, deadlines and events through a conversational interface available in both the command line and a modern JavaFX GUI.
- Add Todo, Deadline and Event tasks
- Mark tasks as done or delete them
- Edit existing tasks in-place
- Natural-language date parsing (e.g. "next Friday 5 pm")
- Persistent storage — your data is saved between sessions
- Powerful keyword and date search
- Smart auto-complete and contextual help
- WhatsApp-style modern GUI
- Extensive unit and integration test-suite
-
Ensure you have Java 11 installed.
-
Clone this repository:
git clone https://github.com/<your-username>/duke.git cd duke
-
Build and run Duke using Gradle:
./gradlew run
-
Type
helpin the Duke prompt to see the full list of available commands.
| Command | Example | Description |
|---|---|---|
todo TASK_DESCRIPTION |
todo read book |
Adds a todo task |
deadline TASK_DESCRIPTION /by DATE |
deadline submit report /by 2025-03-15 |
Adds a deadline task |
event TASK_DESCRIPTION /at DATE |
event project meeting /at 2025-03-10 14:00 |
Adds an event task |
list |
Lists all tasks | |
done INDEX |
done 2 |
Marks the given task as completed |
delete INDEX |
delete 3 |
Deletes the given task |
find KEYWORD |
find book |
Finds tasks containing the keyword |
Run help inside Duke for the complete command reference and advanced usage examples.
We welcome pull requests and issues!
- Fork the repository and create your branch from
master. - Follow the Conventional Commits style.
- Ensure the tests pass via
./gradlew testbefore submitting. - Create a pull request using the provided template.
Duke is released under the MIT License.
This project is based on the excellent teaching materials from se-education and is maintained by our open-source contributors.