Developing Mineotaur¶
Software used to create Mineotaur¶
Server side:¶
- Programming language: Java 8
- Build system: Apache Maven
- Database: Neo4j
- Web framework: Spring Boot
- Template engine: Thymeleaf
- Test framework: TestNG
- Continous integration tool: Travis CI
- Bytecode manipulation tool: Javassist
- Command line parsing: Apache Commons CLI
- Math package: Apache Commons Math
Client side:¶
- Script and markup languages: Javascript, HTML 5, CSS
- Front-end framework: Twitter Bootstrap
- Visualization: D3
- HTML manipulation: jQuery
- jQuery UI library: jQuery-UI
- jQuery spinner: spin.js
- jQuery blockUI plugin: jquery.blockui.js
- jQuery form plugin: jquery.form.js
- jQuery history plugin: history.js
- jQuery context menu: jeegoocontext
- jQuery modal widget: Magnific Popup
- jQuery multiselect widget: jQuery UI MultiSelect widget
- jQuery modal widget: Magnific Popup
- AMD framework: RequireJS
- General utility collection: Underscore
- Math library: numbers.js
- Regression library: regression.js
- ZLib Javascript library: Pako
Architecture of Mineotaur¶
The Mineotaur web server can be accessed from both a web interface and programatically using REST. The web server handles the interaction with the graph database containing the HT/HCS data.
Server side architecture¶
The web server if based on the Spring Model-View-Controller (MVC), using Thymeleaf as a template engine. The data is stored in the Neo4j graph database. A web client can access the content by making an HTTP request to the server, which will query the appropriate data from the database and render a web page from a Thymeleaf template.
Client side architecture¶
On the client side, all interaction is done using a Javascript application. The application is modular, with different modules responsinble to handle events (Controller), carry data values (Context), manipulate web pages (UI), generate plots (Plot) and provide general functionalities (Utilities).