Skip to content
This repository has been archived by the owner on Mar 15, 2020. It is now read-only.

Latest commit

 

History

History
814 lines (572 loc) · 29.8 KB

UserGuide.adoc

File metadata and controls

814 lines (572 loc) · 29.8 KB

NUStudy User Guide

1. Introduction

NUStudy is an application for managing three kinds of informational material: lecture notes, quizzes and revision tasks. Their primary purpose is preparing for exams and tests in universities, but they can also be useful for refreshing memory, particularly after a module has ended (the reliance of some computing modules on prior knowledge is rather heavy).

Most of the work is done through a command line; the GUI merely displays the results. The overall appearance is similar to a simple note-taking client.

2. Quickstart

  1. Ensure you have Java 11+ installed.

  2. Download the latest nustudy.jar here.

  3. Copy the file to the folder you want to use as the application’s home folder.

  4. Double-click the file to start the app (if this does not work, use java -jar nustudy.jar). The GUI should appear in a few seconds.

    Ui
  5. Type the command in the command box and press Enter to execute it. Some commands you can try are

    • listnote: lists all lecture notes

    • addnote t/Title c/Content: adds a lecture note with title "Title" and content "Content".

    • deletenote 1: deletes the first lecture note

    • help: open the help window

    • exit: exits the app

3. Features

This section helps you navigate through the features and commands.

Command Format

  • Words in UPPERCASE are parameters you supply e.g. in addnote t/TITLE, TITLE is a parameter which can be used as addnote t/TITLE. Parameters can be provided in any order; in the case of multiple parameters with the same prefix (e.g. addnote t/A t/B) the last one is taken (B) unless otherwise stated.

  • Items in square brackets are optional.

  • Items with ​ after them can be used zero or more times.

3.1. Lecture notes

3.1.1. Adding lecture notes: addnote

This is the basic command for getting your lecture notes into NUStudy. The i/ field, if provided, brings up a dialog where you can choose an image from your computer’s file system; such an image will be displayed at the bottom of the note.
Format: addnote t/TITLE c/CONTENT [i/]

Suppose you want to remember what the order-7 triangular tiling looks like and its Schläfli symbol. Type addnote t/Order-7 triangular tiling c/{3,7} i/ into the command line. The file selection dialog will pop up, and you can select the image from your file system. Once done, you will see the lecture note:

addnote

It is fine to back out of the image selection dialog; an image can always be added later using editnote. Your images are copied into the application’s data folder, so don’t worry about losing them – you can always take them along. Images resize according to the window, but if an image is small enough that it can fit at its natural resolution, it is left that way.

3.1.2. Editing lecture notes: editnote

If your lecture notes need updating, use this command, providing arguments t/, c/ and i/ (at least one) as you would do with addnote, but only those arguments you want to change. Providing i/ brings up the same image selection dialog like in addnote.

Images can explain a lot, but if you want to remove them, use i/none in your command, and the dialog will not appear. Otherwise, if you back off from choosing an image (e.g. by clicking the dialog’s close button), nothing will happen and your images will remain safe and sound.

Multiple notes can share the same image, and you can overwrite existing images currently in NUStudy with new ones sharing the same filename.

The index must be between 1 and the number of lecture notes inclusive. It is listed before the title of each lecture note:

index

Format: editnote INDEX [t/TITLE] [c/CONTENT] [i/[none]]

3.1.3. Viewing lecture notes: findnote

Of course, what use are virtual lecture notes if you can’t search through them? This command displays those notes whose titles contain any one of the words (space-separated, ignoring case) you provide as arguments.
Format: findnote WORD [WORD]…

3.1.4. Listing all lecture notes: listnote

This is like running findnote but with no arguments. It shows all your lecture notes in their unabashed glory.
Format: listnote

3.1.5. Deleting lecture notes: deletenote

When your semester ends, surely you want to free up space on your computer so you can accept new notes for the coming semester? This command deletes the lecture note with the index you provide.
Format: deletenote INDEX

3.1.6. Clearing all lecture notes: clearnote

Finally, if you ever find a better application than NUStudy for your lecture notes, you can clear them all. Your quiz questions and revision tasks will not be affected.
Format: clearnote

3.2. Questions

