https://github.com/andowna9/myvideogamesxp
Videogames list tracking app
https://github.com/andowna9/myvideogamesxp
chakra-ui expressjs fastapi igdb reactjs videogames
Last synced: 3 months ago
JSON representation
Videogames list tracking app
- Host: GitHub
- URL: https://github.com/andowna9/myvideogamesxp
- Owner: Andowna9
- License: mit
- Created: 2022-11-14T14:14:03.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2025-05-22T22:14:54.000Z (5 months ago)
- Last Synced: 2025-06-24T00:35:47.701Z (4 months ago)
- Topics: chakra-ui, expressjs, fastapi, igdb, reactjs, videogames
- Language: JavaScript
- Homepage:
- Size: 3.01 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# MyVideogamesXP
**MyVideogamesXP** is a web application that allows users to track their
games progress easily, as well as providing data about a wide variety
of titles by means of [IGDB API](https://www.igdb.com/api) owned by Twitch.
## Built With







## Architecture
The frontend is run as an Single Page Application (SPA) on the user's browser and accesses each of the microservices functionalities through a unified REST API.

## Features
- 🔐 Log in using Google or user/email combination.
- 🔍 Search a huge catalog of games via IGDB.

- 📖 View game details to learn more about them.

- ⭐ Add your favorite games and begin tracking your progress.

- 🛠️ Manage your list comfortably editing and removing game entries.

## Getting Started
Follow these steps to set up the application locally.
### Prerequisites
- Docker
- Docker Compose
### Configuring Environment Variables
Before running the application, ensure you’ve created and properly configured the required `.env`. The repository includes sample `.env` files to guide you:
- [frontend](./frontend/.env.sample)
- [users-backend](./users-backend/.env.sample)
- [videogames-backend](./videogames-backend/.env.sample)
Some essential credentials you’ll need:
- **Google OAuth Credentials** – Used for user authentication. Follow the [Google Developer Guide](https://developers.google.com/workspace/guides/create-credentials) to set them up.
- **IGDB API Credentials (via Twitch OAuth)** – Required for accessing the game catalog. See the [IGDB API documentation](https://api-docs.igdb.com/#about) for details.
### Running with Docker (Dev)
To get everything up and running (including the frontend), use:
```bash
docker compose --profile frontend up -d
```
## API Endpoints
Check the following tables for further understanding of the available API endpoints per microservice.
### 🧑 User Accounts – `/api/accounts`
| Endpoint | Method | Description |
| ------------------------- | ------ | ------------------------------- |
| `/register` | POST | Register a new user. |
| `/auth/login` | POST | Log into an existing account. |
| `/auth/logout` | POST | Log out. |
| `/users/me` | GET | Get authenticated user's data. |
| `/oauth/google/authorize` | GET | Authorize with Google OAuth. |
| `/oauth/google/callback` | GET | Google authentication callback. |
### 🎮 Video Games – `/api/videogames`
| Endpoint | Method | Description |
| ---------------- | ------ | ---------------------------------------- |
| `/igdb/` | GET | Get game details by ID. |
| `/igdb/search` | GET | Search for games. |
| `/my-games` | GET | Get yor games list. |
| `/my-games` | POST | Add a game to your list. |
| `/my-games/` | PUT | Update tracking data of a specific game. |
| `/my-games/` | DELETE | Delete a game from your list. |
## License
Distributed under the MIT License. See [License](LICENSE).