By: Team AY1920S1-CS2103T-W13-3

1. Introduction

StudyBuddyPro is a student application that aims to simplify the hassle of revision by providing a suite of tools for effective revision.

StudyBuddyPro is optimized for students who prefer to work with a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI).

Moreover, StudyBuddyPro comes geared with pre-loaded features specially catered for computing students. So whether you’re a computing student getting used to a CLI for the first time or if you’re a CLI expert who wants to reap the benefits of a fast typing speed, give StudyBuddyPro a try!

If you’re interested, head over to the Quick Start section to get started!

1.1. Callouts Signs

Do refer to the signs below that will be used across the documents for references. These will prove to be useful when you are reading this document.

Indicates information that are to be adhered as potential problems may be encountered if you are not careful.

Indicates information that are crucial to understand so that you will be able to follow the flow of the document. Confusion may arise if you do not grasp the information here.

Indicates information that are note-worthy. Do read them for more information and better understandings.

Indicates additional information that are helpful. Fret not, tips can be good to know but are not vital.

2. Quick Start

Please ensure you have Java 11 or above installed before proceeding!
  1. Download the latest version of StudyBuddyPro.jar here.

  2. Place the file in the folder you want to set as the home directory. All data and miscellaneous files associated with StudyBuddyPro will be placed in this folder.

  3. Double-click StudyBuddyPro.jar to launch the application. The GUI should appear in a few seconds, and should look like the screen shown below. If not, please refer to the first question in the FAQ for help!

    UiHighlight
    Figure 1. GUI of StudyBuddyPro application displayed on startup
  4. Type a command in the command box execute it by pressing Enter. Typed commands will appear in the CLI highlighted in the purple box in the diagram above. Refer to the Command Summary section for a quick overview of all the available commands!

  5. Output from the command will be shown in the boxes highlighted in orange and green in the diagram above. The green box is used to display a flashcard, note or cheatsheet while the orange box outputs feedback from commands.

The blue box in the diagram above with the "Flashcards", "Notes" and "Cheatsheets" logo can be used to quickly check which mode you are in! Switching into a mode will highlight the relevant mode’s logo in an orange circle, as shown in this figure.

3. Command Format / Rules

Things noted here are standardization of the User Guide. These points are absolute, unless stated otherwise in the specific section(s).

3.1. How to read the Command sections

  • Words in UPPER_CASE are parameters to be supplied by the user. E.g. add t/TITLETITLE is a parameter which can be used as add t/Midterm notes.

  • Items indicated in square brackets are optional, unless specified. E.g t/TITLE [tag/TAG] can be used as t/Midterm note tag/exam or as t/Midterm.

  • Items with …​​ after them can be used multiple times including zero times. E.g. [tag/TAG]…​ can be used as   (i.e. 0 times), tag/friend, tag/friend tag/family.

3.2. General rules for all commands

  • All commands are written in English.

  • Some command parameters are restricted to purely alphanumeric characters, while others are just required to not be blank.

  • Any indexes provided (denoted by '(index)' ) must be a positive integer (e.g. 1, 2, 3, …​).

  • All flashcards, notes, and cheatsheets can have a maximum of 10 tags.

  • Only exact matches of any searches will be returned. E.g. "noted" will return "noted" but not "note" or "notes"

  • All searches, like filter, are case insensitive. E.g. 'tag/cs2103t' will match 'tag/CS2103T' and filter tag/important will match filter tag/IMPORTANT

  • If multiple inputs are given for a particular field, only the last valid input for the field is taken, unless the field allows multiple inputs. E.g. add q/this is a question a/this is an answer q/another question → the application will only take in q/another question as the input field for question.

4. Global Commands

Global commands in StudyBuddyPro are commands that can be called regardless of which mode the user is currently in.

4.1. Entering the various modes of StudyBuddyPro: switch

Upon startup, you will be prompted to enter one of the modes before you can proceed.

4.1.1. Getting into Flashcard mode: switch fc

Switches the user to Flashcard mode regardless of where the user is.

Format: switch fc

4.1.2. Getting into Notes function: switch notes

Brings the user to Notes mode regardless of where the user is.