NUStudy can also store different sets of questions and answers; at your command, the system will prompt you to answer those questions.

3.2.1. Adding Questions: addq

You can add a question and its answer together with the necessary fields to the app.
Format: addq q/QUESTION a/ANSWER s/SUBJECT d/DIFFICULTY

  • You can define any type of difficulty level that is customized to your understanding of the question.

Example:

  • addq q/How to represent 85 in binary? a/1010101 s/CS2100 d/medium

addqcommand
Figure 1. Add question command

The new question will be added to your question bank.

addqresult
Figure 2. Result for add question command

3.2.2. Editing a question: editq

You can edit the fields of an existing question by providing the fields you want to change.
Format: editq INDEX [q/QUESTION] [a/ANSWER] [d/DIFFICULTY] [s/SUBJECT]

  • Edits the question at the specified INDEX. The index refers to the index number shown in the displayed question list. The index must be a positive integer 1, 2, 3, …​

  • At least one of the optional fields must be provided.

  • Existing values will be updated to the input values.

Examples:

  • editq 6 a/16 d/easy

editqcommand
Figure 3. Edit question command

Edits the answer and difficulty of the 2nd question to be 16 and easy respectively.

editqresult
Figure 4. Result for edit question command

3.2.3. Locating questions by keyword: findq

This command will give you a list of questions whose body or answer contains the keyword(s) you specified.
Format: findq KEYWORD [MORE KEYWORDS]

  • The search is case insensitive.

  • The order of the keywords does not matter.

  • Only full words will be matched.

  • NUStudy will return a list of questions containing any one of the keywords you provided. For example, if you type the command findq word1 word2, questions with body or answer which contains "word1", "word2", "word 1 word2", "word2 word1", or "word1 word2 xxxxxx yyyy".

Examples:

  • findq coupling tcp

findqcommand
Figure 5. Find question command

Finds the questions whose body or answer contains the keyword coupling or tcp.

findqresult
Figure 6. Result for find question command

3.2.4. Deleting a question: deleteq

You can delete a question at its specified INDEX together with its relevant fields from the list.
Format: deleteq INDEX

  • Deletes the question at the specified INDEX.

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

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

Example:

  • listq
    deleteq 3

Deletes the 2nd question from the question list.

  • findq character
    deleteq 1

Deletes the 1st question in the results of findq command.

3.2.5. Listing all questions: listq

This command allows you to view the list of all questions.
Format: listq

3.2.6. Filtering by difficulty: difficulty

You can view the list of all questions filtered by the specific difficulty.
Format: difficulty DIFFICULTY

  • The search is case insensitive.

  • Only full difficulty will be matched.

Example:

  • difficulty hard

difficultycommand
Figure 7. Filter by difficulty command

Returns a list of hard questions.

difficultyresult
Figure 8. Result for filter by difficulty command

3.2.7. Filtering by subject: subject

You can view the list of all questions from a specific subject.
Format: subject SUBJECT

  • The search is case insensitive.

  • Only full subject will be matched.

Example:

  • subject CS2103T

subjectcommand
Figure 9. Filter by subject command

Returns a list of questions of CS2103T.

subjectresult
Figure 10. Result for filter by subject command

3.2.8. Clearing all questions: clearq

You can delete all questions from the app.
Format: clearq

3.3. Quiz mode

There is a built-in quiz mode in NUStudy for you to take a revision quiz. You can indicate the number of questions, subject and difficulty and the quiz will randomly select questions for you according to your requirement. You will answer the question one by one and your result will be given.

3.3.1. Entering quiz mode: quiz

You can enter the quiz mode using this command.
Format: quiz n/NUMBER_OF_QUESTIONS d/DIFFICULTY s/SUBJECT

ℹ️
The NUMBER_OF_QUESTIONS must be a positive integer.
DIFFICULTY and SUBJECT are case insensitive.

Example:

Step 1: Types quiz n/2 d/easy s/cs2040 in the command box and presses Enter to execute the command. The following graph specifies how you can input the command.

600
Figure 11. Typing quiz command

Step 2: The result will show the message of successfully entering the quiz mode. The first quiz question will appear on the right column. The following graph shows the result of your quiz command.

