Join the discord for development related discussions: https://discord.gg/XscXXNw
- Clone repository (
git clone https://github.com/Senryoku/Draftmancer.git) - Open repository (
cd Draftmancer) - Execute
npm installto install dependencies. - Execute
npm run buildto build the server using typescript and the client using webpack (for production). - Execute
npm startto start the server (which also serves the webapp). - Navigate to
http://localhost:3000/
-
Running
npm run start-devinstead ofnpm startwill restart the node server on any changes. (Install nodemon globally withnpm install nodemon -g) -
Use
npm run build-client-devto watch for changes in the client js code and automatically re-build it. -
Use
npm run build-server-devto watch for changes in the server typescript code and automatically re-build it. -
Setting the environment variable
DISABLE_PERSISTENCEtoTRUE(one can use a.envfile for development) will disable retrieving/saving the states of Connections/Sessions between server execution from disk (seesrc/Persistence.ts).
npm testruns all tests in thetestfolder (non recursive). This is the command run by GitHub actions on each commit.npm run manualtestruns tests from thetest/manualfolder, it contains additional (and long) statistical tests. These are not included in the automatic test suite.npm run fronttestruns tests from thetest/frontendfolder, it contains additional end-to-end tests, including the client. These are not included in the automatic test suite.
Add -bail (e.g. npm run test-bail) to stop on the first error.
- Splits Cards (Ravnica) needs both card names, e.g. Discovery // Dispersal
- Adventures (ELD) and Dual Faces (IXL) need only one.
- AKR Splits Cards uses triple forward slashes (///) instead of double.
See cubeformat.html
- Card data and images provided by Scryfall
- Data used for automatic collation from https://github.com/taw/magic-sealed-data ; Used https://www.lethe.xyz/mtg/collation/ as reference for manual implementations.
- Can use bots from CubeCobra