This project is a web based ship builder and campaign tracker for the "Heroes of the Aturi Cluster" campaign for the x-wing miniatures game. The concept was originally built to help my campaign players understand all the options for upgrading their ships in one place. It provides a web based interface to spend Xp on upgrades and track XP throughout your pilots time in the campaign. Ship builds can be shared via unique URLs.
A live version can be found at: http://hotac-ship-builder.netlify.com
The project is written entirely in javascript and html. Styling is generated using the Sass preprocessor.
Thsi project owes many thanks to two x-wing projects without which, this would have not been possible:
- Bugfix pull requests are welcome
- For larger feature changes, please raise an issue first to discuss the approach and possible ideas
- This project makes use of CircleCI for implementing automated testing on branches and pull requests
- Tests must pass before merging to master
- Stylistic rules are provided by sass-lint and eslint, and should be adhered to to pass the tests
- nodeJS 8+
- npm
- Clone the repo
- Run
npm install
in the project root - Run
npx gulp dev
- This will compile the javascript, css and auto-recompile any changes to these via gulp watch
- Gulp will start a local web server on port 8000 which can be accessed at http://localhost:8000
- The gulp server has liverelaod enabled, so chnages to html, js or css will automatically be refreshed
- Run
npx run gulp
to create a deployable folder in the\app
directory which can be copied to any web server - The master branch of the original repo is automatically deployed to netlify
app/
- Contains
index.html
which is the main entry point - Also contains a static
images/
folder. Everything else in here is automatically compiled by gulp - The project uses CDN versions of material lite js/css framework, the featherlight library, and
- Contains
js-src/
- Contains the javascript source.- This uses
main.js
as the entry point and is compiled to a single JS file in the app using browserify - Javascript uses only jQuery and lodash libraries and implements a loose coupling between "models" and "views" via
controllers/page.js
- This uses
node/
- Contains node.js modules for use by the gulp taskssass/
- Contains the project sass.main.sass
is the entry point, which includes the other sass files.