600
Figure 12. Result of quiz command

3.3.2. Answering the quiz question

You can type your answer in the command box to answer the question.

ℹ️
The answer is case sensitive.

Example:

Step 1: Types your answer in the command box and presses Enter to execute the command. The figure below is an example of how to answer question.

600
Figure 13. Typing answer in the command line

Step 2: The result will show the correctness of your answer and the next question will be displayed. The following graph simulates the situation after you answer the question.

600
Figure 14. The result after answer

3.3.3. Showing an answer: show

You can check the answer for the current quiz question using this command.
Format: show

ℹ️
You can use it as reference and please do not use it to cheat.

Example:

Step 1: Types show in the command box and presses Enter to execute the command.

Step 2: The answer of current question will be displayed.

600
Figure 15. Typing show command and its result

3.3.4. Skipping a question: skip

You can skip current question and go to the next one using this command.
Format: skip

ℹ️
The question you have skipped will be marked as false for result.

Example:

Step 1: Types skip in the command box and presses Enter to execute the command.

600
Figure 16. Typing skip command

Step 2: The current question is skipped and next question will be displayed.

600
Figure 17. The result of skip command

3.3.5. Exiting quiz mode: quit

You can exit from the quiz mode using this command.
Format: quit

ℹ️
You need to quit the quiz mode every time after you finish the quiz.
You can quit the quiz mode anytime you want.

Example:

Step 1: Types quit in the command box and presses Enter to execute the command.

600
Figure 18. Typing quit command

Step 2: The result shows message of exit from the quiz mode and the original questions will appear. The following graph explains what would happen after you quit from the quiz mode.

600
Figure 19. The result of quit command

3.4. Statistics

After doing some quizzes, you can get statistics of the questions that you have done in the app. The statistics functions listed below are used to filter the type of statistics that you want to get.

ℹ️
To close any statistics panel, you can simply type any of the commands from the Lecture notes, Questions and Revision tasks features. E.g. rlist.
ℹ️
Quiz results stored in the app are not synchronised with the questions. If you have modified a question using the editq command, the stored quiz result will still refer to the original question. This is because a question that has been modified might cause past answers to become irrelevant and distort the statistics.

3.4.1. Getting statistics for subjects : stats

You can get a breakdown of the questions that you have done by its results. If you want to narrow the results down, you can also choose to get the statistics for a difficulty level by adding d/ or get the statistics of different subjects by adding s/.
Format: stats [d/DIFFICULTY] [s/SUBJECT1] [s/SUBJECT2]…​

Example:
Let’s say you have answered some questions from CS2103T previously and would like a ballpark figure to estimate how well you have grasp the basic foundations of the subject.

To get this figure:

  1. Type stats d/easy s/cs2103t into the command box, and press Enter to execute it.

  2. The result box will display the message "Here are the statistics: [easy] [cs2103t]"

  3. And you can see a pie chart of the number of correctly and incorrectly answered questions.

600
Figure 20. The result of stats d/easy s/cs2103t command

3.4.2. Getting questions with correct/incorrect answers: question

You can get all questions that have been answered correctly/incorrectly by using -c/-i respectively. Either one of -c or -i must be used. You can also filter by subjects by adding s/.
Format: question [-c] [-i] [s/SUBJECT1] [s/SUBJECT2]…​

Example:
Now that you have gotten the number of correct to incorrect answers, you want to see what questions you have done incorrectly to decide on how you can further improve.

To see the questions:

  1. Type question -i s/cs2103t into the command box, and press Enter to execute it.

  2. The result box will display the message "Here are the incorrect questions for [cs2103t]:"

  3. You will be able to see a list of all your incorrectly answered questions for CS2103T and your past answers to it as well as a breakdown of the number of questions by difficulty level.

600
Figure 21. The result of question -i s/cs2103t

3.4.3. Getting a report of individual questions: report

You can get a report of how well you have answered a particular question and see all your past answers to the question.
Format: report INDEX

  • The index refers to the question number in the displayed question list.

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

Example:
After getting the questions that you have done wrong, you noticed that there is one particular question that you have answered incorrectly numerous times. This just so happened to be the seventh question in the question list. You decided to investigate further.

To see a report of the question 7:

  1. Type report 7 into the command box, and press Enter to execute it.

  2. The result box will display the message "Here is a report of question 7:"

  3. And you can see all your attempts at the question as well as a pie chart of your results.

600
Figure 22. The result of report 7 command

3.4.4. Getting overview of questions attempted: overview

You can get an overview of the types of questions that you have attempted overall. A panel containing a stacked bar graph, sorted by subjects will be returned. You can also add two dt/ fields representing a time period to get questions you did within that time period. The format for date is dd/MM/yyyy.
Format: overview [dt/START_DATE dt/END_DATE]

ℹ️
For date input constraints, you may refer to Section 3.5.1, “Adding a revision task for a note: rn.
ℹ️
If you have more than 8 different difficulty levels, the stack bar chart may repeat colors for the difficulties. To differentiate between the different bars in the chart, you can use your mouse to hover above them.

Example:
You are finally done viewing your quiz results and want to know what questions you should attempt next. To be a well-rounded individual, you decided to check if you have been neglecting any subjects recently.

To see an overview of your results:

  1. Type overview dt/20/10/2019 dt/06/11/2019 into the command box, and press Enter to execute it.

  2. The result box will display the message "Here is an overview of the questions: (20/10/2019 to 06/11/2019)"

  3. And you can see a stack bar chart of all questions that you have attempted from 20/10/2019 to 06/11/2019.

600
Figure 23. The result of overview dt/20/10/2019 dt/06/11/2019 command

3.5. Revision tasks

You will know more about how to work with revision tasks in this section. The revision tasks help you plan your revision of notes and questions. You can do various operations on tasks, including addition, deletion, searching etc.

The revision tasks are not synchronised with the note or the question. Once created, the task content will not change if you modify the corresponding note or question.
Revision tasks with the same heading, date and time are considered duplicate tasks and cannot co-exist.

The diagram below shows how a revision task looks like:

600

3.5.1. Adding a revision task for a note: rn

You can add a revision task for a note to the current revision task list with this command. The heading will copy the title. The GUI will display all tasks upon completing the command.
Format: rn t/TITLE_OF_NOTE dt/DATE tm/TIME

ℹ️
TITLE_OF_NOTE is case sensitive.

Example:

  1. Type rn t/CS2103T UML diagram dt/01/11/2019 tm/0900 in the command input box, and press Enter to execute it, as shown in the diagram below.

    600
  2. The result box will display the message "Revision task added: [N] NOTE : CS2103T UML diagram by: 01 November 2019 09:00". The task is added to the task list shown in the middle panel, as shown in the diagram below.

    600

Constraints for DATE (yyyy : YEAR, MM : MONTH, dd : DAY), TIME (HH : HOUR , mm : MINUTE) input:

  • All numerical inputs must be integers.

  • DATE input format should follow Singapore local date convention (i.e. dd/MM/yyyy).

  • YEAR is 4-digit, 0000 < yyyy < 9999. MONTH is 2-digit, 00 < MM < 13. DAY is 2-digit, 00 < dd < 32.

  • HOUR is 2-digit and follows 24-hour format, -01 < HH < 24. MINUTE is 2-digit, -01 < mm < 60.

  • "2400" and "0000" for TIME are both valid and represent 12am on the same day.

ℹ️
Some days of month are valid for some months but invalid for others, eg. 31 is invalid for February, April, June, September, November; 30 is invalid for February; 29 is invalid for February in common years. But they are valid for other scenarios. The day of month will automatically run down to the last valid day of that month in case you remember the number of days of a month wrongly.

3.5.2. Adding a revision task for a question: rq

You can add a revision task for a question to the current revision task list with this command. The heading will copy the question body. The GUI will display all tasks upon completing the command.
Format: rq i/INDEX_OF_QUESTION dt/DATE tm/TIME
Example:
rq i/1 dt/11/11/2019 tm/1500

ℹ️
For constraints on DATE and TIME input, you may refer to Section 3.5.1, “Adding a revision task for a note: rn.

3.5.3. Removing revision task: rdelete

You can remove a particular revision task from current list with this command. The GUI will display the current list (all-task, done-task, not-done-task or overdue-task) view.
Format: rdelete INDEX_OF_TASK
Example: rdelete 2

