Buying games without knowing what you're getting is a disappointing experience for everyone. With Game Yap, you can talk about your experience with a game and also find games that are tailored to your favorite genres!
Game Yap is a web app that lets users review, rate, and get recommended games. Each user can register for an account so that they're able to engage with the proposed features. They'll be able to search for games based off rating and genre, and have a homepage that recommends them games based off of chosen genres. Viewing without an account is perfectly fine.
The application will store Users, reviews, genres, and games
- users have reviews associated with them (via references)
- reviews associated with overall score (by embedding)
- users have favorite genres (via references)
- games will be associated with reviews (via references)
An Example User:
{
username: "linoonefan3",
hash: // a password hash,
reviews: // references to reviews
genres: // references to genres
}
An Example List of a User Reviews:
{
user: // a reference to a User object
reviews: [
{ game: "Mario 1000", score: "10", review: "Best game ever!", checked: true},
{ game: "Jump Dude", score: "2", review: "Terrible ripoff...", checked: true},
],
createdAt: // timestamp
}
/ - homepage
/login - login page
/register - registation page
/games/slug - page for specific games and reviews for specified game
/user/slug - page for showing specific user and all their reviews
/search?q="" - lists all searched games
/all - lists all games
- as non-registered user, I can register a new account with the site
- as non-registered user, I can view games and reviews
- as a user, I can log in to the site
- as a user, I can write a game review
- as a user, I can view all my reviews or someone elses on specified user page
- as a user, I can add prefered genres and get recommended games based off them
- as a user, I can browse any game available on the site and see reviews and scores
- (3 points) Unit testing with JavaScript
- Unit testing is testing small snippets of code and verifying if said code has your desired output.
- It's very useful to use since it can help highlight issues in code that one may have overlooked.
- I am planning on using Mocha for my project.
- (5 points) Automated functional testing for all of your routes using any of the following:
- Automated testing for all routes makes sure that all paths are functional.
- Using it is beneficial because it saves you a lot on time on manually testing paths and may alert you of issues you wouldn't see in normal use.
- I am considering using Selenium for my project.
- (2 points) Use a CSS framework or UI toolkit, use a reasonable of customization of the framework (don't just use stock Bootstrap - minimally configure a theme):
- CSS frameworks have prewritten CSS files to make it easier to design elements, and similarly UI toolkits have many built in design tools to simplify design
- These are useful becaue they help shorten the amount of time spent on designing elements.
- I am most likely going to use Tailwind for my project.
10 points total out of 10 required points