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 install
to install dependencies. - Execute
npm run build
to build the server using typescript and the client using webpack (for production). - Execute
npm start
to start the server (which also serves the webapp). - Navigate to
http://localhost:3000/
-
Running
npm run start-dev
instead ofnpm start
will restart the node server on any changes. (Install nodemon globally withnpm install nodemon -g
) -
Use
npm run build-client-dev
to watch for changes in the client js code and automatically re-build it. -
Use
npm run build-server-dev
to watch for changes in the server typescript code and automatically re-build it. -
Setting the environment variable
DISABLE_PERSISTENCE
toTRUE
(one can use a.env
file for development) will disable retrieving/saving the states of Connections/Sessions between server execution from disk (seesrc/Persistence.ts
).
npm test
runs all tests in thetest
folder (non recursive). This is the command run by GitHub actions on each commit.npm run manualtest
runs tests from thetest/manual
folder, it contains additional (and long) statistical tests. These are not included in the automatic test suite.npm run fronttest
runs tests from thetest/frontend
folder, 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.
- Bots from https://github.com/CubeArtisan/mtgml