Git Product home page Git Product logo

gamesay_milestone_project3's Introduction

GameSay

GameSay

Welcome to GameSay!

Game reviews by gamers for gamers!

This game review app provides people a space to share their experiences, insights, and opinions on their favorite games. Whether you're seeking recommendations or want to contribute your own reviews!

Sign up today to have your say on your favorite (or not so favorite) video games!

The live website can be found here


User Experience

  • Purpose of Project
  • User Stories
  • Web Design
  • Wire frames

Purpose of Project -

Many video game sites often overwhelm users with an abundance of content, including irrelevant information and intrusive promotional pop-ups. This project aims to streamline the video game consumer's experience, by cutting through the noise and focusing on the essential info of a video game, in particular if it's worth playing or not.

Value to Users:

  • Community-driven Reviews: Users can read reviews from fellow gamers, offering insight and opinions on different games.
  • Streamlined User Experience: The application's clean and modern design ensures a user-friendly experience, minimizing distractions and focusing on essential information.
  • Convenient Accessibility: With features like search functionality and detailed game information, users can easily find the games they're interested in and contribute reviews.
  • User Engagement: Through functionalities like user profiles and the ability to edit or delete reviews, GameSay encourages user engagement and interaction within the gaming community.

User Stories -

  1. As a user, I want to be able to browse a variety of game reviews to discover new games.

  1. As a user, I want to be able to search for specific games.

  1. As a user, I want to be able to view detailed information about each game, including screenshots and release date.

  1. As a user, I want to be able to add my own reviews for games I've played.

  1. As a user, I want to be able to edit or delete my own reviews.

  1. As a user, I want to be able to see reviews from other users to help me decide whether to play a game.

  1. As a user, I want to be able to create an account and log in.


Web Design -

Visual Aesthetic:

The app embodies a sleek and incisive design, focusing on a clean, simple, and modern aesthetic that reflects a user-friendly experience.

Color Scheme:

The color palette is vibrant and dynamic, mirroring the energy and excitement synonymous with video games, while also maintaining a sense of user-friendliness.

Typography:

The app exclusively uses Roboto. By adopting a clean and accessible font, the design reflects contemporary trends while also ensuring readability.


Wireframes:

The site's wireframes were made with balsamiq wireframes.

Home Page:
Home Page
Sign Up Page:
Sign Up Page
Login Page:
Login Page
Add Review Page:
Add Review Page
Browse Reviews Page:
Browse Page
Profile Page:
Profile Page
Search Game Page:
Search Game Page
Search Results Page:
Search Results Page

Website Features

  • User Authentication:

    • Users can sign up with a username and password.
    • Existing users can log in securely.
  • User Profiles:

    • Each user has a profile page where they can see their reviews.
    • Pagination is implemented for the user's reviews.
  • Review System:

    • Users can add reviews for games.
    • Reviews include a rating and written review.
  • Game Information:

    • Users can search for games.
    • Detailed information about games is fetched from the RAWG API, including description, release date, genres, developers, publishers, platforms, and tags.
  • Game Reviews:

    • Users can view reviews for specific games.
    • Reviews are paginated.
  • Editing and Deleting Reviews:

    • Users can edit and delete their own reviews.
  • Account Management:

    • Users can delete their accounts, which also deletes associated reviews.

Website Walkthrough -

  • Home Page:

    • Upon visting the landing page, the user can see the heading and logo of the site along with a view of the three most recent game reviews showcased in a visually appealing card format, offering a snapshot of the latest content.
  • Sign Up Page:

    • Users can navigate to the sign-up page by selecting the "Sign Up" option from the navbar. The sign-up page provides a straightforward form where users can input their desired username and password to create a new account.
  • Login Page:

    • If a user has already registered, they can login by accessing the "Log In" page from the navbar.
  • Profile Page:

    • After logging in, users are directed to their personalized profile page, where they can access various account-related features and functionalities. The profile page displays the user's username, along with a summary of their submitted game reviews.
  • Game Reviews:

    • Users can then choose to explore the current game reviews submitted by users by clicking on the browse link in the navbar, which takes them to the game_reviews page, providing valuable insights and recommendations for a wide range of titles. Each review includes a rating and written feedback, helping users to make informed decisions about their gaming experiences.
  • Search Game:

    • The user can then choose to search for a game to review themself by clicking on the 'add' link in the navbar, which takes them to the search_game page.
  • Search Results:

    • The user can then view a the results of their query on the search_results page which displays a pagination of the results display as game cards.
  • Adding Reviews:

    • When the user selects the game they want to review, they are taking to the game_info page which displays a visually appealing covert art of the game along with all the relevant info, and then the ability to add their review and rating of the game with a form.
  • Editing and Deleting Reviews:

    • The user can then see the games they have reviewed on their profile page and choose to edit or delete the review with a modal form.
  • Deleting Account:

    • The user can then decide to delete their account if they so wish, which will trigger a modal to verify if the user definitely wants to delete their account, which in turn deletes their reviews from the database.

Made with:

  • HTML5 (was used for structuring and presenting content of the website)
  • CSS (used for the styling of the content)
  • JS (used for timeout functionality)
  • Google Fonts (used for all the font styling within the project, font used was Roboto, and sans-serif for back-up)
  • Bootstrap (used for the responsiveness and additional styling)
  • RAWG (API used for retrieving video game info)
  • flaticon (used for the various custom icons)
  • Chrome (used to debug and test the source code using HTML5 and to test site responsiveness)
  • GitHub (used to create the repository and store the projects code after pushed from Git)
  • Codeanywhere (used for editing code of project)
  • Gitpod (used for editing code of project)
  • vscode (used for editing code of project)
  • W3C Markup (used for validating the html5 code)
  • Jigsaw Validator (used for validating the CSS code)
  • Webaim Contrast Checker (Used for validating color contrast for accessibility)
  • Jshint (Used for JavaScript validation)
  • Flask (used for building of app)
  • Jinja (used for html templating)
  • Python (used for app logic)
  • PyMongo (used for interacting with mongodb)
  • Heroku (used for deployment of app)
  • MongoDB (used for database)
  • Am I Responsive? (used for responsiveness testing)

