Skip to content

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

License

Notifications You must be signed in to change notification settings

nphivu414/game-store-monorepo-app

Repository files navigation

Sponsored by Evil Martians

Game Store Monorepo

A full-stack web/mobile application that helps you find and discover over 500,000+ video games on your device. Powered by RAWG API.

Demo

React Single Page App on Netlify
NextJS App on Vercel (Beta)

Authors

Main stacks

Screenshots

Web App

Explore Game Details Games Genres
Web App Screenshot Web App Screenshot Web App Screenshot Web App Screenshot

Native App

Android iOS
Android App Screenshot iOS App Screenshot

Installation

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

Run Locally

  1. Go to the project directory
  cd game-store-monorepo-app
  1. Start the backend server
  yarn start:backend
  1. Start the web app

    • React Single Page App
      yarn start:web
    • NextJS App (beta)
      yarn start:next
  2. Start the iOS app (beta)

  • If you're not using M1, run
   yarn start:ios:install
  • If you're on M1, first install the x86 version of the ffi gem using sudo arch -x86_64 gem install ffi then run yarn start:ios:install:m1 (see here)

  • Use yarn start:ios for subsequent starts (it's faster since it skips pod install and uses xcode's cache)

  1. Start the Android app (beta)
  • Run yarn start:android and the app should appear in the Android simulator

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.