Intellogate_featured

AltexSoft & Intellogate: Designing Scalable Microservices Ecosystem for Self-Service Payment Terminals

Business domain
Finance
Technology
CloudJSUI/UX

Background

Intellogate is a Ukrainian holding group that provides international R&D services, operating in such segments as banking, transportation, retail, and healthcare. The company specializes in designing hardware products and embedded software for them.

Intellogate engaged AltexSoft to devise and build a software ecosystem for cash acceptor kiosks. The use cases for these products range from self-service banking and payments to coffee machines and fully-automated gas stations.

Challenges

Intellogate tech representatives had a firm vision of how the software ecosystem had to match their existing hardware products and two main distribution models. The entire ecosystem had to be ready 1) for deployment on the client’s side and 2) to be used remotely from Intellogate servers. AltexSoft’s role was to deliver a product that would complement both models. The project entailed:

UI/UX design for kiosk interface and admin panel

Kiosk front- and back-end engineering

Linux operating system customization on kiosks

Implementing flexible server-side architecture

Value Delivered

Precise UX for rapid user onboarding

AltexSoft’s UX team has designed interfaces both for kiosks and admin panels. We created comprehensive dashboards for administrators that allow for tracking payments, managing service providers, and accounting for transactions. The kiosk UX is aimed at rapid onboarding and is fully intuitive, which is especially critical for self-service interfaces.

Cross-platform flexibility of the kiosk software achieved with JavaScript

The engineering team decided to leverage Electron, a cross-platform framework by GitHub that is used for writing desktop applications with web tools. Electron suggests Node.js as a back-end environment and JavaScript for the presentation layer rendered in the Chromium browser. The application controls internal kiosk functionality and connects the front-end, a receipt printer, and a cash acceptor. While the application is deployed on Ubuntu (a Linux distributive) the cross-platform solution lays the groundwork to further adjust the application for any underlying hardware, like tablet computers or other terminals, without much effort.

Customized Linux OS for security purposes

The work entailed writing a set of scripts that customize a standard Ubuntu behavior. This was needed to disable splash screens and window functions that would allow users to access the operating system right from the kiosk. As a result, the Electron-based application runs from the startup providing access to payment options only.

Microservice architecture enabling customization and scalability

The server-side architecture is built as Node.js microservices, decoupled modules with narrow tasks. This enables easy functionality scaling and customization for various industries. Microservices can be connected with the kiosk application, the web admin panel, and service providers (e.g. banks, mobile carriers) via REST APIs. Additionally, the server core supports setting payments without service provider connection. This type of deployment can be used by organizations that accept direct payments (e.g. hospitals).

Approach and Technical Info

The project was handled within the fixed-cost engagement model. The team consisted of a software architect, two full-stack JavaScript engineers, back-end, and front-end engineers, two quality assurance specialists, two UX specialists, and a project manager.

The technology stack included the Electron framework, Node.js, Vue.js, Ubuntu OS.

The duration of the project was about 8 months with the total scope of work done in about 4 man-years.

Services provided within the project framework: UX/UI Consulting.

CloudJSUI/UX