Skip to content

Latest commit

 

History

History
740 lines (482 loc) · 24 KB

File metadata and controls

740 lines (482 loc) · 24 KB

NoteNote Level 4 - User Guide

By: Team CS2113T T09-3 Since: Mar 2019 Licence: MIT

1. Introduction

Welcome to NoteNote (NN)!

If you’re looking for an application to organize your projects you’ve come to the right place! But that’s not all NoteNote can do! NoteNote can also keep track of individual tasks, analyze your productivity and share your To-Do list with your friends!

We designed the application ground up for computing students, so you can say that NoteNote is designed for computing students, by computing students, so you can be sure that it will fulfil all your project management needs!

Built for computing students, NoteNote uses minimal (GUI) elements, instead opting for a faster Command Line Interface (CLI) while maintaining the benefits of the GUI. So if you can type fast and are used to command line, NoteNote is sure to help manage your task faster than other traditional GUI based task managers.

So just head over to our Section 4, “Quick Start” section and begin your NoteNote experience!

2. How to use this guide

There are several terms which we use throughout our guide. To make your life easier, please do read the following sections to ensure that you are able to use our User Guide to the fullest extent!

2.1. Commands Format

The examples in this guide are formatted using the following convention: Words in UPPER_CASE are the parameters to be supplied by the user e.g. in add n/NAME, NAME is a parameter which can be used as add n/John Doe.

  • Items in square brackets are optional e.g n/NAME [t/TAG] can be used as n/Sample Task 1 t/SAMPLE or as n/Sample Task 1.

  • Items with after them can be used multiple times including zero times e.g. [t/TAG]… can be used as (i.e. 0 times), t/CS2101, t/SEM1 t/SCHOOL etc.

  • Parameters can be in any order e.g. if the command specifies n/NAME ds/DESCRIPTION, ds/DESCRIPTION n/NAME is also acceptable.

  • All commands each have a shorthand equivalent alias, and their usage can be viewed below at their respective sections in the User Guide.

2.2. Icons Meaning

Various icons are also used throughout this user guide with the following context:

💡
This is a tip. Follow these suggested tips to make your life much simpler when using NoteNote!
ℹ️
This is a note. These are things for you to take note of when using NoteNote.

3. Application Overview

3.1. User Interface Layout

applayout
Figure 1. Application interface
  • Panel A: Command Box - Where your commands will be typed

  • Panel B: Results Box - Displays result for the following commands: history, taskhistory, compare, listtag; else displays either success / error message for all other commands.

  • Panel C: Project Box - Displays list of project

  • Panel D: Task Box - Displays list of tasks for a selected project

  • Panel E: Description Box - Displays long description for a selected task

Panel A, C, D are user-interactable while panels B, E are non-interactable.

Panel A will always be active, allowing you to input your commands at any time.

Upon first opening of the application, your active panel will start from C, and only upon choosing a project will your active panel change to D.

3.2. Application Layout

Ui
Figure 2. Application layout

The application has two levels, the project level and the task level, as shown. There are some commands that only works on certain levels. This is covered in detail in Sections 6 and 7. The project level contains all the projects the user has added while the task level contains the tasks of a particular project.

When you are in the project level, the Project Box (Panel C) will be active and unshaded while the Task Box (Panel D) will be inactive and shaded. Similarly, when you are in the task level, the Project Box (Panel C) will be inactive and shaded and the Task Box (Panel D) will be active and unshaded.

Refer to diagrams below on what you should expect to see when you are in the respective levels.

4. Quick Start

  1. Ensure you have Java version 9 or later installed in your Computer.

  2. Download the latest notenote.jar here.

  3. Copy the file to the folder you want to use as the home folder for your Address Book.

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

  5. Type the command in the command box or Panel A (refer to Figure 1) and press Enter to execute it.

  6. Some example commands you can try:

    • listproject : lists all projects

    • select 1 : selects the project at index 1

    • add n/Do research on Singapore history dl/1-1-2020 : adds a task of title “Do research on Singapore History” with a deadline set at “1st January 2020” to the project previously selected.

    • delete 1 : deletes the task being shown at index 1

5. Project Level Features

