The company is an independent IT vendor located in EU turned to Altoros to build a BPM system for thousands of students and teachers. The project is a customizable BPM system for managing educational and executive processes in a Belgian school. As a result of this cooperation:
- The system is successfully used by thousands of students and teachers.
- The school saves tens of thousands of euros on BPM/ERP suites.
- Analysts with no programming background can easily configure the structure of data and relations between entities (courses, students, etc.)
- Data is synchronized with Belgian governmental services and encrypted.
The customer turned to Altoros to develop a Web system for managing educational and executive processes in a Belgian school. The organization already had a legacy Silverlight-based app that lacked flexibility and had poor performance. The system should have been integrated with two governmental services: KBI (which provides access to students’ personal data) and DaVinci (which aggregates data about courses, certification, etc.). In addition, the customer wanted to develop a similar white-label BPM system that would allow for managing abstract entities (e.g., students and courses), processes (triggered tasks), and forms (data inputs/views).
Main challenges In the course of the project, the following challenges were defined:
- Since analysts may set up and change data structure and relations, retrieving, writing, and presenting data can become a non-trivial task. The problem escalates when working with objects connected through indirect relations.
- Most existing BPM systems/tools (e.g., Bonita) do not support service integration and customization of forms in real time. They are limited to a set of simple forms with basic interoperability and are hard to maintain.
- Availability of the system in the offline mode implied proper data synchronization, with changes saved in a queue.
- Dealing with personal data, the system should be highly secure
To enable flexible customization of the system’s engine and eliminate restrictions of existing BPM platforms, our team created two domain-specific languages. One of the languages is responsible for describing a database structure (terms, relations, mapping, callbacks, etc.), while another sets up inputs/views and tasks/processes. Both were written with Jison; the languages are interpreted using a custom CoffeeScript module. To maximize performance, our team enabled caching for dynamic datasets— utilizing IndexedDB. This approach pre-solved latency issues that might occur in the main database (MongoDB) when running a series of subsequent requests to objects with indirect relations. In addition, any changes made by users offline are also stored in IndexedDB and later synced with MongoDB. To ensure proper safety of personal data exchanged with KBI/DaVinci (such as eID card details), our engineers initiated encryption inside IndexedDB.
Altoros has also delivered other additional features:
- Full-text search—including processing attached documents— implemented with Elasticsearch
- Autosaving data in forms (Users can now work with multiple forms at a time and switch between them, putting some processes on hold.)
- Sharing entities between different domains (such as assigning the same courses to different classes)
- Dynamic preview of documents, etc.
The system has been successfully implemented in the Belgian school. Daily, it is used by thousands of students, teachers, and administrative personnel. This customizable solution allows for saving tens of thousands of euros on expensive BPM/ERP suites with excessive functionality. Flexibility of the application enables to easily maintain the system and integrate it with third-party services. It is planned to enable system’s deployment to cloud platforms, such as Microsoft Azure. Furthermore, people with little or no technical background can manage and customize the system, using the declarative languages written by our engineers.
In the end, partnership with Altoros allowed the customer to develop a white-label solution tailored to BPM needs of education, healthcare, finance, insurance, and other industries—thus, creating an additional revenue channel. The customer has built a number of POCs for several organizations.
x86_64 provided server
Client Platform/Application Server
Ubuntu Linux, Nginx, Passenger
Frameworks and tools
Ruby on Rails, AngularJS, Sidekiq, JSON-schema, Jison, Websockets
MongoDB, IndexedDB, Elasticsearch