java-chatbot-project

Sophia User Guide

Welcome to Sophia, Your Personal AI ChatBot Assistant

Sophia is designed to be more than just a chatbot; she’s your personal assistant, ready to help you manage your day-to-day tasks with ease. Whether it’s keeping track of your to-dos, scheduling events, setting deadlines, or simply reminding you of important dates, Sophia has got you covered.

Key Features of Sophia

Sophia, your AI ChatBot Assistant, is designed to simplify your daily life by offering a wide range of features. Here’s what Sophia can do for you:

GUI window

Table of Contents

  1. Getting Started
  2. List of Features
  3. Viewing Help
  4. Adding Tasks
  5. Managing Tasks
  6. Basic Conversation
  7. Summary

Getting Started

  1. Ensure you have Java 11 or above installed in your computer. If not, here’s how to.

  2. Download the latest Sophia.jar from here.

  3. Copy the file into a new folder. Make sure to name the folder in one word, for example SophiaBot, otherwise it may show error.

  4. Open a command terminal, cd into the folder you put the jar file in. Here’s how to know the filepath (Mac or Win).

  5. Use the command java -jar sophia.jar command to run the application.

  6. Now, try adding a todo task using todo bake cakes and display it using list

Refer to the Features below for details of other commands.

List of Features

Sophia understands a variety of commands to help you manage your tasks and interact with her. Below is a comprehensive list of commands you can use, along with examples of how to use them:

List: Display all your current tasks.
Usage: "list" or "lst"

Find: Search for a specific task by keywords.
Usage: "find [keyword]"

Delete: Remove a specific task from your list.
Usage: "delete [task number]" or "del [task number]"

Delete All: Clear all tasks from your list.
Usage: "delete all"

Todo: Add a new to-do task.
Usage: "todo [task description]"
Shortcut: "t [task description]"

Event: Schedule a new event.
Usage: "event [event description] /from [date/time] /to [date/time]"
Shortcut: "e [event description] /from [date/time] /to [date/time]"

Deadline: Set a new deadline for a task.
Usage: "deadline [task description] /by [date/time]."
Shortcut: "dl [task description] /by [date/time]."

Mark: Mark a task as completed.
Usage: "mark [task number]"
Shortcut: "m [task number]"

Unmark: Revert a task to incomplete status.
Usage: "unmark [task number]"
Shortcut: "um [task number]"

Help: Get assistance on how to use Sophia or clarification on commands.
Usage: "help"

Commands: Display a list of all available commands.
Usage: "commands"

Define: Creates a new shortcut or alias for a command. This allows you 
to customize how you interact with Sophia, making commands easier and 
faster to use.
 - Usage: "define [new shortcut]=[existing command]"
 - Example: If you frequently delete tasks and want 
   a quicker way to do it, you might use: "define d=delete"

Viewing help

Get assistance on how to use Sophia or clarification on commands.

Format: help or commands

Adding Tasks

1. Adding Todos todo

To add a todo task, use the following command format:

t <description> todo <description>

Replace <description> with the description of your deadline task.

Example:

todo go to gym

Expected Output:

Yay! Your task is on the board 📋. Here's what you told me to remember:
 [T][] go to gym
Bringing your total to 1 tasks. Let's keep this productivity train going! 🚂💨

2. Adding Deadlines deadline

To add a deadline task, use the following command format:

deadline <description> /by <deadline>

Replace <description> with the description of your deadline task and <deadline> with the deadline date and time.

The deadline format: yyyy/MM/dd HH:mm.

Example:

deadline submit assignment /by 2024-02-18 16:00

Expected Output:

Yay! Your task is on the board 📋. Here's what you told me to remember:
 [D][] submit assignment (by: 18 Feb 2024 16:00)
Bringing your total to 2 tasks. Let's keep this productivity train going! 🚂💨

3. Adding Events event

To add an event, use the following command format:

event <description> /from <start time> /to <end time>

