By: AY1920S2-CS2103T-W16-1 Since: Jan 2020 Licence: NUS

CoverPage

1. What is BB Productive? (Fyonn)

Feeling unproductive lately? Try BB Productive! BB Productive is a productivity application that consists of three main features: a task manager, a Pomodoro timer and a Pet, to help you get rid of those unproductive days. It is targeted towards students who are prone to procrastination and prefer to work with a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast and needs help feeling motivated, BB Productive can help you to start your journey of productivity! Interested? Jump to Section 3. Quick Start to get started. Enjoy!

2. About this document (Fyonn)

This document provides information about the multitude of features in BB Productive, and how you can best utilise them to your benefit.

Note the following symbols and formatting used in this document:

Symbols:

This formating indicates important information.
This formatting indicates that this is additional information

Formating:

Formatting

Meaning

preface

A paragraph in italics indicates that the paragraph is a preface to the section below.

Command

A grey highlight indicates that the word is a command to be entered by the user.

UPPER_CASE

Words in UPPER_CASE are the parameters to be supplied by the user E.g. add n/NAME

NAME is a parameter. It can be used as add n/Math Homework.

[Square brackets]

Items in square brackets are optional

E.g. n/NAME [t/TAG] can be used as

n/Math HomeWork t/Urgent

or

as n/Math Homework

…​

Items with …​ after them can be used multiple times or not used at all.

E.g. [t/TAG]…​ can be used as

t/friend

or

t/friend t/family

Indexes refer to the current tasklist on display, it does not refer to the indices of the entire task list. Note also that indexes start from 1 and not 0.

Parameters can be in any order e.g. if the command specifies pet/PETNAME pom/POMDURATION, pom/POMDURATION pet/PETNAME is also acceptable.

3. Quick Start (Arthur)

This section provides a quick guide on firing up BB Productive.

BBProductiveQuickStart Graphic
Figure 1. Overview of BBproductive features

Follow the steps below to install and launch BB Productive:

  1. Ensure you have Java 11 or above installed in your Computer.

  2. Download the latest bb_productive.jar here.

  3. Copy the file to the folder you want to use as the home folder for your BB Productive.

  4. Double-click the file to start the app. The GUI should appear in a few seconds.

Ui
Figure 2. Image of User Interface on boot.
  1. Type the command in the Pet Chat (Command box) and press Enter to execute it.
    e.g. typing help and pressing Enter will open the help window.

  2. Some example commands you can try:

    • addn/Do math homework des/pages 1-2 r/11/11/21@23:59 : adds a task of the name Do math homework to the Task List with a date and time that follows the r/ prefix and a pages 1-2 description.

    • delete3 : deletes the 3rd task shown in the list

    • exit : exits the app

  3. Refer to Section 6 Features for details of each command.

4. Terminology (Branson)

This section provides a quick description for the common terminologies used in this user guide.

Task: A task is something that you need to complete. It is represented as a card on the right side of the window. Set reminders, add tags and more to better manage your tasks!

Pomodoro: A productivity technique that consists of doing focused work for 25 minutes followed by a 5-minute break. This technique prevents you from tiring out while doing work.

Pet: The pet you will interact with to manage your tasks and Pomodoros. You can also level up the pet by completing more tasks/Pomodoros.

5. Graphical User Interface (Permas)

This section gives you a brief overview of the various GUI components present in BB Productive.

5.1. Pet View

The Pet View is where you can view your pet, its name, level, and experience points. With diligent usage of BB Productive, you can increase the experience points of your pete. The pet will evolve as it levels up, encouraging you to work harder! Further details of the Pet can be found in Section 6.2. Pet.

pet
Figure 3. Pet

5.2. Command Box

The Command Box is the one-stop place for you to input any commands to interact with the app. Simply click the box and type the command of your choice. Hit [Enter] on your keyboard to execute the command. The program will respond to each command through the Pet Dialog Box. Occasionally, the app may also prompt you for your response via the Dialog Box. You can reply through the command box as well.

command box
Figure 4. Command Box

5.3. Tasks Tab

The Task Tab is where you can view your task list and the Pomodoro Timer. Any changes made to the task list through the commands will be reflected here! The Pomodoro Timer activates when you run the Pom Command as described in Section 6.3. Pomodoro.

