You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: README.md
+12-8
Original file line number
Diff line number
Diff line change
@@ -43,7 +43,7 @@ The user can quit to the main menu at any stage, and validation is used on all i
43
43
44
44
The terminal screen is regularly cleared to ensure the terminal doesn't get cluttered and confuse the user between input prompts.
45
45
46
-
Coloured text was used sparingly for correct/incorrect answer messages and warnings.
46
+
Coloured text was used for correct/incorrect answer messages and warnings.
47
47
48
48
49
49
### Typography
@@ -166,21 +166,22 @@ class Game:
166
166
## Technologies Used
167
167
168
168
-[Python](https://www.python.org/)
169
+
-[pip](https://pip.pypa.io/en/stable/) for installing Python packages.
169
170
-[Git](https://git-scm.com/) for version control.
170
171
-[GitHub](https://github.com/) for storing the repository online during development.
171
172
- GitHub Projects was invaluable throughout the project and helped me keep track of things to do and bugs to fix - you can see [the project's board here](https://github.com/users/davidindub/projects/3).
172
173
-[GitPod](https://gitpod.io/) as a cloud based IDE.
173
174
-[Google Forms API](https://developers.google.com/forms) and [Google Drive API](https://developers.google.com/drive) for creating and sharing the generated Google Forms.
174
175
-[favicon.io](https://favicon.io/favicon-generator/) to make a favicon for site.
175
-
-[Google Chrome](https://www.google.com/intl/en_ie/chrome/), [Mozilla Firefox](https://www.mozilla.org/en-US/firefox/new/) and [Safari](https://www.apple.com/safari/) for testing on macOS Monterey, Windows 10, iOS 15, iPadOS 15 and Android 10.
176
-
-[Concepts](https://concepts.app/en/) for sketching on an iPad.
176
+
-[Google Chrome](https://www.google.com/intl/en_ie/chrome/), [Mozilla Firefox](https://www.mozilla.org/en-US/firefox/new/) and [Safari](https://www.apple.com/safari/) for testing on macOS Monterey.
177
177
-[Lucid Chart](https://lucid.app/) for making flow charts.
178
178
179
-
## Python Packages Used
179
+
## External Python Packages Used
180
180
181
181
-[termcolor](https://pypi.org/project/termcolor/) for colored terminal text.
182
182
-[art](https://github.com/sepandhaghighi/art) - ASCII art library for ASCII text.
183
183
-[google-auth](https://pypi.org/project/google-auth/) & [google.oauth2](https://google-auth.readthedocs.io/en/stable/reference/google.oauth2.html) for authenticating with Google APIs.
184
+
-[apiclient](https://pypi.org/project/apiclient/) for API error handling.
184
185
-[email-validator](https://pypi.org/project/email-validator/) for validating the user's e-mail address if they want the Google Form Quiz shared with their Google Account.
185
186
186
187
@@ -189,7 +190,7 @@ class Game:
189
190
I performed manual testing contiously as the application was being developed.
190
191
191
192
I attempted many possible inputs that could distrupt the application. I used the package `email-validator` to validate the user's e-mail address should they want the Google Form shared with them. For instances where a "Y" or "N" was expected, I accepted "YES" or "NO" and lowercase versions of all.
192
-
While Loops were used to ask the user for input until an accepted value was entered (or the user quit by entering "Q", "QUIT" or lowercase versions of either)
193
+
While Loops were used to ask the user for input until an accepted value was entered (or the user quit by entering "Q", "QUIT" or lowercase versions of either).
193
194
194
195
I used the `pprint` package at some stages of development to more easily see objects I was printing to the terminal, but it wasn't used in the final application.
195
196
@@ -205,7 +206,7 @@ I used test JSON quiz data stored in a variable to test the Google Forms creatio
205
206
I initiated Game objects based on test data which was later removed, as well as relying on API calls.
206
207
207
208
208
-
The [GitHub Issues](https://github.com/davidindub/quiz-master/issues) page of the repository was invaluble for tracking bugs found, and closing the issues when fixed.
209
+
The [GitHub Issues](https://github.com/davidindub/quiz-master/issues) page of the repository was invaluble for tracking bugs found, and closing the issues when fixed. More of the bugs and issues discovered while developing can be seen here.
209
210
210
211
I deployed on Heroku early so I could see the final input as it differs to the terminal in my development environment.
211
212
I had to limit the amount of text displayed at any time to prevent a scroll appearing, such as on the help screen and listing the available categories.
@@ -217,6 +218,7 @@ As the categories list was too long for the deployed project's terminal, I creat
217
218
218
219
219
220
<details>
221
+
220
222
<summary>As a first time user, I need instructions on how to use the applications so I can use it.</summary>
221
223
222
224
1. At the Main Menu, I see the Help option, number 4.
@@ -231,13 +233,15 @@ As the categories list was too long for the deployed project's terminal, I creat
231
233
</details>
232
234
233
235
<details>
236
+
234
237
<summary>As a user, I want to be able to play a quick quiz round without chosing any settings.</summary>
235
238
236
239
237
240
**Result:** Pass ✅
238
241
</details>
239
242
240
243
<details>
244
+
241
245
<summary>As a quiz enthusiast I want to be able to build custom quizzes based on different categories.</summary>
242
246
243
247
1. At the Main Menu, I see the first option is 'Play Quick Quiz Round'
@@ -250,6 +254,7 @@ As the categories list was too long for the deployed project's terminal, I creat
250
254
</details>
251
255
252
256
<details>
257
+
253
258
<summary>As a user running a virtual quiz, I want to be able to create a custom quiz to share and play with my friends.</summary>
254
259
255
260
1. At the Main Menu, I see the option to Create a Google Form Quiz.
@@ -269,7 +274,6 @@ As the categories list was too long for the deployed project's terminal, I creat
269
274
</details>
270
275
271
276
272
-
273
277
### Challenges Faced
274
278
275
279
- The [Google Forms API](https://developers.google.com/forms) was only released in March 2022, the month before I started building the project. Unlike other products like Google Sheets, there was are no Python Packages released yet to simplify using the Forms API.
@@ -291,7 +295,7 @@ As the categories list was too long for the deployed project's terminal, I creat
291
295
292
296
All the files pass PEP8 Validation.
293
297
294
-
I used `# noqa` on line 44 of `create_quiz.py` ignore a line length warning on a long URL for an API call.
298
+
I used `# noqa` on line 66 of `create_quiz.py` ignore a line length warning on a long URL for an API call.
0 commit comments