No description
  • Vue 43.3%
  • Go 41.7%
  • TypeScript 12%
  • CSS 2.2%
  • Dockerfile 0.4%
  • Other 0.4%
Find a file
NhProGamer 9cf77af943 docs(serena): capture public votes + abstain + short-timer patterns
Document the four commits (124515a / 2cbda8b / c4cfc7c / d31e597) and
flag two reusable patterns for future contributors: the AllowAbstain
UISchema flag (any vote view can opt in) and the 'short timer on
quorum' actor mechanism (any phase with a strict quorum + need for a
reaction window can join shortQuorumPhases).

Also document the AbstainValue = "abstain" sentinel as a shared
convention — tally functions are responsible for skipping it, not
writers.
2026-06-21 18:21:42 +02:00
.serena docs(serena): capture public votes + abstain + short-timer patterns 2026-06-21 18:21:42 +02:00
backend feat(votes): shorten timer to 20s once everyone has voted or abstained 2026-06-21 18:21:05 +02:00
frontend feat(votes): explicit abstain on day vote, mayor election and tiebreak 2026-06-21 18:20:17 +02:00
.env.example feat(frontend): playable game UI + backend dev auth (HS256) 2026-06-13 11:49:58 +02:00
.gitignore chore: scaffold monorepo (backend Go + frontend Vue 3) 2026-06-13 10:27:07 +02:00
docker-compose.yml fix(compose): relabel frontend bind mounts for SELinux/Podman 2026-06-15 09:19:09 +02:00
LICENSE chore: scaffold monorepo (backend Go + frontend Vue 3) 2026-06-13 10:27:07 +02:00
README.md chore: scaffold monorepo (backend Go + frontend Vue 3) 2026-06-13 10:27:07 +02:00

shamus

Jeu du Loup-Garou en ligne, multijoueur et temps réel.

Stack

  • Backend : Go + Gin + coder/websocket
  • Persistance : PostgreSQL via sqlc + migrations goose
  • Messaging inter-instances : NATS (multi-instance, à venir)
  • Auth : OIDC (IAM externe — Keycloak / Authentik / Zitadel au choix)
  • Frontend : Vue 3 + Vite + TypeScript + Tailwind v4 + shadcn-vue
  • Orchestration dev : Docker Compose

Structure du dépôt

shamus/
├── backend/          # Service Go (HTTP + WebSocket + logique de jeu)
├── frontend/         # SPA Vue 3
├── docker-compose.yml
└── .env.example

Voir backend/README.md et frontend/README.md pour les détails de chaque sous-projet (à venir).

Démarrage rapide

cp .env.example .env
docker compose up -d postgres nats
# Backend
cd backend && make dev
# Frontend (autre terminal)
cd frontend && pnpm install && pnpm dev

Ou tout en Docker :

docker compose up --build

Frontend : http://localhost:5173 — Backend : http://localhost:8080

Scope du MVP

  • Rôles classiques : villageois, loups-garous, voyante, sorcière, chasseur, cupidon
  • Salons privés avec code de partage
  • Chat textuel en jeu (public village + privé loups la nuit)

Licence

AGPL-3.0