A full-stack web app built with NestJS and ReactJS that helps you find and discover over 500,000+ video games

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

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.