Giter VIP home page Giter VIP logo

project_2_rpssl's Introduction

Rock Paper Scissors game

Traditional Rock Paper Scissors game providing unlimited fun in simple format.

The Rock Paper Scissors game will provide to the user:

  1. A fair competition based truly on random results
  2. Way to pass time by playing a game of chance
  3. Chance to try his/her luck

mockup

Visit the Deployed website here

Table of Content


User Stories

  • As a user I want:
    • To easily understand the purpose of the website.
    • To be able to find out the rules of the game without using external resources.
    • To easily access the rules section and close it at any time.
    • To easily chose one of the options.
    • To be able to see the result of the round.
    • To be able to see the score.

Existing Features

There is one Home page including:

  • Landing page
  • Pop-up window explaining the rules of the game

Navigation Bar and Footer

Both Nav bar and footer are responsive to the size of the screen being used to read the website.

  • Navigation Bar:
    • Nav bar holds abbreviation of the game's full name and a stylised button that brings up rules contained in a pop-up window.
  • Footer:
    • Footer contains full name of the game and is used to give the site a better overall look.

Landing Page

  • Game Area:
    • Holds the:
      • Score area - where the current score is kept
      • Chosen card area - where the user's and computers chosen cards are shown
      • Interactive text area - instructs user and provides feedback on choice made - win, lose or draw
      • Card area - holding 3 cards for the user to chose and play from
Landing Page screenshot

Landing Page screenshot


Pop-up page screenshot

Pop-up page screenshot


Features left to implement

  • Main Page
    • Add Lizard and Spock expansion.
    • Add reset button, so user can start game over directly from the page.

Typography and color scheme

Design

Simple, easy to use design

  • Fonts:

    • Silkscreen - used as a base font for the site
    • Peralta - used for the pop-up rule window
  • Color Scheme:

    • Primary color:

    Primary color

    • Secondary color:

    Secondary color

    • Website Background color:

    Third color

    • Additional colors:
      • Font color - Azure
      • Pop-up screen background color - Azure

Wireframes

Desktop

Desktop Wireframes Desktop Wireframes

Mobile

Mobile Wireframes Mobile Wireframes

Wireframes PDF

Wireframes PDF

Technology

Languages

Software and Framework Libraries

Testing

Testing was carried out by project developer using every device at his disposal, getting project developers friends to test the functionality on their devices and developer tools like Chrome DevTools and Lighthouse extension.

Code Validation - HTML CSS and JavaScript validation

  • W3C Markup Validator
    • On the first try validator reported 1 warning :
      • Section without a h1 was used and was fixed by changing it to div instead
HTML Warning Message

HTML Error Message

HTML Pass Message

HTML Pass Message

  • W3C CSS Validator
    • On the first try validator reported 1 errors:
      • An incorrect padding-bottom value was used, as the line was not necessary, error was fixed by deleting it
CSS Error Message

CSS Error Message

CSS Pass Message

CSS Pass Message

  • JSHint
    • On the first try JSHint reported 1 warning, but no errors:
      • Breaking dow a for loop into additional funcyion fixed this
JSHint Warning Messages

JSHint Warning Messages

JSHint No Issues Messages

JSHint No Issues Messages


Test cases


  • User Cases
  • To easily understand the purpose of the website.
    • When the Landing page opens the whole content of the site is visible. The footer holds the full name of the game and the familiar symbols of "Rock Paper Scissors" are on display.

Purpose screenshot

Purpose


  • To be able to find out the rules of the game without using external resources.
    • At the top right of the page is a clickable button that brings up a pop-up screen which explains the rules in written format and with a help of a diagram.

  • To easily access the rules section and close it at any time.
    • The pop-up button is visible at all time, to be reached easily and when open the user can either click on the "x" in the top right corner of the pop-up or click anywhere outside the pop-up.
Pop-up screenshot

Pop-up


  • To easily chose one of the options.
    • Three clickable cards holding the familiar "Rock Paper Scissors" symbols are easily visible under the dynamic text area.
Three cards screenshot

Three cards


  • To be able to see the result of the round.
    • In the middle of the game area there are 2 cards that change respective to users choice and computers randomly generated result showing the results. additionally under the cards there is a dynamic text area informing of users choice and the result of the round.
Results area screenshot

Results area


  • To be able to see the score.
    • Above the results area the user's and computers current score.
Score area screenshot

Score area


General Testing

Launching and responsiveness
Action Expected behaviour Result
Copy url from GitHub and paste it in a browser and hit enter Browser should load index.html as the landing page Pass
Scale up the window The content should be responsive at 1500px and 2200px width marks Pass
Scale down the window The content should be responsive at 1500px and 808px width marks Pass
Scale down under 320px width The layout should be responsive and fit in a single column without horizontal scroll bar and all text contained until reaching 238px Pass
Landing page
Action Expected behaviour Result
Click on Rules button A pop-up should open explaining the game's rules and have a visual representation Pass
Click on "x" or anywhere outside of Pop-up window Pop-up window should close Pass
Click on one of the 3 cards Question cards should change to the chosen one for the player and responsively for computer, result of both choices should be shown in text area and score should update Pass

Fixed bugs

  • Score Area text too big for screen
    • Text was going over screen boundaries for screen sizes with width below 350px - used @media to style it so text is contained.

Not fixed bugs

  • No bugs found

Supported Screens, Browsers and Performance

Browsers

  • Google Chrome
  • Microsoft Edge
  • Mozilla Firefox

Screens

  • Samsung A52s
  • Huawei P20 Pro
  • Huawei P30 Mate
  • iPhone 13 Pro
  • iPhone 11
  • Screen virtual compatibility tested using Google DevTools:
    • Min responsive screen size tested - 238px
    • Max responsive screen size tested - 2560px

Performance

  • Performance tested using Chrome Lighthouse extension.
    • All areas over scored over 90.
Performance results
  • Landing page:

    Landing page


Deployment

  • Via GitHub
    • Open a web browser
    • Go to address https://github.com/
    • Log in my GitHub account
    • On the left side a selection of recent repositories will be visible, click on "SkyForgerUK/Project_2_RPSSL"
    • Click on settings button
    • Click on "Pages" button
    • In "Branch" field click on "None" button and select "main" from drop down menu
    • Click "Save" button
    • Wait 1-4 minutes
    • Refresh page
    • A link at the top part of the screen will become available
    • Use this link to access the, now published, website
Link Page screenshot

Published via GitHub


  • Via GitPod
    • Open a web browser
    • Go to address https://github.com/SkyForgerUK/Project_2_RPSSL
    • Click on "Gitpod" button to launch the application
    • In TERMINAL section type in command "python3 -m http.server"
    • A popup window in the right bottom corner will appear
    • Click on "Open in Browser"
    • The website will open in a new tab
Link Page screenshot

Published via GitPod


Credits

Content

  • All content created by the project developer, except of:
  • Fonts 'Silkscreen' and 'Peralta' where taken from Google Fonts
  • For help with the code w3schools was used

Media

project_2_rpssl's People

Contributors

skyforgeruk avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.