tasks tab
Figure 5. Tasks Tab

5.4. Statistics Tab

The Statistics Tab shows you your progress on the Daily Challenge and your Productivity Charts. They help you to visualize your productivity over the past week, so that you can reflect on your progress to hit your productivity goals! You can find out more about this tab in Section 6.4. Statistics.

stats tab
Figure 6. Statistics Tab

5.5. Settings Tab

The Settings Tab lets you customize the app to your preference. In this tab, you can view your configurations for Pet Name, Pomodoro Duration, and Daily Challenge Target. To find out more about how you can use this tab, head to Section 6.11. Set Commands.

settings tab
Figure 7. Settings Tab

6. Features

This section describes the features of BBProductive.

6.1. TaskList (Branson)

tasks

6.1.1. Task Fields

Use add and edit INDEX attached with any combination of the following task field prefixes to perform them. These prefixes can be in any order.

Constraints for fields are italicized in the Notes column.

Table 1. Task Fields
Field Format Notes

Name

n/NAME
Eg. n/Any name is possible

  • Name must be in alphanumeric characters or spaces. It cannot be blank.

  • Name provided has to be unique in the tasklist and is used as an identifying field.

  • It is the only compulsory field when creating a task.

Description

[des/DESCRIPTION]
Eg.des/Lab of weightage 20% on NP-Completeness

  • Description that accompanies a task

Priority

[p/PRIORITY]
Eg. p/1

  • Priority can only be 1 or 2 or 3

  • If not provided, the task is created with a low priority ie. 1.

  • PRIORITY can only be one of these numbers 1,2,3 ranging from low to high in that order.

Reminder

[r/REMINDER]
Eg. r/10/06/20@12:30

  • Format should be in DD/MM/YY@HH:mm

  • A DateTime value in this format DD/MM/YY@HH:mm.

Recurring tag

[rec/FREQUENCY]
rec/d

  • Recurring tag should either be d or w

  • Options are `d` or `w` which respectively are daily or weekly.

Tag

[t/TAG]…​
t/errand t/home

  • Tags should be in alphanumeric characters only

  • There can be multiple tags or none at all.

  • spaces and symbols are disallowed.

Done

No prefix available

  • When a task is created, it is set as undone.

  • Task can then be marked with done INDEX.

6.1.2. Add Command

Command: add n/This is a new task p/3 des/We have alot of work to do today! t/This t/Is t/Fun

Alright, time to start your productivity journey! Let’s add our very first task by using the command stated above.

When adding tasks, you only need the n/ prefix as only the name field is compulsory. .Add success
add success

6.1.3. Edit Command

Command: edit INDEX n/Look edited the task des/BB Productive is the best app I’ve ever used t/NewTag

Made a mistake when adding your task? don’t worry you can always edit your tasks! But first, a few things to take note of:

  • You can edit all fields except the done field.

  • Please indicate an INDEX so that BB Productive knows which task to edit.

edit success
Figure 8. Edit success

6.1.4. Done Command

Command: done INDEX INDEX…​

After some hard work, you have finally finished a task! Let us now mark it as done by using the done command. You can also mark multiple tasks as done by using space to separate the indexes.

done success
Figure 9. Done success

6.1.5. Sort Command

Command: sort FIELD FIELD…​

Oh boy, after a couple of hours, you have filled your day with so many activities! You can choose to change the current ordering of your task list to something more suitable by sorting it by one or more of these task fields:

All fields with r- prepended refers to a reverse of the original.

  1. priority → Shows task of highest priority first.

  2. r-priority → Shows task of lowest priority first.

  3. done → Shows undone tasks first.

  4. r-done → Shows done tasks first.

  5. date → Shows tasks with reminders closer to today first then tasks without reminders.

  6. r-date → Shows tasks with no reminders first then tasks with reminders further from today.

  7. name → Shows tasks in alphanumeric order.

  8. r-name → Shows tasks in reverse alphanumeric order.

Sort order is removed after any find command is applied.
However, it, remains when any other task commands are applied - add, edit, done, delete, etc.
Also, sort orders are not retained after closing the application

sort success
Figure 10. Sort success

6.1.6. Find Command

Command: find PHRASE t/TAG…​

