We did extensive market research on readily available solutions, but none of them could meet all our requirements and are very limited in terms of expendability.
Moreover, we needed finer controls over the system and what goes into it. It also needed to integrate well with our existing set of microservices and should have room to add new features in the future. All this led to the development of a queue management system of our own.
While planning the project, one of our goals was to make it adaptable to future projects that may need similar features. So to eliminate any possible future hassles, we decided to make it as a microservice that can be used in a plug-and-play fashion.
Keeping the target audience, the app design process was carried out. We went through some simple surveys to get experience to improve the user experience.
While planning the prototyping, we prepare documentation and UI/UX design with the project requirements and user specifications to create a test plan.
After compiling the available data, we created wireframes for each screen, which allowed us to test particular UI elements and interactions inside a screen or across numerous screens and understand the look and feel of the app.
For the backend we chose Express, a Node.js based web application framework, mainly because of its simplicity, and we wanted something that is less complex for this particular project.
For the bidirectional event-based real-time communication we would rely on web sockets, and we chose Socket IO library, due to its ability to fail over to other protocols when web sockets are not supported, automatic reconnection, proxy and load balancer support and most importantly the broadcast support.
This avoided so much boilerplate code, and it also integrated seamlessly with the Express server. MongoDB is used to store user and configuration data, as well as queue logs. For actual management of the queue, we used a combination of Redis Hash and Sorted Set with Lua scripts to run many queries in transaction.
For the front-end, we went with Flutter for its cross-platform support, and it also integrated well without socket IO backend. We found it perfect to use the Picture-in-Picture feature to show the queue status if the user wants to use another application.
This would enhance the user experience because the user does not need to be locked on to a single screen to know the current queue status.
We also added various configuration parameters to control the queue which could prioritize the user’s position in the queue based on their token number, whether they missed their turn or not, whether they are a late-joiner, etc.
The front-office admin is provided with two controls, one to go to the next user and one to skip the current user, which will result in moving the user down based on the queue configuration. This service, paired with booking and video call microservices, pretty much covered the core features of the project we were developing..
Are you ready to collaborate, develop, and grow? Get our team on deck today! Write your vision for the project, and we will get back to you soon with a reply.
Tequerist Infotech Private Limited
6/858-m, 2nd Floor, Valamkothil Towers
Thrikkakara P O, Kakkanad, Ernakulum
Kerala, India, 682021
Copyright ©2023. All right reserved.