Format: switch notes

4.1.3. Getting into CheatSheet function: switch cs

Brings the user to CheatSheet mode regardless of where the user is.

Format: switch cs

4.2. Viewing Help: help

A pop-up dialog box will display a URL link to a help document.

Format: help

4.3. Listing all current Tags in StudyBuddyPro : taglist

Displays to you a full list of all tags you have currently in StudyBuddyPro.

Format: taglist

Expected output:

Here are all the tags in StudyBuddyPro.
Listing all tags :
[cs2100] |  flashcards : 0 notes : 3 cheatsheets : 1
[cs2101] |  flashcards : 6 notes : 2 cheatsheets : 1
[cs2104] |  flashcards : 20 notes : 8 cheatsheets : 3
[math] |  flashcards : 10 notes : 2 cheatsheets : 1
[pipelining] |  flashcards : 1 notes : 5 cheatsheets : 2
  • The user can make use of taglist, to quickly see which tag they would like to view.

  • The user is able to view how many flashcards, notes and cheatsheets respectively there are in each tag.

  • The list of tags is also automatically sorted alphabetically.

  • If there are no longer any items with the specified tag, the tag will be removed from this list.

4.4. Listing all StudyBuddyPro items by their tag : filterall

Lists all StudyBuddyPro items with matching tags in the application.

  • The user must specify at least one tag.

  • The user is able to specify multiple tags.

  • CheatSheets that match all of the specified tags will be displayed.

Format: filterall tag/TAG [tag/TAG]...

Let’s say the user wishes to view the definition of pipelining. Pipelining is taught in CS2100, a Computer Organization module taught in the School of Computing at NUS. Hence, the user can make use of filterall to find all flashcards, cheatsheets and notes that are tagged “CS2100”. Note that for simplicity, all tags will be converted to lowercase upon input. Hence, ‘CS2100’ will be read as ‘cs2100’ by our application.

Example usage:

filterall tag/CS2100

Expected output:

Listing the whole StudyBuddyPro after filtering by tag(s) :
    CS2100
Flashcard: 6.
    Question: What is 101 Binary in its Decimal form?
    Answer: 5
    Title: BinaryQn
    Tags: [cs2100]
CheatSheet: 7.
    Title: cs2100 stuff
    Tags: [cs2100]
    Contents: [ 1. Pipelining is a process where a processor executes multiple processes simultaneously.]
        [ 2. Question: What is 101 Binary in its Decimal form?; Answer: 5 ]
Note: 5.
    Title: Pipelining Definition
    Content: Pipelining is a process where a processor executes multiple processes simultaneously.
    Tags: [cs2100]
Note Fragment: 6-2.
    Title: About Notes
    Content: highlighted
    Tags: [cs2100]
'Note Fragments' (as seen in the example above) are described further in the Notes section (see Section 6.1).

The user is also able to specify a multiple number of tags. For example,

filterall tag/CS2100 tag/difficult

will list all items that match all of the specified tags.

4.5. Clearing specific feature’s data: clear

Proceed with care when using this function!! Using the clear function will IMMEDIATELY clear ALL of the data from the mode you are in!

Clears the data in a specific feature. Depending on the mode that the user is in, the clear command will only clear the specific feature’s data.

Example usage:

clear

Expected output:

Cleared all flashcards/notes/cheatsheets!

4.6. Clearing entire application’s data: clear all

Proceed with care when using this function!! Using the clear function will IMMEDIATELY clear ALL of the data in StudyBuddyPro!

Clears all the data in the application.

Example usage:

clear all

Expected output:

Cleared the entire StudyBuddyPro!

4.7. Exiting the application: exit

Checks if there are any remaining flashcards to revise for the day or overdue flashcards to revise before exiting the application.

Example usage:

exit

If there are flashcards due for revision today but no overdue flashcards:

Expected output:

Are you sure you want to exit? You still have the following flashcards overdue or left
to revise for today:
Here are the flashcards due today:
1. Math Question 1 - What is 2 x 2?
Type 'exit' again to exit the application!

If there are no flashcards due for revision today but there are overdue flashcards:

Expected output:

