Architecture

Concepts

We want to keep playing even in the most extreme conditions, so Ludobox is made to support offline, P2P, unstable networks running on low-end hardware.

Minimum Viable Architecture

We design for a “Minimum Viable Architecture”, that is :

  • hardware requirements should be minimal
  • static files are prefered
  • index and pages can be rebuilt manually
  • ideally, it should run properly on a TP-Link for less than 10euros

Small and cute

We want our app to stay small and cute, that is :

  • well-written, in a way that is pleasant to read
  • as small as possible, so we can now all its parts and move fast
  • fun to use and fun to develop, using technologies and frameworks that we like

Folders

The app is separated in several main components :

folder content tech
/server a JSON api Python/Flask
/frontend single-page application React, ES6
/data the games themselves JSON description and static files
/model the schema describing the contents JSON Schema v4
/bin a bunch of scripts Bash, node
/docs the current doc MkDocs, Markdown

All communications between client and server are made using a REST API