-
Notifications
You must be signed in to change notification settings - Fork 231
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
[CS2113-F15-1] Player2113 #55
base: master
Are you sure you want to change the base?
Changes from 250 commits
52c0d0c
021b22f
3ef358d
9f14ed5
6435b39
36f4109
2cde8d2
529bcf1
3ea46cc
009f971
8dc71f5
c893409
2541605
8cf7989
93ce583
cdb8bdc
affeb35
d2faa04
35d5bce
32039d4
1bcc39a
4b4b168
914bc99
8eff36c
926e883
96c7749
235aef2
b50f2ab
b72385e
87ffeee
97c33ae
ebe04c5
b69696c
28ccd93
d197d42
ca167fa
51eed72
068ed9e
99e8a58
f02b103
234e44e
d980b86
5a0844c
c1d0349
df2e2c4
86d5b00
55a0bda
73ea74e
5b76786
b8d7dcc
556e3fa
9132a6c
7bec6d6
afad713
e433ac3
ab62f89
1d497db
d5ff416
5cb2cdb
551fe65
390cf28
f5147ab
6bceb77
4e80714
01caa57
ddfac30
df0a39e
f38645a
0ce7b57
7332fb3
919fb72
cef438b
aae2c33
954e13c
a8f0377
b6a12a3
9504063
a0e9998
f0ab5cb
d44c8d4
b95bc22
047b4f8
440c13a
3f78b6c
0496471
298a6d2
d3ceaf2
f97336f
89734cd
ed0f44d
35da499
db31fea
66e5b2b
2373bba
b893895
66f2547
c487104
a256b11
23b6063
cddae47
570cdbb
b904472
05f68cd
847acc7
b9e5333
362e139
efea709
1407c74
c32862a
e2accaa
5e98323
676bbdf
bec31ad
218b2cd
0c3494f
7cf6164
e9e6868
21dbaae
a6a0e0e
2e52cb3
7d19da3
33b7d3b
3bd53a5
7fd6d3c
a3d3755
6a7f13f
963d1fd
ff02918
bcac6dc
970ebc6
67e0efe
d0e8c96
11427e1
6383f29
295cb3c
d67614f
5b8c8cc
039c6c0
b3b4737
7025541
b7bbd96
62bd75d
643f564
96ba46d
110f1d7
d42498b
5c9109a
9540b0e
f123f27
ef68e0b
d9ebf1c
12ba4fa
f5ac345
05419a7
5c1355e
3ac4b08
9bf7758
69379f1
1a1a45d
243864f
fb08acc
4a5fa86
82498f4
f225d66
1f44414
1db3d9c
75c04f1
15d3d3c
142b933
a181bf3
aaaf8fb
1f5dc3f
39f8267
8447ef6
59266d3
5e34f08
dab9166
07bd5d6
3f5934e
0621f26
7d1a565
f540d70
9ffd9bb
ddb99bd
ad987ef
4f0bd6a
18e345c
610b8fb
68bad5d
ac907e9
9e21981
d3c6c00
6293216
6ec0d9c
ae4f8f9
c6f9cbc
d8d0fbe
75edd19
8d2035b
1098445
fb62510
b209bd9
a55b369
6b9f373
b467ee5
1dd7331
abf02e8
27bee7e
46d5a06
6f814a2
48e3011
974fc02
70b3878
7e1e494
6a2948b
7472d45
6a5ee44
be60287
31a11cb
1312bbc
873a08c
1c60262
f5de063
a387ab5
63ed2f4
5bdba20
503639c
6d45452
85a71ce
80960a8
43990f6
dcdfd66
3094590
11fd99e
4259a58
c736b00
0c64344
921ad5e
5cb5c84
0056522
3f0c890
873ac67
94ddf54
100a998
6838e87
a11224e
3cf419c
165fcd4
4e129d3
9673b22
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 |
---|---|---|
@@ -0,0 +1,3 @@ | ||
Manifest-Version: 1.0 | ||
Main-Class: seedu.duke.Player2113 | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,64 +1,41 @@ | ||
# Duke project template | ||
# Player2113 | ||
|
||
This is a project template for a greenfield Java project. It's named after the Java mascot _Duke_. Given below are instructions on how to use it. | ||
A CLI tool to help COMP2113 student revise conceptual questions in a gamification environment. | ||
|
||
## Setting up in Intellij | ||
## Getting Started | ||
|
||
Prerequisites: JDK 11 (use the exact version), update Intellij to the most recent version. | ||
Prerequisites: JDK 11, Player2113 release `JDK` file | ||
|
||
1. **Ensure Intellij JDK 11 is defined as an SDK**, as described [here](https://www.jetbrains.com/help/idea/sdk.html#set-up-jdk) -- this step is not needed if you have used JDK 11 in a previous Intellij project. | ||
1. **Import the project _as a Gradle project_**, as described [here](https://se-education.org/guides/tutorials/intellijImportGradleProject.html). | ||
1. **Verify the set up**: After the importing is complete, locate the `src/main/java/seedu/duke/Duke.java` file, right-click it, and choose `Run Duke.main()`. If the setup is correct, you should see something like the below: | ||
``` | ||
> Task :compileJava | ||
> Task :processResources NO-SOURCE | ||
> Task :classes | ||
|
||
> Task :Duke.main() | ||
Hello from | ||
____ _ | ||
| _ \ _ _| | _____ | ||
| | | | | | | |/ / _ \ | ||
| |_| | |_| | < __/ | ||
|____/ \__,_|_|\_\___| | ||
|
||
What is your name? | ||
``` | ||
Type some word and press enter to let the execution proceed to the end. | ||
Start the programme with the following command: | ||
|
||
## Build automation using Gradle | ||
``` | ||
java --jar Player2113.jar | ||
``` | ||
|
||
* This project uses Gradle for build automation and dependency management. It includes a basic build script as well (i.e. the `build.gradle` file). | ||
* If you are new to Gradle, refer to the [Gradle Tutorial at se-education.org/guides](https://se-education.org/guides/tutorials/gradle.html). | ||
You will see the welcome screen upon successful start-up: | ||
|
||
## Testing | ||
``` | ||
Hello from | ||
______ _ _____ __ __ _____ | ||
| ___ \ | / __ \/ | / | |____ | | ||
| |_/ / | __ _ _ _ ___ _ __`' / /'`| | `| | / / | ||
| __/| |/ _` | | | |/ _ \ '__| / / | | | | \ \ | ||
| | | | (_| | |_| | __/ | ./ /____| |__| |_.___/ / | ||
\_| |_|\__,_|\__, |\___|_| \_____/\___/\___/\____/ | ||
__/ | | ||
|___/ | ||
What is your name? | ||
``` | ||
## Usage | ||
|
||
### I/O redirection tests | ||
> [!IMPORTANT] | ||
> The current release of Player2113 is a MVP preview version with various proposed functions unimplemented. Please strictly follow this user's guide. | ||
|
||
* To run _I/O redirection_ tests (aka _Text UI tests_), navigate to the `text-ui-test` and run the `runtest(.bat/.sh)` script. | ||
## Command Summary | ||
|
||
### JUnit tests | ||
|
||
* A skeleton JUnit test (`src/test/java/seedu/duke/DukeTest.java`) is provided with this project template. | ||
* If you are new to JUnit, refer to the [JUnit Tutorial at se-education.org/guides](https://se-education.org/guides/tutorials/junit.html). | ||
|
||
## Checkstyle | ||
|
||
* A sample CheckStyle rule configuration is provided in this project. | ||
* If you are new to Checkstyle, refer to the [Checkstyle Tutorial at se-education.org/guides](https://se-education.org/guides/tutorials/checkstyle.html). | ||
|
||
## CI using GitHub Actions | ||
|
||
The project uses [GitHub actions](https://github.com/features/actions) for CI. When you push a commit to this repo or PR against it, GitHub actions will run automatically to build and verify the code as updated by the commit/PR. | ||
|
||
## Documentation | ||
|
||
`/docs` folder contains a skeleton version of the project documentation. | ||
|
||
Steps for publishing documentation to the public: | ||
1. If you are using this project template for an individual project, go your fork on GitHub.<br> | ||
If you are using this project template for a team project, go to the team fork on GitHub. | ||
1. Click on the `settings` tab. | ||
1. Scroll down to the `GitHub Pages` section. | ||
1. Set the `source` as `master branch /docs folder`. | ||
1. Optionally, use the `choose a theme` button to choose a theme for your documentation. | ||
* help `help` | ||
* Start game `topic TOPIC_NUM` eg `topic 1` | ||
* Show Results `results [details] [TOPIC_NUM]` eg results details 2 | ||
* Show Solution `solution TOPIC_NUM [QUESTION_NUM]` eg solution 1 1 | ||
* Show Explanation `explain TOPIC_NUM [QUESTION_NUM]` eg explain 1 1 | ||
* Exit `bye` |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,9 @@ | ||
# About us | ||
|
||
Display | Name | Github Profile | Portfolio | ||
--------|:----:|:--------------:|:---------: | ||
 | John Doe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) | ||
 | Don Joe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) | ||
 | Ron John | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) | ||
 | John Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) | ||
 | Don Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) | ||
Display | Name | Github Profile | Portfolio | ||
--------|:--------:|:----------------------------------------:|:---------: | ||
 | Yuheng | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) | ||
 | Songyue Wang | [Github](https://github.com/songyuew) | [Portfolio](https://cidlab.ok.ubc.ca/developing-digital-passports-interface-in-bim-for-future-reuse-of-construction-materials/) | ||
 | Jason Chan | [Github](https://github.com/cyhjason29) | [Portfolio](docs/team/jasonchan.md) | ||
 | Hong Yi Jie | [Github](https://github.com/hongyijie06) | [Portfolio](docs/team/hongyijie06.md) | ||
 | Sean Ng | [Github](https://github.com/NGXZS) | [Portfolio](docs/team/seanng.md) |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,37 +1,176 @@ | ||
# Developer Guide | ||
|
||
## Acknowledgements | ||
|
||
{list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well} | ||
|
||
## Design & implementation | ||
|
||
{Describe the design and implementation of the product. Use UML diagrams and short code snippets where applicable.} | ||
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. Shouldn't this line be deleted? |
||
|
||
### Results feature | ||
|
||
The results feature is facilitated by `ResultsList` and | ||
`AnswerTracker`. Both are used to display the results for | ||
all question sets attempted by the user, including details | ||
such as specific questions and their respective answer inputs | ||
from the user. | ||
|
||
Given below is an example usage scenario and how the results | ||
mechanism behaves at each step. | ||
|
||
Step 1. The user launches the application for the first time, | ||
and proceeds to start a game with their chosen topic. | ||
|
||
The following sequence diagram shows how the `Results` for | ||
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. Hi, the method calling solid line arrow for "new Results()" seems to not be pointing to the start of the activation bar. |
||
one question set is added to the `ResultsList`: | ||
 | ||
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. 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. 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. 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. 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. See if you can get reference frames to be opaque.
Recall the textbook's notation on reference frames. This is a repeated issue for all your sequence diagrams |
||
> **Note:** The lifeline for Parser and Results should end | ||
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. 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. Perhaps add the explanation of the |
||
> at the destroy marker (X) but due to a limitation of PlantUML, | ||
> the lifeline reaches the end of the diagram. | ||
Comment on lines
+58
to
+60
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. It should be possible to remove the bubbles at the bottom with some tinkering of PlantUML if I am not wrong. Alternatively, you may also crop the image. |
||
|
||
Similarly, the following sequence diagram shows how the | ||
`AnswerTracker` stores all the user answer inputs: | ||
 | ||
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. I think the photo is not loaded correctly on the DG site 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. maybe add the diagram here? its empty? 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. |
||
|
||
Step 2. The user may repeat Step 1 with other question sets. | ||
|
||
The sequence diagram for this step involving `ResultsList` | ||
and `AnswerTracker` are the same as the ones shown in Step 1. | ||
|
||
Step 3. The user now wants to view their results by executing | ||
the `results` command. | ||
 | ||
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. Photo not loaded for this as well |
||
|
||
> **Note:** If the user uses the results feature before | ||
> attempting any questions, the application will instead | ||
> return an error to the user indicating that there are no | ||
> results. | ||
|
||
|
||
### Topics Feature | ||
|
||
The topics feature comprises `TopicList` and `QuestionListByTopic`. | ||
`TopicList` is the list of topics for the users to attempt. | ||
`QuestionListByTopic` stores the respective question set for each topic in an ArrayList. | ||
|
||
Given below is an example usage scenario and how the results | ||
mechanism behaves at each step. | ||
|
||
Step 1. The user launches the application for the first time, | ||
and proceeds to start a game with their chosen topic. | ||
|
||
The following shows the class diagram for `topicList`: | ||
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. Perhaps add a line separator here to make the class diagram occupy a dedicated space would allow the format to be more readable. |
||
 | ||
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. 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. 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. class may need to add + and - to show public and private? 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. 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. Class diagram for topicList should not have the C icon present, as I don't think it follows the standards stated. 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. Missing of indication of private and public methods/ variables with "+/-" etc 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. 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. Most of your peers have identified the bigger issues of the diagram, like the class circle and the access modifiers. |
||
|
||
Step 2. A question from the question set of the chosen topic is displayed. | ||
The user inputs their answer. | ||
|
||
Step 3. Step 2 repeats until all the questions in the question set has been asked. | ||
Step 1 executes and process repeats. | ||
|
||
The following shows the class diagram for `QuestionListByTopic`: | ||
 | ||
|
||
### Solution feature | ||
|
||
The solution feature either prints the solution to 1 question or all questions in 1 topic. | ||
|
||
The solution feature is facilitated by `Parser#processSolutionCommand`, which is called by `Parser#parseCommand` | ||
|
||
> **OVERVIEW:** | ||
>  | ||
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. in alt, maybe need to add [else] sign? 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. after calling the methods, i think you may need to add return arrow, even if void? 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. some method invocation got no name, maybe need to add the method name on it, instead of putting it on the return arrow? 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. 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. The sequence diagram has many parts and may be slightly hard to understand initially, it would be good if you could break it down into parts when explaining, means showing just small sections of the sequence diagram 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. 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. Consider removing getters and setters as their functions are quite obvious 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. |
||
|
||
> > **Note:** The lifeline for Parser and Results should end | ||
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. |
||
> at the destroy marker (X) but due to a limitation of PlantUML, | ||
> the lifeline reaches the end of the diagram. | ||
|
||
Step 1: After user runs the program and keys in the user command, the command will be passed to | ||
`Parser#parseCommand`. | ||
|
||
> **NOTE:** The command must contain the `solution` keyword. | ||
|
||
Step 2a: `Parser#processSolutionCommand` first checks the number of parameters in the user command | ||
by calling `Parser#checkIfTwoParameters`. | ||
The, further processing of parameters is done by calling `Parser#getTopicOrQuestionNum`. | ||
This is facilitated by calling `QuestionsListByTopic#getQuestionSet` to get all questions in the specified topic. | ||
|
||
Step 2b: Before getting the solution(s), the program first verifies if the topic has been attempted before. | ||
The program only prints them only if the topic is attempted before. | ||
The topic is selected by calling `TopicList#get` and `TopicList#hasAttempted` returns the attempted status. | ||
|
||
Step 3: | ||
Depending on the number of parameters, | ||
if there is 1 parameter (ie get all solutions): | ||
`QuestionsList#getAllSolutions` will get all solutions and `ui#printAllSolutions` will print them. | ||
else if there are 2 parameters (ie get one solution): | ||
`QuestionsList#getOneSolution` will get the specified solution and `ui#printOneSolution` will print it. | ||
|
||
### Explain feature | ||
The explain feature either prints the explanation to 1 question or all questions in 1 topic. | ||
|
||
The explain feature is facilitated by `Parser#processExplanationCommand`, which is called by `Parser#parseCommand` | ||
|
||
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. Perhaps add some diagram here would allow better understanding of developers? |
||
Step 1: After user runs the program and keys in the user command, the command will be passed to | ||
`Parser#parseCommand`. | ||
|
||
> **NOTE:** The command must contain the `explain` keyword. | ||
> | ||
> Sequence diagram for `explain` is similar to the [sequence diagram](#solution-feature) for `solution` feature | ||
|
||
Step 2a: `Parser#processExplainCommand` first checks the number of parameters in the user command | ||
by calling `Parser#checkIfTwoParameters`. | ||
The, further processing of parameters is done by calling `Parser#getTopicOrQuestionNum`. | ||
This is facilitated by calling `QuestionsListByTopic#getQuestionSet` to get all questions in the specified topic. | ||
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. maybe you could swap 2b and 2a since 2a is more related to step 3 |
||
|
||
Step 2b: Before getting the explanation(s), the program first verifies if the topic has been attempted before. | ||
The program only prints them only if the topic is attempted before. | ||
The topic is selected by calling `TopicList#get` and `TopicList#hasAttempted` returns the attempted status. | ||
|
||
Step 3: | ||
Depending on the number of parameters, | ||
if there is 1 parameter (ie get all explanations): | ||
`QuestionsList#getAllExplanations` will get all explanations and `ui#printAllExplanations` will print them. | ||
else if there are 2 parameters (ie get one explanation): | ||
`QuestionsList#getOneExplanation` will get the specified explanation and `ui#printOneExplanation` will print it. | ||
|
||
|
||
## Product scope | ||
|
||
### Target user profile | ||
|
||
{Describe the target user profile} | ||
CS2113/2103 students who wish to have an efficient tool to help them revise relevant concepts. | ||
|
||
### Value proposition | ||
|
||
{Describe the value proposition: what problem does it solve?} | ||
Integration of key notions and learning learning objectives for CS2113 course, self-adaptive testing for understanding and feedback. | ||
|
||
## User Stories | ||
|
||
|Version| As a ... | I want to ... | So that I can ...| | ||
|--------|----------|---------------|------------------| | ||
|v1.0|new user|see usage instructions|refer to them when I forget how to use the application| | ||
|v2.0|user|find a to-do item by name|locate a to-do without having to go through the entire list| | ||
| Version | As a ... | I want to ... | So that I can ... | | ||
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. maybe you could categorise the user stories by priorities and include their priority into the userstories table |
||
|---------|--------------------------------|------------------------------------------------------|------------------------------------------------------------------------| | ||
| v1.0 | new user | see user guide in the app | refer to them if I am unfamiliar with the usage of a command | | ||
| v1.0 | student new to Java | receive solutions with explanation after answering | be aware of the reasoning behind the correct answer | | ||
| v2.0 | regular user | see a progress bar when answering MCQs | track my progress when attempting a question set | | ||
| v2.0 | regular user | see a progress bar about all topics in the main menu | track my revision progress for the entire course | | ||
| v2.0 | student going to take the exam | access timed modes in the game easily | train my thought process to quicken in preparation for tests | | ||
| v2.0 | student new to Java | avoid memorization of specific question sets through randomly generated practice sets | I can ensure I understand the concepts rather than memorising answers | | ||
|
||
## Non-Functional Requirements | ||
|
||
{Give non-functional requirements} | ||
Usability: the user is able to use the app without reading lengthy documentations. | ||
|
||
Technical: the app should run on both macOS and Windows | ||
|
||
## Glossary | ||
|
||
* *glossary item* - Definition | ||
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. maybe also update the template here? |
||
- _glossary item_ - Definition | ||
|
||
## Acknowledgements | ||
|
||
### Libraries | ||
|
||
1. Display formatted tables in the CLI - [ASCII TABLES](https://bethecoder.com/applications/products/asciiTable.action) | ||
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. good that you included your references :) |
||
|
||
2. Topic selection menu and testing mode progress bar - [ProgressBar](https://github.com/ctongfei/progressbar) | ||
|
||
### References | ||
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. Maybe remove references if there is nothing to add here |
||
|
||
## Instructions for manual testing | ||
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. Please include details about manual testing here |
||
|
||
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. Remember to remove this default text |
||
|
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.
Consider adding in a table of contents, similar to the reference Address Book DG