Testing & Validation

HTML Validation

The only errors found in the templates were seemingly from the HTML Validator's inability to recognize Jinja Templating:

HTMLValidation

CSS Validation

No errors were found.

CSSValidation

JS Validation

No errors were found.

JSValidation

Python Validation

No errors were found.

PythonValidation

Usability Testing:

User Interface Clarity and Intuitiveness

Test Case Expected Result Outcome
Locate and use main features/buttons (e.g., "Add," "Browse") Features/buttons should be easily visible and usable. Pass
Evaluate the clarity of labels and instructions Labels and instructions should be clear and understandable. Pass
Test the consistency of design elements (color scheme, fonts, layouts) Design elements should be consistent throughout the application. Pass

Accessibility Testing

Test Case Expected Result Outcome
Evaluate contrast and color schemes for readability and accessibility Colors and contrasts should be chosen to ensure readability for users with visual impairments. Pass

Responsive Testing:

Test Case Expected Result Outcome
Tested the application on various devices and screen sizes Should be responsive to different breakpoints and devices Pass

Functionality Testing:

Homepage Navigation

Test Case Expected Result Outcome
Click on "Home" Should navigate to the homepage Pass
Click on "Add" Should navigate to the page for adding a new game Pass
Click on "Browse" Should navigate to the page for browsing games Pass
Click on "Sign Up" Should navigate to the sign-up page Pass
Click on "Log In" Should navigate to the log-in page Pass
Click on "Profile" Should navigate to the user's profile page Pass
Click on "Log Out" Should log the user out Pass

Add Game Functionality

Test Case Expected Result Outcome
Fill out game details form Form should be submitted successfully and game should be added Pass
Submit empty form Form submission should be prevented and relevant error messages displayed Pass
Add duplicate game Attempt to add a game with existing name should be prevented and appropriate error message displayed Pass

Browse Games Functionality

Test Case Expected Result Outcome
Search for a game Search results should display relevant games Pass

Game Reviews Functionality

Test Case Expected Result Outcome
View game review Game details and user reviews should be displayed Pass
Add game review Review should be added successfully to the database Pass
Edit game review Changes to review should be saved successfully Pass
Delete game review Review should be deleted from the database Pass

User Profile Functionality

Test Case Expected Result Outcome
View user profile User profile details and submitted reviews should be displayed Pass
Delete user account User account and associated reviews should be deleted Pass

Database Management Testing:

Test Case Expected Result Outcome
Add game review Review should be added successfully to the database Pass
Edit game review Changes to review should be saved successfully to database Pass
Delete game review Review should be deleted from the database Pass
View Profile Profile of user in database should be viewable Pass
Sign Up User info should be added to database Pass
Delete Account User's info and reviews should be removed from database Pass

Deployment Testing:

Test Case Expected Result Outcome
Deployed App matches development version The deployed website should mirror the functionality and appearance of the development version. Pass

Deployment

With Heroku:

  1. Sign in to your Heroku account or sign up for a new one.

  2. Connect your Heroku account to your GitHub account:

    • Navigate to the Heroku Dashboard.
    • Click on the "New" button and select "Create new app."
    • Give your app a unique name and choose the region closest to you.
    • Click "Create app."
    • In the "Deployment method" section, select "GitHub."
  3. Search for the repository you want to deploy from your GitHub account.

  4. Once you've connected your GitHub repository, you can choose to either deploy the app automatically when changes are pushed to GitHub or manually deploy.

  5. If you choose automatic deploys, select the branch you want to deploy from and enable automatic deploys.

  6. If you prefer manual deploys, you can trigger a deployment manually by clicking the "Deploy Branch" button.

  7. Heroku will build your app using your project's build scripts and dependencies specified in your repository.

  8. Once the build is complete, you can view your deployed application by clicking the "View" button on the Heroku Dashboard.

  9. You can manage your deployed application settings and view logs from the Heroku Dashboard.โ€จ Remember to set up any necessary configuration variables (such as environment variables) on the settings page.

Fork and Clone Repository:

  1. Visit the GitHub repository and click on the "Fork" button in the top-right corner. This will create a copy of the repository under your GitHub account.

  2. On your forked repository's page, click on the "Code" button and copy the repository's URL.

  3. Open your preferred Command Line Interface (e.g., Terminal, Git Bash) and navigate to the directory where you want to clone the repository.

  4. Enter the following command in the command line: git clone [repository URL]

  5. Navigate into the Repository: Use the cd command to navigate into the cloned repository: cd [repository name]

(Replace [repository URL] with the actual URL of your forked repository and [repository name] with the name of the cloned repository on your local machine.)


Credits & Acknowledgements

  • Flaticon (For custom icons)
  • Freepik (For custom icons)
  • RAWG (for amazing api service!)
  • Twitch (for inspiration!)
  • IGDB (for inspiration!)
  • Metacritic (for inspiration!)
  • Video Games!
  • My mentor Marcel for his support, encouragement, advice and guidance throughout the developing of this app.

gamesay_milestone_project3's People

Contributors

anthonyradose avatar

Watchers

 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.