A single-page application (realized ) based on AngularJS and node.js which calculates and displays how different parameters have an influence to the trajectory of a bullet. A user can create several profiles, with different settings, scopes, rifles and conditions like temperature or height above sea level. The profiles can be compared visually, locked for modification and shared via an unique url.
The project is build on top of the MEAN-Stack:
- MongoDB – Stores the product specific calculation settings and the user sessions.
- Express – Creates the REST-API for the calculations and profile management.
- AngularJS – The front-end logic.
- Node.js – The platform for the back-end architecture.
As the webapp should be usable offline, there is a node-webkit version, based on the same code, which can be packaged and deployed to the users.
The user can select a bullet from predefined factory settings and/or enter custom data to create a profile. A session is then generated and stored on the server. All the calculations are done on the server-side, as these are private and the routines and algorithms should not be visible to the public. Results and graphs are shown and updated nearly live in the browser after each profile change.
Visualization of the riflescope and trajectory are done via D3.js and dynamic SVG diagrams.