5.1. Navigating Between Projects

When selecting a (different) project to the view tasks of the project, always follow the 2 steps below:

  1. listproject: List all project in project list

  2. select INDEX: Select a project to view all the tasks within selected project

5.2. Project Level Commands

Commands affecting the project list / currently displayed project as a whole.
Affects Panel C.

5.2.1. Adding a project: add

Adds a new project to the System.

  • Format: add n/NAME

  • Alias: a, i.e. add is equivalent to a

💡
A project can have any number of tags (including 0)

Examples:

  • add n/History Research Paper

Outcome: Project Box (Panel C) will show the newly created project.

5.2.2. Editing a project: edit

Edits an existing project identified by the index number used in the displayed project list.

  • Format: edit INDEX n/NAME

  • Alias: e, i.e. edit is equivalent to e

Examples:

  • edit 1 n/Sample Task 1

Outcome: Project Box (Panel C) will show the updated project with the new name.

5.2.3. List projects: listproject

Command has two functions. Firstly, it lists all projects. Secondly, it is used for navigation to switch from the task list back to the project list.

  • Format: listproject

  • Alias: lp, i.e. listproject is equivalent to lp

Outcome: Project Box (Panel C) will will display all projects within project list.

width:800m
Figure 3. After executing listproject

5.2.4. Select a project: select

Selects a project identified by the index number used in the displayed project list.

  • Format: select INDEX

  • Alias: s, i.e. select is equivalent to s

ℹ️
If the immediate predecessor command is listproject, select will select a project and display tasks, else select will select a task and display task information

Examples:

  • select 1

Outcome: Task Box (Panel D) will display all tasks within selected project. Active panel is now Panel D and all commands that is executed after this would be in the context of tasks.

5.2.5. Defining a group tag: definetag

Define a group tag when you want to add multiple identical tags to multiple tasks easily. They can be carried out at both project and task level. However, group tag created exists for the entire NoteNote instance and will be lost once the user exits.

After defining a group tag, use the addtag command to add a group tag to a task of your choice. Note that duplicated group tags cannot be created.

  • Format: definetag gt/GROUPTAG t/TAG [t/MORETAGS]

  • Alias: dt, i.e. definetag is equivalent to dt

Example:

  • definetag gt/Consultation t/PrepareDemo t/PrepareQuestions

Outcome: A group tag called Consultation will be created which would contain tags PrepareDemo and PrepareQuestions.

AfterDefineTag
Figure 4. After excuting definetag
ℹ️

Group tags are only considered as duplicates in the following situations where both the group tag and child tags are identical:

  • definetag gt/sample t/TAG0

  • definetag gt/sample t/TAG0

In situations where users input definetag gt/sample1 gt/sample2 t/TAG, only the last group tag parameter (i.e. gt/sample2) will be accepted.

5.2.6. Import a project list: import

Import projects and tasks to your NoteNote instance from project list shared by a friend. New projects and tasks will be added on top of current project list.

Source file must be a JSON file and follow a specific format. See Section 10.1, “Sample JSON file for import.

This feature is recommended to be used together with export so that users need not manually generate a JSON file to import.

  • Format: import PATH

  • Alias: i, i.e. import is equivalent to i

Examples:

  • import C:\Users\Test\Desktop\import.json

💡
The full path to the JSON file has to be specified unless the file is contained within the application folder. If JSON file is contained in application folder, import .\test.json is sufficient.

Outcome: Command box will display number of projects added to project list. Projects and tasks contained in JSON file will be imported and added to current project list. Refer to diagrams below on what NoteNote will display before and after successful execution of import.

BeforeImportCommand
Figure 5. Before executing import


AfterImportCommand
Figure 6. After executing import

5.2.7. Export projects to JSON file: export

Export projects from your NoteNote instance to easily share projects and tasks with your friends. Projects are exported in JSON format and could be imported by another NoteNote instance using import.

  • Format: export [i/INDEX] o/OUTPUTPATH

  • Alias: ex, i.e. export is equivalent to ex

Examples:

  • To export currently selected project:

    1. select 1

    2. export o/C:\Users\Test\Desktop\export.json

  • To export multiple projects:

    1. export i/1,2,3 o/C:\Users\Test\Desktop\export.json