Even after sorting, you still have so many tasks in your tasklist. You can perform a search for tasks by name or tag to find the tasks most important to you.

  • You can choose to search by both name and tag, just name or just tag.

  • For phrase searching, it is tolerant to typographical errors and will show tasks that differ from the PHRASE by a little.

  • However, tag names provided must be an exact match (ignoring casing of letters).

Filtered selection is unapplied when the add or edit commands are used

find success
Figure 11. Find success

6.1.7. Tag Command

Command : tag

Wondering what types of tasks you have? You can view all existing tags in BB Productive by entering the Tag command!

tag success
Figure 12. Tags success

6.1.8. Delete Command

Command: delete INDEX INDEX…​

Tasklist getting overcrowded? Use the delete command to delete one or more tasks To clean up your tasklist!

delete success
Figure 13. Delete success

6.1.9. Clear Command

Command: clear

It’s been a productive month and you want to start on a clean slate. You may delete all tasks from your list by issuing a clear command.

clear success
Figure 14. Clear success

6.2. Pet (Fyonn)

This section provides information about the virtual pet

6.2.1. What’s Pet?

BB productive provides you with a virtual pet to act as your companion to motivate you to do work. It is also a visual embodiment of your productivity so as to remind you of your productivity progress. The pet achieves these functions through three components: Experience points, Evolution and Pet’s Mood.

6.2.2. Experience (XP) Points

Just like in a game, the pet has experience (XP) points that are used to level up. Notice whenever a task is done, the XP increases by 5 points? You can also increase the XP by 25 points when you finish a Pomodoro cycle. When the XP points accumulates to a total of 100, the pet levels up! Through this reward system, you will be motivated to start doing your work and completing them! Proceed to the next section for information about the evolution of the pet.

UG Done before
Figure 15. Done Before
UG Done Finish
Figure 16. Done After

6.2.3. Evolution

The pet has three stages in its evolution: the baby, the teenager and the dad. Each level can be achieved after every successive accumulation of 100 XP points. Can’t wait to see your pet grow? Start doing work to gain more XP!

BBProductiveGrowing
Figure 17. Evolution of Pet

6.2.4. Pet’s Mode

Oh no! Is your pet looking like it is angry? You might be wondering why. That is because the pet has two moods: Happy and Hangry. When the pet is happy, that means you have been consistent in your work. Good Job! However, when the pet is hangry, that indicates that you have not been doing work for awhile. The pet acts as a visual cue to remind you when you have not been productive in awhile. Want to make your pet happy again? Start doing work now!

hangry moods examples
Figure 18. Example of different hangry modes

6.3. Pomodoro (Hardy)

In this section, let’s learn how you can take advantage of the Pomodoro feature to boost your productivity! Learn all the commands you can use for Pomodoro.

6.3.1. What’s Pomodoro?

In the late 1980s, a gentleman named Francesco Cirillo devised a time management method called the Pomodoro Technique. Essentially, a single cycle consists of two parts, 25 minutes of work, followed by a 5 minutes break. This cycle repeats for as long as you want to get work done.

6.3.2. Let’s get started!

BBProductive’s Pomodoro feature is very easy to use. Let’s take a look at the following steps!

Step 1: pom a task to get started!

You can activate the Pomodoro timer and set a task you want to focus on. The default timer for a work cycle is 25 minutes. However, you can add an optional timer amount field for a particular cycle.

Format: pom <index> [tm/<amount in minutes>]

Indexes refer to the current tasklist on display, it does not refer to the indices of the entire task list. Note that indexes start from 1 and not 0.

You can input a value (decimals allowed) following the prefix tm/ to represent your desired amount of time in minutes for a particular Pomodoro cycle.

After you’ve successfully pommed a task, you can see the task’s name in the bar at the top of the task list. The timer there will start counting down as well.

pom success
Figure 19. Example screen when pom is successfully executed
Step 2: pom pause if you need to take a quick break.

Not exactly a break. But let’s say you need to leave your desk real quick. You can pause a running Pomodoro timer by simply calling pom pause.

Once you’ve paused Pomodoro, the timer will freeze and remain so until you resume in the next step.

pom pause
Figure 20. Example screen when pom is successfully paused
Step 3: pom continue to get back to work.

