By: Flashy
Since: Mar 2018
Licence: MIT

1. Introduction
Flashy — lightning fast flashcard management.
What are flashcards? Traditional flashcards are physical cards, used to aid in memorization. Each card has two sides: the front contains the question prompt, and the back contains the answer prompt. |
Flashy is an application to help users organise their flashcards to help them memorise better. Physical flashcards are bulky and hard to search for. They are also difficult to organise. Flashy is the result of our desire to eliminate these challenges that arise from the use of conventional flashcards. Flashy helps you organise your flashcards with a powerful tagging system. Flashy is able to retrieve all flashcards of a given tag in a flash.
As students, we understand that planning out studying sessions is hard. Therefore, we have also built into Flashy an intelligent scheduler, so you can focus on studying, instead of planning your study sessions. Our scheduler uses spaced repetition, which has been shown to be effective for studying.
Spaced Repetition embodies the idea behind the phrase "don’t burn the midnight oil". Spreading out study sessions is
shown to be more effective than cramming multiple sessions in a single night.
To learn more, head over to https://en.wikipedia.org/wiki/Spaced_repetition
|
Although Flashy was built for the language learner in mind, it should prove useful for any student, as new studying tool in their arsenal.
Flashy is optimized for those who prefer to work with a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). Fast typists will find that Flashy can get their flashcard management tasks done faster than traditional GUI apps.
Interested? Jump to the Section 3 to get started.
2. How to Use This Guide
This document is designed for users with varying levels of technical proficiency. Most portions of this guide can be read standalone, with occasional references.
To aid in your understanding of our product, we have devised various scenario-based uses, along with detailed instructions. So do not be afraid to read the manual!
We use admonition blocks to draw your attention to blocks of information. Here are the icons used and their meanings:
Information that is not crucial, but is useful to know. |
Snippets of information that can be very helpful. |
Important information that should not be skimmed over. |
Important information about our product, where potentially issues may occur. |
3. Quick Start
We value our time as much as yours. Here is what you need to get up and running.
3.1. Installation
-
Ensure you have Java version
1.8.0_60
or later installed in your computer.Having any Java 8 version is not enough.
This app will not work with earlier versions of Java 8. -
Download the latest
flashy.jar
here. -
Copy the file to the desktop.
-
Double-click the file to start the Flashy. The GUI should appear in a few seconds.
Typing help
and pressing Enter will open the help window. Refer to Section 5 for details of each command.
These are some of the more common commands that you’ll encounter in Flashy. Feel free to try them out!
4. Terminology
In Flashy, there are three different kinds of flashcards:
-
Normal flashcards: Normal flashcards are simple question and answer cards with the question being at the front and answer at the back.
-
Multiple Choice Question flashcards: Fill-in-the-blanks flashcards are similar to normal flashcards, just that the question has blanks to prompt the users, and the back of the card has answers to the blanks.
-
Fill-in-the-blanks flashcards: MCQ flashcards allows you to provide different options as the answer, similar to an MCQ question, and the back will display the correct option.
In Flashy, flashcards are organised with tags. Tags are used to filter the card list to a relevant subject. For example, a student studying multiple subjects can create tags for each subject. Cards can also have multiple tags.
5. Features
Here are some of Flashy’s features to help you with your work!
5.1. Reading the Command Format
This section will teach you how to write your own commands to interface with our application.
Let us walk you through the notation with the addc
command:
addc f/FRONT b/BACK [t/TAG]…
-
Words in
UPPER_CASE
are parameters you supply. These are often user-generated content.
In |
-
Items in square brackets are optional. In this example, tags are
|
-
Items with
…
after them can be used multiple times including zero times. In this example, multiple tags can be added to the card.
|
-
Parameters can be specified in any order. In this example,
addc f/front b/back
andaddc b/back f/front
are equivalent.
To access this help guide at any time, type help
into the command box and press Enter.
5.2. Managing Cards
The very first step to using Flashy is to populate Flashy with flashcards. After which we will proceed to use it to increase your mental capabilities. This section contains all the information you need to add, select, edit cards and more.
5.2.1. Adding a flashcard: addc
You can add flashcards to Flashy. In Flashy, we support the feature of adding three different types of flashcards: normal, MCQ or fill blanks.
To add a normal flashcard, use addc f/FRONT b/BACK [t/TAGS]…
To add a fill blanks card, the input is the same as that for a normal card, the only difference is the presence of blanks _
in the f/FRONT
parameter.
To add a MCQ flashcard, use addc f/FRONT o/OPTION … b/BACK [t/TAGS] …
For a MCQ flashcard, ensure that the parameter for b/ falls between 1 the number of options inclusive.
|
Note that a blank is denoted by a single underscore _ .
|
For a fill blanks flashcard, ensure that the parameter for b/ should have the same number of answers (separated by , ) as there are blanks.
|
Examples:
-
addc f/What is the greatest flashcard application? b/Flashy t/Trivia
Adds a normal flashcard with the front and back of the first card beingWhat is the greatest flashcard application?
andFlashy
respectively, as well as tagging it asTrivia
. -
addc f/A square is a polygon with _ side meeting at _ angles. b/equal, right
Adds a fill-blanks card with the front and back of the card beingA square is a polygon with _ side meeting at _ angles.
andequal, right
respectively. -
addc f/Which continent is Singapore in? o/Asia o/Africa o/Australia o/South America b/1
Adds a MCQ-type flashcard with the front beingWhich continent is Singapore in?
, options includesAsia
,Africa
,Australia
andSouth America
and back being1
.
A flashcard can have any number of tags (including 0). |
5.2.2. Selecting a flashcard: selectc
You can select a card that is currently being listed with the selectc
command.
Format: selectc INDEX
Figure 1 shows where the index of a card can be found at:

