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