Now that you’re back and ready to get back to work, simply use pom continue to resume for where you left off.

pom continuing
Figure 21. Example screen when pom is successfully resumed
Step 4: Time’s up!

Once the timer expires, the app will prompt you if you have finished the task. You need only respond with Yes (Y) or No (N) in order to proceed.

pom time expire
Figure 22. Prompt when the Pomodoro timer expires
Step 5: Break-time!

Afterwards, the app will prompt you if you would like to begin a 5-minute break (as per the Pomodoro technique). Similarly, you need to respond with Yes (Y) or No (N). Responding with No(N) will set the app to its neutral state. Responding with a Yes(Y) will start the break timer.

pom prompt break
Figure 23. Prompt checking if you’d like to take a break

You will not be able to execute other commands during these prompts. Please respond to the prompts to proceed.

Back to Step 1

At the end of the break, the app will return to its "neutral" state. Wish to start on another Pomodoro cycle? Head back to step 1 for another journey of productivity.

pom break end
Figure 24. End of Pomodoro cycle screen

6.4. Statistics (Permas)

As you continue to use BB Productive, you may start to wonder how productive you have been over time. This is where our Statistics feature comes in! Simply type in the command stats to access the Statistics Tab and track your productivity. Look out for the background color of the "Statistics" Tab. If it turns orange after you run the command, you are on the correct tab.

stats tab
Figure 25. Statistics Tab

The Statistics Tab consists of two features to help you keep track of your productivity : the Daily Challenge and the productivity charts.

6.4.1. Daily Challenge

The Daily Challenge tracks the total duration you have completed with the Pomodoro running on the current day. The more you run the Pomodoro, the more the progress bar fills, and the closer you are to clearing the challenge! Try to clear the Daily Challenge every day to hit your productivity goals!

You can customize the duration you aim to achieve on a daily basis by using the Set Command as described in Section 6.11 Set Commands.

6.4.2. Productivity Charts

The Productivity Charts tracks two main data points daily. Firstly, it tracks the number of tasks you have completed. Secondly, it tracks the total duration you ran the Pomodoro. With this information, you can gauge your productivity over time and make proper adjustments to your schedule to improve your productivity. If you start noticing the orange bars getting shorter, realize that it is time to buckle up and work harder, or else you may lose your productivity momentum!

6.5. AutoComplete (Branson)

As much as you enjoy typing, we’ve added some extra grease to help you type even faster. You can trigger our intelligent autocomplete function by pressing tab on the keyboard.

You can expect:

  • Auto completion of command words: del → delete

AC command
Figure 26. Command word auto complete
  • Addition of prefixes for common values: 20/10/20@10:30 → r/20/10/20@10:30

prefix complete
Figure 27. Prefix auto complete
  • Auto completion of sort fields sort prisort priority

sort complete
Figure 28. Sort auto complete
  • Removal of indexes that are invalid [not a positive integer or out of the tasklist’s size]

AC removal success
Figure 29. Done index removal
  • If we can’t find a valid command, you will observe feedback like below:

complete fail
Figure 30. Auto complete not found

6.6. Reminders (Arthur)

6.6.1. What’s a reminder?

BBProductive provides you with the option to remind you during those forgetful times. BBProductive can help to remind you to do time-sensitive tasks such as taking temperature in the afternoon. When the time for the reminder has arrived, BBProductive alerts you to do the task! Never forget to buy milk or any other time-sensitive task ever again!

6.6.2. How do you use it?

You can add a reminder to your task by adding r/DD/MM/YY@HH:mm when editing or adding a task. A pop up containing the task name and description will then appear reminding you to complete the task at the specified date and time.

6.6.3. Command r/DD/MM/YY@HH:MM

Add Task with reminder

Add a task with a reminder using the following command add n/<name> r/DD/MM/YY@HH:mm. You can also include the other flags such as t/, des/ and more.

For example: add n/Buy Milk r/11/11/20@23:59.

After you have successfully added the task, you will see the following success message in the dialogue box!