Detailed steps:

  1. Type rdelete 2 in the command input box, and press Enter to execute it. You can refer to the diagram below for a visual guide.

    600
  2. The result box will display the message "Deleted task: …​" with the task details. The deleted task will be removed from the task list, as shown by the diagram below.

    600

3.5.4. Marking the revision task as done: rdone

You can mark a task as done once you finished it. The GUI will display the current list (all-task, done-task, not-done-task or overdue-task) view.
Format: rdone INDEX

Example:

  1. Type rdone 1 in the command input box, and press Enter to execute it, as shown by the diagram below.

    600
  2. The result box will display the message "Revision task marked as done: [Y] …​" with the task details. The status icon of the task turns from "[N]" (not done) to "[Y]" (done). You may refer to the diagram below.

    600
    ℹ️
    You cannot use "undone" (marking a task as not done) feature. People usually "undone" a task because they realise that some parts of the task are not fully completed. In this case, you should create a new task with a new date or time (same as "re-scheduling" in the real world).

3.5.5. Editing a revision task: redit

You can edit a revision task with this command. You need to provide non-empty arguments with prefix h/, dt/ and tm/ for fields you want to change. Please take note that at least one field must be provided.
Format: redit INDEX [h/HEADING] [dt/DATE] [tm/TIME]
Example:
redit 1 h/CS2100 Logic Circuit dt/15/08/2019 tm/1200

ℹ️
HEADING can be the title of a note or the question body of a question. The edited HEADING must be an existing title or question body.
HEADING is case sensitive.

3.5.6. Viewing all revision tasks: rlist

You may view the whole revision task list using this command.
Format: rlist

3.5.7. Viewing completed revision tasks: finished

You may use this command to view the list of revision tasks that you have completed.
Format: finished

3.5.8. Viewing uncompleted revision task: unfinished

You may use this command to the list of revision tasks that you have not completed.
Format: unfinished

3.5.9. Viewing overdue revision tasks: overdue

You may use this command to view the revision tasks which you have not done but having passed the scheduled time.
Format: overdue

3.5.10. Finding tasks with specified details: rfind

You may use this command to search for tasks with specified details. You may key in keyword(s) of the heading, or the date, or the time, with prefix h/ dt/ tm/ respectively. The GUI will display a task list of all tasks with the field (heading or date or time) that matches your input.
Format: rfind h/WORD [WORD]…​ or rfind dt/DATE or rfind tm/TIME

ℹ️
Words for headings are case insensitive for rfind.

Example:
rfind h/hello world - This command gives you all tasks with headings containing "hello" or "world" or "hello world".
rfind dt/01/11/2019 - This command gives you all tasks on 1 November 2019.
rfind tm/1200 - This command gives you all tasks at 12:00 (12pm), regardless of date.

ℹ️
The priority of the fields are h/ > dt/ > tm/. When multiple prefixes (fields) are provided for search, only the field with the highest priority will be considered. The rest will be ignored.
ℹ️
A heading is considered matching with the keywords as long as one of the words in the heading is the same as one of the words in the input keywords. Please note that the minimum matching unit is a word (not characters) in the heading. Words in the headings are separated by a space.

For example, suppose we have a task list with tasks of headings {"hello", "hello?", "Hello", "helloworld", "hello world", "HelloWorld"}, here are the use cases:

Input WORD Tasks shown

hello

{"hello", "Hello", "hello world"}

hello?

{"hello?"}

helloworld

{"helloworld", "HelloWorld"}

hello world

{"hello", "Hello", "hello world"}

he

No task shown

3.5.11. Clearing current revision plan: rclear

You can remove all revision tasks with this command.
Format: rclear

3.6. Other features coming in v2.0

3.6.1. Auto-complete for command

NUStudy will automatically complete the command as you type, just like how it behaves in most IDEs.

3.6.2. Sharing notes and questions with other users

You can share your notes and questions with other NUStudy users with Internet connection.

3.6.3. Login using email and password

You can create an account in the application and login with your email and password. This allows you to access to NUStudy on other platforms.

3.6.4. Setting a timer for quiz mode

