Skip to content

igncp/mahjong

Repository files navigation

麻雀 - Mahjong

Checks Deploy

Hong Kong style mahjong web and mobile applications. They use a common server which handles most of the game mechanics.

  1. Core library with the game utilities and tests
  2. Service that persists and handles games for clients
    • Can be communicated via an HTTP API
    • It creates a WebSocket per active game, to process the game and communicate with clients
  3. Scripts to handle different tasks related to the code deployment and tests
    • For example running linting, tests, and deploying to Docker
  4. Web client to play, both for desktop and mobile web
    • It uses a drag-n-drop UI to play, and it has translated texts
    • Includes E2E tests
  5. A Rust cli for running simulations and do operations

This is WIP, the subprojects will remain v0.x until the project reaches the MVP state

Development

The project main dependencies are Rust and Nodejs. There is a flake.nix file with all the required libraries needed for development, including android, but it requires that you have the Nix package manager installed.

Once you have cloned the repository there are a few things to setup:

  1. Generate the .env files where present by copying the templates
  2. Install the dev dependencies: cd scripts && bash src/main.sh dev_install