Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
a63c9f7
Level-0
LimHongYao Jan 17, 2023
ef8d231
Added echo
LimHongYao Jan 27, 2023
bdd7c9d
Added list functionality
LimHongYao Jan 27, 2023
9d94709
Added ability to mark and unmark as done
LimHongYao Jan 31, 2023
a3a4347
Added deadline, event, todo types for list objects
LimHongYao Feb 9, 2023
c711aeb
fixed coding standard issues
LimHongYao Feb 9, 2023
28406be
added bad input handling
LimHongYao Feb 10, 2023
c2a4627
Merge branch 'branch-Level-5'
LimHongYao Feb 10, 2023
6cf1e94
added delete functionality to list
LimHongYao Feb 24, 2023
e3a2df5
added tasklist export functionality
LimHongYao Feb 26, 2023
e0bf091
reverted desktop export path to relative /out path
LimHongYao Feb 28, 2023
e3091cd
Merge branch 'branch-Level-6'
LimHongYao Feb 28, 2023
896ad76
Merge branch 'branch-Level-7'
LimHongYao Feb 28, 2023
44155f7
packaged files
LimHongYao Feb 28, 2023
95409e7
moved some methods to Ui class
LimHongYao Feb 28, 2023
fd05d8e
rewrote and combined mark/unmark methos
LimHongYao Mar 1, 2023
6e7bbe3
reworked and combined mark method
LimHongYao Mar 1, 2023
bc51fbb
Moved switch cases into OOP
LimHongYao Mar 2, 2023
81192bc
added search functionality
LimHongYao Mar 3, 2023
0021e8a
Merge pull request #1 from LimHongYao/branch-Level-9
LimHongYao Mar 3, 2023
4984f8c
added parser class
LimHongYao Mar 3, 2023
61ec054
Merge pull request #2 from LimHongYao/branch-Level-9
LimHongYao Mar 3, 2023
39fb97b
added load from text file functionality
LimHongYao Mar 3, 2023
30d3513
Added javadoc documentation
LimHongYao Mar 3, 2023
86c9546
added javadoc documentation
LimHongYao Mar 3, 2023
0200dab
Merge pull request #3 from LimHongYao/branch-A-JavaDoc
LimHongYao Mar 3, 2023
7ba7c8e
Updated basic user guide
LimHongYao Mar 3, 2023
ca442dc
Added UserGuide documentation in docs directory for website
LimHongYao Mar 16, 2023
3fff458
fixed bug with exception handling
LimHongYao Mar 16, 2023
488a811
re-commit with missing DukeException file
LimHongYao Mar 16, 2023
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
173 changes: 149 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,149 @@
# Duke project template

This is a project template for a greenfield Java project. It's named after the Java mascot _Duke_. Given below are instructions on how to use it.

## Setting up in Intellij

Prerequisites: JDK 11, update Intellij to the most recent version.

1. Open Intellij (if you are not in the welcome screen, click `File` > `Close Project` to close the existing project first)
1. Open the project into Intellij as follows:
1. Click `Open`.
1. Select the project directory, and click `OK`.
1. If there are any further prompts, accept the defaults.
1. Configure the project to use **JDK 11** (not other versions) as explained in [here](https://www.jetbrains.com/help/idea/sdk.html#set-up-jdk).<br>
In the same dialog, set the **Project language level** field to the `SDK default` option.
3. After that, locate the `src/main/java/Duke.java` file, right-click it, and choose `Run Duke.main()` (if the code editor is showing compile errors, try restarting the IDE). If the setup is correct, you should see something like the below as the output:
```
Hello from
____ _
| _ \ _ _| | _____
| | | | | | | |/ / _ \
| |_| | |_| | < __/
|____/ \__,_|_|\_\___|
```
# Anna

Anna is a chatbot that helps you to organise your tasks. It can add,
delete and mark done tasks you've listed. It can also help you keep track of deadlines
and calender events.

Anna runs on a simple CLI interface that is lightweight and cross-platform friendly.
Anna is also designed to be friendly to first time users by being capable of handling missing inputs

## Setting up

Prerequisites: JDK 11
1. Download the ip.jar under 'Releases'
2. Extract the file into a folder you wish to keep it (e.g. `C:\Users\<username>\Desktop\AnnaBot`)
3. Open a terminal (e.g Command Prompt for Windows) and navigate to the previous directory<br>
4. Run the jar file using command `java -jar ip.jar`<br>
#### Example (Windows Command Prompt):
```
C:\Users\user> cd Desktop\AnnaBot
C:\Users\user\Desktop\AnnaBot> java -jar ip.jar
Hi it's Anna!
What do you need to do?
You may load existing data using the load command
```

## Commands
To interact with Anna, please use the following commands

### exit the program: `bye`
This command exits the running instance.
```
bye
Go away Anna
O-kay bye......
```
### view the current tasklist: `list`
`list` will show the current tasklist in order of addition (oldest task first)
```
todo task1
Okay! I've added: [T] task1
event task2 /from today /to tomorrow
Okay! I've added: [E] task2
list
Here's what we've gotta do:
1. [T][ ] task1
2. [E][ ] task2
Start: from today
End: to tomorrow
We currently have 2 tasks
```

### Mark task as done: `mark <task number>`
Sets a given task as completed. Yay!
```
mark 1
Okay I've marked item 1 as done:
1. [T][X] task1
```

### Mark task as not done: `unmark <task number>`
Sets a given task as not done
```
unmark 1
Oh we aren't done with item 1?
1. [T][ ] task1
```

### Create a simple todo task: `todo <task description>`
Creates a standard todo task and adds it into the tasklist
```
todo task1
Okay! I've added: [T] task1
```
Anna will prompt you if you forget to input the name of the task
```
todo
What are you referring to?
task1
Okay! I've added: [T] task1
```
### Create a task with a deadline: `deadline <task description> /by <duedate>`
Creates a task with a deadline and adds it into the tasklist
```
deadline task2 /by 5 jan
Okay! I've added: [D] task2
```
Anna will prompt you for the deadline if it is missing
```
deadline task2
When is this due by?
5 jan
Okay! I've added: [D] task2
```
### Create a task with start and end dates:<br/>`event <task description> /from <startdate> /to <enddate>`
Creates a task with start and end times and adds it into the tasklist
```
event task3 /from today /to tomorrow
Okay! I've added: [E] task3
```
Similarly to `deadline`, Anna will prompt you if you are missing date details
```
event task3 /to tomorrow
When does this event start?
today
Okay! I've added: [E] task3
```
### Remove a task: `delete <task number>`
The given task will be deleted from the tasklist
```
delete 1
Okay! I've deleted task: 1
```
### Loading and Saving of tasklist
Anna also supports import/export of your tasklist in the form of a .txt file. This can be helpful if you want to refer to the tasklist in a future date!

`save` exports the current tasklist into a tasklist.txt file
```
save
Successfully exported TaskList!
Written to: C:\Users\lhyao\Desktop\TaskList.txt
```
`load` imports a previous tasklist into the program's tasklist <br>
Anna looks for a `TaskList.txt` file in the same directory to import from
```
load
Okay! I've added: [D] task2
Okay! I've added: [D] task2
Okay! I've added: [E] task3
Okay! I've added: [E] task3
Okay! I've added: [T] task1
```
## Usage Example

#### Input Example 1
`deadline ip /by tonight`

#### Expected Output 1
`Okay! I've added: [D] ip`

#### Input Example 2
`list`

#### Expected Output 2
```
Here's what we've gotta do:
1. [D][ ] ip
Deadline: tonight
We currently have 1 tasks
```
150 changes: 135 additions & 15 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,149 @@
# User Guide
# Anna

## Features
Anna is a chatbot that helps you to organise your tasks. It can add,
delete and mark done tasks you've listed. It can also help you keep track of deadlines
and calender events.

### Feature-ABC
Anna runs on a simple CLI interface that is lightweight and cross-platform friendly.
Anna is also designed to be friendly to first time users by being capable of handling missing inputs

Description of the feature.
## Setting up

### Feature-XYZ
Prerequisites: JDK 11
1. Download the ip.jar under 'Releases'
2. Extract the file into a folder you wish to keep it (e.g. `C:\Users\<username>\Desktop\AnnaBot`)
3. Open a terminal (e.g Command Prompt for Windows) and navigate to the previous directory<br>
4. Run the jar file using command `java -jar ip.jar`<br>
#### Example (Windows Command Prompt):
```
C:\Users\user> cd Desktop\AnnaBot
C:\Users\user\Desktop\AnnaBot> java -jar ip.jar
Hi it's Anna!
What do you need to do?
You may load existing data using the load command
```

Description of the feature.
## Commands
To interact with Anna, please use the following commands

## Usage
### exit the program: `bye`
This command exits the running instance.
```
bye
Go away Anna
O-kay bye......
```
### view the current tasklist: `list`
`list` will show the current tasklist in order of addition (oldest task first)
```
todo task1
Okay! I've added: [T] task1
event task2 /from today /to tomorrow
Okay! I've added: [E] task2
list
Here's what we've gotta do:
1. [T][ ] task1
2. [E][ ] task2
Start: from today
End: to tomorrow
We currently have 2 tasks
```

### `Keyword` - Describe action
### Mark task as done: `mark <task number>`
Sets a given task as completed. Yay!
```
mark 1
Okay I've marked item 1 as done:
1. [T][X] task1
```

Describe the action and its outcome.
### Mark task as not done: `unmark <task number>`
Sets a given task as not done
```
unmark 1
Oh we aren't done with item 1?
1. [T][ ] task1
```

### Create a simple todo task: `todo <task description>`
Creates a standard todo task and adds it into the tasklist
```
todo task1
Okay! I've added: [T] task1
```
Anna will prompt you if you forget to input the name of the task
```
todo
What are you referring to?
task1
Okay! I've added: [T] task1
```
### Create a task with a deadline: `deadline <task description> /by <duedate>`
Creates a task with a deadline and adds it into the tasklist
```
deadline task2 /by 5 jan
Okay! I've added: [D] task2
```
Anna will prompt you for the deadline if it is missing
```
deadline task2
When is this due by?
5 jan
Okay! I've added: [D] task2
```
### Create a task with start and end dates:<br/>`event <task description> /from <startdate> /to <enddate>`
Creates a task with start and end times and adds it into the tasklist
```
event task3 /from today /to tomorrow
Okay! I've added: [E] task3
```
Similarly to `deadline`, Anna will prompt you if you are missing date details
```
event task3 /to tomorrow
When does this event start?
today
Okay! I've added: [E] task3
```
### Remove a task: `delete <task number>`
The given task will be deleted from the tasklist
```
delete 1
Okay! I've deleted task: 1
```
### Loading and Saving of tasklist
Anna also supports import/export of your tasklist in the form of a .txt file. This can be helpful if you want to refer to the tasklist in a future date!

Example of usage:
`save` exports the current tasklist into a tasklist.txt file
```
save
Successfully exported TaskList!
Written to: C:\Users\lhyao\Desktop\TaskList.txt
```
`load` imports a previous tasklist into the program's tasklist <br>
Anna looks for a `TaskList.txt` file in the same directory to import from
```
load
Okay! I've added: [D] task2
Okay! I've added: [D] task2
Okay! I've added: [E] task3
Okay! I've added: [E] task3
Okay! I've added: [T] task1
```
## Usage Example

`keyword (optional arguments)`
#### Input Example 1
`deadline ip /by tonight`

Expected outcome:
#### Expected Output 1
`Okay! I've added: [D] ip`

Description of the outcome.
#### Input Example 2
`list`

#### Expected Output 2
```
expected output
```
Here's what we've gotta do:
1. [D][ ] ip
Deadline: tonight
We currently have 1 tasks
```
Loading