AddTaskReminderUp
Figure 31. Success for adding a task with reminder on result display(top).
AddTaskReminderDown
Figure 32. Success for adding a task with reminder on result display(scroll to bottom).
reminder add success
Figure 33. Success for adding a task with reminder(top).
  • Firstly, the format for the date must adhere strictly to the r/DD/MM/YY@HH:mm format or else it will not be recognized.

  • Secondly, the date can only be set in the future and not the past.
    An error message will be shown on the result display if either of the 2 aforementioned issues is breached. This applies when editing a task to have a reminder as well.

Edit Task with reminder

Edit a task to include a reminder with the following command edit <index> r/DD/MM/YY@HH:MM. You can also include the other flags such as t/, des/ and more.

For example: edit 1 r/01/11/20@11:59.

This results in a task with the reminder’s date in the task card as well as result display giving feedback.

reminder edit success
Figure 34. Success for editing task’s reminder, reminder date appears on task card.

6.7. Recurring (Arthur)

6.7.1. What’s Recurring?

Have a task you need to complete every day or every week? BBProductive has you covered with recurring tasks! Add a recurring task and the task will be marked as unfinished every day or every week? This means not having to add the same task over and over again! Furthermore, you can accompany these recurring tasks with reminders. Now you don’t have to worry about forgetting to do your daily or weekly tasks!

6.7.2. How do you use it?

Add a recurring attribute to your task by adding rec/d for daily recurring tasks or rec/w for weekly. This will trigger the recurring behaviour for the task, meaning tasks will be reset according to the delay you set! This means after marking a task as done, the next day (or week) it will be marked as unfinished. For reminders, BBProductive will also add a day(or week) to the reminder date! This ensures you are reminded on a recurring basis!

Add Task with recurring

Add a task with a recurring attribute using the following command add n/<name> rec/d or add n/<name> rec/w. You can also include the other flags such as t/, des/ and more.

For example: add n/Buy Milk rec/d

After you have successfully added the task, you will see the following success message in the dialogue box!

AddTaskRecurringUp
Figure 35. Success for adding a task with recurring attribute on result display(top).
AddTaskRecurringDown
Figure 36. Success for adding a task with recurring attribute on result display(scroll to bottom).

You will see the task appear in the tasklist with a recurring attribute at the side!

recurring add success
Figure 37. Success for adding recurring attribute to task card.

The format for recurring is strictly rec/d or rec/w as there are only daily and weekly recurring tasks. Any other input will be recognized as invalid and an error message will be shown on the result display.

Edit Task with recurring

Want to make an existing task recurring? You can edit a task to include a recurring with the following command edit <index> rec/d or edit <index> rec/w. You can also include the other flags such as t/, des/ and more.

For example: edit 1 rec/w.

Once completed, you will see that the task details will be updated with a recurring attribute.

EditRecurringTaskWeekly
Figure 38. Task card now has a weekly recurring attribute

6.8. Recurring behaviour when a task is marked as done (Arthur)

Mark a task as done as you would normally using the command done <index>. For a recurring task, after the stipulated amount of time(either daily or weekly), the task will be reset as unfinished.

For example: done 1 on a daily recurring task.

recurring behaviour done
Figure 39. Task initially marked as done on a task card.

After one day, the task will be set from done to unfinished, meaning the tick in the checkbox will disappear.

recurring behaviour undone resultDisplay
Figure 40. Task has been reset shown on result display.
recurring behaviour undone
Figure 41. Task has been reset as shown on the task card.

6.9. Recurring behaviour when the task has a reminder (Arthur)

Add a reminder as you would normally using the command edit <index> r/DD/MM/YY@HH:mm or add n/<name> r/DD/MM/YY@HH:mm rec/<type> if you are adding the task. For a recurring task, after the stipulated amount of time(either daily or weekly), the reminder will be incremented by the time interval if it has been triggered. This means that the reminder will be incremented by 1 day if the time interval is daily, and 7 days if the time interval is weekly.

recurring behaviour reminder
Figure 42. Task initially has a reminder for 13th April 2020 at 9:32 PM.

After one day, you will see that the reminder time is updated!

recurring behaviour new reminder
Figure 43. Task has been reset shown on task card with an updated reminder time of 14th April 2020 at 9:32 PM.

This section shows all the commands to navigate the app. There are multiple tabs that can be shown: tasklist, statistics, and settings.

6.10.1. Commands

Tasks

Command: tasks

