An online Marvel Champions: The Card Game. The engine and API are Haskell (src/,
app/), the client is Vue (frontend/).
With postgres running locally and GHC 9.14 / stack on the path:
./dev.up
builds and watches the API, restarting it on each rebuild, and starts the client once
the API answers. Tests: stack test.
tools/generate-cards.pyrebuildsfrontend/public/data/cards.jsonfrom MarvelCDB.tools/import-images.pyturns the HD scans (MarvelHD.zip, not in the repo) intofrontend/public/images/cards/<code>.avif. The images are not committed. To serve them from elsewhere (an S3 bucket), build the client withVITE_ASSET_HOSTset to its origin; it reads<host>/images/cards/<code>.avif.
docs/rules/ holds the Rules Reference and Learn to Play as markdown.
docker compose up
then open http://localhost:3000. The client image carries the card images it was built with.