Videojet Portal is a software management system used by clients around the world. It provides ability to buy/install/upgrade applications for industrial printers, upgrade printer firmware, update industrial printer configurations etc . It is a huge, rapidly evolving system with lots of functionality and flexibility requirements. To meet the client’s requirements we had to: implement a web application which automates software management, including applications and firmware installation/upgrades, app purchasing, licensing; create real time dashboard for tracking printers’ current configuration in terms of available software and firmware updates; implement a license generation mechanism for generating app licenses via Customer Dashboard UI; integrate e-commerce system for purchases; create functionality for bulk download of WFM and Firmware packages; build API for creating wireless connection between printers and the Portal; create a flexible user permission set up mechanism; create localization functionality with the possibility to manage translations on the portal; create portal-internal extended logging system for analyzing processes on the Portal including any user action perfomed; develop an advanced reporting system to obtain insight into current customers as well as printers and applications they own.
The decision was made to use Symfony framework for backend and Vue.js for frontend. Printers and desktop application integration was made possible through REST API. Sylius and Payum systems have been set up for e-commerce. Git was used for version control. Quality control was performed by using code linting tools, behavioral tests, code review and Continuous Integration system. For robustness and performance of the system during executing high resources consuming tasks we used queues and workers (for example, to implement bulk downloads). Monitoring and log collection/analyzing tools were utilized to make the task of tracking user actions easier. Localization was implemented using the Lexik Translation bundle that we significantly customized to meet client's specific requirements.