-
Notifications
You must be signed in to change notification settings - Fork 263
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
[CS2103T-W16-2] ZeroToOne #11
base: master
Are you sure you want to change the base?
Changes from 13 commits
02770cb
c34dad3
8c7784b
a95731b
f22417b
402be38
cdf4576
51039c8
8eeb1b1
22a1ee1
a056ce8
8d0ed7e
d3fdc59
4be9018
e2b8345
54636d9
eff093a
9916be0
1d9c5cd
89522e2
ae20576
04bece7
77b65c8
3b01a62
b8664ae
e1eede7
50f5fce
92b1b24
344c4b0
b621269
64875f6
2f60b5c
788b4ab
b75ac90
8960842
d85d2e3
8b5a1e0
df18af4
8d61e45
6efee4a
81393d1
8fbdf20
61cf94e
70cc1e8
f6747ce
60df66b
c29a52a
c516b90
2374ba0
29c2daf
b52b2ce
6cb0e43
43c449c
f81df7d
61b6ad2
79dcc9d
9773cff
c8e0bf7
91096dd
4ba3380
fef4b97
1ebbb3e
d1a507e
f982bac
3ed16fe
0789e7b
0e2442a
26b4376
5f74a28
e1c0b20
ff7a9e9
1b1f4c4
4a29fef
78b4304
cc38e63
c19b7b2
b889f1a
a6b984a
0b5cb5b
34c29f1
c95427e
f5e6117
0d13066
939c272
64089f5
1194b77
00a496b
dfa6a7b
bef7753
ef74334
30704f4
05f1de8
02d7562
48ef5d7
f7d96c0
ce98a9b
12b0e9d
6e89591
fbe532b
e87a3ac
06f0056
a2bb929
208a5d7
b627808
bf443a0
598fc0c
4c34bc4
f3174e6
da4e7e1
3a1fb37
edfabf0
eaf0939
ce2ecac
a1e86d5
b4bd25a
01d1680
f4ca959
14d2f59
8c50a6d
bb0ad4e
e93c698
ca2966d
20dc1cd
4ae3e36
85da536
60db0a7
b8ec3fb
18b37e7
5b2b060
079d4bd
5bb36dc
1b7165e
bbe026a
317bf60
7587031
6b329fc
8385d27
2d97dcd
83e24d5
24611b6
40726bc
9bdb2a6
1f7d294
aa48e40
e09f698
ff67742
926f18a
41c5e50
cf35817
b2ace55
366f225
6f1b16a
8d2cdad
d6bb135
a7957ab
92b3504
390d697
6b54b38
52d31bc
650cb2a
27ffc00
1d0c819
8f4b1ce
236954c
7b699e3
d6e26a7
102d616
a5ecd49
728dd16
65ac763
8846d6e
b6db6aa
0a7318a
4b06612
d7766a1
3c90a68
ed6353c
7b52111
66aa90b
ed0d2e1
6148dcc
95861d0
708ca2e
c871fe0
278bb16
4df2e26
c2d1949
1dc1cd9
2a65c7b
ede2f74
c4c5d37
8f9b6c8
506dbf6
72dbb16
52ddc52
c1997ab
41713fc
0bd9fa0
f32d32c
f2e6e87
0a88d29
29e0fe7
46606bf
77c6533
941d9cd
03ade90
8f96dda
127c477
f6d24a1
a694ec9
e829ce6
5a9c561
b72deab
2dcb03e
3234482
4b464b9
e763a57
8b283d5
8c728b1
a37dea8
8b451db
acf2615
0e2d01e
0e28815
296d755
6149668
2df5fc9
54ed66b
7b93729
b55e77b
dbf4fc3
acda59b
ca9d742
2fa329b
22b9ef7
7f714f6
bd26e10
a71fdc8
e036bca
166e0c8
ca6d15f
d0c501b
28ab78b
b322af7
67f7f74
344cadd
e749b34
c3a9f56
f1a7dac
b9fa5b7
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
= AddressBook Level 3 - Developer Guide | ||
= ZeroToOne - Developer Guide | ||
:site-section: DeveloperGuide | ||
:toc: | ||
:toc-title: | ||
|
@@ -14,7 +14,7 @@ ifdef::env-github[] | |
endif::[] | ||
:repoURL: https://github.com/se-edu/addressbook-level3/tree/master | ||
|
||
By: `Team SE-EDU` Since: `Jun 2016` Licence: `MIT` | ||
By: `Team AY1920S2 W16-2` Since: `Feb 2020` | ||
|
||
== Setting up | ||
|
||
|
@@ -279,13 +279,15 @@ Refer to the guide <<DevOps#, here>>. | |
|
||
*Target user profile*: | ||
|
||
* has a need to manage a significant number of contacts | ||
* prefer desktop apps over other types | ||
* can type fast | ||
* prefers typing over mouse input | ||
* is reasonably comfortable using CLI apps | ||
* Enjoys exercising and does it regularly | ||
* Has a need to manage a significant number of workouts | ||
* Prefers desktop apps over other types | ||
* Can type fast | ||
* Prefers typing over mouse input | ||
* Is reasonably comfortable using CLI apps | ||
|
||
*Value proposition*: manage contacts faster than a typical mouse/GUI driven app | ||
*Value proposition*: | ||
Manage workouts faster than a typical mouse/GUI-driven app | ||
|
||
[appendix] | ||
== User Stories | ||
|
@@ -295,88 +297,155 @@ Priorities: High (must have) - `* * \*`, Medium (nice to have) - `* \*`, Low (un | |
[width="59%",cols="22%,<23%,<25%,<30%",options="header",] | ||
|======================================================================= | ||
|Priority |As a ... |I want to ... |So that I can... | ||
|`* * *` |new user |see usage instructions |refer to instructions when I forget how to use the App | ||
|`* * *` |User with many different workouts |Keep track of all my workouts |Stay organised | ||
|
||
|`* * *` |user |add a new person | | ||
|`* * *` |User that is busy with multiple commitments |Keep on schedule for my exercise regime |Stay disciplined and keep exercising regularly | ||
|
||
|`* * *` |user |delete a person |remove entries that I no longer need | ||
|`* * *` |User who has exercise goals |See or track my current progress |Check if I am reaching my goals | ||
|
||
|`* * *` |user |find a person by name |locate details of persons without having to go through the entire list | ||
|`* * *` |User who has exercise goals |Set and adjust goals accordingly |Make plans to reach my goals, and improve upon those plans as I see fit | ||
|
||
|`* *` |user |hide <<private-contact-detail,private contact details>> by default |minimize chance of someone else seeing them by accident | ||
|`* * *` |User who wants to track live progress while exercising |Have a timer for each part of my workout |Stay on schedule for each workout session I do | ||
|
||
|`*` |user with many persons in the address book |sort persons by name |locate a person easily | ||
|======================================================================= | ||
|`* *` |User who does exercises in sets |Keep track of how many repetitions per exercise |Know the details of each exercise | ||
|
||
|`* *` |User who has a regular workout schedule, but likes to schedule one-off sessions |Some way to keep track of both regular and one-off workouts |Differentiate between the workouts and manage them both simultaneously | ||
|
||
|`* *` |User who loses motivation over a long period of time |Something to help me stay motivated |Keep going and not give up halfway | ||
|
||
|`* *` |User who lacks self discipline at times |Something to help me maintain the discipline to stay on track |Stick to a regular exercise schedule and regime | ||
|
||
|`* *` |User who needs some inspiration or a change of pace |Have sample workout routines to follow |Get more ideas and ways to structure my workouts and find new exercises | ||
|
||
|`* *` |User who enjoys graphical displays |Have a graphical overview of various health statistics |Easily comprehend and view my statistics | ||
|
||
|`* *` |User who enjoys exercising and discussing it |Share my workout routines with my friends |Help each other out by sharing new exercise regimes | ||
|
||
|`* *` |User who has many different types of workouts |To categorize the different types of workout |Achieve better organisation | ||
|
||
|`* *` |User who has many different workouts and exercises |To have an overview of all my workout related information |Achieve better organisation | ||
|
||
|`*` |New user who is not familiar with setting up exercise regimes |To have a way to consult with fitness trainers or professionals |Gain better knowledge and understanding of exercise regimes | ||
|
||
|`*` |User who is sociable and largely influenced by my peers |To see my friends’ progress and achievements |Motivate myself to work harder and help each other out | ||
|
||
|`*` |User who sometimes gets a little bored when working out |To have a way to entertain or distract myself when working out |Keep myself on the task at hand by giving an extra motivation boost | ||
|
||
_{More to be added}_ | ||
|`*` |User who enjoys exercising to music that matches the exercise |To have music tailored to my current workout |Have even more fun with my workouts | ||
|======================================================================= | ||
|
||
[appendix] | ||
== Use Cases | ||
|
||
(For all use cases below, the *System* is the `AddressBook` and the *Actor* is the `user`, unless specified otherwise) | ||
(For all use cases below, the *System* is the `ZeroToOne` and the *Actor* is the `user`, unless specified otherwise) | ||
|
||
[discrete] | ||
=== Use case: Delete person | ||
=== Use Case 1: Adding Exercises to Workout | ||
|
||
*MSS* | ||
|
||
1. User requests to list persons | ||
2. AddressBook shows a list of persons | ||
3. User requests to delete a specific person in the list | ||
4. AddressBook deletes the person | ||
1. User requests for the existing exercises in the workout | ||
2. System shows a list of the existing exercises | ||
3. User requests to add an exercise to the workout | ||
4. System adds the exercise to the workout | ||
+ | ||
Use case ends. | ||
|
||
*Extensions* | ||
|
||
[none] | ||
* 2a. The list is empty. | ||
* 2a. The requested workout does not exist | ||
** 2a1. Use case ends | ||
+ | ||
|
||
* 2b. There are no exercises in the workout | ||
** 2b1. System shows a message to inform the user | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 2b1. Consider prompting the user to create the new non-existent workout. |
||
+ | ||
Use case resumes at step 2 | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Won't this get stuck up in a loop? It should instead resume at step 3. |
||
|
||
* 3a. User request format is invalid | ||
** 3a1. System shows an error message | ||
+ | ||
Use case resumes at step 3 | ||
|
||
[discrete] | ||
=== Use Case 2: Deleting Workouts | ||
|
||
*MSS* | ||
|
||
1. User requests to list workouts | ||
2. System shows a list of all workouts | ||
3. User requests to delete a specific workout | ||
4. System deletes the workout | ||
+ | ||
Use case ends. | ||
|
||
* 3a. The given index is invalid. | ||
*Extensions* | ||
|
||
[none] | ||
* 2a. The list is empty | ||
+ | ||
Use case ends | ||
|
||
* 3a. The given user index is invalid | ||
** 3a1. System shows an error message | ||
+ | ||
Use case resumes at step 2 | ||
|
||
[discrete] | ||
=== Use Case 3: Find Past Workout by Keyword | ||
|
||
*MSS* | ||
|
||
1. User requests a log of past workouts | ||
2. System shows a list of all past logged workouts | ||
3. User requests to find a past workout by keyword | ||
4. System shows the past workouts that match the keyword | ||
+ | ||
Use case ends | ||
|
||
*Extensions* | ||
|
||
[none] | ||
** 3a1. AddressBook shows an error message. | ||
* 2a. The log is empty | ||
+ | ||
Use case resumes at step 2. | ||
Use case ends | ||
|
||
_{More to be added}_ | ||
* 3a. The keyword does not match any past workouts | ||
** 3a1. System shows an error message | ||
+ | ||
Use case ends | ||
|
||
[appendix] | ||
== Non Functional Requirements | ||
|
||
. 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 persons without a noticeable sluggishness in performance for typical usage. | ||
. Should be able to hold up to 100 workouts 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. | ||
|
||
_{More to be added}_ | ||
. Should not depend on a remote server, so that a user can exercise in any condition or environment. | ||
|
||
[appendix] | ||
== Glossary | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Would be better if you could add |
||
|
||
[[mainstream-os]] Mainstream OS:: | ||
Windows, Linux, Unix, OS-X | ||
[[cli]]CLI:: | ||
Stands for Command Line Interface, which processes commands to a computer program in the form of lines of text. | ||
|
||
[[private-contact-detail]] Private contact detail:: | ||
A contact detail that is not meant to be shared with others | ||
[[exercise]]Exercise:: | ||
A single type of exercise, for example push ups or crunches. | ||
GUI | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This line gets concatenated to the previous one. |
||
Stands for Graphical User Interface, which is a form of user interface that allows users to interact with electronic devices through graphical means, not textual means. | ||
|
||
[appendix] | ||
== Product Survey | ||
[[instance]]Instance:: | ||
A specific instantiation of an object. | ||
|
||
*Product Name* | ||
|
||
Author: ... | ||
|
||
Pros: | ||
|
||
* ... | ||
* ... | ||
[[mainstream-os]] Mainstream OS:: | ||
Windows, Linux, Unix, OS-X | ||
|
||
Cons: | ||
[[schedule]]Schedule:: | ||
A workout that has been planned to be carried out on a specific date or dates. | ||
|
||
* ... | ||
* ... | ||
[[workout]]Workout:: | ||
A set of exercises to be done together, in a certain order and time frame. | ||
|
||
[appendix] | ||
== Instructions for Manual Testing | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Make sure all user stories are grammatically correct. I see some inconsistencies.
As a user......., I want TO ......., so that I can .......