By: Team T10-2 Since: Jan 2020 Licence: MIT
- 1. Introduction
- 2. Quick Start
- 3. Features
- 3.1. Basic Features
- 3.2. Opening
- 3.3. Adding
- 3.4. Opening
- 3.5. Editing
- 3.6. Listing
- 3.7. Clearing
- 3.8. Deleting
- 3.9. Searching
- 3.10. Filtering
- 3.11. Testing
- 3.12. Displaying History
- 3.13. Undo/Redo
- 3.14. Detecting duplicates
- 3.15. Statistics
- 3.16. Syncing across multiple platforms: sync [coming in v2.0]
- 3.17. Playing memory games: game [coming in v2.0]
- 3.18. Customising flashcards UI: custom [coming in v2.0]
- 3.19. Replacing image [coming in v2.0]
- 4. FAQ
- 5. Command Summary
Cardi Buddy (CardiB) is for students who prefer to use a desktop app to store their revision materials as flashcards. More importantly, CardiB 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). If you can type fast, CardiB can help you to store revision materials quickly. The self-testing features will definitely help you to ace your examinations as opposed to traditional ways of revision by re-reading lecture notes. Interested? Jump to Section 2, “Quick Start” to get started. Enjoy!
-
Ensure you have Java
11or above installed in your Computer. -
Download the latest
cardibuddy.jarhere. -
Copy the file to the folder you want to use as the home folder for your Cardi Buddy.
-
Double-click the file to start the app. The GUI should appear in a few seconds.
-
Type the command in the command box and press Enter to execute it.
e.g. typinghelpand pressing Enter will open the help window. -
Some example commands you can try:
-
list: lists all decks -
addd/CS1101S t/Basics: adds an empty deck titledCS1101Sto the Cardi Buddy. -
open 1: opens the 1st deck shown in the current list -
delete deck3: deletes the 3rd deck shown in the current list -
exit: exits the app
-
-
Refer to Section 3, “Features” for details of each command.
Application-specific Terminologies
-
Decks are the containers that contain the flashcard. A flashcard can only exist in a deck.
-
Flashcards are cards that contain revision materials, specifically a question and an answer.
-
Statistics is the numererical, summarized version of your data, based on your test history. Your statistics can serve as a guideline for you to decide which areas you need to work on, and which areas you are familiar with.
Common Terminologies
-
File path specifies the unique location of a file in a file system from the root directory.
Command Format
-
Words in
UPPER_CASEare the parameters to be supplied by the user e.g. inadd d/TITLE,TITLEis a parameter which can be used asadd d/CS1101S. -
Items in square brackets are optional e.g
d/TITLE [t/TAG]can be used asd/CS1101S t/Basicsor asd/CS1101S. -
Items with
… after them can be used multiple times including zero times e.g.[t/TAG]…can be used as(i.e. 0 times),t/Easy,t/Easy t/Basicsetc. -
Parameters can be in any order e.g. if the command specifies
d/TITLE t/TAG,t/TAG d/TITLEis also acceptable.
Special Icons
-
💡 is used to signal information that is helpful for the users to know.
The data is automatically saved into the hard disk after the user enters any command that changes the data
There is no need to save manually.
Creates a new deck to be added to the library.
Format: add d/TITLE [t/TAG]…
-
Tag names are alphanumeric with no spaces E.g. t/Core Module is an invalid tag while t/CoreModule is valid.
Examples:
-
add d/CS2103
Returns a new deck titledCS2103 -
add d/CS1101S t/Easy t/Basics
Adds a new deck titledCS1101Swith the tagsEasyandBasics
Creates a new card to be added to the deck.
Format: add c/DECK_INDEX q/QUESTION a/ANSWER
-
The deck specified in DECK_INDEX must be open for you to add a card.
Examples:
-
open 2
add c/2 q/How does one go about solving recursion problems? a/Wishful thinking
Adds a new card belonging to the deck indexed at 2.
Creates a new image card to be added to the deck.
Format: add p/file:FILE_PATH_TO_IMAGE c/DECK_INDEX q/QUESTION a/ANSWER
-
The deck specified in DECK_INDEX must be open for you to add a card.
-
The images can only be PNG or JPG files.
-
The FILE_PATH_TO_IMAGE must end with .png or .jpg suffix.
Examples:
-
open 1
add p/file:/Users/qiujingying/Documents/GitHub/cs2103/main/docs/images/ArchitectureDiagram.png c/1 q/What type of diagram is this? a/Architecture Diagram
Adds a new card with an image belonging to the deck indexed at 1.
|
💡
|
You can drag and drop the image you want to add into a terminal window to obtain its file path. File paths may differ across operating systems (Windows vs Mac). |
Edits an existing deck in the library.
Format: edit DECK_INDEX [d/TITLE] [t/TAG]…
-
Edits the decks at the specified DECK_INDEX. The index refers to the index number shown in the complete list of decks. 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.
-
When editing tags, the existing tags of the deck will be removed i.e adding of tags is not cumulative.
-
You can remove all the deck’s tags by typing t/ without specifying any tags after it. If not, the tags will not be removed.
Examples:
-
edit 1 d/CS2103T
Edits the title of the 1st deck to beCS2103Twithout removing existing tags. -
edit 2 d/CS2040 t/
Edits the title of the 2nd deck to beCS2040and clears all existing tags.
Edits an existing card in the deck.
Format: edit card CARD_INDEX [q/QUESTION] [a/ANSWER] [t/TAG]…
-
You must open a deck before you can edit a flashcard. A flashcard can only exist inside a deck.
-
Edits the card at the specified CARD_INDEX. The index refers to the index number shown in the complete list of decks. 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.
-
When editing tags, the existing tags of the card will be removed i.e adding of tags is not cumulative.
-
You can remove all the card’s tags by typing t/ without specifying any tags after it.
Examples:
-
open 1
edit card 1 q/What does MVC stand for?
Opens the first deck and tEdits the question of the 1st card to beWhat does MVC stand for?. -
open 1
edit card 2 a/cs2040 t/
Edits the answer of the 2nd card to becs2040and clears all existing tags.
Deletes the specified deck from the library.
Format: delete deck DECK_INDEX
-
Deletes the deck at the specified DECK_INDEX.
-
The index refers to the index number shown in the complete list of decks.
-
The index must be a positive integer 1, 2, 3, …
Examples:
-
list decks
delete deck 2
Deletes the 2nd deck in the library. -
search deck cs2030
delete deck 1
Deletes the 1st deck in the results of the search command.
Deletes the specified card from a specific deck.
Format: delete INDEX d/DECK_TITLE
-
You must open a deck before you can delete a flashcard. A flashcard can only exist inside a deck.
-
Deletes the card at the specified INDEX of the deck.
-
The index refers to the index number shown in the complete list of flashcards in the deck.
-
The index must be a positive integer 1, 2, 3, …
Examples:
-
open 1
delete card 2d/cs2030
Opens the first deck and deletes the 2nd flash card in the deck. -
search card java
delete card 1
Deletes the 1st card in the results of the search card command.
Searches for the decks with titles that contain any of the given keywords or all of the keywords
concatenated with the & symbol.
Format: search deck KEYWORD [&] [MORE_KEYWORDS]
-
If the search has a
&symbol, only decks with the words concatenated before and after the symbol will be returned. -
The search is case insensitive. e.g cs2040 will match CS2040
-
The order of the keywords does not matter. e.g. Science Module will match Module Science
-
Only titles of the decks are searched.
-
The keyword needs to match a word within the deck’s title exactly . e.g. cs will not match with cs2030
Examples:
-
search deck database
Displays decks with the worddatabasein the titles. -
search deck database & relational
Displays decks with both of the wordsdatabaseandrelationalin the titles.
Finds the cards with a question that contain any of the given keywords.
Format: search card KEYWORD [&] [MORE_KEYWORDS]
-
A deck needs to be opened for the
search cardcommand to work. The command will only search for cards in the opened deck. -
If the search has a
&symbol, only cards with the words concatenated before and after the symbol, in the question, will be returned. -
The search is case insensitive. e.g programming will match Programming.
-
The order of the keywords does not matter. e.g. Javascript programming language will match with programming language Javascript.
-
The keyword needs to match a word within the question exactly. e.g. Java will not match with Javascript.
Examples:
-
search card principle
Displays cards with the wordprinciplein the questions. -
search card diagram & UML
Displays decks with both of the wordsdiagramandUMLin the questions.
Filters across all decks and only displays the decks with the specific tag.
Format: filter TAGNAME [&] [MORE_TAGNAMES]
-
If the search has a
&symbol, only decks with the tags concatenated before and after the symbol will be returned. -
Filtering by tag is case insensitive. e.g hard will match Hard
Examples:
-
filter hard
Displays decks with the taghard. -
filter hard & coremodule
Displays decks with both the tagshardandcoremodule. <<<<<<< HEAD
Of course, you did not create all those decks and flashcards just so you can admire them! It’s time to get your revision on. Start a test session for a deck to begin testing yourself!
A test session works just like how flashcard testing works in real life - You look at the question, think of the answer, and 'flip' the card around to see if your answer matches the one on the flashcard.
The difference here is that you do not need to manually keep track of how many flashcards you got right and wrong — CardiBuddy does all that for you!
A test session in CardiBuddy is special - it includes a retesting feature to make sure you know your content well.
When you answer a flashcard’s question wrongly, you will encounter it again later on in the same test session. There is no need to do this manually - CardiBuddy does this for you too.
Hence if you keep getting a question wrong, a test session can go on and on forever - unless you finally get it right, or you quit the test session!
To start your test session, replace INDEX with the index number of the deck you wish to test. This number will be to the left of the title of your deck, when you are viewing all your decks as a list.
What this command does:
-
A test session will immediately replace the normal deck and flashcard list view.
-
The first question of the test session will be displayed.
Example Usage:
-
test 1
Creates a test session for the 1st deck.
Replace YOUR ANSWER with your answer to the displayed question.
What this command does:
-
Submits your answer, and checks your answer against the flashcard’s stored answer
-
Displays the result of your answer (CORRECT or WRONG)
-
Displays your answer and the flashcard’s answer
Example Usage:
-
ans CardiBuddy
To answer the question: "What is the name of this application?"
What this command does:
-
If you already know the answer to the question, and don’t want to waste your time answering it, just type
skipto go to the next question. -
Your skipped flashcard will not impact your overall test score, and CardiBuddy will merely remove it from your current test session.
Note:
-
You can use this command if either:
-
You have not answered the question.
-
You have answered the question, but you got it wrong.
-
-
CardiBuddy will not let you use
skipif you have already gotten that question correct.
What this command does:
-
CardiBuddy’s uses automated marking to mark your answers. It takes your answer word for word when checking against the model answer stored in your flashcard.
-
If your answer differs from the model answer, it will be marked as wrong.
-
After submitting your answer, you will get to see the model answer and your answer, for you to compare them.
-
If you feel that your answer still meets the question’s requirements, you can
forceyour answer to be marked as correct.
What this command does:
-
After submitting your answer, type
nextto go to the next question (if there are any left to test).
Note:
-
You can only type
nextonce you have submitted your answer.
Upon adding a new deck, the application automatically checks if there are any existing decks with the same title. Only decks with unique titles can be successfully added.
Upon adding a new card to a specific deck, the application automatically checks if there are any existing cards with the same question in that deck. Only cards with unique questions can be successfully added.
If there is a card with the same question but it is in a different deck, the card can still be successfully added.
-
Shows the number of Decks/Cards created and deleted, number of Test Sessions played, average correct percentage, average number of tries for each question.
-
Includes a line graph of the history of test previous test results.
Displays the statistics across all decks.
Format: statistics
Displays the statistics of a specific deck.
Format: statistics INDEX
Example:
-
statistics 2
Shows the statistics of the deck with the shown index of 2.
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 Cardi Buddy folder.
-
Add deck :
add d/TITLE [t/TAG]…
e.g.add d/CS2030 t/Fundamentals t/Medium -
Add normal card :
add c/DECK_INDEX q/QUESTION a/ANSWER
e.g.add c/1 q/What does OOP stand for? a/Object Oriented Programming -
Add image card :
add p/file:FILE_PATH_TO_IMAGE c/DECK_INDEX q/QUESTION a/ANSWER
e.g.add p/file:/Users/foo/ObjectDiagram.png c/1 q/Which SOLID principle did the code not adhere to? a/Single Responsibility Principle -
Clear :
clear -
Delete deck/card :
delete deck/card INDEX
e.g.delete deck 3 -
Edit :
edit INDEX [d/TITLE] [t/TAG]…
e.g.edit 2 d/CS2103T t/ -
Exit :
exit -
Force :
force -
Filter :
filter TAGNAME [&] [MORE_TAGNAMES]
e.g.filter hard & CS -
History :
history -
Next :
next -
List :
list -
Next :
next -
Open :
open INDEX
e.g.open 2 -
Quit :
quit -
Search deck/card :
search deck/card KEYWORD [&] [MORE_KEYWORDS]
e.g.search database & relational -
Statistics deck/card :
search deck/card KEYWORD [&] [MORE_KEYWORDS]
e.g.search database & relational -
Redo :
redo -
Statistics :
statistics -
Test :
test INDEX
e.g.test 1 -
Undo :
undo