Are you sure you want to exit? You still have the following flashcards overdue or left
to revise for today:
Here are your overdue flashcards:
1. Math Question 1 - What is 2 x 2? (Was due on 2019-10-30)
Type 'exit' again to exit the application!

If there are both flashcards due for revision today and overdue flashcards:

Expected output:

Are you sure you want to exit? You still have the following flashcards overdue or left
to revise for today:
Here are the flashcards due today:
1. Math Question 1 - What is 2 x 2?
Here are your overdue flashcards:
1. Math Question 2 - What is 3 x 2? (Was due on 2019-10-30)
Type 'exit' again to exit the application!
  • After any of the 3 scenarios above user can override the warning by entering the exit command again.

  • If no remaining or overdue flashcards for revision found, application exits immediately.

  • The user can use this feature to alleviate worries that they may forget to revise the relevant content for the day - StudyBuddyPro will always double-check for you!

4.8. Editing a tag: edit tag (proposed in v2.0)

Edits a tag by the specified index.

Format: edit tag/CURRENT tag/NEW

Example usage:

edit tag/midterm tag/finals

Expected output:

Tag edited!
All items and contents in StudyBuddy tagged ‘midterm’ is replaced with tag ‘finals’.

This allows the user to easily modify the tags of all the items with a single command.

For instance, if the user has items that are tagged [cs2100] and [midterm], and the user wishes to make use of such items to include in a cheatsheet for CS2100 finals, the user can input

edit tag/midterm tag/finals

to conveniently change, for instance, all notes tagged with [midterm] to be tagged with [finals].

This then allows the user to more conveniently generate a cheatsheet for his/her final exams.

5. Flashcard Feature

Sick and tired of cramming all your revision at the last minute? Why not give our Flashcards feature a try! This feature can help you create your very own flashcards to help you consistently revise. With our built-in reminder features and timetrial modes to test yourself, use this feature and be on track to better revising habits today!

Good news - StudyBuddyPro comes with some preloaded flashcards, specially catered for you as a computing student! Be sure to take a look! Psst - here’s a hint for our more tech-savvy users: You can delete your flashcards.json file in the StudyBuddyPro data folder to restore these default flashcards at any time. Of course, your current flashcards will be deleted as well!

All the operations in this section assume that the user is in the flashcard mode. To be sure you are flashcard mode, please ensure you used the switch fc command before this. Your screen should now look like the one found in the screenshot below.

FlashcardSuccess

5.1. How to create a flashcard: add

Adds a flashcard from user input question <QUESTION> and answer <ANSWER>.

Format: add q/QUESTION a/ANSWER t/TITLE [tag/TAG]...

Example usage:

add q/What is 100 Binary in its Decimal form? a/4 t/Binary Stuff tag/CS2100

Expected output:

New flashcard added: Title: Binary Stuff
    Tags: [cs2100]

5.2. Viewing a flashcard: view

Displays flashcard <FLASHCARD_INDEX> to user without answer.

Format: view (index)

Example usage:

view 6

will view the Flashcard at Index 6.

Expected output:

Viewing flashcard:
    Title: BinaryQn
    Question: What is 101 Binary in its Decimal form?
    Tags: [cs2100]

5.3. Revealing a flashcard’s answer: show

Displays the answer of the flashcard currently loaded.

Format: show

Example usage:

show

Expected output:

Flashcard answer loaded

5.4. Editing a flashcard: edit (Coming in v2.0)

Edits a flashcard’s question, answer, title, or tags. The flashcard will be referred to by their original title ORIGINAL_TITLE.

Format: edit ORIGINAL_TITLE [q/NEW_QUESTION] [a/ANSWER] [t/TITLE] [tag/TAG]...
  • At least one of the optional fields must be provided.

Example usage:

edit IntelliJ Question 1 q/What is the meaning of SLAP? a/Single Layer of Abstraction Principle t/SE Question 1

Expected output:

Edited flashcard:
    Title: SE Question 1
    Question: What is the meaning of SLAP?
    Tags: [cs2100]
  • Notice how the fields that are not edited retain their original information. For example, the tag field was not changed and so the original cs2100 tag was retained.

  • Multiple fields can be edited at the same time. In the example, the question, answer and title fields were all edited at once.

