User Guide
Table of Contents
1. Introduction
2. Quick Start
3. Features
3.1 View Command List
3.2 Add Note
3.3 List Notes
3.4 View Note
3.5 Edit Note
3.6 Find Notes
3.7 Pin Note
3.8 Archive Note
3.9 Unarchive Note
3.10 Delete Note
3.11 Create Tags
3.12 List Tags
3.13 Tag/Untag Notes
3.14 Tag/Untag Events
3.15 Delete Tags
3.16 Add Event
3.17 Edit Event
3.18 Event Manager
3.19 Remind
3.20 Delete Event
3.21 Exit
4. FAQ
5. Command Summary
1. Introduction
NotUS is a quick and simple, Command Line Interface (CLI) based, note-taking application for keyboard-inclined users. NotUS allows for users to categorize notes by tagging as well as pinning the more important notes. NotUS is also designed to assist in planning timetables to highlight possible clashes.
This document describes the features found in NotUS, along with example usages. It aims to help you get familiarised with the commands used in the application.
Any points with the 💡 emoji represents an additional information. You can access a summary of commands used in the application at the end of this document.
2. Quick Start
- Ensure that you have Java 11 or above installed.
- Down the latest version of
NotUS
from here or under releases from the homepage. - Go to the folder of the download and open your command terminal*. Enter the following
java -jar Notus.jar
. Wait for the program to run. - If the program is running correctly, you should see the following:
5. Use the command help
to get a list of commands and their usages before using the application (if needed).
💡 Supported terminals are: Windows 10 Command Prompt, Windows Powershell, macOS and linux Terminals. Other terminals, such as Cygwin may not support color display.
💡 Recommended to use black background for better color contrast.
3. Features
Parameters listed in [ ] denote optional entries. In some cases, at least one of the [ ] parameters must be listed. When listing the optional entries, the brackets, ‘[ ]’, should be omitted. More information can be found under the respective commands. Texts listed in the following style refer to responses by the console running NotUS.
The following example shows how responses from the console will be displayed in this User Guide.
Example message as seen on the console
3.1 View Command List: help
Shows a list of all the commands that the user can enter.
💡 Even if you input anything beyond help, the program will understand the command. For example, help me please
will still result in the program listing the available commands and its usages.
Example of usage:
help
Expected output:
3.2 Add Note: add-n
Adds a new note to the list of note items (think of it as a notebook).
Format: add-n /t TITLE [/tag TAG_1] [/tag TAG_2]... [/pin ISPIN] [/archive ISARCHIVE]
💡 Each note has to have a UNIQUE title and it is CASE-INSENSITIVE.
💡 As an extension to the above point, new notes cannot have the same title as those archived.
💡 One can choose to add a TAG
or/and ISPIN
, ISARCHIVE
. These parameters are optional.
💡 Set ISPIN
to “true” if you want the note to be pinned. Any other input value will leave the note unpinned.
💡 Set ISARCHIVE
to “true” if you want the note to be archived. Any other input value will leave the note unarchived.
Subsequently, the application prompts the user to enter the content of the note.
Example of usage:
add-n /t JavaDocs /tag CS2113 /pin true
OR
add-n /t JavaDocs /pin true
OR
add-n /t JavaDocs /tag CS2113
Enter Note:
*/del to delete previous line*
*/end on a new line to end note input*
Test Note line 1
Line 2
/end
💡 Note content must have at least 1 line.
💡 Use /del
to delete the previous line.
💡 Use /end
on a new line to denote the end of the note.
Expected output:
3.3 List Notes: list-n
Shows a list of all the notes in the notebook.
Format: list-n [/tag TAG_1] [/tag TAG_2]... [/sort DIRECTION] [/archive]
- Specifying [/archive] will ONLY show archived notes. Even if the other optional parameters are listed, archived notes nor will any other notes be filtered or sorted.
- Specifying [/tag TAG] will only show the notes with the relevant tag.
- Specifying [/sort DIRECTION] will show the sorted list in ascending or descending alphabetical order according to the title of the notes.
Example of usage:
list-n /tag CS2113
list-n /sort up
list-n /archive
💡 Use /sort up
to display the list of notes in ascending order (A-Z).
💡 Use /sort down
to display the list of notes in descending order (Z-A).
💡 The archived notes will ONLY be listed in chronological order.
💡 The content of the note is truncated, thus partial content may be displayed when listing the notes. To view the full content of a particular note, use the view note command.
💡 Even if you input anything beyond list-n
or /archive
without the command delimiter (/
), the program will execute the command. For example, list-n the notes
or list-n /archive test example
will still result in the program listing the notes/archived notes.
Expected output:
3.4 View Note: view-n
View the selected note.
Format: view-n [/i INDEX] [/t TITLE]
- Views the note at that index or with the specific title entered. The index refers to the index number shown in the displayed note list. The index must be a positive integer (1, 2, 3, …).
- At least one of the optional fields must be provided.
- If both the fields are provided, only the first one entered will be used to search for the note.
Example of usage:
view-n /i 1
view-n /t JavaDocs
Expected output:
3.5 Edit Note: edit-n
Edits an existing note.
Format: edit-n /i INDEX [/t TITLE] ([/add INDEX STRING] OR [/ln LINE_INDEX CONTENTS] OR [/del INDEX]) [/c CONTENT] [/tag TAG TAG_COLOR /tag TAG1 TAG_COLOR...]
- Edits a note at the specified INDEX. The index refers to the index number shown in the displayed note list. The index must be a positive integer (1, 2, 3, …).
- Only multiple use of the same type prefix [/add LINE_INDEX CONTENT], [/ln LINE_INDEX CONTENT], [/del LINE_INDEX] can be used per edit.
- [/add LINE_INDEX CONTENT] inserts the CONTENT at the specified LINE_INDEX to the note.
- [/ln LINE_INDEX CONTENT] edits the CONTENT of the specified LINE_INDEX in the note.
- [/del LINE_INDEX] deletes the CONTENT of the specified LINE_INDEX in the note.
- At least one of the optional fields must be provided.
- Existing values will be updated to the input values.
- When editing tags, the existing tags will be removed, while the non-existing tags will be added.
💡 Each note has to have a UNIQUE title and it is CASE-INSENSITIVE.
💡 As an extension to the above point, new notes cannot have the same title as those archived.
💡 Note content must have at least 1 line.
Example of usage:
edit-n /i 2 /t JavaDocs Notes
edit-n /i 2 /ln 1 Line 1 /c @param refers to parameters
edit-n /i 2 /add 2 Line 2.1 /add 3 Line 2.2
edit-n /i 2 /del 1 /del 2
Expected output:
3.6 Find Notes: find-n
Finds the notes and return a list of notes that contain the keyword(s) in the title.
Format: find-n KEYWORDS
Example of usage:
find-n C++ to Java
find-n Java
Expected output:
3.7 Pin Note: pin-n
Pins an unpinned note to the top of the note list or unpin a pinned note.
Format: pin-n [/i INDEX] [/t TITLE]
- Pins a note to the top of the list. A pinned note will be unpinned. The index refers to the index number shown in the displayed note list. The index must be a positive integer (1, 2, 3, …).
- At least one of the optional fields must be provided.
- If both fields are provided, only the first one will be used to pin the note.
Example of usage:
pin-n /i 1
pin-n /t JavaDoc
Expected output:
3.8 Archive Note: archive-n
Archives a note.
Format: archive-n [/i INDEX] [/t TITLE]
- The content of archived notes are unable to be viewed. To view the content, you would need to unarchive the notes first.
- The archived note will no longer be visible in the main notebook. To view the list of archived notes refer to
list-n
. - The index refers to the index number shown in the displayed note list. The index must be a positive integer (1, 2, 3, …).
- At least one of the optional fields must be provided.
Example of usage:
archive-n /i 1
archive-n /t JavaDoc
Expected output:
3.9 Unarchive Note: unarchive-n
Unarchives a note.
Format: unarchive-n [/i INDEX] [/t TITLE]
- The index refers to the index number shown in the displayed note list. The index must be a positive integer (1, 2, 3, …).
- At least one of the optional fields must be provided.
Example of usage:
unarchive-n /i 1
unarchive-n /t JavaDoc
Expected output:
3.10 Delete note: delete-n
Deletes an existing note.
Format: delete-n [/i INDEX] [t/TITLE]
- Deletes the note at that index or with the specific title entered. The index refers to the index number shown in the displayed note list. The index must be a positive integer (1, 2, 3, …).
- At least one of the optional fields must be provided.
💡 Partial title input is NOT possible.
Example of usage:
delete-n /i 1
delete-n /t JavaDocs
Expected output:
3.11 Create Tags: create-t
Create tags.
Format: create-t /tag TAG [TAG_COLOR] [/tag TAG]...
- Creates a tag with the name TAG. TAG can only be a single word.
- [TAG_COLOR] is an optional input to specify the tag color to display. The possible colors are red, green, blue, yellow, purple, cyan, white. If no color is specified, or an invalid input is entered, the color of the tag will be set to the default white color. This applies to all other inputs that have
/tag TAG [TAG_COLOR]
as an optional field as well. - The user can create multiple tags within a single line.
💡 Creating a tag that already exists will override the tag color.
Example of usage:
create-t /tag CS2113
create-t /tag important red /tag CS2113 blue
Expected output:
3.12 List Tags: list-t
Shows a list of tags that have been created.
Example of usage:
list-t
Expected output:
3.13 Tag/Untag Notes: tag-n
Tags or untags a note with the given tag name.
Format: tag-n /i INDEX /tag TAG [TAG COLOR] [/tag TAG]...
- Tags a note with a given TAG. If the note already contains the TAG, the tag will be removed from the note.The index refers to the index number shown in the displayed note list. The index must be a positive integer (1, 2, 3, …).
- The user can create tag or untag multiple tags to a note within a single line.
💡 If the user tries to tag a non-existing tag to a note, the application will automatically create a new tag, and add the tag to the note.
Example of usage:
tag-n /i 1 /tag CS2113
tag-n /i 1 /tag CS2113 /tag important
Expected output:
3.14 Tag/Untag Events: tag-e
Tags or untags an event with the given tag name.
Format: tag-e /i INDEX /tag TAG [TAG COLOR] [/tag TAG]...
- Tags a note with a given TAG. If the event already contains the TAG, the tag will be removed from the event.The index refers to the index number shown in the displayed event list. The index must be a positive integer (1, 2, 3, …).
- The user can create tag or untag multiple tags to an event within a single line.
💡 If the user tries to tag a non-existing tag to an event, the application will automatically create a new tag, and add the tag to the event.
Example of usage:
tag-e /i 1 /tag CS2113
tag-e /i 1 /tag CS2113 /tag important
Expected output:
3.15 Delete Tags: delete-t
Deletes a tag from the list of tags and remove the tag from the related notes and events.
Format: delete-t /tag TAG [/tag TAG]...
- Deletes the tag with the name TAG.
- The user can delete multiple tags within a single line.
- Notes and events with the tag, will have the tag removed.
Example of usage:
delete-t /tag CS2113
Expected output:
3.16 Add Event: add-e
Adds an event to the list.
Format: add-e /t TITLE /timing DATETIME [/end DATETIME] [/repeat REPEAT] [/stop REPEAT_END] [/remind REMIND] [/tag TAG_1] [/tag TAG_2]...
- Events have a default duration of 1 hour if [/end] is not specified.
- Events must end on the same day they start.
- Events cannot end before they start
- Specifying [/end DATETIME] will set the event to end a specific time.
- Specifying [/repeat RECURRING] will set the event as a recurring event.
- Specifying [/remind REMIND] will set the program to remind the event.
💡 DATETIME format pattern “yyyy-MM-dd HH:mm”
💡 Repeat inputs can be daily
, weekly
, monthly
, yearly
💡 Remind inputs can be [1-7]-day
or 1-week
💡 Remind inputs can be chained to indicate multiple reminders
Example of usage:
add-e /t CS2113 Tutorial /timing 2020-10-30 13:00 /end 2020-10-30 19:00 /repeat weekly /remind 1-day 3-day
Expected output:
3.17 Edit Event: edit-e
Edits an existing event in the event list/timetable.
Format: edit-e /i INDEX [/t TITLE] [/timing DATETIME] [/end DATETIME] [/repeat REPEAT] [/stop REPEAT_END] [/remind-add REMIND] [/remind-drop REMIND] [/remind-clear]
- Edits the event at the specified INDEX. The index refers to the index number shown in the displayed events list. The index must be a positive integer (1, 2, 3, …).
- At least one of the optional fields must be provided [/t TITLE], [/timing DATETIME], [/end DATETIME], [/repeat REPEAT], [/stop REPEAT_END], [/remind-add REMIND], [/remind-drop REMIND], [/remind-clear] [.
- Existing values will be updated to the input values.
- End date time must be on the same day as start date time.
- Specifying [/timing DATETIME] without [/end DATETIME] will have event duration maintained and end datetime changed. If end datetime would be past 2359, end datetime would be set at 2359.
- Specifying [/repeat RECURRING] will set the event that type of event.
- Specifying [/remind-add REMIND] will add that reminder to the event if it does not exist.
- Specifying [/remind-drop REMIND] will delete that reminder from the event if it exists.
- Specifying [/remind-add REMIND] will remove all reminders in the event if any exists.
💡 DATETIME format pattern “yyyy-MM-dd HH:mm”
💡 Repeat inputs can be none
, daily
, weekly
, monthly
, yearly
💡 Remind inputs can be [1-7]-day
or 1-week
💡 Remind inputs can be chained to indicate multiple reminders
Example of usage:
edit-e /i 1 /t CS2113 Lecture /timing 2020-10-30 16:00 /stop 2020-12-01 12:00 /remind-clear
Expected output:
3.18 List Events: list-e
Display the module timetable on the current day.
Format: list-e [/timing Year] [/timing Year-Month]
- You can only specify either [/timing Year] or [/timing Year-Month] not both. If both is included, only the last one will be read.
- Having no optional prefixes will display all events stored. Recurring events will only display once. Index shown is the index used when deleting or editing events.
- Specifying [/timing Year] will display all events for the year. Will include repeated events.
💡 Year format pattern “YYYY”. - Specifying [/timing Year-Month] will display all events for that month. Will include repeated events.
💡 Year format pattern “YYYY-MM”.
Example of usage:
list-e /timing 2020-10
Expected output:
3.19 Remind: remind-e
Reminds the specified event from the timetable.
Format: remind-e
- Shows all reminders for today.
Example of usage:
remind-e
Expected output:
3.20 Delete Event: delete-e
Adds a new item to the list of todo items.
Format: delete-e INDEX
- Deletes the event at the specified INDEX. The index refers to the index number shown in the displayed event list (list-e). The index must be a positive integer (1, 2, 3, …).
Example of usage:
delete-e 1
Expected output:
3.21 Exit: exit
Exits the program.
💡 Even if you input anything beyond exit, the program will terminate. For example, exit the program
will still result in the program being terminated.
Example of usage:
exit
4. FAQ
Q: How do I transfer my data to another computer?
A: The notes along with the list of all the notes and event are automatically saved in a human editable text file, whenever there is a change made. Once exported, you can transfer the file over to the new computer and load the data.
Q: What if the app crashes half way through what happens to my data?
A: All the data is saved in a text file whenever there are changes made throughout the program. Hence, you can start NotUS again and the updated data will be loaded in.
Q: What if I don’t remember some of the commands?
A: Type the command help
for a list of useful commands.
5. Command Summary
Target Action | Example Code(s) |
---|---|
View command list | help |
Add note | add-n /t JavaDocs /tag CS2113 /pin true add-n /t JavaDocs /pin true add-n /t JavaDocs /tag CS2113 add-n /t JavaDocs @param refers to param @return refers to item to be returned |
Archive note | archive-n /t JavaDocs archive-n /i 1 |
Unarchive note | unarchive-n /t JavaDocs unarchive-n /i 1 |
List notes | list-n list-n /archive list-n /tag CS2113 list-n /sort up Or any combination with /tag and /sort |
View note | view-n /i 1 view-n /t JavaDocs view-n /i 1 /t JavaDocs |
Edit note | edit-n /i 2 /t JavaDocs Notes edit-n /i 2 /ln 1 /c @param refers to parameters edit-n /i 2 /tag Notes Or any combination with /t , [/ln + /c ] and /tag |
Target Action | Example Code(s) |
---|---|
Find notes | find-n Java |
Pin note | pin-n /t JavaDocs Notes pin-n /i 1 |
Delete note | delete-n /t JavaDocs Notes delete-n /i 1 |
Create tag | create-t /tag Important red create-t /tag NUS /tag CEG yellow |
List tags | list-t |
Tag/Untag | tag /i 1 /tag Important tag /i 1 /tag Important red tag /i 1 /tag Important red /tag NUS /tag CEG yellow |
Delete tag | delete-t /tag Important delete-t /tag Important red delete-t /tag NUS /tag CEG yellow |
Add event | add-e /t CS2113 /timing 2020-10-16 16:00 add-e /t CS2113 Lecture /timing 2020-10-16 16:00 /repeat ... add-e /t CS2113 Lecture /timing 2020-10-16 16:00 /end 2020-10-16 18:00 /remind ... Or any combination with /end , /repeat , /stop and /remind |
Edit event | edit-e /i 1 /t CS2113 Lecture edit-e /i 1 /timing 2020-10-16 15:55 edit-e /i 1 /repeat ... edit-e /i 1 /remind ... Or any combination with /t , /timing , /end , /repeat , /stop and /remind |
Target Action | Example Code(s) |
---|---|
Event Manager | list-e list-e /timing 2020-02 |
Remind | remind-e |
Delete event | delete-e 1 |
Exit | exit |