Tabulous is online table-top game platform: see it on tabulous.fr.
Meet your friends online to play your favorite games!
Once authenticated, you'll have access to the catalog (Chess, Klondike, Draughts...), and you can start new games.
The game 3D engine lets you handle cards, dice, pawns, tokens, boards... as you would do in real life.
Each game comes with a rule book, but the rules are not enforced, and you are free to apply yours.
To player with other people, you will first have to request friendship with them (or accept their requests), and invite them from your friend list.
Tabulous is built in Javascript with Sveltekit, Babylon.js, Rx.js, Fastify and Redis. It uses GraphQL and WebRTC.
[Work in Progress]
You need git, Node.js 20, PNPM and Redis
-
Checkout the code:
git clone [email protected]:feugy/tabulous.git cd tabulous
-
Fetch dependencies:
fnm pnpm i
-
Then, run in dev or production mode.
-
Creates
apps/web/.env
file with the following content:# WEB_USE_GITHUB_PROVIDER=true # WEB_USE_GOOGLE_PROVIDER=true WEB_GRAPHQL_URL=http://localhost:3001/graphql WEB_GAME_ASSETS_URL=http://localhost:3001/games WEB_AUTH_URL=http://localhost:3001/auth
-
Creates
apps/server/.env
file with the following content:TURN_SECRET=abcd1234
-
Start in watch mode (both server and client):
pnpm start
-
Your favorite browser should open and display a warning about self-signed SSL certificate. Bypass it, and start developping.
The entire unit test suite (all projects) runs with pnpm t
/pnpm test
.
Run a given project unit test suite with pnpm test:FOLDER_NAME
(pnpm test:web
, pnpm test:server
...).
Run a given project watch mode with pnpm dev:FOLDER_NAME
(pnpm dev:web
, pnpm dev:server
...).
Run a single test file with pnpm --filter FOLDER_NAME test/dev FILE_NAME
(pnpm --filter web dev 3d/engine
, pnpm --filter server test players-resolver
...).
All the magic happens during continuous integration/deployment:
- Merge or push some code on
main
branch: - Continuous Integration workflow kicks in, running linter, formatter and tests
- If it succeeds, Continuous Deployment workflow starts, build the client and server applications, packaging and uploading them to the VPS, then restarting services.