mechanus Svelte Themes

Mechanus

A project that provides software for local vttrpg, by managing multiple screens/clients/players/dm to help create a ttrpg experience using hardware

Mechanus (WIP)

This project provides software for a local vttrpg / gaming setup, by managing multiple screens/clients/players/dm to help create a ttrpg experience using hardware, allowing a virtual table screen, scenery screens etc.

This project uses server driven UI, where the server written in Go, The screen (or client) side is using Pixi.js for the rendering of the screens. While connectRpc pins down the protocol between server and client. Each screen or client can connect and either login in as a viewer, device, player, or GM and either get their own screen rendered.

This allows the server and thus GM to control a TV screen on the table as battle map. Or TV or PC monitors to display scenery, maps or anything else. Intheory when also music and lightning is integrated, it will allow you to control the entire game room via browser.

Contents

Tech Stack

General tech stack

Tech Usage
Buf The compiler used by connectRPC and proto to generate the necessary object and services
ConnectRPC A collection of libraries and tools to setup grpc communication using proto3
Go The language used for the server stack
Make A tool that can read and execute commands from a file, helping with local development
Nodejs The stack enabling svelte and generation of browser code
Playwright The browser testing suite that powers the clients testing suite and the integration tests
Proto3 The protocol language used to connect the client <-> server
Vscode The IDE that preferred to be used, all debugging and local development are configured around vscode

Client tech stack

Tech Usage
Eslint The linting tool used to check the code quality
Flowbite Component library for svelte
Pixi.js 2D rendering of screen
Prettier The code formatter that is used for all the client side code
Svelte Static site generation for the screen
TailwindCSS The tool that makes css easier for components

Server tech stack

Tech Usage
Charm.sh components Components for TUI applications, styling and logging
GolangCI lint The linting tool used for the server, ensuring code quality
Ginkgo & Gomega The testing framework used for unit and component tests
Cobra The framework used for cli command handling, allowing us to build one binary for all
Viper The library / framework that used to build the configuration handling of the server
Gorm The library or ORM (object relation manager) used to connect golang object to SQL tables
Golang Jwt The library used to make user authentication tokens

TODO Features

Top categories

Loading Svelte Themes