Alias is an online browser game that revolves around teams, each comprising two or more members. In this game, one team member is assigned the task of explaining a given word using alternative words to their fellow team members.
The objective of this project is to create a dynamic front-end website that adapts to user interactions, modifying the presentation of information to fulfill the user's objectives.
- User Experience UX
- Design
- Features
- Testing
- Bugs
- Technologies used
- Deploying
- How to Clone
- Credits
- Acknowledgements
- Codeanywhere Reminders
Table of contents generated with markdown-toc
This site caters to a wide-ranging audience, including individuals of different ages, by providing various levels of difficulty tailored to accommodate diverse skill levels.
- Enable users to access clear instructions on how to play the game.
- Allow users to reset the game at any point for a fresh start.
- Ensure a user-friendly interface that clearly displays the game elements.
- Display the current score of the game for users to stay informed about their progress.
- Implement clearly labeled buttons to give users intuitive control over the game.
The goal of the site is to offer friends an enjoyable and amusing time playing this game together.
The site's design draws inspiration from the mobile application of the game "play.google.com". I've modified the structure of certain elements, completely overhauled the color scheme, and crafted an appearance specifically optimized for laptop screens.
I used balsamiq to create wireframes
I used coolors.co to generate this color palette.
I use Inter Tight font.
- Add new team button. It adds new team to a game session (allowed no more then 6 team).
- The "Delete team" button. It deletes a team from a game session.
- The "Next" button. It saves chosen teams to localStorage and navigates to next settings' stage
- The "word count" input. It sets amount of words which a team must to achieve to win.
- The "Round duration" input. It sets a round's time.
- The "Penalty for a miss" input. It enables a one point penalty for missed word.
- The "Common final word" input. It enables all teams to guess the last word.
- The "Next" button. It saves chosen settings to localStorage and navigates to next settings' stage
- There are three buttons which define difficulty of game. It saves game words for corresponding level of difficulty and navigate user to game.html page.
- The game section has tree state of appearance (
before-round > round > after-round
). The states runs in a loop until some team get win.
There are three parts of the before-round
section
-
The first one show the "amount of words to win" and list of teams and them score.
-
The second one show a round number of certain team and team name which is going to play upcoming round.
-
The third one is a button that allows user to navigate to the next "
round
" section.
The round
section has main features.
-
The first one shows a team name that is going to paly and number of
guessed
words. -
The second one is the button
start
which runs the current round. After click on it, the word "Start" disappears and a explainable word to be shown. -
The third one is the
guess
button. It allows team member, who is explaining, to add the word to guessed list. -
The fourth one is the
miss
button. It allows team member, who is explaining, to add the word to missed list. -
The last one shows amount of missed words and a countdown timer indicating the remaining time until the end of the round..
In the "Round" section, users on touch screen devices can make guesses by swiping up and register missed words by swiping down.
The after-round
section has three main features
-
The first one shows amount of points gotten for round and teams who got them.
-
The second one shows all words of round. User can change status of a word from "guessed" to "missed" and vise versa if he made mistake.
-
The third one is button that adds earned points to corresponding team and navigates user either to the win page, if someone won, or to the
before-round
stage by changing current team.
The Who guessed
pop-up menu appears in two cases if the "Common final word"
of the "Game settings" was enabled.
-
The first case occur during the
round
section,When the round is over and a user has not yet processed the last word. After the processing the user will be offered to choose the team who guessed the last word. -
The second case occur during the
after-round
section. When the user is trying to change state of the last word.
The "Win section"
has three main features.
-
The first one shows a winner team name and his points.
-
The second one shows rest of teams with their points.
-
The third one is button that navigate user to the home page.
-
Add maintaining
different languages
so people all over the word will be able to paly this game. -
Add
sounds effects
. -
Create
online mode
of this game. It will allow users to play being in different places.
View testing here
-
Delayed content loading when accessing a page (fix commit)
-
The lack of setup for the content of "#round-timer" leads to issues in the proper functioning of checkIsRoundFinished(). (fix commit)
-
Didn't use "let" keyword in "for of" loop. (fix commit)
-
Correct behavior for counting words when user refreshes page during a round (fix commit)
-
Correct behavior of "#control" element when user click on it multiple times (fix commit)
-
Template of ".winner-team-info" wasn't deleted and appears on page. (fix commit)
- JavaScript - provides interactivity of site
- HTML5 - Provides the structure of the site information, elements and website content.
- CSS3 - Provides the styling of the HTML content.
- Balsamiq - Wireframing software used to plan and design website templates.
- GitHub - An online host for web and software development projects. Used to store the repository and deploy the finished website.
- Git - Software for tracking changes to files. Used with GitPod to add, commit and push code changes to the repository on GitHub.
- Google PageSpeed Insights was employed to assess the performance, accessibility, best practices, and SEO aspects of the web pages.
- ChatGPT was used to create more readable and sensible text.
The Alias is presently hosted and accessible on GitHub Pages. The deployment process is managed as follows:
Repository Configuration: The GitHub repository for my project is configured to deploy automatically from the main
branch to GitHub Pages.
Push to Deploy: Whenever I push new changes to the main
branch, GitHub Pages initiates an automatic deployment of the updated version, ensuring it becomes instantly available online.
Accessing the Live Application: You can access the live application by visiting this link: Alias.
- Log into your account on GitHub
- Go to the repository of this project Alias
- Click on the code button, and copy your preferred clone link.
- Open the terminal in your code editor and change the current working directory to the location you want to use for the cloned directory.
- Type
git clone
into the terminal, paste the link you copied in step 3 and press enter.
-
Custom range slider w3schools.com
-
JavaScript MutationObserver mozilla.org
-
Fonts fonts.google.com.
-
CSS linear-gradient mozilla.org
-
Custom checkbox styles alvarotrigo.com
-
Wavy backgrounds fireship.io
-
Favicon and logo icons8
-
Icons Font Awesome.
I want to convey my immense gratitude to my mentor, Luke Buchanan, for pinpointing my mistakes and providing advice on how to rectify them. Special thanks to my friends who assisted in testing the application, and to the Slack community, always ready to offer valuable tips at any time.
To run a frontend (HTML, CSS, Javascript only) application in Codeanywhere, in the terminal, type:
python3 -m http.server
A button should appear to click: Open Preview or Open Browser.
To run a frontend (HTML, CSS, Javascript only) application in Codeanywhere with no-cache, you can use this alias for python3 -m http.server
.
http_server
To run a backend Python file, type python3 app.py
, if your Python file is named app.py
of course.
A button should appear to click: Open Preview or Open Browser.
In Codeanywhere you have superuser security privileges by default. Therefore you do not need to use the sudo
(superuser do) command in the bash terminal in any of the lessons.
To log into the Heroku toolbelt CLI:
- Log in to your Heroku account and go to Account Settings in the menu under your avatar.
- Scroll down to the API Key and click Reveal
- Copy the key
- In Codeanywhere, from the terminal, run
heroku_config
- Paste in your API key when asked
You can now use the heroku
CLI program - try running heroku apps
to confirm it works. This API key is unique and private to you so do not share it. If you accidentally make it public then you can create a new one with Regenerate API Key.