Progress, technical solution of the project
Solving the business problem has been an exciting challenge for our team. The complex pricing algorithms used in the system need to account for subject-specific nuances and iterate over thousands of various bids within seconds.
Getting the quote for a saddle stitch service for example requires the system to filter the best bids from 51 888 combinations within seconds.
The development process started from the core of the system – the pricing module. We built a quotation engine which can find the printing solution with optimal bid out of all the potential printing houses and their machinery to reach the desired outcome. To determine the optimal quotes for customer’s needs, the algorithm experiments with various materials, measures, fiber direction and other technical specifications for known machinery. The calculation takes place asynchronously. With each new change to the specifications, the system determines new optimal quotes within seconds.
The user interface is built as SPA (single-page application), which makes it flexible and powerful. This enabled us to build a worksheet with dynamic printing stages and edit them with relative ease. Furthermore, the pricing calculations are displayed real-time, which was also easily implementable thanks to SPA.
Test-driven development (TDD), Domain-driven design (DDD), SOLID principles and event sourcing were used to build the entire solution.