5.5. How to view a list of all available flashcards: list

Lists all flashcards.

Format: list

Example usage:

list

Expected output:

Listing all flashcards:
1.  Title: Pipelining Question 1
    Tags: [cs2100]

5.6. How to delete a flashcard: delete

Deletes the flashcard by <FLASHCARD_INDEX> provided by the user.

The user will be prompted again to confirm their deletion.

Format: delete (index)

Example usage:

delete 6

Expected output:

Are you sure you would like to delete the following flashcard?
    Title: Binary Question 1
    Tags: [cs2100]
    Please use `delete 6` again to confirm your deletion..
Inputting invalid commands will NOT offer another prompt to the user. For example, calling delete 3, then an invalid command and then delete 3 again will immediately delete the 3rd item without a prompt.

Upon keying in delete 6 again, then the flashcard will be deleted.

Expected output:

Deleted Flashcard:  Title: Binary Question 1
    Tags: [cs2100]
If you were viewing a flashcard and then delete it, it will still remain shown as the last loaded flashcard in the GUI. Use the view command to view another flashcard instead and refresh the GUI!

5.7. How to enter the timetrial mode: timetrial

Starts a time trial for flashcards with specified tags.

Format: timetrial TAG...

Example usage:

timetrial cs2103tuml hard

Expected output:

Time trial started

All of the flashcards containing the specified tags will be then displayed sequentially in the activity below.

  • At least one tag must be specified.

  • If more than one tag is specified, selects all flashcards that contains all of the specified tags.

  • Default <TIME> will be 5 seconds.

  • Answer will be flashed for 3 seconds.

  • If a flashcard command (other than show) is inputted during the time trial, the time trial will be terminated and the inputted command will be executed.

  • Executing show will reveal the answer of the flashcard in advance, but will not terminate the time trial.

5.8. How to filter flashcards based on the tags provided: filter

  • Filters the flashcard library by the user specified tag(s).

  • The user must specify at least one tag.

  • The user is able to specify multiple tags.

  • Flashcards that match all of the specified tags will be displayed.

    Format: filter tag/TAG [tag/TAG]...

Example usage:

filter tag/difficult

Expeted output:

Filter flashcards by tag(s) :
[difficult]
8. Question: What is 1+1?
    Title: Basic addition
    Tags: [difficult]
10. Question: What is 2x3?
    Title: Maths
    Tags: [difficult][important]

5.9. Find out what flashcards to revise today, or ones you may have missed: remind

This feature helps the user check which flashcards are due for revision today and which flashcards overdue for revision. StudyBuddyPro automatically sets the date the flashcard should next be viewed at for optimal learning. These increments also scale with time i.e. newer flashcards will have to be viewed more often.

Be sure to check in everyday to see which flashcards you have due!
StudyBuddyPro only marks a flashcard as revised and removes it from the due and overdue flashcard list when you see the flashcard’s answer not just its question! For example, simply using the view command without the show command to reveal the flashcard’s answer will not trick the system. Sorry, it’s for your own good!

Example usage:

remind

If no flashcards due for revision today and no overdue flashcards:

Expected output:

Well done - No due or overdue flashcards!

If there are flashcards due for revision today but no overdue flashcards:

Expected output:

Here are the flashcards due today:
1. Math Question 1 - What is 2 x 2?

If there are no flashcards due for revision today but there are overdue flashcards:

Expected output:

Here are your overdue flashcards:
1. Math Question 1 - What is 2 x 2? (Was due on 2019-10-30)

If there are both flashcards due for revision today and overdue flashcards:

Expected output:

Here are the flashcards due today:
1. Math Question 1 - What is 2 x 2?
Here are your overdue flashcards:
1. Math Question 2 - What is 3 x 2? (Was due on 2019-10-30)

6. Notes Feature:

Have too many things memorized in your head, with nowhere to write them down? Tired of jotting down thoughts in loose text files on your computer? Then give our Notes a try! Quick and easy to use, they help you keep track of all the loose bits of knowledge that you want to keep around but don’t have the brain space to keep! Take note of these Notes and studying will be a breeze!