Replace <description> with the description of your deadline task, replace <start time> and <end time> with the date and time.

Time format: yyyy/MM/dd HH:mm.

Example:

event tutorial zoom meeting /from 2024/02/02 1200 /to 2024/02/02 1400

Expected Output:

Yay! Your task is on the board 📋. Here's what you told me to remember:
 [E][] tutorial zoom meeting (from: 2 Feb 2024 12:00 to: 2 Feb 2024 14:00)
Bringing your total to 3 tasks. Let's keep this productivity train going! 🚂💨

Managing Tasks

1. Listing all tasks list

Command format:

list

Example:

list

Expected Output:

Here are the tasks in your list:
1. [T][] go to gym
2. [D][] submit assignment (by: 18 Feb 2024 16:00)
3. [E][] tutorial zoom meeting (from: 2 Feb 2024 12:00 to: 2 Feb 2024 14:00)

2. Mark Task as Done mark

Command format:

mark <task index>

Example:

mark 1 or m 1

Expected Output:

YAY! 🎉 We did it! Task 1 is now marked as done!
Feels good, doesn't it? Here's a high five! ✋

 [T][] go to gym

3. Unmark Task as Not Done unmark

Command format:

unmark <task index>

Example:

unmark 1 or um 1

Expected Output:

Abracadabra! Your task is back on the list, ready to conquer! 
Remember, completing tasks is a journey, not a sprint.

 [T][] go to gym

4. Delete Task delete

Command format:

delete <task number>

Example:

delete 1 or del 1

Expected Output:

Poof! ✨ Your task vanished into thin air! Here's what we said goodbye to:
 [T][] go to gym
You're now down to 2 tasks in the list.

5. Delete All Tasks delete all

Command format:

delete all

Example:

delete all

Expected Output:

All clear! 🧹✨ I've removed every single task from the list.

6. Find a Task find

Search for a specific task by keywords.

Command format:

find <keyword>

Example:

find gym or f gym

Expected Output:

If there are two tasks contain word ‘return’:

Eureka! 🎉 I found some tasks that might be what you're looking for:
[T][] go to gym
[T][X] go to gym with friends

If there is no task matching the keyword:

Hmm, my crystal ball 🔮 shows no tasks matching that description.
Maybe try a different keyword? I'm sure we'll find something! 🕵️‍♂

7. Define a shortcut define

Sophia is capable of creating a new shortcut or alias for a command. This allows you to customize how you interact with Sophia, making commands easier and faster to use.

Command format:

define shortcut=command

Example:

define d=delete

Expected Output:

Woohoo! 🎉 Shortcut 'd' is all set up for command 'delete'

If the shortcut already exists:

Uh-oh! 😕 Looks like that shortcut/command combo 
is already taken or it's a default command.

Basic Conversation

Sophia is designed to be more than just a task manager; she’s also here to engage in basic conversations, making your interactions more enjoyable and lively. Below are examples of simple conversational exchanges you can have with Sophia:

Example:

how are you

Expected Output:

Running at optimal efficiency! Thanks for checking in. 🤖

Example:

what can you do

Expected Output:

From managing tasks to telling jokes, I'm here to make life a tad easier. What's on your mind?

Example:

tell me a joke

Expected Output:

Why don't skeletons fight each other? They don't have the guts.

Sophia ChatBot Commands

Below is a table of commands you can use with Sophia, your AI ChatBot Assistant, along with descriptions of what each command does.

Command Description
list Displays all your current tasks.
find Searches for a specific task by keywords.
delete Removes a specific task from your list.
delete all Clears all tasks from your list.
todo Adds a new to-do task.
event Schedules a new event.
deadline Sets a new deadline for a task.
mark Marks a task as completed.
unmark Reverts a task to incomplete status.
help Provides assistance on how to use Sophia or clarification on commands.
commands Displays a list of all available commands.
define Creates a new shortcut or alias for a command