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 owned by Twitch.
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.
- 🔐 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.
Follow these steps to set up the application locally.
- Docker
- Docker Compose
Before running the application, ensure you’ve created and properly configured the required .env. The repository includes sample .env files to guide you:
Some essential credentials you’ll need:
- Google OAuth Credentials – Used for user authentication. Follow the Google Developer Guide to set them up.
- IGDB API Credentials (via Twitch OAuth) – Required for accessing the game catalog. See the IGDB API documentation for details.
To get everything up and running (including the frontend), use:
docker compose --profile frontend up -dCheck the following tables for further understanding of the available API endpoints per microservice.
| 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. |
| Endpoint | Method | Description |
|---|---|---|
/igdb/<id> |
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/<id> |
PUT | Update tracking data of a specific game. |
/my-games/<id> |
DELETE | Delete a game from your list. |
Distributed under the MIT License. See License.