All the operations in this section assume that the user is in the notes mode. To be sure you are in the notes mode, please ensure you used the switch notes command before this. Your screen should now look like the one found in the screenshot below.

NotesSuccess

6.1. To create a note: add

Adds a note from user input with title TITLE and content CONTENT, that you can conveniently access later. The title of the note cannot be a duplicate of an existing note title.

Format: add t/TITLE c/CONTENT [tag/TAG]...

Example usage:

add t/Pipelining Definition c/Pipelining is a process where a processor executes multiple processes simultaneously. tag/cs2100

Expected output:

New note added:
    Title: Pipelining Definition
    Content: Pipelining is a process where a processor executes multiple processes simultaneously.
    Tags: [cs2100]

The added Note has no detected note fragment tags!

More advanced usage: This is where our Notes feature stands out from the others! Tagging of note fragments is also supported. The note fragment tagging is added at the same time as the note is created.

Note fragments can be visualised as a form of highlighting your notes. Its tags are added with content FRAGMENT_CONTENT, at least one tag FRAGMENT_TAG, and any number of additional tags ADDITIONAL_FRAGMENT_TAG:

Format (within CONTENT): /* C/FRAGMENT_CONTENT TAG/FRAGMENT_TAG [TAG/ADDITIONAL_FRAGMENT_TAG]... */
The format for note fragment content is 'C/', not 'c/', and the format for note fragment tags is 'TAG/', not 'tag/'.
If the format is not followed correctly, the note fragment tag will simply not be added (but the note will still be added). StudyBuddyPro will assume that the user has typed the tags correctly.

In the following example, two note fragment tags are added to the same note fragment:

Example usage:

add t/About Notes c/Notes can be /* C/highlighted TAG/highlight TAG/important */ if needed. tag/about

Expected output:

New note added:
    Title: About Notes
    Content: Notes can be /* C/highlighted TAG/highlight TAG/important */ if needed.
    Tags: [about]

Note fragment tags detected:
    Title: About Notes
    Content: highlighted
    Tags: [important][highlight]

This adds a note with content "Notes can be highlighted if needed.", and a note fragment tag with content "highlighted" and two tags "cs2100" and "important".

The spaces around the syntax elements of '/*', 'C/' etc are part of the syntax. For example, if a note fragment tag looks like this: '/* C/highlighted TAG/important */if needed', then the resultant Note will look like this: 'highlightedif needed'.

Multiple note fragment tags are allowed. These do not interfere with the other tags of the Note.

Overlapping note fragment tags are not allowed.
Note fragment tags can be used for filtering notes (see Section 6.6), or filtering globally (see Section 4.3). For a clearer visualization of note fragments, compare the view (see Section 6.3) and viewraw (see Section 6.4) commands.

6.2. To delete a note: delete

Simply get rid of any unwanted notes and make your life easier using delete.

Deletes the note of index NOTE_INDEX.

The user will be prompted once to confirm their deletion.

Format: delete (index)

Example usage:

delete 3

Expected output:

Are you sure you would like to delete the following note?

    Title: About Notes
    Content: Notes can be /* C/highlighted TAG/highlight TAG/important */ if needed.
    Tags: [about]
    Please use `delete 3` again to confirm your deletion.

Upon using delete 3 again, then the note will be deleted.

Deleted note:
    Title: About Notes
    Content: Notes can be /* C/highlighted TAG/cs2100 TAG/important */ if needed.
    Tags: [about]
Inputting invalid commands will NOT offer another prompt to the user. For example, calling delete 3, then an invalid command and then delete 3 again will immediately delete the 3rd item without a prompt.

6.3. To view a note: view

Views the note of index NOTE_INDEX. If the note contains any note fragment tags, those tags will be hidden.

To view the note with its note fragment tags, use the viewraw command instead (see Section 6.4).
Format: view (index)

Example usage:

view 3

Expected output:

Viewing note:
    Title: About Notes
    Content: Notes can be highlighted if needed.
    Tags: [about]

6.4. Viewing a raw note: viewraw

Views the note of index NOTE_INDEX. The note is shown exactly as written, including all note fragment tags.