You can call the tasks command to view the tab where your task list resides in. The orange background on the Tasks tab indicates that you are currently on this tab.

tasks

Command: stats

You can use the stats command to view the Statistics tab. The orange background on the Statistics tab indicates that you are currently on this tab.

stats

Command: settings

Use the settings command to view the Settings tab. The orange background on the Settings tab indicates that you are currently on this tab.

settings

6.11. Set Commands (Fyonn)

This section explains how to use the set commands

Tired of the name "BB"? Is 25 minutes of Pomodoro time too short for you? Want to achieve more with the daily challenge? BB productive provides you with the option to customize the various features! Simply use the set commands to customize it the way you want.

command: set [pet/PETNAME] [pom/POMDURATION] [daily/DAILYTARGET]

Parameters can be in any order e.g. if the command specifies pet/PETNAME pom/POMDURATION, pom/POMDURATION pet/PETNAME is also acceptable.

For example, you might like the name to be "Momu", the Pomodoro duration to be 30 mins and the daily challenge target to be 150 minutes. To do so, run this command:

eg. Command set pet/Momu pom/30 daily/150

UG Set Before
Figure 44. Set before

Once the set is successful, you will see this success message being displayed.

UG set successmessage
Figure 45. set success message

This is the view you will be seeing after running the set command. As you can see the pet name, Pomodoro duration and daily challenge target have been changed!

UG Set After
Figure 46. Set after

Now that you know how to use the set commands, start customising the app to better suit your needs!

Take note that there are restrictions on the values you can set. Pet Name: Only alphanumerics are allowed Pomodoro Duration: The maximum amount is 60 minutes so as to prevent you from burning out Daily Target: The maximum amount is 720 minutes

6.12. Storage (Permas)

This section describes how you can transfer saved data.

All your progress, user preferences and settings are stored in the “data” folder. If you plan to switch devices, you may transfer your progress to another computer by copying the contents of the original device’s “data” folder to the new device’s data folder. This can be done through a thumb drive.

Please check that the following files are in the “data” folder to ensure that you are transferring the correct files!

storage
Figure 47. Files in data folder

7. Command Table Summary (Hardy)

The following table summarizes all the commands that you can use. Input contained with in […​] are optional fields.

Table 2. Command Table
Command Format Example

Add

add n/NAME [des/DESCRIPTION] [p/PRIORITY] [r/REMINDER] [rec/FREQUENCY] [t/TAG…​]

add n/Finish Quiz des/Pages 3-5 p/1 r/20/03/20@19:30 rec/d t/cs2100 t/school

Edit

edit INDEX [n/NAME] [des/DESCRIPTION] [p/PRIORITY] [r/REMINDER] [rec/FREQUENCY] [t/TAG…​]

edit 2 r/10/03/21@13:00

Done

done INDEX

done 5 6 7

Delete

delete INDEX

delete 1 2 3 7

Pom

pom INDEX [tm/TIME IN MINUTES]

pom 4 tm/45

find

find PHRASE [t/TAG…​]

find mum tells me to t/MA1521

Tag

tag

tag

Sort

sort FIELD1 FIELD2 FIELD3 …​

sort done priority r-done

Tasks

tasks

tasks

Stats

stats

stats

Settings

settings

settings

Set

Set [pet/PETNAME] [pom/POMDURATION] [daily/DAILYTARGET]

Set pet/momu pom/30 daily/150

Clear

clear

clear

8. FAQ

Q: How do I transfer my data to another Computer?
A: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous BB Productive folder.

9. Command Summary

  • Add add n/Do math homework des/pages 1-2 r/DD/MM/YY@HH:mm t/tag1 tag2
    e.g. add n/Do math homework d/pages 1-2 r/09/08/20@12:30 t/Difficult InProgress

  • Edit : edit INDEX [n/NAME] [des/DESCRIPTION] [r/REMINDER]
    e.g. edit 2 n/Add Buy Feature ld/2020-03-04

  • Delete : delete INDEX
    e.g. delete 3

  • Find : find KEYWORD [MORE_KEYWORDS]
    e.g. find Quiz Essay

  • Tag: tag

  • Statistics : stats

  • Pom : pom 2 tm/5

  • List : list

  • Help : help

  • Clear : clear

  • Exit : exit