💡
Output path should be explicitly specified unless the output is to be within the application folder. If output is to be contained in application folder, the relative path export i/1,2,3 o/.\test.json is sufficient.

Outcome: JSON file will be created at output path specified.

AfterExportCommand
Figure 7. After executing export

5.2.8. Analyse progress of all projects: analyse

View number of completed tasks for each project, and percentage of each project completed.

  • Format: analyse

  • Alias: an, i.e. analyse is equivalent to an

Outcome:

AnalyseOutcome
Figure 8. Example Outcome for analyse command

Results Box (Panel B) will display number of completed tasks for each project, and percentage of each project completed, as shown in the above figure.

5.2.9. List previously entered commands: history

Lists all the commands that were previously entered in reverse chronological order.

  • Format: history

  • Alias: h, , i.e. history is equivalent to h

Outcome: Results Box (Panel B) will display all commands that were previously entered.

6. Task Level Features

6.1. Viewing Tasks of a Project

To view tasks of a project, always follow the two steps below:
1. listproject: List all projects in project list.
2. select INDEX: Select a project to view all the tasks within selected project.

6.2. Task Level Commands

Commands affecting the tasks / selected task individually.
Affects panel D.

6.2.1. Adding a task: add

Adds a task to the project identified by the index number used in the displayed project list.

  • Format: add n/NAME ds/DESCRIPTION dl/DEADLINE [t/TAG]

  • Alias: a, i.e. add is equivalent to a

💡
A task can have any number of tags (including 0).

Example:

  • add n/Decide on Research Paper Topic dl/1-1-2020

Outcome: Task Box (Panel D) will show the newly created task Decide on Research Paper Topic with deadline 1 January 2020.

6.2.2. Adding a group tag: addtag

Add a previously defined group tag to a task.

  • Format: addtag INDEX gt/GROUPTAG

  • Alias: at, i.e. addtag is equivalent to at

Example:

  • addtag 1 gt/Consultation

Outcome: Task Box (Panel D) will show the updated task with newly added tags.

AfterAddTag
Figure 9. After executing addtag
💡
Tags defined under the group tag will be visible under the task instead of the group tag itself.
ℹ️

In cases where the user input pre-defined group tags of the following, addtag INDEX gt/sample command would apply tags both TAG1 and TAG2 to task at index 1

  • definetag gt/sample t/TAG1

  • definetag gt/sample t/TAG2

6.2.3. Clearing all task: clear

Clears all task in the project that is selected.

  • Format: clear

  • Alias: cl, i.e. clear is equivalent to cl

Example:

  • clear

Outcome: Task Box (Panel D) will now show 0 task.

6.2.4. Editing a task: edit

Edits an existing task identified by the index number used in the displayed task list.

  • Format: edit INDEX [n/NAME] [ds/DESCRIPTION] [dl/DEADLINE] [t/TAG]…​

  • Alias: e, i.e. edit is equivalent to e

💡
At least 1 among the parameters of [n/NAME] [ds/DESCRIPTION] [dl/DEADLINE] [t/TAG] must be included within the command.

Example:

  • edit 1 n/Decide on Research Paper Topic dl/2-2-2020

Outcome: Task Box (Panel D) will show the updated task at index 1, with the information name and deadline changed to Decide on Research Paper Topic and 2 February 2020 respectively.

6.2.5. Locating tasks by name: find

Finds a project, task or subtask whose name contains any of the given keywords.

  • Format: find KEYWORD [MORE_KEYWORDS]

  • Alias: f, i.e. find is equivalent to f

💡
The search is case insensitive. e.g report will match Report.
The order of the keywords does not matter. e.g. final report will match report final.
find will only search among names of tasks.
Only full words will be matched e.g. Rep will not match Report.
Tasks matching at least one keyword will be returned (i.e. OR search). e.g. Report Final will return Draft Report, Final Submission.

Examples:

  • find Research

Outcome: Returns tasks containing the keyword Research. Task Box (Panel D) will be updated to display only tasks that matches the keyword.

6.2.6. Listing all tasks: list