Format: viewraw (index)

Example usage:

viewraw 3

Expected output:

Viewing raw note:
    Title: About Notes
    Content: Notes can be /* C/highlighted TAG/cs2100 TAG/important */ if needed.
    Tags: [about]

6.5. To list all notes: list

Lists all notes found in StudyBuddyPro.

Format: list

Expected output:

A complete list of all notes currently in StudyBuddyPro.

Example output:

Listing all notes:
1.
    Title: Pipelining Definition
    Content: Pipelining is a process where a /* C/processor TAG/mips */ executes multiple processes simultaneously.
    Tags: [cs2100]
2.
    Title: UML Diagrams
    Content: UML Diagrams help with visualizing project structure.
    Tags: [cs2103t]
Notes will be labeled with indices '1', '2' etc. Note fragment tags will not be listed along with the notes. To visualize specific note fragment tags, use the filter command (see Section 6.6).

6.6. Filtering by tags: filter

filter allows you to quickly search for your notes by their specified tags.

  • Filters the note library by the user specified tag(s).

  • The user must specify at least one tag, and can specify multiple tags.

  • Notes that match all of the specified tags will be displayed.

  • Note fragment tags containing all of the specified tags will also be displayed, even if their parent note is not tagged.

Format: filter tag/TAG [tag/TAG]...

Example usage:

filter tag/difficult

Expected output:

Filter notes by tag(s) :
    [difficult]
    2. Title: Tough Math
        Content: 1 + 2 is 3.
        Tags: [difficult]
    4. Title: MA1521 Chapter 5
        Content: dy/dx = 0 is turning point of bellcurve.
        Tags: [difficult][MA1521]
    5-1. Title: CS2103T
          Content: sequence diagram
          Tags: [difficult][diagram]
Notes will be labeled with indices '1', '2' etc. Note fragment tags will be labeled with '1-1', '1-2', '2-1' etc. '5-1' means 'the first note fragment tag in the fifth note'.

6.7. Editing a note: edit (Coming in v2.0)

Edits a note’s title, content, or tags. The note will be referred to by their original title ORIGINAL_TITLE.

  • The user can specify one of the optional fields to edit.

Format: edit ORIGINAL_TITLE [t/TITLE] [c/CONTENT] [tag/TAG]...

Example usage:

edit Pipelining Definition t/Pipelined Definition tag/cs2100finals

Expected output:

Edited Note:
    Title: Pipelined Definition
    Content: Pipelining is a process where a processor executes multiple processes simultaneously.
    Tags: [cs2100finals]

7. CheatSheet Feature:

Ever spent countless of hours rummaging through your notes just to dig up important information to add to your cheatsheet for your exams? Ever feared that you might accidentally miss out on important information to add to your cheatsheet? Fret not! Our very own cheatsheet feature of StudyBuddyPro is here to help you auto-generate your important information, and to simply, save the day.

All the operations in this section assume that the user is in the cheatsheet mode. To be sure you are in the cheatsheet mode, please ensure you used the switch cs command before this. Your screen should now look like the one found in the screenshot below.

CheatSheetSuccess

7.1. To auto-generate a Cheatsheet: add

Adds a cheatsheet from user input title <TITLE> and content <CONTENT>. Voila! To your convenience, flashcards and notes in StudyBuddyPro that have the specified tag upon creation of the cheatsheet will be used as contents.

Format: add t/TITLE [tag/TAG]...

Example usage:

add t/CS2100 Midterm CheatSheet tag/cs2100midterm

Assuming that there is a flashcard object with the tag "cs2100midterm"

Expected output:

New cheatsheet added:
Title: CS2100 Midterm CheatSheet
Tags: [cs2100midterm]
1 content(s) have been successfully generated from the other modes.

7.2. To edit a Cheatsheet: edit

Oh no! It appears that you might have accidentally misspelled something during creating a cheatsheet. Fret not, edit allows you to edit a cheatsheet’s title or remove tag or content by a specified <CHEATSHEET_INDEX>. At least one of the optional fields must be specified to edit.

