Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
9af57b0
add greeting feature and exit
lckjosh Aug 30, 2023
f35e5e1
rename bot to BotBuddy
lckjosh Aug 30, 2023
c4e3f6e
add echo feature
lckjosh Sep 5, 2023
d219a1f
add ability to add items and list them
lckjosh Sep 5, 2023
2d8c682
create Task class
lckjosh Sep 5, 2023
663cf7c
add ability to mark and unmark tasks as done
lckjosh Sep 5, 2023
87a3330
follow coding standard
lckjosh Sep 5, 2023
e4200c5
categorise tasks into Todo, Event, and Deadline
lckjosh Sep 12, 2023
2a749bc
create methods for each command and call the methods in switch statement
lckjosh Sep 12, 2023
8060406
use do-while loop
lckjosh Sep 12, 2023
bd0006b
add input and output testing
lckjosh Sep 12, 2023
1d647e3
handle unrecognised commands
lckjosh Sep 13, 2023
9e488c2
create BotBuddyException exception
lckjosh Sep 13, 2023
e2e415d
add error handling
lckjosh Sep 13, 2023
704093c
Merge branch 'branch-Level-5'
lckjosh Sep 13, 2023
00bb9a7
put classes in BotBuddy package
lckjosh Sep 13, 2023
a18d4c0
Merge branch 'branch-A-Packages'
lckjosh Sep 13, 2023
3223c2a
rename Duke.java to BotBuddy.java
lckjosh Sep 19, 2023
5637b71
use ArrayList<Task> to store Tasks instead of an array
lckjosh Sep 19, 2023
e1dee36
add ability to delete tasks
lckjosh Sep 19, 2023
713b1a3
Merge branch 'branch-Level-6'
lckjosh Sep 19, 2023
8254280
add ability to save and read from file
lckjosh Sep 19, 2023
995547b
auto create task file and directory if not found
lckjosh Sep 19, 2023
8e41dc0
Merge branch 'branch-Level-7'
lckjosh Sep 19, 2023
722041b
remove duplicate check if directory is created
lckjosh Sep 19, 2023
a9e8f7d
update gitignore
lckjosh Sep 19, 2023
a2c02d8
refactor code to make it more OOP
lckjosh Oct 2, 2023
f95d5a1
add ability to find tasks
lckjosh Oct 4, 2023
3957ae9
Merge pull request #1 from lckjosh/branch-Level-9
lckjosh Oct 4, 2023
2868ee6
updated list of supported commands
lckjosh Oct 4, 2023
1ec406b
update README
lckjosh Oct 4, 2023
ff1c2ca
fix READMEs
lckjosh Oct 4, 2023
51145c6
add javadocs
lckjosh Oct 6, 2023
690e241
edit javadoc
lckjosh Oct 6, 2023
59e9b5e
Merge pull request #2 from lckjosh/A-JavaDoc
lckjosh Oct 6, 2023
54dd0f9
edit javadocs
lckjosh Oct 6, 2023
63a2454
Merge pull request #3 from lckjosh/branch-A-JavaDoc
lckjosh Oct 6, 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
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,5 @@ bin/

/text-ui-test/ACTUAL.TXT
text-ui-test/EXPECTED-UNIX.TXT
taskfile.txt
MANIFEST.MF
212 changes: 198 additions & 14 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,213 @@
# User Guide
# BotBuddy

## Features
This is a simple CLI todo app written in Java.
## Quick start

### Feature-ABC
1. Ensure you have Java 11 or above installed in your Computer.

Description of the feature.
1. Download the latest ip.jar from the Releases page.

### Feature-XYZ
1. Copy the file to the folder you want to use as the home folder for this application.

Description of the feature.
1. Open a terminal, cd into the folder you put the jar file in, and use the java -jar ip.jar command to run the application.

```
____________________________________________________________
Hello from BotBuddy!
What can I do for you?
____________________________________________________________
```
5. Refer to the Features below for details of each command.

## Features
Words in UPPER_CASE are the parameters to be supplied by the user.

Typing any invalid command will show a list of valid commands.

### 1. Adding a todo
Adds a todo to the task list.

Fields: description

Syntax:
```
todo DESCRIPTION
```
Example:
```
____________________________________________________________
todo buy milk
____________________________________________________________
Got it, I've added this task:
[T][ ] buy milk
____________________________________________________________
```

### 2. Adding an event
Adds an event to the task list.

Fields: description, from, to

Syntax:
```
todo DESCRIPTION /from FROM_WHEN /to TO_WHEN
```
Example:
```
____________________________________________________________
event My Holiday /from Wednesday /to Friday
____________________________________________________________
Got it, I've added this task:
[E][ ] My Holiday (from: Wednesday to: Friday)
____________________________________________________________
```

### 3. Adding a deadline
Adds a deadline to the task list.

Fields: description, by

Syntax:
```
todo DESCRIPTION /by BY_WHEN
```
Example:
```
____________________________________________________________
deadline Submit Project /by this Friday
____________________________________________________________
Got it, I've added this task:
[D][ ] Submit Project (by: this Friday)
____________________________________________________________
```

### 4. List tasks
List all the tasks currently in the task list

Fields: none

Syntax:
```
list
```
Example:
```
____________________________________________________________
list
____________________________________________________________
1. [T][X] this is a todo
2. [E][X] an event (from: 1 oct to: 2 oct)
3. [D][ ] submit project (by: friday)
4. [T][ ] buy milk
5. [E][ ] My Holiday (from: Wednesday to: Friday)
6. [D][ ] Submit Project (by: this Friday)
____________________________________________________________
```

The first column indicates if the task is a `[T]` todo, `[E]` event, or a `[D]` deadline.

An `[X]` in the second column indicates that the task is marked as done.

### 5. Mark a task as done
Marks a task in the task list as done.

Fields: task number

Syntax:
```
mark TASK_NUMBER
```
Example:
```
____________________________________________________________
mark 4
____________________________________________________________
I've marked this task as done:
[T][X] buy milk
____________________________________________________________
```

### 6. Unmark a task
Unmarks a task in the task list i.e. it is undone.

Fields: task number

Syntax:
```
unmark TASK_NUMBER
```
Example:
```
____________________________________________________________
unmark 4
____________________________________________________________
I've unmarked this task:
[T][ ] buy milk
____________________________________________________________
```

## Usage
### 7. Delete a task
Deletes a task from the task list.

### `Keyword` - Describe action
Fields: task number

Describe the action and its outcome.
Syntax:
```
delete TASK_NUMBER
```
Example:
```
____________________________________________________________
delete 4
____________________________________________________________
I've deleted this task:
[T][ ] buy milk
____________________________________________________________
```

Example of usage:
### 8. Find a task
Searches for a task in the task list. Case sensitive.

`keyword (optional arguments)`
Fields: search string

Expected outcome:
Syntax:
```
find SEARCH_STRING
```
Example:
```
____________________________________________________________
find book
____________________________________________________________
Here are the found tasks for 'book':
____________________________________________________________
____________________________________________________________
1. [T][X] read a book
5. [D][ ] return book (by: 7 oct)
____________________________________________________________
```

Description of the outcome.
### 9. Exit program
Exits the program

Syntax:
```
bye
```
Example:
```
expected output
____________________________________________________________
bye
____________________________________________________________
Goodbye, hope to see you again soon!
____________________________________________________________
```

### Saving data
Task list data is saved in a file automatically after any command that changes the data.

There is no need to save manually.

### Editing the data file
AddressBook data are saved automatically as a txt file [JAR file location]/data/taskfile.txt.
Advanced users are welcome to update data directly by editing that data file.
Loading