Lists all tasks in the current project. Can also be used to show all tasks after finding a specific tasks

  • Format: list

  • Alias: l, i.e. list is equivalent to l

Outcome: Task Box (Panel D) will display all tasks in the current project

ℹ️

list should be used in the task level but if used in the project level, it will act similarly to Section 6.2.7, “List all tags: listtag

6.2.7. List all tags: listtag

List all unique tags and associated tasks within a project

  • Format: listtag

  • Alias: lt, i.e. listtag is equivalent to lt

Outcome: Result Box (Panel B) will display all unique tags and associated tasks within a project.

AfterListTag
Figure 10. After executing listtag

6.2.8. Deleting a task: delete

Deletes the specified task identified by the index number used in the displayed task list.

  • Format: delete INDEX

  • Alias: d, i.e. delete is equivalent to d

💡
The index refers to the index number shown in the displayed task list.
The index must be a positive integer 1, 2, 3, …

Examples:

  1. find Consult

  2. delete 1

Outcome: Task Box (Panel D) will no longer display the first task in the results of the find command.

6.2.9. Completing a task: completed

Marks the specified task identified by the index number used in the displayed task list as completed by adding a completed tag to it.

  • Format: completed INDEX

  • Alias: cpt, i.e. completed is equivalent to cpt

ℹ️
Completed tasks will be used as statistics for the analyse feature, unlike deleted tasks.

Examples:

  • completed 3

Outcome:

CompletedOutcome
Figure 11. Example Outcome for completed command

Task Box (Panel D) will display a completed tag for the third task, as shown in the above figure.

6.2.10. Selecting a task: select

Selects the task identified by the index number used in the displayed task list and loads the relevant information.

  • Format: select INDEX

  • Alias: s, i.e. select is equivalent to s

  • The index refers to the index number shown in the displayed task list.

  • The index must be a positive integer 1, 2, 3, …

  • This command will be active as long as the immediate predecessor command is NOT listproject else the select functionality will be targeted at a Project

Examples:

  1. find Research

  2. select 1

Outcome: Selects the first task in the results of the find command. Description Box (Panel E) will display all the details of the task selected.

6.2.11. Sorting tasks: sortDeadline

Sorts the tasks in the current project by deadline.

  • Format: sortDeadline

  • Alias: sd

Outcome: Task Box (Panel D) will be updated to display tasks sorted by their deadline in ascending order.

width:800mm
Figure 12. After executing sortDeadline
💡
Only sort after adding new tasks. Sorted tasks will remain in that order.

6.2.12. Undo previous command : undo

Restores the task list to the state before the previous undoable command was executed.

  • Format: undo

  • Alias: u i.e. undo is equivalent to u

  • Take note that if you listproject, the history of commands will be cleared, thus undo will no longer work as intended when you return to view the project tasks.

Example:

  • add n/sample task …​

Outcome: Task Box (Panel D) will display new task added to task list.

  • undo

Outcome: Add command is undone and Task Box (Panel D) will no longer display new task .

6.2.13. Redo previously undone command : redo

Reverses the most recent undo command.

  • Format: redo

  • Alias: r i.e. redo is equivalent to r

  • Take note that if you listproject, the history of commands will be cleared, thus redo will no longer work as intended when you return to view the project tasks.

Example:

  • add n/sample task …​

Outcome: Task Box (Panel D) will display new task added to task list.

  • undo

Outcome: Add command is undone and Task Box (Panel D) will no longer display new task .

  • redo

Outcome: Reverses the undo action and adds the task back to the task list. Task Box (Panel D) will now display new task once again.

6.2.14. List previously entered commands for a chosen task: taskhistory

Lists all previous commands that directly affected a selected task in reverse chronological order.

  • Format: taskhistory INDEX

  • Alias: th i.e. taskhistory is equivalent to th

ℹ️
Take note that if you listproject, the history of commands will be cleared, thus taskhistory will no longer work as intended when you return to view the project tasks.
💡
Only edit/completed/addtag/delete commands will be recorded

Example :

  • taskhistory 1

Outcome:

taskhistorysample
Figure 13. Example Outcome for taskhistory command