Examples:
-
selectc 2
Selects the 2nd card in the list. -
select 1
Selects the 1st card in the list.
5.2.3. Editing a flashcard : editc
You can edit an existing flashcard currently stored in Flashy. This comes in handy if you make a mistake when adding a card.
Format: editc INDEX [f/FRONT] [o/OPTION] .. [b/BACK] [+t/TAG]… [-t/TAG]…
A particular type of flashcard (normal, MCQ or fill blanks) can only be edited to the same type of flashcard (e.g. you cannot edit a normal flashcard to a MCQ flashcard). |
When removing a tag from a flashcard, ensure that the tag exists and the flashcard is associated with that tag. |
Ensure that the constraints on flashcard is not violated when editing. For constraints, refer to the Caution warning under Section 5.2.2. |
Examples:
-
editc 1 f/What is the greatest flashcard application? b/Flashy +t/Trivia
Edits the front and back of the 1st flashcard to beWhat is the greatest flashcard application?
andFlashy
respectively, and also add a Trivia tag to it. -
editc 2 b/Lee Hsien Loong -t/Trivia
Edits the back of the 2nd flashcard to beLee Hsien Loong
, and remove its tag Trivia. -
editc 1 o/Asia o/Australia o/Africa
Edits the options of the 1st flashcard to beAsia
,Australia
andAfrica
. (Only if that flashcard is a MCQ flashcard).
5.2.4. Deleting a flashcard : deletec
You can delete cards which you no use for, this helps to declutter your card bank.
Format: deletec INDEX
If a tag no longer has associated flashcards, the tag will also be removed. Don’t be alarmed if some of your tags are also removed in the process! |
Examples:
deletec 2
Deletes the 2nd flashcard in the list.
5.3. Managing Tags
Tags allow you to filter for cards that you want to quicky find that needle in the haystack. For example you might want to search for cards that are tagged with Mathematics, this section can help you with that.
5.3.1. Selecting a tag : select
Selects the tag identified by the index number. This will show only flashcards with the tag selected.
Format: select INDEX
Examples:
-
select 2
Selects the 2nd tag in the list. -
select 1
Selects the 1st tag in the list.
5.3.2. Filtering tags: find
Filters the tag list to contain those that match the search terms.
Format: find KEYWORD [MORE_KEYWORDS]
The search is case-insensitive, but finds exact partial matches to the tag name. |
Examples:
-
find biology
will show only tags matching the wordbiology
. This will matchBiology
,biology
,biOlogy
, andBiology Midterms
, but notbio
, orchemistry
.
5.3.3. Clearing filters: list
The usage of list
is 2-fold:
-
list
allows you to see all your flashcards and tags by clearing all filters. -
list
can also be invoked with an additional flag aslist -t
, to list all cards without tags. This allows you to reorganize otherwise cards that are otherwise inaccessible.
Format: list [-t]
Examples:
-
list
Shows all tags and cards. -
list -t
Shows all tags, but shows only cards without tags.
5.3.4. Editing a tag : edit
Updates an existing tag to the specified values.
Format: edit INDEX n/TAG c/COLOR
Examples:
-
edit 1 n/French
Changes the name of the first tag in the list toFrench
.
5.3.5. Deleting a Tag: delete
Deletes an existing tag. This will remove the tag from all cards that have the tag.
Examples:
-
delete 1
deletes the first visible tag. -
delete 2
deletes the second visible tag.
5.4. Using flashcards
After adding and managing your flashcards, its time to get your A+! This section will teach you how to let Flashy’s intelligent scheduling algorithm prompt you the best time to study!
5.4.1. Showing a flashcard : showdue
To study effectively, you have to know which cards are more worth it to read first.
Luckily Flashy’s intelligent scheduler takes care of these things for you.
showdue
helps you filter out cards that are due by a certain date.
These dates are usually automatically scheduled by the Spaced Repetiton algorithm. You do not have to worry about scheduling yourself as Flashy will do it for you! But you could manually do it if you want to, take a look at the Schedule command. |
Format: showdue d/DAY m/MONTH y/YEAR
showdue can be used without any options, this will just show the flashcards due by today.You can omit some parameters in showdue . suppose today is 13/04/2018 ,
parameters that you omit would be implicitly assumed to be the current day, month or year.
If you key in showdue d/28 without typing in m/04 y/2018 ,
the month and year are assumed to be the current month.This would show you card due before 28/04/2018 .
|
Examples:
-
showdue d/28 m/04 y/2018
Show cards due before 28/04/2018 -
showdue d/28
Suppose today is 13/04/2018, althoughm/04 y/2018
is not typed, they are implicitly assumed to be the current month and year.
5.4.2. Answering flashcards: answer
After using showdue
to show a list of flashcards, you have to select a card to answer.
You can select a card with the selectc command.
You can also simply click on the flashcard.
answer
uses our Spaced Repetition algorithm to intelligently schedule the card to the right time in the future for review.
Format: answer c/CONFIDENCE_LEVEL
CONFIDENCE_LEVEL can only be 0, 1 or 2. Card must be selected first before answering. To learn how to select a card, take a look at selectc |
What does CONFIDENCE_LEVEL
mean?
-
answer c/0
Again
I don’t know the answer to this card. Card will then be requeued into the same session again. -
answer c/1
Passable
I think I know the answer, but need more practice. Card will then be scheduled for the near future. To get more practice. -
answer c/2
Easy A+
Card will then be scheduled further into the future. Other cards need more review than this one.
This gives feedback to the scheduler algorithm to automatically schedule the card for review at a time when it thinks you are likely to forget it. This design is based off the well known forgetting curve, you can read more about it here https://en.wikipedia.org/wiki/Forgetting_curve |
5.4.3. Show flashcards for review: Schedule
Using the answer
command to answer a flashcard will automatically schedule the card based on our spaced repetition algorithm.
However, if you want to manually schedule
a card for review by a certain date, you can do so as well.
Format: schedule d/DAY m/MONTH y/YEAR
Card must be selected first before scheduling. To learn how to select a card, take a look at selectc |
schedule can be used without any options, this will just schedule the cards for today.You can omit some parameters in schedule . suppose today is 13/04/2018 ,
parameters that you omit would be implicitly assumed to be the current day, month or year.
If you key in schedule d/28 without typing in m/04 y/2018 ,
the month and year are assumed to be the current month.This would schedule the card for 28/04/2018 .
|
Examples:
-
schedule d/28 m/04 y/2018
Schedule card for 28/04/2018 -
schedule d/28
Suppose today is 13/04/2018, althoughm/04 y/2018
is not typed, they are implicitly assumed to be the current month and year.
5.5. Quality-of-Life features
Flashy has many features to speed up your workflow and make your experience as pain-free as possible.
5.5.1. Autocompletion
Instead of memorising the parameters of all the commands, you can instruct Flashy to automatically fill in the relevant parameters for you! After typing a valid command, simply press TAB
and let Flashy handle the rest.
5.5.2. Clearing all data : clear
Rather than manually deleting cards and tags, Flashy is able to clear all of its data for you.
Format: clear
This command will instruct Flashy to delete all tags and flashcards. Use this command with caution! |
5.5.3. Listing entered commands : history
If you lose track of the actions you have made at any point in time, you can ask Flashy to list them for you in reverse chronological order.
Format: history
You can also press the ↑ and ↓ arrows to display the previous and next input respectively in the command box. |
5.5.4. Undo and Redo
Flashy does not come built in with an eraser. To compensate for that, some commands support undoing and redoing. The commands are add
, addc
, addm
, edit
, editc
, editm
, delete
, deletec
, and clear
.
Undoing previous command : undo
You can restore the state of Flashy’s card bank to its preious state before an undoable command was executed.
Format: undo
Undoable commands: those commands that modify the card bank’s content ( |
Examples:
-
delete 1
list
undo
(reverses thedelete 1
command) -
select 1
list
undo
Theundo
command fails as there are no undoable commands executed previously. -
delete 1
clear
undo
(reverses theclear
command)
undo
(reverses thedelete 1
command)
Redoing the previously undone command : redo
Flashy can also revert any undo
commands made by mistake!
Format: redo
Examples:
-
delete 1
undo
(reverses thedelete 1
command)
redo
(reapplies thedelete 1
command) -
delete 1
redo
Theredo
command fails as there are noundo
commands executed previously. -
delete 1
clear
undo
(reverses theclear
command)
undo
(reverses thedelete 1
command)
redo
(reapplies thedelete 1
command)
redo
(reapplies theclear
command)
5.5.5. Exiting the program : exit
or quit
Once you are confident in acing that exam, don’t forget to power down Flashy! When this is done, Flashy will save all changes made to its card bank before gracefully shutting down.
Format: exit
or quit
5.6. Managing User Preferences
5.6.1. Changing the theme : theme
Flashy knows that not all study sessions occur during the day. When carrying out all-nighters, remember that you can always switch the theme of Flashy’s interface to match the lighting condition of your surroundings!
Format: theme t/THEME
Flashy remembers your most recently used theme and will load it the next time you come back. |
Examples:
-
theme t/light
-
theme t/dark
5.7. Saving the data
All data saved in Flashy’s card bank is saved in the hard disk automatically after any command that changes the data.
There is no need to save manually.
6. FAQ
Q: How do I transfer my data to another computer?
A: Install Flashy in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous Flashy folder.
Q: Help! I cannot find the save button!
A: Fret not, Flashy automatically saves your data after any changes are made.
Q: Why are there 'c' variants of certain commands? What do they stand for? How do I differentiate them?
A: We added a 'c' suffix to commands that have both tag and flashcard variants to help you distinguish one from the other. For example, the select
command selects a tag, whereas the selectc
command selects a flashcard.
Q: I added a card, but I cannot find it!
A: You probably created a flashcard without a tag. You can retrieve such flashcards with the list -t
command.
7. Command Summary
7.1. Cards
Function | Command | Example |
---|---|---|
Show help screen |
|
|
List all flashcards and tags |
|
|
List all flashcards without tags |
list -t |
list -t |
Add flashcard |
|
|
Edit flashcard |
|
|
Show flashcards due by a certain date |
showdue d/DAY m/MONTH y/YEAR |
showdue d/14 m/4 y/2018 |
Reveal answer to flashcard |
|
|
Answer selected flashcard |
|
|
Schedule selected flashcard for a certain date |
schedule d/DAY m/MONTH y/YEAR |
schedule d/14 m/4 y/2018 |
7.2. Tags
Function |
Command |
Example |
Select tag |
|
|
Filter tags |
|
|
Edit tag |
|
|
Delete tag |
|
|
7.3. Others
Function | Command | Example |
---|---|---|
Undo a command |
|
|
Redo a command |
|
|
Clear contents |
|
|
Change Theme |
|
|