The legacy system worked very well as a prototype but severely lacked scalability and security. We ported a lot of Python code to C++ to improve performance and quickly run their data processing pipeline on the edge devices.
We completed the migration process and tested the system extensively to ensure it worked correctly and had no issues. We wrote monitoring software to measure the reliability and availability of the platform and also introduced alerts for any detected faults. Transferring the processing to the edge devices allowed for improved security and reduced bandwidth and cloud costs, which the client initially wanted.
After that, the project expanded to rebuilding the application to enhance security and privacy while migrating the existing desktop application. Our team used the old [Qt] desktop application for design inspiration as we migrated the functionality to a new [Electron.js] application. The choice of using Electron.js worked well as a customer later asked for a web-based desktop application version.
We added end-to-end encryption and digital signature verification to prevent external and third-party access to sensitive data and information. We also set up role-based access control so that the decryption and accessibility of the data are limited to predefined roles granted to users. By doing so, we enhanced the security measures and privacy compared to the original application.