Game Store Monorepo

A full-stack web app built with NestJS and ReactJS that helps you find and discover over 500,000+ video games on your device. Powered by RAWG API.

Authors

@nphivu414

Built With

Nx
NestJS
ReactJS
Apollo GraphQL
RAWG Video Games Database API

Screenshots

App Screenshot App Screenshot App Screenshot App Screenshot

Demo

Game store on Netlify

Installation

  1. Clone the repo
    git clone https://github.com/nphivu414/game-store-monorepo-app.git
    
  2. Install dependencies
    yarn install
    

Run Locally

  1. Go to the project directory
  cd game-store-monorepo-app
  1. Start the NodeJS server
  yarn nx serve nestjs-app
  1. Start the ReactJS web app
  yarn nx serve web-app
  1. Start exploring GraphQL Playground at http://localhost:3333/graphql and Game Store Web App at http://localhost:4200/

GRAPHQL API Reference

Get a list of games

query allGames {
    allGames(page: 1, pageSize: 5) {
        nextPage
        results {
            id
            name
            backgroundImage
            rating
        }
    }
}
Parameter Type Description
page number A page number within the paginated result set.
pageSize number Number of results to return per page.
date string Filter by a release date, for example: 2010-01-01,2018-12-31.
genres string Filter by genres, for example: 4,51 or action,indie.
tags string Filter by tags, for example: 31,7 or singleplayer,multiplayer.
publishers string Filter by publishers, for example: 354,20987 or electronic-arts,microsoft-studios.
search string Search by names

Get a list of games that are part of the same series.

query gameSeries {
    gameSeries(page: 1, pageSize: 5) {
        nextPage
        results {
            id
            name
            backgroundImage
            rating
        }
    }
}
Parameter Type Description
page number A page number within the paginated result set.
pageSize number Number of results to return per page.
id number Game ID.

Get details of the game.

query gameDetails {
    gameDetails(id: 3498) {
        id
        name
        backgroundImage
        rating
        platforms {
            platform {
            id
            name
            image
            imageBackground
            }
            releasedAt
        }
    }
}
Parameter Type Description
id number Game ID.

Get a list of video game genres.

query allGenres {
    allGenres(page: 1, pageSize: 10) {
        nextPage
        results {
            id
            name
            thumbnailImage
            games {
                id
                name
            }
        }
    }
}
Parameter Type Description
page number A page number within the paginated result set.
pageSize number Number of results to return per page.

Get a list of video game tags.

query allTags {
    allTags(page: 1, pageSize: 10) {
        nextPage
        results {
            id
            name
            thumbnailImage
            games {
                id
                name
            }
        }
    }
}
Parameter Type Description
page number A page number within the paginated result set.
pageSize number Number of results to return per page.

Get a list of video game publishers.

query allPublishers {
    allPublishers(page: 1, pageSize: 10) {
        nextPage
        results {
            id
            name
            thumbnailImage
            games {
                id
                name
            }
        }
    }
}
Parameter Type Description
page number A page number within the paginated result set.
pageSize number Number of results to return per page.