Skip to content

Latest commit

 

History

History
110 lines (72 loc) · 2.65 KB

README.md

File metadata and controls

110 lines (72 loc) · 2.65 KB

Shuftle

A Rust-based deck game project.

Table of Contents

Overview

This open-source project is a deck game built in Rust, utilizing various components and services to create an interactive and scalable game. The project's main components include:

  • Frontend Client
  • API Gateway
  • Keycloak for authentication (with an additional Postgres Database)
  • Application Server
  • Game Server
  • Postgres Database

The project uses Docker Compose for containerization and gRPC for client-server communication.

Project Structure

The project is divided into several layers and components, each handled by a different team member. Here's an overview of the project structure:

  1. Frontend Client: The client application used to play the game;
  2. API Gateway: Responsible for routing and handling incoming requests;
  3. Application Server: Manages game logic and business rules;
  4. Game Server: Handles game sessions and real-time interactions;
  5. Postgres Database: Stores necessary data for the game;
  6. Keycloak: Provides authentication services for the project.

Setup

Prerequisites

Before you can run the project, ensure you have the following prerequisites installed on your system:

Running the Project

To run the project, follow these steps:

  1. Clone the repository:
   git clone https://github.com/Krahos/shuftle
  1. Navigate to the project directory:
cd shuftle
  1. Copy the .env.dist as your local .env file:
cp .env.dist .env
  1. Build the images:
docker compose build --no-cache

NB: This also let build Keycloak within the proper Database vendor.

  1. Start the Docker containers using Docker Compose:
docker compose up -d

This command will start all the project's containers, including Keycloak and the PostgreSQL database.

Contributing

We welcome contributions to this open-source project. If you'd like to contribute, please follow these steps:

  1. Fork the repository;

  2. Create a feature branch with a descriptive name:

git checkout -b feature/your-feature-name
  1. Make your changes and commit them:
git commit -m "Add your feature description"
  1. Push your changes to your forked repository:
git push origin feature/your-feature-name
  1. Open a Pull Request (PR) to the main repository;
  2. Your PR will be reviewed and merged if approved.