Results Box (Panel B) will display all previous commands which directly affects the task at index 1 (Figure 11).

6.2.15. Compares a task with its previous version: compare

Compares a selected task one version before it was edited and show the differences in the task.

  • Format: compare INDEX

  • Alias: c i.e. compare is equivalent to c

💡
compare only compares Name, Description, Deadline of a Task. Note that tags will not be compared.
ℹ️
If you listproject, the history of commands will be cleared, thus compare will no longer work as intended when you return to view the project tasks.

Example :

  • add n/sample task …​

Outcome: Task Box (Panel D) will display new task added to task list at index 1.

  • edit 1 n/sample task edited …​

Outcome: Task Box (Panel D) will display updated task at index 1 with the new name.

  • compare 1

Outcome:

comparesample
Figure 14. Example Outcome for compare command

Task Box (Panel B) will display information of current version of the task at index 1 ( sample task ) and the previous version of it ( sample task edited ) (Figure 12). Allows you to view a direct comparison of what was changed.

7. Future Enhancements [coming in v2.0]

7.1. Analyse progress of all projects: analyse

Current analyse feature will show number of completed tasks for each project, and percentage of each project completed.

Future enhancement of analyse will be more comprehensive, displaying visual graphs, charts & tables

7.2. Undo per task undotask

Current undo feature is a general execution on the overall commands that is executed.

undotask will allow you to "undo" a command that is executed on the selected task.

  • Format: undotask INDEX

Example :

  • edit 1 n/edited_name …​

Outcome: Task Box (Panel D) will update the name for the task at index 1 to reflect the new edited name.

  • undotask 1

Outcome: Task Box (Panel D) will update the name for the task at index 1 to reflect the previous name before the edit.

7.3. Redo per task redotask

Current redo feature is a general execution on the overall undo command that is executed.

redotask will allow you to "redo" from a undotask that is executed on the selected task.

  • Format: redotask INDEX

Example :

  • undotask 1

Outcome: Task Box (Panel D) will update the name for the task at index 1 to reflect the previous name before the edit.

  • redotask 1

Outcome: Task Box (Panel D) will update the name for the task at index 1 to reflect the name before undotask was executed.

8. FAQ

Q: How do I transfer my data to another computer?
A: Data can be transferred between computers by simply porting over the projectlist.json file located at the data folder. Alternatively, you could:

  1. export project list from the original computer

  2. Install NoteNote in the other computer

  3. import project list by specifying path to exported project list

9. Command Summary

Command

Description

add

Add a new project or task

addtag

Add a group tag to a task

analyse

View completion statistics for all projects

clear

Clear all tasks in project

compare

Compare current task with previous version

completed

Marks task as completed

definetag

Define a group tag

delete

Deletes project or task

edit

Edits description of project or task

exit

Exit application

export

Export projects to external JSON file

find

Find for specific project or task

help

Display help menu

history

View all commands previously entered

import

Import projects from external JSON file

list

List all projects or tasks

sortDeadline

Sorts tasks according to deadline

listproject

Go back to project list panel from task list panel

listtag

List all unique tags and associated tasks within a project

redo

Redo modifications made to task

select

Select project or task to interact with

taskhistory

View all modifications made to file

undo

Undo modifications made to task

10. Appendix A

10.1. Sample JSON file for import

{
  "projects" : [ {
    "name" : "Sample project 1",
    "tasks" : [ {
      "name" : "Sample task 1",
      "description" : "This is a sample task",
      "deadline" : "1-1-2011",
      "tagged" : [ "SAMPLE" ]
    }, {
      "name" : "Sample task 2",
      "description" : "This is a sample task",
      "deadline" : "1-1-2011",
      "tagged" : [ "SAMPLE" ]
    } ]
  }, {
    "name" : "Sample project 2",
    "tasks" : [ {
      "name" : "Sample task 1",
      "description" : "This is a sample task",
      "deadline" : "1-1-2011",
      "tagged" : [ "SAMPLE" ]
    }, {
      "name" : "Sample task 2",
      "description" : "This is a sample task",
      "deadline" : "1-1-2011",
      "tagged" : [ "SAMPLE" ]
    } ]
  } ]
}