Skip to content

Andowna9/MyVideogamesXP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 owned by Twitch.

Built With

React.js Node.js FastAPI Nginx MariaDB MongoDB Docker

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.

Architecture

Features

  • 🔐 Log in using Google or user/email combination.

  • 🔍 Search a huge catalog of games via IGDB.

Login

  • 📖 View game details to learn more about them.

Login

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

Login

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

Login

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:

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.

Running with Docker (Dev)

To get everything up and running (including the frontend), use:

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/<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.

License

Distributed under the MIT License. See License.

About

Videogames list tracking app

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors