Track Quiz
Welcome to Track Quest!
This is a Trivia Quiz which will take you on journeys across the world.
It´s inspired from the swedish tv-show "På Spåret".
You will visit 5 random cities and every city has 5 levels/questions.
Decreasing from 10 points down to 2 points.
Your mission is to guess which the city is.
You will be given cluess on every level which gets easier and easier.
You have only one guess per destination so use it wisely!
A wrong answer will give you 0 points.
So if your ready to visit exciting cities across the world
and get exciting and learning facts try it out
The game is live on :Heroku
Table of content:
- This is how it looks in "Am I responsive
.png)
- Embark on a thrilling adventure with our trivia game inspired by the Swedish TV show "På Spåret."
- The aim is to create an engaging and educational experience, taking users on a journey around the world through captivating questions about different cities.
- This project focuses on delivering an engaging trivia game with a learning twist.
- Users navigate through five rounds, each featuring a different city.
- A unique challenge is introduced by limiting participants to a single guess per round.
- Questions in each round decrease in difficulty, awarding points from 10 to 2. A scoring system provides feedback, adding a competitive edge.
- Inspired by "På Spåret," this design encourages strategic thinking and ensures an enjoyable and educational gaming experience.
- The game's structure is intentionally simple and intuitive.
- It comprises multiple rounds, each spotlighting a specific city.
- Users get one opportunity to guess the city in each round, with awarded points decreasing gradually.
- This streamlined structure ensures an engaging and straightforward gaming experience.
-
To meticulously plan out the game's components and functions, Lucidchart was employed. This is how it looks:

-
These visual diagrams served as a roadmap during development, ensuring a user-friendly and visually appealing game interface.
- The game interface is clean, modern, and user-friendly.
- Typography is chosen for readability and visual appeal.
- The game adds variety by randomizing the city for each round.
- Inclusion of various cities and questions provides an immersive and enjoyable experience for players.
- Quick Start : As a first-time user, the game provides clear instructions on how to play, ensuring an immediate and intuitive understanding.
- Warm Welcome :Users are welcomed with excitement, creating a positive and inviting atmosphere from the start.
- Inclusive Atmosphere : Whether familiar with "På Spåret" or not, the game ensures all users feel welcome and can easily engage with the experience.
- Any error messages should guide users in a direction that is easily understandable for resolving issues.
- As a returning user, I want to experience different destinations each time I play the game.
- The game offers a fresh and varied experience by randomizing cities, ensuring no two rounds are the same.
- I would love to see new parts of the game resembling the real show, where every destination has questions after arrival.
- The introduction of this new element adds depth and immersion to the gameplay, providing a unique experience for frequent users.
- Adding more cities to the game would enhance the variety and keep the experience engaging for returning users.
- A growing list of cities ensures that each playthrough brings new challenges and exploration opportunities.
- Also some music question would take this one step further in to the world of "På Spåret"
-
In a Terminal-based game, design options are limited.
-
I've utilized Colorama to add colors for better distinction among various inputs.:
- Blue for elements like username, handcar or first class, and answer inputs.
- Red for error messages and incorrect answers.
- Green for correct answers.
- I've also implemented a color scheme for the final messages, indicating the user's performance.
- For instance, positive outcomes may be highlighted in green, while negative outcomes or errors could be displayed in red."
-
I've also incorporated ASCII art to enhance the visual appeal and make the overall experience more enjoyable for users. While I would have liked to include more content, time constraints limited additional features.

-
In the introduction, we welcome the player, explain the rules, and provide an option to choose a username of max 10 letters for a personalized experience.
-
If the user enters more than 10 letters or tries to skip, an error message will appear.

*Afterward, in the game, you'll find a clear option to choose between 1 for first class or 2 for hand car explicitly stated as just for fun and without any impact on the gameplay.

- If the user enters something else or tries to skip, an error message will appear.

- At the first destination, users encounter the initial question. They have the option to respond for 10 points or press 'next' for 8 points. A correct answer earns points corresponding to the level, while an incorrect one results in 0 points. This pattern continues until reaching the 2-point level. Pressing 'next' at this stage awards 0 points.

- If the user answers correct they will be shown this :

- If the user answers incorrect they will be shown this :

- They can type next then this will happen :


- After visiting all cities and answering the questions, users will encounter the end page , visually presented. Following the game's completion, users receive feedback on their performance, final points, and are given the option to play again, all accompanied by visual elements.

