Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mickey9315/game-store-monorepo-app
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.
https://github.com/mickey9315/game-store-monorepo-app
aws-lambada graphql nextjs nodejs nx-workspace react react-native serverless styled-components tailwindcss typescript yarn
Last synced: 26 days ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/mickey9315/game-store-monorepo-app
- Owner: Mickey9315
- License: mit
- Created: 2024-11-18T22:11:57.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2024-11-18T22:21:47.000Z (about 2 months ago)
- Last Synced: 2024-12-17T10:27:56.290Z (27 days ago)
- Topics: aws-lambada, graphql, nextjs, nodejs, nx-workspace, react, react-native, serverless, styled-components, tailwindcss, typescript, yarn
- Language: TypeScript
- Homepage: https://mono-game-store.netlify.app/
- Size: 10.8 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Game Store MonorepoA 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](https://mono-game-store.netlify.app/)
[NextJS App on Vercel (Beta)](https://mono-game-store.vercel.app/)## Authors
- [@nphivu414](https://github.com/nphivu414)
## Main stacks
- [Nx Build System](https://nx.dev/)
- [Typescript](https://www.typescriptlang.org/)
- [ReactJS](https://reactjs.org/)
- [React Native](https://reactnative.dev/)
- [NextJS](https://nextjs.org/)
- [NestJS](https://nestjs.com/)
- [Serverless](https://www.serverless.com/)
- [AWS Lambda](https://aws.amazon.com/lambda/)
- [Apollo GraphQL](https://www.apollographql.com/)
- [TailwindCSS](https://tailwindcss.com/)
- [DaisyUI](https://daisyui.com/)
- [Styled Components](https://styled-components.com/)
- [React Native Elements](https://github.com/react-native-elements/react-native-elements)
- [Styled System](https://styled-system.com/)
- [RAWG Video Games Database API](https://rawg.io/apidocs)## Screenshots
### Web App
| Explore | Game Details | Games | Genres |
| :-------- | :------- | :------------------------- | :------------------------- |
| ![Web App Screenshot](https://github.com/nphivu414/game-store-monorepo-app/blob/master/assets/mono-game-store1.png) | ![Web App Screenshot](https://github.com/nphivu414/game-store-monorepo-app/blob/master/assets/mono-game-store2.png) | ![Web App Screenshot](https://github.com/nphivu414/game-store-monorepo-app/blob/master/assets/mono-game-store3.png) | ![Web App Screenshot](https://github.com/nphivu414/game-store-monorepo-app/blob/master/assets/mono-game-store4.png) |### Native App
| Android | iOS |
| :-------- | :------- |
| ![Android App Screenshot](https://github.com/nphivu414/game-store-monorepo-app/blob/master/assets/mono-game-store-android.png) | ![iOS App Screenshot](https://github.com/nphivu414/game-store-monorepo-app/blob/master/assets/mono-game-store-ios.png) |
## Installation1. Clone the repo
```sh
git clone https://github.com/nphivu414/game-store-monorepo-app.git
```
2. Install dependencies
```sh
yarn install
```
3. Install serverless globally
```sh
npm install -g serverless
```
## Run Locally1. Go to the project directory
```bash
cd game-store-monorepo-app
```2. Start the backend server
```bash
yarn start:backend
```3. Start the web app
- React Single Page App
```bash
yarn start:web
```
- NextJS App (beta)
```bash
yarn start:next
```4. Start the iOS app (beta)
- If you're not using M1, run
```bash
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](https://github.com/CocoaPods/CocoaPods/issues/10723#issuecomment-864408657))
- Use yarn start:ios for subsequent starts (it's faster since it skips pod install and uses xcode's cache)
5. 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. |