Format: edit (index) [t/TITLE] [tag/TAG]...
  • Only t/TITLE optional field will overwrite its field.

  • All other optional fields will remove its existing content(s).

  • Any invalid c/CONTENT_INDEX or tag/TAG will be ignored.

Example CheatSheet of index 8:

Title: cs2100 cheatsheet
Tags: [cs2100finals][formula]
Contents: [ 1. Question: What is 110 Binary in its Decimal Form?; Answer: 6 ]
          [ 2. 10 + 10 = 20]

Example usage:

edit 8 t/cs2100 final cheatsheet tag/formula

Expected output:

Edited Cheatsheet:
Title: cs2100 final cheatsheet
Tags: [cs2100finals]

The actual implementation does not show the contents in the feedback box. Please do use view command to view them!

7.3. Deleting a Cheatsheet: delete

Deletes a cheatsheet by the specified index.

The user will be prompted once to confirm their deletion.

Format: delete (index)

Example usage:

delete 8

Expected output:

Are you sure you would like to delete the following cheatsheet?
Title: CS2100 Finals CheatSheet
Tags: [finalcheatsheet]
Please use `delete 8` again to confirm your deletion.

Upon hitting enter, then the specified cheatsheet will be deleted.

Expected output:

Deleted Cheatsheet:
    Title: CS2100 Finals CheatSheet
    Tags: [finalcheatsheet]
Inputting invalid commands will NOT offer another prompt to the user. For example, calling delete 3, then an invalid command and then delete 3 again will immediately delete the 3rd item without a prompt.

7.4. To view Cheatsheets: view

Views a cheatsheet and its contents by the specified index.

Format: view (index)

Example CheatSheet of index 1:

Title: cs2100 cheatsheet
Tags: [cs2100finals][important]
Contents: [ 1. Question: What is 110 Binary in its Decimal Form?; Answer: 6 ]
          [ 2. 10 + 10 = 20]

Example usage:

view 1

Expected output:

ssForViewUG
Figure 2. Screenshot for view 1 expected output

The above screenshot shows the cheatsheet with index 1 in the GUI of StudyBuddyPro.

7.5. To view Cheatsheets of a Specific Tag: show

Views a cheatsheet’s content for a specified tag. User must be in a view command before using show command.

Format: show (index)

Assuming user is in the view 1 command from above example in view command.

Example usage:

show 1

Expected output:

ssForViewSpecificUG
Figure 3. Screenshot for show 1 expected output

The above screenshot shows the cheatsheet’s content with tag index 1 in the GUI of StudyBuddyPro.

Currently, cheatsheets only allow contents that match all the specified tags. Hence, show command will only show color toggling at the tags segment at the moment.

7.6. To list all Cheatsheets: list

Lists all cheatsheets found in StudyBuddyPro.

Format: list
Example output: Listing all cheatsheets:
1.  Title: CS2100 midterms
Tags: [cs2100][midterms]
2.  Title: ma1521 finals
 Tags: [finals][ma1521]

7.7. Listing by tags: filter

Want to quickly acccess your items? filter helps to list the cheatsheet library by the user specified tag(s).

  • The user must specify at least one tag.

  • The user is able to specify multiple tags.

  • CheatSheets that match all of the specified tags will be displayed.

Format: filter tag/TAG [tag/TAG]...

Example usage:

filter tag/difficult

Expected output:

Filter cheatsheet by tag(s) :
    [difficult]
    2. Title: Tough Math
        Tags: [difficult][math]
    7. Title: MA1521 Chapter 5
        Tags: [difficult]
  • Contents of the cheatsheet will not be displayed during filter.

  • Use the view command instead, the view the contents of the cheatsheet. (refer to section 7.4)

7.8. Updating a Cheatsheet: update (Coming in v2.0)

Ever wanted to re-use your midterm cheatsheet by adding more contents into it and then use it for your final examinations? Our update feature updates cheatsheet’s contents by a specified <CHEATSHEET_INDEX>. Tags specified are added into the list of tags for the cheatsheet if it not already exist.

This command may overwrite any customization of contents done prior to it as the cheatsheet’s contents will be regenerated.

Format: update (index) [tag/TAG]...

Example CheatSheet of index 8:

