User Guide
SWEe! is a desktop app for CS2103T students to manage their learning progress mainly through flashcards. It is optimized for CLI users so that frequent tasks can be done faster by typing in commands. If you can type fast, SWEe! can create your CS2103T flashcards faster than traditional GUI apps.
- Table of Contents
- Quick start
- Application layout
- Notes about the command format
- Common Input Fields
-
Features
-
Add a flashcard:
add
-
Clear all flashcards:
clear
-
Delete a flashcard:
delete
-
Edit a flashcard:
edit
-
Filter for flashcards:
filter
-
Favourite a flashcard :
fav
-
Unfavourite a flashcard:
unfav
-
Find flashcards:
find
-
View help:
help
-
List all flashcards:
list
-
Review flashcards :
review
-
Quiz flashcards:
quiz
-
Sort all flashcards:
sort
-
View a flashcard:
view
-
View the statistics of a flashcard:
stats
-
Exit the program:
exit
- Saving the data
-
Add a flashcard:
- FAQ
- Command summary
Quick start
-
Ensure you have Java
11
or above installed in your Computer. -
Download the latest
swee.jar
from here. -
Copy the file to the folder you want to use as the home folder for SWEe!.
- Double-click the file to start the app. The GUI similar to the image below should appear in a few seconds. Note how the app contains some sample data.
-
Type the command in the command box and press Enter to execute it.
Some example commands you can try:-
add q/What does OOP stand for? a/Object Oriented Programming c/General
: Adds a flashcard with a question and answer into the General category. -
delete 3
: Deletes the 3rd flashcard in the current list. -
list
: Lists all flashcards. -
review
: Reviews the current list of flashcards. -
view 1
: Views the 1st flashcard in the current list. -
exit
: Exits the app.
-
- Refer to the Features below for details of each command.
Application layout
The figures below show the annotated version of the graphic user interface. This will help you better identify the various sections and elements in the application, as well as understand the technical terms stated in this documentation.
Notes about the command format
This section will give you some useful information about the various command formats and notations you will see in Features.
- Words in UPPER_CASE are the parameters to be supplied by the user.
- eg. in
add q/QUESTION
,QUESTION
is a parameter which can be used asadd q/What is my name?
- eg. in
- Items in angle brackets
<>
are either/or options. Each option is delineated by a|
.- eg.
<success|reviewed>
can be used as eithersuccess
orreviewed
but not both.
- eg.
- Words in lower_case are to be specified exactly.
- eg. in
sort <success|reviewed>
,success
andreviewed
must be specified exactly.
- eg. in
- Items in square brackets are optional (zero or one instance).
- eg.
q/QUESTION [c/CATEGORY]
can be used asq/What is my name?
or asq/What is my name? c/topic 1
- eg.
- Items in square brackets with trailing ellipsis are optional (zero, one or multiple instances).
- eg.
q/QUESTION [t/TAG]...
can be used asq/What is my name?
,q/What is my name? t/topic1
orq/What is my name? t/topic1 t/fun
- Multiple instances of the tag prefix is accepted, and the app will read every instance
in the input.
- eg.
- Multiple instances of the same prefix/flag will not throw an error. However, the app will only read the last instance in the input (except for tags).
- eg.
add q/Are apples red? a/Yes c/fruit c/test
will add a flashcard belonging to “test” category - eg.
sort reviewed -a -a -d
will sort flashcards according to review frequency in descending order - eg.
filter f/yes f/no
will filter and list flashcards that are not favourited.
- eg.
- Parameters can be in any order.
- eg. Specifying
q/QUESTION a/ANSWER
ora/ANSWER q/QUESTION
are both acceptable.
- eg. Specifying
- All additional input after commands which do not have input fields such as
list
,exit
,clear
,help
,review
,quiz
will be ignored.- eg.
list
andlist 123
will have the same effect.
- eg.
- Flags such as
-a
and-d
allow white spaces within them.- eg.
sort success - a
is valid and will sort flashcards by success rate in ascending order. - eg.
view 1 - a
is valid and will view the first flashcard in the displayed flashcard list with answer shown.
- eg.
- Prefixes and flags are both case sensitive.
- eg.
q/
is not the same asQ/
- eg.
-a
is not the same as-A
- eg.
Common Input Fields
This section will help you understand the different fields you will see in Features. It gives an overview of what they are, how to specify them and any restrictions.
General Notes about Input Fields:
-
Can be empty means you can specify the prefix but not pass a value.
eg. passingr/
is valid. -
Cannot be empty means you have to specify a value when you specify the prefix.
eg. passingc/
is invalid. - All input fields should not contain other input prefixes. eg. passing in
What is c/?
as aQUESTION
toq/QUESTION
is not supported.
Input Field | Restrictions and how to specify |
---|---|
q/QUESTION |
This is the question on the flashcard.QUESTION has no character limit or restrictions (eg. can have spaces).Cannot be empty. |
a/ANSWER |
This is the answer on the flashcard.ANSWER has no character limit or restrictions (eg. can have spaces).Cannot be empty. |
c/CATEGORY |
This is the category of the flashcard.CATEGORY must be alphanumeric and have a maximum of 50 characters. It can consist of multiple words but there should only be 1 space between words.Cannot be empty. |
r/RATING |
This is the star rating of the flashcard.RATING must be a number between 1 and 5 inclusive.Can be empty. |
d/DIAGRAM |
This is the diagram of the flashcard (associated with a question in the view pane).DIAGRAM must be a valid relative or absolute path to a file. Currently only supports file path without spaces. eg. image/umlDiagram.png is supported but image/u mlDiagram.png is not supported Only supports the following image file types: jpg, png, jpeg, bmp Can be empty. |
n/NOTE |
This is the notes of the flashcard (associated with an answer in the view pane).NOTE has no character limit or restrictions.Can be empty. |
t/TAG |
These are tags of the flashcard. A flashcard can have more than one tag.TAG must be alphanumeric and have a maximum of 50 characters.Must only be one word. Cannot be empty. |
INDEX |
INDEX refers to the index number shown in the displayed flashcard list.Every visible flashcard on the display list has an INDEX .INDEX must be a positive integer greater than 0. eg. 1, 2, 3, … |
KEYWORD |
KEYWORD can be alphanumeric or punctuations. KEYWORD has no character limit but there should be no spaces within the keyword. |
Features
Add a flashcard : add
Adds a flashcard.
Format: add q/QUESTION a/ANSWER [c/CATEGORY] [r/RATING] [n/NOTE] [d/DIAGRAM] [t/TAG]...
- Refer to common input fields on what the different fields are and how to specify them.
- After a new flashcard is added, all flashcards will be listed.
Examples:
add q/What does OOP stand for? a/Object Oriented Programming
add q/What does OOP stand for? a/Object Oriented Programming r/3 t/cool
add q/What does OOP stand for? a/Object Oriented Programming c/Super Important n/Important question!
add q/What does OOP stand for? a/Object Oriented Programming d/images/diagram.png
add q/What does OOP stand for? a/Object Oriented Programming c/UML n/Important question! d/images/diagram.png
Steps for adding a flashcard with diagram:
Step 1: Locate the relative file path of the image file. In this example, our file path is image/classDiagramExample1.png
Root folder containing the jar file | Image directory |
---|---|
Step 2: Type the command add q/This is an example of a class diagram a/True d/image/classDiagramExample1.png
and press Enter. Remember to include the file extension in DIAGRAM
Step 3: The flashcard is added to the list.
Clear all flashcards : clear
Clears all flashcard data from the program.
Format: clear
Delete a flashcard : delete
Deletes the specified flashcard.
Format: delete INDEX
- Deletes the flashcard at the specified
INDEX
. TheINDEX
refers to the index number shown in the displayed flashcard list. -
INDEX
must be a positive integer greater than 0. eg. 1, 2, 3, …
Examples:
-
list
followed bydelete 2
deletes the 2nd flashcard in the flashcard list.
Edit a flashcard : edit
Edits a flashcard.
Format: edit INDEX [q/QUESTION] [a/ANSWER] [c/CATEGORY] [n/NOTE] [r/RATING] [d/DIAGRAM] [t/TAG]...
- Edits the flashcard at the specified
INDEX
. TheINDEX
refers to the index number shown in the displayed flashcard list. - Refer to common input fields on what the different fields are and how to specify them.
- Although all fields are optional, a minimum of one field has to be given.
- Specifying empty values to
NOTE
,RATING
,TAG
orDIAGRAM
eg.r/
will remove the corresponding field in the flashcard. - Although
QUESTION
,ANSWER
andCATEGORY
are optional values, you are not allowed to specify an empty value to those attributes once the prefix is declared e.g.c/
is not allowed and will not remove category.
Examples:
edit 3 q/What does OOP stand for? a/Object Oriented Programming c/General
edit 3 q/What does OOP stand for? a/Object Oriented Programming
edit 3 n/Important question! r/
Steps for editing a flashcard’s category and rating:
Step 1: Locate the flashcard you wish to edit. In this example, we want to edit the flashcard at index 2.
Step 2: We want to edit the category of the flashcard to Trivial and rating to 1. Type the command edit 2 c/Trivial r/1
and press Enter.
Step 3: The flashcard’s category and rating are edited to Trivial and 1 respectively.
Filter for flashcards : filter
Filters for specific flashcard(s) based on the field input(s) by the user. This will return all the flashcards whose fields match all the fields specified by the user.
Format: filter [c/CATEGORY] [r/RATING] [f/<yes|no>] [t/TAG]...
- Filters the specified flashcard based on category, rating, favourite status or tags.
- Refer to common input fields on what the different fields are and how to specify them.
- Specifying
f/yes
filters for favourited flashcards whilef/no
filters for unfavourited flashcards. - Supports filtering of one or more different fields. For example:
-
filter c/SDLC r/5
will filter out flashcards belonging to the SDLC category with a rating of 5.
-
- Although all fields are optional, a minimum of one field has to be given.
filter r/
will filter for all unrated flashcards.filter
? Use the list command.
Examples:
-
filter c/SDLC
filters and lists all flashcards belonging to the SDLC category. -
filter t/examinable t/study
filters and lists all flashcards that have both an “examinable” tag and a “study” tag. -
filter r/3 f/yes
filters and lists all favourited flashcards that have a rating of 3. -
filter f/no f/yes c/General
filters and lists all favourited flashcards that belong to the General category. (only last instance of f/ is read)
Steps for filtering for a flashcard based on category and tag:
Step 1: We want to filter for a flashcard which has a Trivial category and contains the preloaded tag. Type the command filter c/Trivial t/preloaded
and press Enter.
Step 2: The flashcard with the category Trivial and tag field preloaded is shown.
Favourite a flashcard : fav
Favourites the specified flashcard.
Format: fav INDEX
- Favourites the flashcard at the specified
INDEX
. TheINDEX
refers to the index number shown in the displayed flashcard list. -
INDEX
must be a positive integer greater than 0. eg. 1, 2, 3, …
Examples:
-
list
followed byfav 2
favourites the 2nd flashcard in the displayed flashcard list.
Unfavourite a flashcard : unfav
Unfavourites the specified flashcard.
Format: unfav INDEX
- Unfavourites the flashcard at the specified
INDEX
. TheINDEX
refers to the index number shown in the displayed flashcard list. -
INDEX
must be a positive integer greater than 0. eg. 1, 2, 3, …
Examples:
-
list
followed byunfav 2
unfavourites the 2nd flashcard in the displayed flashcard list.
Find flashcards : find
Searches for all flashcards matching any of the search keywords.
Format: find KEYWORD [KEYWORD]...
- Finds all flashcards containing any of the keywords.
- Refer to common input fields on how to specify the different fields.
- The keywords are case insensitive.
- Keywords will match as long as they are contained within any flashcard’s question/answer/category/note/tags. eg.
UML
keyword will match a flashcard with acategory
calledUML-Diagram
find
? Use the list command.
Examples:
-
find general
displays all flashcards containing the word general. -
find general important
displays all flashcards containing either the word general and/or important. -
find GENERAL object
displays all flashcards containing either the word general and/or object. -
find -
displays all flashcards containing “-“.
View help : help
Opens a window with a link that directs you to our user guide.
Format: help
List all flashcards : list
Shows a list of all flashcards. This is useful for removing any filter
or find
you have done on the flashcard list.
Format: list
Review flashcards: review
Reviews the current list of flashcards. This puts the user in review mode and the user can no longer input commands to the textbox.
Format: review
Upon entering review mode, the following user input will be recognised:
-
↓ key
shows answer and notes of the current flashcard -
↑ key
hides answer and notes of the current flashcard -
→ key
moves on to the next flashcard (if there is a next flashcard) -
← key
moves to the previous flashcard (if there is a previous flashcard) -
q
quits review mode
Steps for entering review mode:
Step 1: We want to enter review mode to review our flashcards. Type the command review
and press Enter.
Step 2: We are brought into review mode. The instructions on how to navigate review mode will be shown at the top.
Step 3: In this example, we will demonstrate the behaviour of the ↓ key
. Upon pressing the ↓ key
, the answer of the flashcard is shown.
Quiz flashcards: quiz
Quizzes the current list of flashcards. This puts the user in quiz mode and the user can no longer input commands to the textbox.
Format: quiz
Upon entering quiz mode, the following user input will be recognised:
-
↓ key
shows answer and notes of the current flashcard -
q
quits quiz mode -
y
This input will only be recognised after the↓ key
is pressed.y
is a feedback to indicate a correct answer. -
n
This input will only be recognised after the↓ key
is pressed.n
is a feedback to indicate an incorrect answer.
Upon pressing the ↓ key
, the user will be prompted if they got the answer correct. The user can then press
y
to feedback that they got the correct answer or n
to feedback that they got an incorrect answer.
The quiz mode works in conjunction with the statistics feature. Quiz attempts are recorded and information about the success frequency can be displayed using the statistics feature.
- Pressing
y
will increase the review and success frequency of the flashcard. - Pressing
n
will increase the review frequency of the flashcard.
y
or n
, the review and success frequency of the flashcard is updated accordingly even if the user quits the quiz prematurely.
Steps for entering quiz mode:
Step 1: We want to enter quiz mode to test ourselves on the current list of flashcards. Type the command quiz
and press Enter.
Step 2: We are brought into quiz mode. The instructions on how to navigate quiz mode will be shown at the top.
Step 3: In this example, we will demonstrate the behaviour of the ↓ key
. Upon pressing the ↓ key
, we will be prompted if we got the answer correct.
Step 4: We got this answer correct so we will press y
. This will automatically bring us to the next flashcard.
Sort all flashcards : sort
Sorts all flashcards according to the criteria given.
Format: sort <success|reviewed> <-a|-d>
- Specifying
-a
means sorting by the criteria in ascending order. - Specifying
-d
means sorting by the criteria in descending order.
Examples:
-
sort reviewed -a
shows a list of current flashcards sorted according to review frequency in ascending order -
sort reviewed -d
shows a list of current flashcards sorted according to review frequency in descending order -
sort success -a
shows a list of current flashcards sorted according to success rate in ascending order -
sort success -d
shows a list of current flashcards sorted according to success rate in descending order
View a flashcard : view
Views the specified flashcard. A “snapshot” of the flashcard is taken and displayed in the view pane to the user.
Format: view INDEX [-a]
- Views the flashcard at the specified
INDEX
. TheINDEX
refers to the index number shown in the displayed flashcard list. -
INDEX
must be a positive integer greater than 0. eg. 1, 2, 3, … - If
-a
is specified, the answer and notes of the flashcard will be shown too.
Examples:
-
view 1
shows the 1st flashcard (in the displayed flashcard list) on the view pane without answer and notes. -
view 1 -a
shows the 1st flashcard (in the displayed flashcard list) on the view pane with answer and notes.
Steps for viewing a specific flashcard:
Step 1: Locate the flashcard you wish to view. In this example, we want to view the flashcard at index 3. Type the command view 3
and press Enter.
Step 2: We will be presented with a “snapshot” of the flashcard at index 3 in the view pane.
Step 3: To view the answer and notes (if applicable) of the flashcard on the view pane. Type the command view 3 -a
and press Enter.
Step 4: The answer of the flashcard is displayed on the view pane.
View the statistics of flashcard : stats
View the statistics of a flashcard.
Format: stats INDEX
- Shows the statistics of the flashcard at the specified
INDEX
. TheINDEX
refers to the index number shown in the displayed flashcard list. -
INDEX
must be a positive integer greater than 0. eg. 1, 2, 3, …
Example:
-
stats 1
shows the statistics of the 1st flashcard (in the displayed flashcard list) on the view pane.
The statistics feature works in conjunction with the quiz feature.
The following information will be displayed on the view pane:
- Question of the flashcard (may be truncated for brevity).
- Reviewed count of the flashcard.
- Correct count of the flashcard.
- Pie chart to show the graphical representation of correct attempts vs wrong attempts in quiz mode of the flashcard. (No pie chart will be shown if the flashcard has not been reviewed.)
Steps for viewing the statistics of a specific flashcard:
Step 1: Locate the flashcard you wish to view the statistics of. In this example, we want to view the statistics of the flashcard at index 1. Type the command stats 1
and press Enter.
Step 2: The statistics of the flashcard at index 1 will be displayed in the view pane.
Exit the program : exit
Exits the program.
Format: exit
Saving the data
Flashcards data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
FAQ
Q: What does it mean if some action is not supported?
A: It means that our app is not intended to allow said action to work although it may work under certain circumstances.
If you still want to perform the action, do take note that you may face unintended or unexplained behaviour.
Q: What is the difference between review mode and quiz mode?
A: Review mode is like a sandbox mode where you can move back and forth between flashcards. In quiz mode, you can only go forward. Also, quiz mode asks you for feedback and keeps track of statistics but review mode doesn’t.
Q: Are success frequency and correct count of a flashcard the same thing?
A: Yes. They both refer to how many times you answered with y
in quiz mode for the flashcard.
Q: Why doesn’t review mode affect review frequency/count of a flashcard?
A: We know the naming may be a little bit confusing but just keep in mind that review mode does not affect the statistics (success, review frequency) of a flashcard. Only quiz mode does!
Q: What is the success rate of a flashcard?
A: Success rate of a flashcard is measured by (success frequency) / (review frequency) x 100%
. If a flashcard has a review frequency of 0, then its success rate will be 0%.
Command summary
Action | Format, Examples |
---|---|
Add |
add q/QUESTION a/ANSWER [c/CATEGORY] [n/NOTE] [r/RATING] [d/DIAGRAM] [t/TAG]... eg. add q/What does OOP stand for? a/Object Oriented Programming c/General n/Important question! d/images/diagram.jpeg
|
Clear | clear |
Delete |
delete INDEX eg. delete 3
|
Edit |
edit INDEX [q/QUESTION] [a/ANSWER] [c/CATEGORY] [n/NOTE] [r/RATING] [d/DIAGRAM] [t/TAG]... eg. edit 3 q/What does OOP stand for? a/Object Oriented Programming
|
Filter |
filter [c/CATEGORY] [r/RATING] [f/<yes|no>] [t/TAG]... eg. filter t/examinable r/3
|
Fav |
fav INDEX eg. fav 1
|
Unfav |
unfav INDEX eg. unfav 1
|
Find |
find KEYWORD [KEYWORD]... eg. find general important
|
Help | help |
List | list |
Review | review |
Quiz | quiz |
Sort |
sort <success|reviewed> <-a|-d> eg. sort success -a
|
View |
view INDEX [-a] eg. view 1
|
Stats |
stats INDEX eg. stats 3
|
Exit | exit |