Skip to content

Scylin232/ScyCasino

Repository files navigation

What is this?

ScyCasino is a demo project showcasing the operation of distributed systems in real-time gaming environments.

The project highlights the identification flow (enrollment/registration) using the OIDC protocol, real-time communication for room and game state management via WebSockets and SignalR, and audio/video streaming in a serverless format using WebRTC. It also demonstrates inter-service transactions with compensation through Routing Slips.

The project is designed following principles of Domain-Driven Design, Clean Architecture, CQRS, and more.

Demonstration

Motivation

  1. To demonstrate real-time dependent communication (SignalR) in distributed systems.
  2. To showcase the use of Routing Slip in MassTransit.
  3. To explore integrating a new identity server solution: Authentik.
  4. To conduct field testing for ScyScaff.

Architecture

Architecture

The initial template was scaffolded using Scylin's Scaffolder.

How to Launch

  1. Create a .env file with the required values:
echo "PG_PASS=$(openssl rand -base64 36 | tr -d '\n')" >> .env
echo "AUTHENTIK_SECRET_KEY=$(openssl rand -base64 60 | tr -d '\n')" >> .env
  1. Run the following command:
docker-compose up -d
  1. Wait for Authentik to complete all migrations.
  2. Set up an admin profile at:
    http://localhost:9000/if/flow/initial-setup/
  3. Assign the profile the roles "ScyCasino Member/Administrator"
    • Alternatively, register a new profile via the Frontend.
  4. Access the Frontend at:
    http://localhost:4200/
  5. Log in to your profile.

Attention

This repository is distributed under the CC BY-NC 4.0 license, which prohibits any form of commercial use. It was created purely for demonstration purposes and fun.

About

Have fun in real time.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published