Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
68c58c1
Add Gradle support
May 24, 2020
03523ec
Bump gradle and lib version
Eclipse-Dominator Aug 5, 2023
81a9c53
build.gradle: Prevent generating a second JAR file
aureliony Jul 16, 2024
f8bb5fb
Level-0
mikolajed Aug 21, 2024
4b6a8b1
Add Level-1: echoing
mikolajed Aug 25, 2024
66187d7
Add Level-2: adding, listing
mikolajed Aug 26, 2024
e62452e
Add Level-3: marking
mikolajed Aug 26, 2024
934dabd
Add minor code quality changes
mikolajed Sep 4, 2024
5089664
Add new Task derived class
mikolajed Sep 4, 2024
266dda4
Add Level-4: ToDos, Events, Deadlines
mikolajed Sep 8, 2024
37e3f9b
Improve code quality
mikolajed Sep 8, 2024
97047ec
Add automated testing
mikolajed Sep 8, 2024
f4594ed
Minor UI change
mikolajed Sep 8, 2024
c7d735b
Add Level-5: error handling
mikolajed Sep 8, 2024
7aead71
Merge branch 'branch-Level-5'
mikolajed Sep 8, 2024
5682555
Add A-Packages
mikolajed Sep 8, 2024
73d4c22
Add Level-6: deleting
mikolajed Sep 18, 2024
e117036
Add Level-7: saving
mikolajed Sep 18, 2024
a76c9ad
Merge branch 'branch-Level-6'
mikolajed Sep 19, 2024
f1a9136
Merge branch 'branch-Level-7'
mikolajed Sep 19, 2024
bb903a4
A-MoreOOP: Add TaskList class
mikolajed Sep 28, 2024
7119092
A-MoreOOP: Add Storage
mikolajed Sep 29, 2024
bcd72f0
Update pythia.txt
mikolajed Sep 29, 2024
7cb4643
A-MoreOOP: Update Ui
mikolajed Sep 29, 2024
a144c7c
A-MoreOOP: Refactor Parser
mikolajed Sep 29, 2024
a58e2d5
Add Level-9: finding tasks
mikolajed Oct 3, 2024
6702bb4
Add Level-8
mikolajed Oct 3, 2024
4f34a67
Merge pull request #1 from mikolajed/branch-Level-8
mikolajed Oct 3, 2024
acf8c93
Merge pull request #2 from mikolajed/branch-Level-9
mikolajed Oct 3, 2024
44da9b8
Add JavaDoc comments
mikolajed Oct 7, 2024
2c38341
Update README.md
mikolajed Oct 8, 2024
ed28a9d
Update README.md
mikolajed Oct 8, 2024
3b5a414
Update README.md
mikolajed Oct 8, 2024
1031f84
Minor bug fix
mikolajed Oct 8, 2024
ede59cb
Update README.md
mikolajed Oct 8, 2024
cbc2fdc
Update README.md
mikolajed Oct 8, 2024
2f33e97
Update README.md
mikolajed Oct 8, 2024
cb9105a
Update README.md
mikolajed Oct 8, 2024
7762786
Update README.md
mikolajed Oct 8, 2024
5e18e76
Bug fix
mikolajed Oct 8, 2024
e561e10
Bug fix
mikolajed Oct 8, 2024
a754e2e
Merge branch 'add-gradle-support'
mikolajed Oct 8, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
plugins {
id 'java'
id 'application'
id 'com.github.johnrengelman.shadow' version '7.1.2'
}

repositories {
mavenCentral()
}

dependencies {
testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.10.0'
testRuntimeOnly group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.10.0'
}

test {
useJUnitPlatform()

testLogging {
events "passed", "skipped", "failed"

showExceptions true
exceptionFormat "full"
showCauses true
showStackTraces true
showStandardStreams = false
}
}

application {
mainClass.set("seedu.duke.Duke")
}

shadowJar {
archiveBaseName = "duke"
archiveClassifier = null
}

run{
standardInput = System.in
}
2 changes: 2 additions & 0 deletions data/pythia.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
true | read
T | false | got apple
223 changes: 209 additions & 14 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,225 @@
# Duke User Guide
# Pythia User Guide
<p align="center">
<img src="Screenshot.png" alt="Description" style="max-height: 500px;">
</p>

// Update the title above to match the actual product name
Pythia chatbot is desktop app **designed to help you manage all of your tasks,
optimized for use via command-line interface**.
It allows for adding tasks, deleting, marking and saving them for later.

// Product screenshot goes here
# Table of Contents
- [Feature overview](#feature-overview)
- [Add `Task`](#add-task)
- [Add `ToDo`](#add-todo)
- [Add `Event`](#add-event)
- [Add `Deadline`](#add-deadline)
- [View all with `list`](#list-tasks)
- [Delete a task](#task-delete)
- [Mark task as done](#mark-task)
- [Find a task](#find-task)
- [Exit the app](#exit)

// Product intro goes here
# Feature overview
App supports several types of commands with different functionalities and synatx.
All of them summarized in the table below.

## Adding deadlines
| Feature | Syntax |
|---------------------|------------------------------------------------------|
| **List all tasks** | `list` |
| **Add a task** | `add <description>` |
| **Add a todo** | `todo <description>` |
| **Add a deadline** | `deadline <description> /by <deadline>` |
| **Add an event** | `event <description> /from <startDate> /to <endDate>`|
| **Mark task as done** | `mark <taskNumber>` |
| **Delete a task** | `delete <taskNumber>` |
| **Find a task** | `find <keyword>` |
| **Quit the app** | `bye` |

// Describe the action and its outcome.
> **Tip:**
> To know `<taskNumber>` it is advised to execute `list` command first

// Give examples of usage
> **Warning:**
> Once a task is deleted it cannot be recovered

Example: `keyword (optional arguments)`
## Add `Task`
Adds a task to the list of tasks. Use syntax `add <description>`
where:
- `<description>` is a task description of the task such
as a name or anything desired

// A description of the expected outcome goes here
### Example:
```
add My first task
____________________________________________________________
added: my first task
____________________________________________________________
list
____________________________________________________________
1. [ ] My first task
Now you have 1 task in the list.
____________________________________________________________
```

## Add `ToDo`
Adds a `TdDo` to the list of tasks. Use syntax `todo <description>`
where:
- `<description>` is a `ToDo` description of the task such
as a name or anything desired.

### Example:
```
todo My first todo
____________________________________________________________
added: my first todo
____________________________________________________________
list
____________________________________________________________
1. [ ] My first task
2. [T][ ] My first todo
Now you have 2 tasks in the list.
____________________________________________________________
```

> **Note:**
> Unless a task is not deleted it will be kept indefinitely.

## Add `Event`
Adds an `Event` to the list of tasks. Use syntax `event <description> /from <startDate> /to <endDate>`
where:
- `<description>` is an `Event` description
- `<startDate>` is the time at which the event starts, any sequence of characters is accepted
- `<endDate>` is the time at which the event end, any sequence of characters is accepted


### Example:
```
event My first event /from now /to some time in the future
____________________________________________________________
added: my first event
____________________________________________________________
list
____________________________________________________________
1. [ ] My first task
2. [T][ ] My first todo
3. [E][ ] My first event (from now to some time in the future)
Now you have 3 tasks in the list.
____________________________________________________________
```

## Add `Deadline`
Adds a `Deadline` to the list of tasks. Use syntax `deadline <description> /by <deadline>`
where:
- `<description>` is a `Deadline` description
- `<dueDate>` date by which the deadline is due, any sequence of characters is accepted

### Example:
```
expected output
deadline My first deadline /by tomorrow :)
____________________________________________________________
added: my first deadline
____________________________________________________________
list
____________________________________________________________
1. [ ] My first task
2. [T][ ] My first todo
3. [E][ ] My first event (from now to some time in the future)
4. [D][ ] My first deadline (by: tomorrow :))
Now you have 4 tasks in the list.
____________________________________________________________
```

## Feature ABC
## View all with `list`
You can view all tasks in the list with `list` command. Once a task is added,
it will be kept indefinitely unless deleted explicitly. Look above for examples (like [Add `Deadline`](#add-deadline))

// Feature details
## Delete a task
Deletes a `Task` from the list of tasks. Use syntax `delete <taskNumber>`
where:
- `<taskNumber>` is a number of the task in the list

> **Tip:**
> To know `<taskNumber>` it is advised to execute `list` command first as task numbers change upon deletion

## Feature XYZ
### Example:
```
delete 1
____________________________________________________________
Nice! I've deleted this task:
[ ] My first task
____________________________________________________________
list
____________________________________________________________
1. [T][ ] My first todo
2. [E][ ] My first event (from now to some time in the future)
3. [D][ ] My first deadline (by: tomorrow :))
Now you have 3 tasks in the list.
____________________________________________________________
```

## Mark task as done
Marks a `Task` as done. Use syntax `mark <taskNumber>`
where:
- `<taskNumber>` is a number of the task in the list

> **Tip:**
> To know `<taskNumber>` it is advised to execute `list` command first as task numbers change upon deletion

### Example:
```
mark 1
____________________________________________________________
Nice! I've marked this task as done:
[T][X] My first todo
____________________________________________________________
list
____________________________________________________________
1. [T][X] My first todo
2. [E][ ] My first event (from now to some time in the future)
3. [D][ ] My first deadline (by: tomorrow :))
Now you have 3 tasks in the list.
____________________________________________________________
```

// Feature details
## Find a task
Finds a `Task` with a keyword contained in the task description. Use syntax `find <keyword>`.

### Example:
```
list
____________________________________________________________
1. [T][X] My first todo
2. [E][ ] My first event (from now to some time in the future)
3. [D][ ] My first deadline (by: tomorrow :))
Now you have 3 tasks in the list.
____________________________________________________________
add My second task
____________________________________________________________
added: my second task
____________________________________________________________
list
____________________________________________________________
1. [T][X] My first todo
2. [E][ ] My first event (from now to some time in the future)
3. [D][ ] My first deadline (by: tomorrow :))
4. [ ] My second task
Now you have 4 tasks in the list.
____________________________________________________________
find first
____________________________________________________________
Here are the matching tasks in your list:
1. [T][X] My first todo
2. [E][ ] My first event (from now to some time in the future)
3. [D][ ] My first deadline (by: tomorrow :))
____________________________________________________________
```

## Exit the app
To exit the app use command `bye`. Changes are saved automatically.

### Example:
```
bye
____________________________________________________________
Your path is set. Until we meet again.
____________________________________________________________
```
Binary file added docs/Screenshot.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
7 changes: 7 additions & 0 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.2-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading