drft
dr4ft is a NodeJS based web-application that simulates draft and sealed format between players and/or bots. Most of MTG sets are playable thanks to MTGJson support. We follow as much as possible the rules that determine how a real booster is created.
The application provides the following features:
dr4ft is written in ES6 and transpiled with Webpack and Babel, and uses React on the client-side. The application uses SocketIO and the Websocket technology between client and server.
dr4ft is a fork of arxanas' drafts.ninja
fork of aeosynth's draft
project:
draft
(initial project, discontinued)
↳ drafts.ninja
(fork, discontinued)
↳ dr4ft
(fork, current main project)
It supports all their features, and many more.
1) Install Node.js >= 16.0.0. Alternatively, install nvm and then run nvm use
in this repo, which will install the correct Node version for this repo as defined in the .nvmrc
file.
2) Run
$ npm ci
$ npm run build
$ npm start
3) Visit http://localhost:1337
You can also create a Docker image and run the app in a container:
1) Install Docker
2) Build the image:
docker build -t dr4ft-app .
3) Run it in a container:
docker run -dp 1337:1337 dr4ft-app
4) Visit http://localhost:1337
npm start
This command start the server
npm run download_allsets
This command downloads all sets from MTGJson and integrates them.
npm run update_database
This command downloads integrates all files previously downloaded from MTGJson.
npm run download_booster_rules
download and parse booster generation rules from magic-sealed-data
You can debug this application by adding the following configuration to your launch.json
:
{
"name": "Launch via NPM",
"type": "node",
"request": "launch",
"cwd": "${workspaceFolder}",
"runtimeExecutable": "npm",
"runtimeArgs": [
"run", "start-debug"
],
"port": 1338
}
You should now be able to set breakpoints in backend/
and hit them when you start the debugger.
This relies on the --inspect-brk=1338
flag to open port 1338 for the debugger to attach to.
Breakpoints for the frontend should be set in your browser console.
❤️ Thank you!
Be a part of this project! You can run the test using the following.
npm ci
npm test
Found bugs or have feature requests? Feel free to open an issue! Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.
The project is unaffiliated with Wizards of the Coast, and is licensed under the MIT license.