
# Toolset

Some of the tools used during JsBattle Development

## Libraries

Tool                                                  | Description
------------------------------------------------------|-----------------------------------------
[PixiJS](http://www.pixijs.com/)                      | HTML5 Rendering engine
[CodeMirror](https://codemirror.net/)                 | Source codes editor
[React](https://facebook.github.io/react/)            | User Interface library used to build components of the web page
[Bootstrap](http://getbootstrap.com/)                 | HTML and CSS framework used to build the web page
[jQuery](https://jquery.com/)                         | Minor usage, mostly as Bootstrap dependency. The website is based rather on React.
[Font Awesome](http://fontawesome.io/)                | Icons for user interface
[SatJS](https://github.com/jriecken/sat-js)           | Collision detection library
[Express](https://expressjs.com/)                     | Node.js web application framework
[Puppeteer](https://github.com/GoogleChrome/puppeteer)| Headless Chromium used to play battles on server side
[yargs](http://yargs.js.org/)                         | Interactive command line library
[Moleculer](https://moleculer.services/)              | Progressive microservices framework


## Build and Development

Tool                                                 | Description
-----------------------------------------------------|-----------------------------------------
[NPM](https://www.npmjs.com/)                        | Package manager
[Weback](https://webpack.github.io/)                 | Module bundler
[BabelJs](https://babeljs.io/)                       | Converts ES6 to most web browsers compliant code
[JSDocs](http://usejsdoc.org/)                       |  API documentation generator
[PlantUML](http://plantuml.com/)                     | Generates UML diagrams from text
[Ansible](https://www.ansible.com/)                  | Provisioning scripts
[Lerna](https://github.com/lerna/lerna)              | Monorepo management tool


## Tests and code validation

Tool                                                  | Description
------------------------------------------------------|-----------------------------------------
[Puppeteer](https://github.com/GoogleChrome/puppeteer)| Headless Chromium used to run functional tests in it
[Mocha](https://mochajs.org/)                         | Unit Tests Framework
[Jest](https://jestjs.io/)                            | Unit Tests Framework
[SinonJS](http://sinonjs.org/)                        | Test spies, stubs and mocks for unit tests
[JSHint](http://jshint.com/)                          | JavaScript code validation
[ESLint](https://eslint.org/)                         | JavaScript code validation (better ES6 support)
