Skip to content

maxentr/skyjo

Repository files navigation

Skyjo Online

Sonar Quality Gate (branch) Sonar Tech Debt (branch) Weblate project translated GitHub License

This repository contains the code of skyjo.online, the online version of the popular card game Skyjo.

Table of Contents

What is Skyjo?

Skyjo is an engaging card game that combines strategy, luck, and quick thinking. For more information, visit skyjo.online/rules.

Project Structure

This project is set up as a monorepo using Turborepo and contains the following:

Applications

Packages

  • cache: Manages game caching using Redis
  • config: Centralized configuration files for the project
  • core: Core game logic for Skyjo
  • error: Custom error handling classes
  • logger: Custom logger implemented with Winston for logging in Seq
  • shared: Common types, utility functions, and Zod schemas shared across applications

Installation guide

Prerequisites

Installation steps

  1. Install dependencies:
    pnpm install
  2. Copy .env.example to .env in the root, apps/api/, and apps/web/ directories, and fill out the required variables
  3. Start the Seq container:
    docker compose up seq
  4. Go to localhost:5341 in your browser and enable authentication, create an account, generate an API key
  5. Update the SEQ_API_KEY in apps/api/.env files with the generated API key

How to run the project

To start the necessary services and clients:

To start Redis, Seq, and the API server in detached mode:

docker compose up -d

Run the web client with:

pnpm dev --filter @skyjo/web

Running the API without docker

In apps/api/.env, set:

# Replace `REDIS_PASSWORD` with your Redis password
REDIS_URL=redis://:REDIS_PASSWORD@localhost:6379

Start the API server locally:

pnpm dev --filter @skyjo/api

Localization

Thanks to Weblate for hosting our localization infrastructure! If you'd like Skyjo Online available in your language, consider contributing to the translation.

Translation status