Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Huang Maodian] iP #190

Open
wants to merge 28 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
070e1ef
Add Level-0 Increment: Rename, Greet, Exit.
Geinzit Feb 1, 2024
708a584
Add feature: bot echoes all input commands, exits when received 'bye'…
Geinzit Feb 2, 2024
19f083f
Add feature to store past commands and list stored commands
Geinzit Feb 8, 2024
d23eea2
Add separate class for tasks. Improve variable naming. Check code to …
Geinzit Feb 8, 2024
ddc3476
Add 3 new types of Task class using inheritance.
Geinzit Feb 8, 2024
ce45d70
Add input file and expected result file for IO redirection testing
Geinzit Feb 14, 2024
fb1d2b4
Add input error detection and response for all current commands.
Geinzit Feb 18, 2024
fe304ab
Merge branch 'branch-Level-5'
Geinzit Feb 18, 2024
dc155ec
Organize classes into separate packages. Rename files to match the bo…
Geinzit Feb 18, 2024
7007250
Merge branch 'branch-A-Packages'
Geinzit Feb 18, 2024
5bba707
Add delete task via index feature.
Geinzit Feb 21, 2024
a8a99b1
Add task save and load to hard drive function.
Geinzit Feb 21, 2024
73d4f84
Merge branch 'branch-Level-6'
Geinzit Feb 21, 2024
5cbefdc
Merge branch 'branch-Level-7'
Geinzit Feb 21, 2024
ad834e9
Bugfix: write task to hard drive after deleting.
Geinzit Feb 22, 2024
ff9c386
Add more OOP elements: separate class for UI, Storage, Parsing, and T…
Geinzit Mar 6, 2024
eb072c6
Add date time recognition in DeadlineTasks, and a command for filteri…
Geinzit Mar 6, 2024
f8a7df6
Add 'find' feature that allows filtering tasks by matching names
Geinzit Mar 6, 2024
28951cb
Merge pull request #1 from Geinzit/branch-Level-8
Geinzit Mar 6, 2024
df262ed
Merge branch 'master' into branch-Level-9
Geinzit Mar 6, 2024
b4f967b
Merge pull request #2 from Geinzit/branch-Level-9
Geinzit Mar 6, 2024
d370e77
Add Javadoc Comments.
Geinzit Mar 6, 2024
65c9c27
Merge pull request #3 from Geinzit/branch-A-JavaDoc
Geinzit Mar 6, 2024
16fbedf
Update README.md
Geinzit Mar 6, 2024
dc722b0
Update README.md
Geinzit Mar 6, 2024
2bb5550
Update README.md
Geinzit Mar 6, 2024
38f1745
Fix typos. Ignore unparsable DeadlineTasks in 'list_deadline'
Geinzit Mar 6, 2024
669853c
Merge branch 'master' of https://github.com/Geinzit/ip
Geinzit Mar 6, 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
26 changes: 3 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,4 @@
# Duke project template
# Huan
A simple, easy to use chatbot for task managing.

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
____ _
| _ \ _ _| | _____
| | | | | | | |/ / _ \
| |_| | |_| | < __/
|____/ \__,_|_|\_\___|
```
Its name's Huan, btw
88 changes: 61 additions & 27 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,63 @@
# User Guide

## Features

### Feature-ABC

Description of the feature.

### Feature-XYZ

Description of the feature.

## Usage

### `Keyword` - Describe action

Describe the action and its outcome.

Example of usage:

`keyword (optional arguments)`

Expected outcome:

Description of the outcome.

```
expected output
```
## Features

### Simple, easy to use interface

Huan's a bot of few words, but the meaning always gets across

### Supports multiple types of tasks

currently have 3 types:

- todo-tasks, which can be marked as finished or unfinished.
- EventTasks, for representing your future events, have a start time and an end time, can also be marked as finished or unfinished
- DeadlineTasks, for tasks with specific deadlines, comes with an additional datetime field which can be used for organizing your deadlines

### data persistence through file storage

All changes to the task list will be saved on your computer, and will be safely loaded next time when launching the chatbot.

So there's no data loss between different instances of launching.

### find tasks via name

supports task-filtering using names

### filter deadline tasks before a specific time

find all deadlines before a specific time with special formatting

## Commands

- bye
- safely quit the chatbot
- list
- list all the tasks you currently have
- todo *taskName
- add a todo type task to your list, taskname can have in-between spaces
- e.g. `todo do homework`
- event *taskname /from *starttime /to *endtime
- add a event type task to your list, taskname, starttime, endtime can have in-between spaces
- e.g. `event concert with gf /from 3pm /to 6pm`
- deadline *task /by *ddltime
- add a deadline type task to your list, taskname, ddltime can have in-between spaces
- ddltime can be formatted in a special way to support date time tracking, format is "yyyy-MM-dd HH:mm:ss"
- e.g. "deadline 2113 gp /by 2024-03-08 23:59:59" or "deadline book report /by tonight"
- mark *index
- mark the n-th task in the list as completed
- use `list` to check for index if not certain
- e.g. `mark 3`
- unmark *index
- unmark the n-th task in the list
- e.g. `unmark 2`
- delete *index
- remove the n-th task from the list
- e.g. `delete 6`
- find *name
- list all tasks with tasknames containing *name
- e.g. `find book`
- list_deadline *datetime
- list all deadline tasks before a given time
- all time must be correctly formatted("yyyy-MM-dd HH:mm:ss")
- only deadline tasks with correctly formatted datetime values will be listed
10 changes: 0 additions & 10 deletions src/main/java/Duke.java

This file was deleted.

19 changes: 19 additions & 0 deletions src/main/java/huan/main/Huan.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package huan.main;

/**
* Main Class
*/
public class Huan {
/**
* Main function
* @param args unused
*/
public static void main(String[] args) {
UI.displayWelcomeMessage();

Storage.readFile();

Parser.parseCommands();
}

}
Loading