Title: cs2100 cheatsheet
Tags: [cs2100finals]
Contents: [ 1. Question: What is 110 Binary in its Decimal Form?; Answer: 6 ]

Example usage 1:

update 8

Expected output:

Updated Cheatsheet:
Title: cs2100 final cheatsheet
Tags: [cs2100finals]
Contents: [ 1. Question: What is 110 Binary in its Decimal Form?; Answer: 6 ]
              [ 2. Binary is in bits of 1 and 0.]

The actual implementation does not show the contents in the feedback box. Please do use view command to view them!

Example usage 2:

update 8 tag/formula

Expected output:

Updated Cheatsheet:
Title: cs2100 final cheatsheet
Tags: [cs2100finals][formula]
Contents: [ 1. Question: What is 110 Binary in its Decimal Form?; Answer: 6 ]
            [ 2. 10 + 10 = 20]

The actual implementation does not show the contents in the feedback box. Please do use view command to view them!

Updated Cheatsheet:
Title: cs2100 final cheatsheet
Tags: [cs2100finals][formula]
Contents: [ 1. Question: What is 110 Binary in its Decimal Form?; Answer: 6 ]
          [ 2. 10 + 10 = 20]

8. FAQ

Q: Help! Double-clicking StudyBuddyPro.jar does not launch the application - what should I do?
A: Trying running the application from the command line using the following command: java -jar StudyBuddyPro.jar. Windows users can use the Command Prompt application to do this while Mac users can use the Terminal application.

Q: When I minimise the application, the entire application has shrunk and now it is gone! Help!
A: Currently our application do not allow diagonal or vertical resizing of the it. It is best not to resize the application at all and leave it as the maximized mode. For the this problem, we suggest that you try to maximise the application from the task manager or try to split the screen with another application so that StudyBuddyPro will resize back to normal. If the mentioned solutions fail, please do download StudyBuddyPro again!

Q: The preloaded deck of flashcards is overdue for revision and StudyBuddyPro says the last viewed date for those preloaded flashcards was when I first opened StudyBuddyPro, even though I never even viewed those flashcards! How is this possible?
A: StudyBuddyPro assumes all the default flashcards will be viewed when the application was first opened. Aren’t you curious to see what we collated for you?

9. Command Summary

9.1. Global Commands (Can be executed in any mode)

  • Switch : switch MODE
    e.g switch fc

  • Filter All : filterall tag/TAG…​
    e.g filterall tag/cs2103tuml tag/difficult

  • List tags : taglist

  • Help : help

  • List : list

  • Exit : exit

9.2. Flashcard Commands

  • Add : add q/QUESTION a/ANSWER t/TITLE [tag/TAG]…​
    e.g. add q/What is 100 Binary in its Decimal form? a/4 t/Binary Stuff tag/CS2100

  • Delete : delete INDEX e.g delete 1

  • Filter : filter tag/TAG…​
    e.g filter cs2103tuml

  • Time Trial : timetrial TAG…​
    e.g timetrial cs2103t uml

  • View : view INDEX
    e.g view 1

  • List : list

  • Show : show

  • Remind : remind

9.3. Note Commands

  • Add : add t/TITLE c/CONTENT tag/TAG…​
    e.g. add t/Pipelining Definition c/Pipelining is a process where a processor executes multiple processes simultaneously. tag/cs2100

  • Delete : delete INDEX e.g delete 1

  • View : view INDEX
    e.g view 1

  • Viewing a raw note : viewraw INDEX
    e.g viewraw 3

  • Filter : filter tag/TAG…​
    e.g filter tag/hard tag/cs2100

  • List : list

9.4. CheatSheet Commands

  • Add : add t/TITLE [tag/TAG]…​
    e.g. add t/CS2100 Midterm CheatSheet tag/cs2100midterm

  • Delete : delete INDEX e.g delete 1

  • Edit : edit INDEX t/TITLE tag/TAG…​
    e.g edit 8 t/cs2100 final cheatsheet tag/formula

  • Show : show INDEX
    e.g show 4

  • View : view INDEX
    e.g view 1

  • Filter : filter tag/TAG…​
    e.g filter tag/hard tag/cs2100

  • List : list