The project was developed as a single page application on the basis of the Backbone.js library.
A resilient API was written and well documented along with a sandbox (for testing API methods) to facilitate communication of the client side with the server side.
The application is multilingual, each languages JS code is compiled in modules that are placed into one file that in turn caches with each client. This approach increases download speeds for returning visitors.
A custom library was written to satisfy the client's’ need for a financial chart builder.
Establish a connection to a high-speed feed of financial data. For the most effective use of the servers’ resources a multi-stream script for data processing with caching has been written on Python.
In order to output the data for each time frame a separate stream is created through the web socket, so every new visitor is connected to one of these existing channels instead of creating a new one.
Two databases: PostgreSQL and MongoDB. Most of the financial logic is processed as procedures in the PostgreSQL server. All procedures were tested in unit testing. MongoDB is used as a storage server of activity, analysis and statistical data of every user's activity.
Data exchange between the client and the server is carried out through the web-socket, as it is the most productive method of working with constant data streams.
Load testing was carried out with the help of Jmeter. Performance and bottlenecks were checked and identified with NewRelic.
The whole project was covered by Behat auto tests. Selenium was used for the client-side.