-
If they choose to play again the game restarts. If they answer no, a short messages appears ! No
-
If they type anything else an error appears
- Python
- Lucidcharts : Was used to create detailed diagrams outlining the game's structure, parts, and functions
- VSCode: Utilized for writing and editing the Python code
- GitHub: Employed for code deployment.
- Heroku: This project was deployed with Heroku using Code Institute's mock terminal as provided with the Python Essentials template.
| Test Case | Steps | Expected Result | Actual Result |
|---|---|---|---|
| Heroku | Go to the live Heroku site | App should run | App is running |
| Intro | Wait for the intro | Intro should start | Intro is starting |
| The username sign in | The choose username | I should get a prompt to choose username of max 10 letters. It shows up I choose one with 3 letters | I´m welcomed |
| Don´t choose username or more than 10 letters | I try to skip it | Error message | I got an error message |
| Handcar or first class | The choose handcar or first class | Expecting the prompt to show up and force me to choose | Its showing up I´m choosing and app is moving on |
| Handcar or first class skip | I try to sign something else | Error message | I got an error message |
| Game starts | The game should start now | I should go to the first random destination and the 10 point question should show up | It shows up |
| The question next button | I get the first question for 10 points and are told to guess or type next | I type next to get 8 points question | I got the 8 point question |
| The question answer | I try to answer what I think is correct and type in a guess | A correct or incorrect message | I got the message of correct |
| Current score | I want to see my score after each answer | Expect to get that now | I get it I´ve got 10 points |
| The question answer incorrect | I got to the next destination now I answer what I think is incorrect | An incorrect message to show | It shows up |
| After the final destination | I have gotten to the 5th destination and answered | A end message to show with my points | It shows up |
| Restart the game | The game is finnished | Expecting a choice to play again and to type yes or no | It shows up I press yes, the game restarts |
| Restart the game no | I press no | Quit the game | I got a goodbye message, how sweet hehe |
- Google Chrome on Mac Book- Runs with no problem
- Safari on Mac Book - I can´t choose username. This is a well known bug
- Microsoft Edge - Runs with no problem
- Python test. I ran a Pyton validation on CI Python Linter Validator with this result on my python files
| Bug | Status | Description | Steps to resolve |
|---|---|---|---|
| Crashed when answered wrong | When I answered a question wrong the app crashed | I had to convert "The correct answer was: " + str(question.answer) to a string | |
| Next wasnt working | I couldnt move on while typing next | I had to put next before the incorrect answer in the loop | |
| The app isnt working in Safari | Ungoing | When I open the app in safari I cant log in | Its a known issue so I can´t fix it |
| The app crashed when starting the game | When I run the file it worked fine until the intro was over | I had misspelled points with point in the first questions key for points |
- In the upper-right corner of any page, select , then click New repository.
- Type a short, memorable name for your repository. ...
- Optionally, add a description of your repository. ...
- Choose a repository visibility. ...
- Select Initialize this repository with a README.
- Click Create repository.
- Open Visual Studio Code 3.
- On the start window, select Clone a repository.
- Enter or type the repository location, and then select the Clone button.
- If you're not already signed in, you might be prompted to sign into Visual Studio or your GitHub account.
- Save in VsCode and commit with source control or use the terminal
- Step 1 git commit -a to commit
- Step 2 git commit -m "commit message" to push
Before deploying to Heroku pip3 freeze > requirements.txt was used to add all the dependencies required to the requirements.txt file. This is required for the game to run on Heroku.
The following steps were then taken:
- Log in to Heroku or create an account.
- On the main page click the button labelled New in the top right corner and from the drop-down menu select "Create New App".
- Enter a unique and meaningful app name.
- Next select your region.
- Click on the Create App button.
- Click on the Settings Tab and scroll down to Config Vars.
- Click Reveal Config Vars and enter port into the Key box and 8000 into the Value box and click the Add button.
- Input CREDS and the content of your Google Sheet API creds file as another config var and click add.
- In the next Key box enter OXFORD_API_APP_ID and add your unique ID to the value box.
- In the next Key box enter OXFORD_API_APP_KEY and add your unique key to the value box.
- Next, scroll down to the Buildpack section click Add Buildpack select Python and click Save Changes
- Repeat step 11 to add node.js. Note: The Buildpacks must be in the correct order. If not click and drag them to move into the correct order.
- Scroll to the top of the page and choose the Deploy tab.
- Select Github as the deployment method.
- Confirm you want to connect to GitHub.
- Search for the repository name and click the connect button.
- Scroll to the bottom of the deploy page and either click Enable Automatic Deploys for automatic deploys or Deploy Branch to deploy manually. Manually deployed branches will need re-deploying each time the repo is updated.
- Click View to view the deployed site.
- The site is now live and operational.
-
This quiz is inspired by a few other quiz games which I have studied in detail.
-
What I got the structure to get started was from QuizBrain . I learnt alot about classes and Dick Vlaanderen my mentor gave me a few tips
-
Drawing on my experience from previous projects (PP1 and PP2), I found inspiration in my own work to develop the current project. The learnings and insights gained from those earlier endeavors significantly influenced the design and implementation of this project."
-
The question for the game is from the real Tv Show "På Spåret". I borrowed the from Pa sparet bloggen who has done a fantastic job by creating their site with theese questions!
- To my wife and family for the support
- My Mentor for all the invaluable support and feedback
- Kay at Code Institute for invaluable support and motivation
- Slack Community


