Duke-ChatBot


Project maintained by EvonDong Hosted on GitHub Pages — Theme by mattgraham

Duke ChatBot User Guide


Table of Contents

  1. Introduction
    1.1 What is Duke ChatBot
    1.2 Who Should Use It
    1.3 Typographical Conventions

  2. Features
    2.1 Types of Tasks
    2.2 Adding of Tasks
    2.3 Listing Tasks
    2.4 Handling of Tasks
    2.5 Finding Tasks
    2.6 Sorting Tasks
    2.7 Mass Operation of Tasks
    2.8 Exiting of Program

  3. Data Analysis
    3.1 Viewing of Statistics by Time
    3.2 Collection of Data

  4. Glossary



Introduction

What is Duke ChatBot

Duke ChatBot is a task managing chat bot which allows users to input the tasks to do and organise them. It tracks tasks that are marked as done over a period of time and displays relevant statistics.

This is what Duke ChatBot looks like:


Who Should Use It

This application aims to be beginner friendly and is intended for users who wants to keep track of the list of tasks to do and enhance their productivity.


Typographical Conventions

This document uses the following typographical conventions:

sort A mark-up indicates that this is a command that can be type into the command line and executed by the application.
:exclamation: An exclamation sign indicates important information.



Features

Types of Tasks

This application stores 3 different types of tasks:

todo A Todo task represents a task to be done without any time limit.

deadline A Deadline task represents a task to be done by a certain date and time.

event An Event task represents an event to attend at a certain date and time.


Adding of Tasks

This section contains the commands to be keyed in to add different type of task.

Todo Task

To key in a todo task: todo [description of task]

Example of usage: todo music homework
Expected Outcome: Got it. Ive added this task:
                  [T][✗] music homework
                  Now you have 1 task in the list.

Deadline Task

To key in a deadline task: deadline [description of task] /by [dd/MM/yyyy] [HHmm]

Example of usage: deadline music project /by 6/4/2023 0123
Expected Outcome: Got it. Ive added this task:
                  [D][✗] music project (by: 6/4/2023 01.23AM)
                  Now you have 2 tasks in the list.

:exclamation: /by must be included in the command.

Event Task

To key in an event task: event [description of task] /at [dd/MM/yyyy] [HHmm]

Example of usage: event music festival /at 6/4/2022 0123
Expected Outcome: Got it. Ive added this task:
                  [E][✗] music festival (at: 6/4/2022 01.23AM)
                  Now you have 3 tasks in the list.

:exclamation: /at must be included in the command.

:exclamation: Both Deadline and Todo task must include a valid timestamp in [dd/MM/yyyy] [HHmm] format.


Listing Tasks

To list all tasks recorded: list

Example of usage: list
Expected Outcome: Here are the tasks in your list:
                  1.[T][✗] music homework
                  2.[D][✗] music project (by: 6/4/2023 01.23AM)
                  3.[E][✗] music festival (at: 6/4/2022 01.23AM)


Handling of Tasks

This section contains the commands to be keyed in to handle tasks. To execute the following commands, list out the list of tasks as shown in the previous section and note the index of the task to operate on.

  1. Done Command

To mark the task as done: done [index of the task in the list]

Example of usage: done 1
Expected Outcome: Nice! I've marked this task as done:
                  [T][✓] music homework
  1. Delete Command

To delete the task: delete [index of the task in the list]

Example of usage: delete 1
Expected Outcome: Noted. I've removed this task:
                  [T][✓] music homework
                  Now you have 2 tasks in the list.


Finding of Tasks

To find tasks using a keyword: find [keyword]

Example of usage: find music
Expected Outcome: Here are the matching task in your list:
                  1.[D][✗] music project (by: 6/4/2023 01.23AM)
                  2.[E][✗] music festival (at: 6/4/2022 01.23AM)

:exclamation: The keyword must only consists of one word.


Sorting of Tasks

To sort tasks according to the dates and time in a chronological order: sort

Example of usage: sort
Expected Outcome: Here are the tasks in your list:
                  1.[E][✗] music festival (at: 6/4/2022 01.23AM)
                  2.[D][✗] music project (by: 6/4/2023 01.23AM)

:exclamation: If the list contains a deadline or event task, it will take priority over a todo task as it is assumed that a todo task is of lower priority.
:exclamation: If two deadline or event tasks have the same timestamp, the tasks would be sorted according to their descriptions in a alphabetical order. The same rule also applies for todo task.


Mass Operation of Tasks

To execute the same command to multiple tasks at once, add , between the indexes of the tasks.

Example of usage: delete 1, 2
Expected Outcome: Noted. I've removed these task:
                  [T][✓] music homework
                  [D][✗] music project (by: 6/4/2023 01.23AM)
                  Now you have 1 task in the list.

:exclamation: This only applies to done, delete, find commands.


Exiting of Program

To exit the program: bye

Example of usage: bye
Expected Outcome: Bye!!! Hope to see you again soon!

:exclamation: The program will exit immediately after this command.



Data Analysis

Viewing of Statistics

To view an overview of the tasks done over time, there are two ways:

  1. Click on the Show Statistics button on the top of the application as shown below.


  1. Key in show stats in the command line: show stats

    This is an example of an expected chart:


Collection of Data

The list of all the tasks is located in the data directory and is named as tasks.txt. The storage file is easy to read and edit.

Note that the file follows the following format:

Letter Task
T todo
D deadline
E event

This is an example of a sample text file:


Glossary

Term Description
Command Line Interface The horizontal pale yellow box on bottom left corner of the application
Mark-up A grey highlight over the words
Timestamp A sequence of characters or encoded information identifying when a certain event occurred, usually giving date and time of day