Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[v1.4] Updated Tests + User Guide #103

Merged
merged 7 commits into from
Apr 13, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
172 changes: 89 additions & 83 deletions docs/UserGuide.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,13 @@ By: `Team M11-3` Since: `Jan 2019` Licence: `MIT`

== Introduction

FlashCards is for those who *prefer to use a desktop app for managing their notes*.
More importantly, FlashCards 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, FlashCards can let you retrieve and access your notes for various subjects faster than sieving through your hardcopied notes. Interested? Jump to the <<Quick Start>> to get started. Enjoy!
FlashCards is for those who *prefer to use a desktop application to manage their notes*.
More importantly, FlashCards is *optimized for those who are comfortable working with a Command Line Interface* (CLI) while still having the benefits of a Graphical User Interface (GUI).

With FlashCards, you no longer need to worry about sieving through your hard copied notes for various subjects just to find the ones you want.
You can have all your notes categorized neatly in one platform and be easily accessible at your fingertips!

Read on to get started!

== Quick Start

Expand Down Expand Up @@ -57,31 +62,6 @@ e.g. in `add t/TOPIC`, `TOPIC` is a parameter which can be used as `add t/Pythag
* Parameters can be in any order e.g. if the command specifies `t/TOPIC c/CONTENT`, `c/CONTENT t/TOPIC` is also acceptable.
====

=== Creating an account: `create`

Create an account for the user. +
Supports multiple users. +
Format: `create <username>`

* Subsequent adding of flashcards will be tagged to the same user account.

Examples:

* `create John Doe`
A new user account called "John Doe" is created.

=== Logging in: `login`

Login to the user account to perform operations pertaining to your own flashcards. +
Secures the data with a password. +
Supports multiple users. +
Format: `login <username> <password>`

Examples:

* `login John Doe john123`
The user can login using the username and password to be "John Doe" and "john123" respectively.

=== Viewing help : `help`

Displays the list of commands.
Expand All @@ -90,9 +70,9 @@ Format: `help`

//don't need to put examples but maybe can put pictures if necessary.
// tag::add[]
=== Adding a subject or flashcard: `add`
=== Adding a flashcard: `add`

Adds a flashcard with subject and data field. +
Adds a flashcard. +
Format: `add t/TOPIC diff/DIFFICULTY c/CONTENT s/SUBJECT`

* `TOPIC`: Title of the flashcard.
Expand All @@ -105,45 +85,62 @@ Format: `add t/TOPIC diff/DIFFICULTY c/CONTENT s/SUBJECT`

* `add t/Pythagoras Theorem diff/1 c/a^2 + b^2 = c^2 s/Math` +
Adds a flashcard named "Pythagoras Theorem" under the subject "Math" to the list of flashcards.
It has a difficulty level of "1" with the content "a^2 + b^2 = c^2".
It has the content "a^2 + b^2 = c^2" and a difficulty level of "1".

* `add t/Photosynthesis diff/1 c/A chemical reaction that takes place inside a plant, producing food for the plant to survive s/Science` +
Adds a flashcard named "Photosynthesis" under the subject "Science" to the list of flashcards.
It has a difficulty level of "1" with the content "A chemical reaction that takes place inside a plant, producing food for the plant to survive".
It has the content "A chemical reaction that takes place inside a plant, producing food for the plant to survive" and a difficulty level of "1".


The flashcard that was just added will be displayed.
The flashcard that was just added will be displayed in the flashcards panel.
// end::add[]
=== Listing all flashcards categorized by subjects : `list` or `l`

=== Listing all flashcards categorized by subjects: `list` or `l`

Displays an indexed list of flashcards categorized by subjects. +
Format: `list` or `l`

Subject tags will be colour-coded. Same subject tags will have the same colour.

// tag::edit[]
=== Editing a flashcard : `edit` or `e`
=== Editing a flashcard: `edit` or `e`

Edits field(s) of a specified flashcard. +

Edits the content of a flashcard. +
Enter the index of the flashcard to edit. +
Enter the index of the flashcard to edit, followed by the field(s) you wish to edit. +
Format: `edit INDEX [t/TOPIC] [diff/DIFFICULTY] [c/CONTENT] [d/DEADLINE] [s/SUBJECT]` +


* `INDEX`: Index number of the flashcard to be edited. This index number will be shown in the displayed list of flashcards.
* `INDEX`: Index number of the flashcard to be edited. This index number will be shown in the displayed list of flashcards in the flashcards panel.
*Must be a positive integer* such as 1, 2, 3, ... +
* `[t/TOPIC] [diff/DIFFICULTY] [c/CONTENT] [d/DEADLINE] [s/SUBJECT]`: *At least one* of these fields enclosed in [ ]
must be present. +

*Steps to edit a flashcard:* +

* Click on a subject in the subjects panel; or +
* Enter the `selectSubject` command to select a subject (see Section 3.9.); then +
* Use the `edit` command to edit a flashcard +

*Examples:* +

* `edit 1 s/Science` +
Edits flashcard with index "1" and replaces its existing subject with "Science".
* `e 2 c/The quick brown fox` +
Edits flashcard with index "2" and replaces its existing content with "The quick brown fox".
** *Editing 1 field*
*** After clicking on a subject e.g. Math, flashcards that are tagged under "Math" will be displayed in the flashcards panel. +
Next, enter `edit 1 s/Science` or `e 1 s/Science` to edit the flashcard with index "1". It will replace the flashcard's existing subject with "Science".

*** After entering this command `selectSubject English`, all flashcards that are tagged under "English" will be displayed in the flashcards panel. +
Next, enter `edit 2 c/The quick brown fox` or `e 2 c/The quick brown fox` to edit the flashcard with index "2". It will replace the flashcard's existing content with "The quick brown fox".

The edited flashcard will be updated and displayed in the list of flashcards.
** *Editing more than 1 field*
*** After clicking on a subject e.g. Math, flashcards that are tagged under "Math" will be displayed in the flashcards panel. +
Next, enter `edit 1 c/Plants s/Science` or `e 1 c/Plants s/Science` to edit the flashcard with index "1". It will replace the flashcard's existing content with "Plants" and subject with "Science".

*** After entering this command `selectSubject English`, all flashcards that are tagged under "English" will be displayed in the flashcards panel. +
Next, enter `edit 1 t/Brown Fox diff/1` or `e 1 t/Brown Fox diff/1` to edit the flashcard with index "1". It will replace the flashcard's existing topic with "Brown Fox" and difficulty level with "1".

The edited flashcard will be updated and displayed in the flashcards panel.
// end::edit[]

=== Finding a flashcard based on topic: `find` or `f`

Find flashcards based on the given keyword. +
Expand Down Expand Up @@ -172,9 +169,11 @@ Returns any flashcards whose topic contains `sun` or `fox` such as "Brown fox" a

The flashcard(s) whose topic matches any of the keywords given will be displayed in the list of flashcards.
// tag::delete[]
=== Deleting a flashcard : `delete` or `d`

=== Deleting a flashcard: `delete` or `d`

Deletes the specified flashcard. +

Enter the index of a flashcard to be deleted. +
Format: `delete INDEX` +

Expand All @@ -183,28 +182,29 @@ Format: `delete INDEX` +

*Steps to delete a flashcard:* +

* Use the `list` command (see section 3.5) to display the list of all flashcards; or +
* Use the `find` command (see section 3.7) to find a flashcard based on its topic. +
* Select the index of the flashcard to delete. +

* Click on a subject in the subjects panel; or +
* Enter the `selectSubject` command to select a subject (see Section 3.9.); then +
* Use the `delete` command to delete a flashcard +

*Examples:* +

* `list` +
Lists all flashcards. +
`delete 2` +
Deletes the specified flashcard at index 2.
* After clicking on a subject e.g. Math, flashcards that are tagged under "Math" will be displayed in the flashcards panel. +
Next, enter `delete 2` or `d 2` to delete the specified flashcard at index 2.

* `f Pythagoras Theorem` +
Find flashcards with keywords "Pythagoras" and "Theorem". +
`d 1` +
Deletes the specified flashcard at index 1.
* After entering this command `selectSubject English`, all flashcards that are tagged under "English" will be displayed in the flashcards panel. +
Next, enter `delete 1` or `d 1` to delete the specified flashcard at index 1.

The updated list of flashcards will be displayed.
The updated list of flashcards will be displayed in the flashcards panel.
// end::delete[]
=== Selecting a flashcard : `select`

Selects the flashcard identified by the index number used in the displayed flashcards list. +
=== Selecting a subject: `selectSubject`



// tag::selectFlashcard[]
=== Selecting a flashcard: `select`

Selects the flashcard identified by the index number used in the displayed list of flashcards. +
Format: `select INDEX` +

* `INDEX`: Index number of the flashcard to be selected. This index number will be shown in the displayed list of flashcards.
Expand All @@ -213,25 +213,22 @@ Format: `select INDEX` +

*Steps to select a flashcard:* +

* Use the `list` command (see Section 3.5) to display the list of all flashcards; or +
* Use the `find` command (see Section 3.7) to find a flashcard based on its topic. +
* Select the index of the flashcard. +
* Click on a subject in the subjects panel; or +
* Enter the `selectSubject` command to select a subject (see Section 3.9.); then +
* Use the `select` command to select a flashcard +


*Examples:* +

* `list` +
Lists all flashcards. +
`select 2` +
Selects the 2nd flashcard in the list.
* After clicking on a subject e.g. Math, flashcards that are tagged under "Math" will be displayed in the flashcards panel. +
Next, enter `select 2` to select the 2nd flashcard of the subject "Math" in the flashcards panel.

* `find definition` +
Find flashcards with the keyword "definition". +
`select 1` +
Selects the 1st flashcard in the displayed results of the `find` command.
* After entering this command `selectSubject English`, all flashcards that are tagged under "English" will be displayed in the flashcards panel. +
Next, enter `select 1` to select the 1st flashcard of the subject "English" in the flashcards panel.
// end::selectFlashcard[]

// tag==togglemode[]
=== Viewing the next flashcard : `next` or `n`
// tag::togglemode[]
=== Viewing the next flashcard: `next` or `n`

Views the next flashcard in line. +
Format: `next` or `n` +
Expand All @@ -258,7 +255,7 @@ Displays the content of this flashcard.

The next flashcard in line will be selected and its content will be displayed.

=== Viewing the next flashcard : `previous` or `p`
=== Viewing the next flashcard: `previous` or `p`

Views the previous flashcard in line. +
Format: `previous` or `p` +
Expand Down Expand Up @@ -286,7 +283,7 @@ Displays the content of this flashcard.
The previous flashcard in line will be selected and its content will be displayed.

// end::togglemode[]
=== Listing entered commands : `history`
=== Listing entered commands: `history`

Lists all the commands that you have entered in reverse chronological order. +
Format: `history`
Expand All @@ -297,7 +294,7 @@ Pressing the kbd:[&uarr;] and kbd:[&darr;] arrows will display the previous and
====

// tag::undoredo[]
=== Undoing previous command : `undo`
=== Undoing previous command: `undo`

Restores the flashcard to the state before the previous _undoable_ command was executed. +
Format: `undo`
Expand Down Expand Up @@ -334,7 +331,7 @@ Reverses the `clear` command +
Reverses the `delete 1` command +


=== Redoing the previously undone command : `redo`
=== Redoing the previously undone command: `redo`

Reverses the most recent `undo` command. +
Format: `redo`
Expand Down Expand Up @@ -368,30 +365,37 @@ Reapplies the `clear` command +

// end::undoredo[]

=== Clearing all flashcards : `clear` or `c`
=== Clearing all flashcards: `clear` or `c`

Clears all flashcards. +
Format: `clear` or `c`

=== Exiting the program : `exit`
=== Exiting 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. +
FlashCards data is saved in the hard disk automatically after any command that changes the data. +

There is no need to save manually.

// tag::dataencryption[]
=== Encrypting data files `[coming in v2.0]`
=== Creating an account (coming in v2.0)

Creates an account for the user. +

This feature will support multiple users and all operations carried out will be tagged to the same user account.

=== Logging in (coming in v2.0)

Enables users who already have an account to log in. +

_{explain how the user can enable/disable data encryption}_
// end::dataencryption[]
This feature will support multiple users and all operations carried out will only pertain to the current user account.

== FAQ

*Q*: How do I transfer my data to another Computer? +
*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 FlashCard Book folder.

== Command Summary
Expand All @@ -414,4 +418,6 @@ e.g. `find Theorem` or `f sun fox`
* *Redo* : `redo`
* *Select* : `select INDEX` +
e.g.`select 2`
* *Select Subject* : `selectSubject SUBJECT` +
e.g. `selectSubject Math`
* *Undo* : `undo`
Loading