You can set a time limit before you start a quiz to train yourself under exam conditions. NUStudy will automatically end the quiz when time is up.
Format: quiz n/NUMBER_OF_QUESTIONS d/DIFFICULTY s/SUBJECT tl/TIME_LIMIT

3.6.5. Enabling push notification: notify -e

You can enable the push notification feature to send a desktop reminder when the task is about to start.
Format: notify -e [-A]

3.6.6. Disabling push notification: notify -d

You can disable the push notification with this command.
Format: notify -d [-A]

3.6.7. Sorting revision tasks: sort

You can sort the revision tasks based on certain fields with ascending/descending order.
Format: sort o/ORDER f/FIELD
Example:
sort o/a f/dt - You can sort the tasks according to date in ascending order.
sort o/d f/h - You can sort the tasks according to heading in descending alphabetical order.

3.6.8. Lecture note grouping suggestions

NUStudy will intelligently suggest groupings of lecture notes based on their content.

4. Command summary

Adding lecture notes: addnote t/TITLE c/CONTENT [i/]
eg. addnote t/Order-7 triangular tiling c/{3,7} i/

Editing lecture notes: editnote INDEX [t/TITLE] [c/CONTENT] [i/[none]]
eg. editnote 1 t/An AVL Tree

Viewing lecture notes: findnote WORD [WORD]…
eg. findnote AVL

Listing all lecture notes: listnote

Deleting lecture notes: deletenote INDEX
eg. deletenote 1

Clearing all lecture notes: clearnote

Adding Questions: addq q/QUESTION a/ANSWER s/SUBJECT d/DIFFICULTY
eg. addq q/How to represent 85 in binary? a/1010101 s/CS2100 d/medium

Listing all questions: listq

Editing a question: editq INDEX [q/QUESTION] [a/ANSWER] [d/DIFFICULTY] [s/SUBJECT]
eg. editq 7 a/16 d/easy

Locating questions by keyword: findq KEYWORD [MORE KEYWORDS]
eg. findq UDP

Deleting a question: deleteq INDEX
eg. listq then deleteq 3

Filtering by difficulty: difficulty DIFFICULTY
eg. difficulty hard

Filtering by subject: subject SUBJECT
eg. subject CS2103T

Clearing all questions: clearq

Entering quiz mode: quiz n/NUMBER_OF_QUESTIONS d/DIFFICULTY s/SUBJECT
eg. quiz n/2 d/Easy s/CS2040

Answering the quiz question: type your answer in the text input box

Showing an answer: show

Skipping a question: skip

Exiting quiz mode: quit

Getting statistics for subjects: stats [d/DIFFICULTY] [s/SUBJECT1] [s/SUBJECT2]…​
eg. stats d/easy s/cs2103t

Getting questions with correct/incorrect answers: question [-c] [-i] [s/SUBJECT1] [s/SUBJECT2]…​
eg. question -i s/cs2103t

Getting a report for individual questions: report INDEX
eg. report 7

Getting overview of questions attempted: overview [dt/START_DATE dt/END_DATE]
eg. overview dt/20/10/2019 dt/06/11/2019

Adding a revision task for note: rn t/TITLE_OF_NOTE dt/DATE tm/TIME
eg. rn t/CS2103T UML diagram dt/01/11/2019 tm/0900

Adding a revision task for question: rq i/INDEX_OF_QUESTION dt/DATE tm/TIME
eg. rq i/1 dt/11/11/2019 tm/1500

Removing a revision task: rdelete INDEX_OF_TASK
eg. rdelete 2

Marking the revision task as done: rdone INDEX
eg. rdone 1

Editing a revision task: redit INDEX [h/HEADING] [dt/DATE] [tm/TIME]
eg. redit 1 h/CS2100 Logic Circuit dt/15/08/2019 tm/1200

Viewing all revision tasks: rlist

Viewing completed revision tasks: finished

Viewing uncompleted revision task: unfinished

Viewing overdue revision tasks: overdue

Finding tasks with specified details: rfind h/WORD [WORD]…​ or rfind dt/DATE or rfind tm/TIME
eg. rfind h/hello world or rfind dt/01/11/2019 or rfind tm/1200

Clearing current revision plan: rclear

Exitting the app: exit

Opening help window: help

5. 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 Address Book folder.