Skip to content

Commit

Permalink
Merge pull request #280 from AY1920S2-CS2103T-F11-2/dg-appendix
Browse files Browse the repository at this point in the history
Add glossary to appendix
  • Loading branch information
ziyingli committed Apr 13, 2020
2 parents 545b13d + 275bec4 commit eb231a3
Show file tree
Hide file tree
Showing 2 changed files with 70 additions and 37 deletions.
102 changes: 66 additions & 36 deletions docs/DeveloperGuide.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -802,12 +802,12 @@ Refer to the guide <<DevOps#, here>>.

*Target user profile*:

* has a need to manage a significant number of gym clients and their information (clients' details and exercises)
* prefer desktop apps over other types
* can type fast
* prefers typing over mouse input
* is reasonably comfortable using CLI apps
* wants to book facilities easily [v2.0]
* Has a need to manage a significant number of gym clients and their information (clients' details and exercises)
* Prefer desktop apps over other types
* Can type fast
* Prefers typing over mouse input
* Is reasonably comfortable using CLI apps
* Wants to book facilities easily [v2.0]

*Value proposition*: Keep track of your gym training schedule and clients' exercises faster than a typical mouse/GUI driven app

Expand All @@ -823,7 +823,7 @@ Priorities: High (must have) - `* * \*`, Medium (nice to have) - `* \*`, Low (un
|`* * *` |coach for fitness competitors |record the exercise type and intensity my clients have done for the day |know if they are on track for their competitions
|`* * *` |coach for fitness competitors|record the date and time of my clients’ training sessions and keep track of which day they work out|
|`* * *` |coach with many fitness competitors |view my overall schedule for the day/week|
|`* * *` |coach that communicates with my clients |display visualisations(graphs/charts) |convey the client's training progress better
|`* * *` |coach that communicates with my clients |display visualisations (graphs/charts) |convey the client's training progress better
|`* * *` |coach |add new profiles to the app to keep track of new clients|
|`* * *` |coach |list all my clients|
|`* * *` |coach |edit a client’s details |change and update an existing client’s details
Expand Down Expand Up @@ -852,8 +852,6 @@ Priorities: High (must have) - `* * \*`, Medium (nice to have) - `* \*`, Low (un
|`*` |coach |manage the payment fee/payment day of the clients |charge them accordingly
|=======================================================================

_{More to be added}_

[appendix]
== Use Cases

Expand Down Expand Up @@ -1133,47 +1131,54 @@ Use case resumes at step 6.
. Should work on any <<mainstream-os,mainstream OS>> as long as it has Java `11` or above installed.
. Should be able to hold up to 1000 clients without a noticeable sluggishness in performance for typical usage.
. A user with above average typing speed for regular English text (i.e. not code, not system admin commands) should be able to accomplish most of the tasks faster using commands than using the mouse.
. Should work without the need for Internet in the program.
. Should work mostly without the need for the Internet.
. Should work reliably.
. Should be able to store data in a human-readable format.
. Should be for a single user.
. Should not use DBMS to store data.
. Should not exceed 100Mb in file size.


_{More to be added}_

[appendix]
== Glossary

[[mainstream-os]] Mainstream OS::
Windows, Linux, Unix, OS-X
Any modern OS like Windows, Linux, Unix, or OS-X.

[[private-contact-detail]] Private contact detail::
A contact detail that is not meant to be shared with others.
Fitness Coach::
The targer user base of FitBiz.

Client::
The client of the fitness coach.

[[exercise]] Exercise::
A workout activity done by a client that is to be recorded.
A workout activity done by a client that can be recorded.

[[cliental-best]] Cliental Best::
The best/highest weight that the client has reached for an exercise.
Personal Best::
The exercise done by the client with the highest weight (or highest rep if weight does not exist).

[appendix]
== Product Survey
Schedule::
The client's training schedule per week. Note that one client cannot have overlapping schedules but other client's schedule can overlap with another client's.

*Product Name*
Graph::
The graph of an exercise done by a client (reps/weights vs. date).

Author: ...
Client In View::
The client currently in view (after the `view-c` command is used).

Pros:
Client List::
The GUI section which shows all client currently listed in FitBiz.

* ...
* ...
Client View::
The GUI section which shows all the information of the client in view

Cons:
Schedule Panel::
The GUI section which shows the list of all clients' schedules from the current client list

* ...
* ...
Exercise Table::
The GUI section which shows the list of the client in view's exercises

Personal Best Table::
The GUI section which shows the list of the client in view's personal best exercises

[appendix]
== Instructions for Manual Testing
Expand All @@ -1189,15 +1194,44 @@ These instructions only provide a starting point for testers to work on; testers

.. Download the jar file and copy into an empty folder
.. Double-click the jar file +
Expected: Shows the GUI with a set of sample contacts. The window size may not be optimum.
Expected: Shows the GUI without the client view populated with a set of sample contacts. The window size may not be optimum.

. Saving window preferences

.. Resize the window to an optimum size. Move the window to a different location. Close the window.
.. Re-launch the app by double-clicking the jar file. +
Expected: The most recent window size and location is retained.

_{ more test cases ... }_
=== Command autocomplete

. Unambiguous, single command found

.. Test case: type `gr` into the command box and press kbd:[Tab] +
Expected: command box shows completed `graph n/ a/ sd/ ed/` command, with the caret position right after `n/`. Result box shows the `graph` command usage.
.. Test case: type `add-e` into the command box and press kbd:[Tab] +
Expected: command box shows completed `add-e n/ d/ reps/ ew/ sets/` command, with the caret position right after `n/`. Result box shows the `add-e` command usage.

. Ambiguous, multiple commands found

.. Test case: type `a` into the command box and press kbd:[Tab] +
Expected: command box shows longest common prefix `add-`, with the caret position at the end of the line. Result box indicates and lists that `add-e` and `add-c` commands are found.

. No valid commands found

.. Test case: type `Fitbiz!` into the command box and press kbd:[Tab] +
Expected: command box and caret positions does not change. Result box indicates that no commands were found.

. Prefix traversal when commands are completed with white spaces

.. Test case: type `graph n/ a/ sd/ ed/` into the command box and press kbd:[Tab] +
Expected: caret position travels around all the `/` with wraparound.
.. Test case: type `///` into the command box and press kbd:[Tab] +
Expected: command box and caret positions does not change. Result box indicates that no commands were found. This is similar to 3, no valid commands found.

. Commands with white spaces but without `/`

.. Test case: type `i <3 2103` into the command box and press kbd:[Tab] +
Expected: command box and caret positions does not change. Result box does not change. Basically nothing happens.

=== Deleting a client

Expand All @@ -1208,15 +1242,11 @@ _{ more test cases ... }_
Expected: First contact is deleted from the list. Details of the deleted contact shown in the status message. Timestamp in the status bar is updated.
.. Test case: `delete 0` +
Expected: No client is deleted. Error details shown in the status message. Status bar remains the same.
.. Other incorrect delete commands to try: `delete`, `delete x` (where x is larger than the list size) _{give more}_ +
.. Other incorrect delete commands to try: `delete`, `delete x` (where x is larger than the list size) +
Expected: Similar to previous.

_{ more test cases ... }_

=== Saving data

. Dealing with missing/corrupted data files

.. _{explain how to simulate a missing/corrupted file and the expected behavior}_

_{ more test cases ... }_
5 changes: 4 additions & 1 deletion docs/UserGuide.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ If you are not currently browsing the history, you can press the kbd:[&darr;] ke

Again, similar to most modern CLIs, users of FitBiz can press the kbd:[Tab] key to autocomplete commands that they have partially typed. If the partially typed letters uniquely identifies a valid command in FitBiz (see <<Commands>>), the complete command will automatically appear in the *Command Box*. Otherwise, a list of all commands similar to the ambiguous letters will appear in the *Result Box*.

Also, we understand that some of FitBiz's commands may be particularly long and diffcult to remember. In order to remedy this, we have also provided *autocompletion of parameter prefixes* for some commands, as well as the *use of kbd:[Tab] to easily get to the next prefix*.
Also, we understand that some of FitBiz's commands may be particularly long and diffcult to remember. In order to remedy this, we have also provided *autocompletion of parameter prefixes* for some commands, as well as the *use of kbd:[Tab] to easily get to the next prefix*. When autocompleting commands, the caret position will also be automatically set to the most optimal position corresponding to the completed command.

To see this feature in action, type `add-c` into the *Command Box* and press kbd:[Tab]:

Expand All @@ -114,6 +114,9 @@ image::autocomplete-2.png[]

To autocomplete the parameter prefixes like in the first example above, you would just have to complete the command and press kbd:[Tab] once more.

[TIP]
Commands and their parameters in FitBiz are always separated by white spaces (ie. ``schedule 1 sch/``). As such, the kbd:[Tab] key will only try to autocomplete your command if your current input in the *Command Box* is a single word. In other words, if your input is made up of more than one word separated by white spaces, FitBiz will ignore your use of kbd:[Tab]. Do not be surprised when you try to autocomplete more than a single word like `add some thing`, and yet receive no response from FitBiz.

[NOTE]
The autocompletion of the parameter prefixes are only for these commands: `add-c`, `add-e`, `filter-c`, `graph`, and `schedule`. Autocompletion of prefixes for edit commands are not included as we understand that most likely than not, users would only choose to edit one field at a time.

Expand Down

0 comments on commit eb231a3

Please sign in to comment.