Queue Management System

Frontend

Backend

Database

01

There are many businesses that deal with long queues such as consulting services and managing it can become a hassle for the front-office. The users would also get impatient over a longer waiting period, and this could heavily affect the user experience.

The queue management system is developed to solve this exact problem for a project that demands a real-time queue with finer controls to manage it. It is a flexible virtual queue system that can be used against appointment scheduling for various consulting services.

02

Goals Set for Us

  • The main goal is to make the system as portable as possible to adapt it to different projects that share similar requirements with little to no effort.
  • Let the users can share files and send messages Instantly.
  • Group creations can be possible and within the groups, a video conference can also be done.
  • Providing users with some commands to perform quick actions like deleting a contact/chats, making a call voice/video call, etc.
  • One-to-one & group video Calling should be possible.
  • Clean and modern UI.

Our Roles

Competitive Research

Project Planning

UX/UI Research

UI Design

Prototyping

Development

03

Our Approach

  • Collect information on already available products/services.
  • Planning the project and choosing the most suitable frameworks / packages that could facilitate the required features/functionalities.
  • System analysis is followed by functional analysis.
  • Gather and analyze UX data.
  • Design a UI prototype based on the UX deliverables.
  • Development & Testing

Project in Detail

Overview

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.

Prototyping

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.

Usability testing

Next we went through the usability testing to get the user feedback. We shared the hi frame to a few users and collected their experience. This stage helped us to uncover opportunities to improve overall user experience. We approved the design with our client and got down to development.

Backend

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.

Front-End

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..

A modern and intuitive Flutter application for both admins and end-users.

This service, paired with booking and video call microservices, pretty much covered the core features of the project we were developing.

  • A microservice that can effectively manage a virtual queue and can be adapted to various projects with very minimal effort.
  • Picture-in-Picture (PiP) view to let the users know about the queue status without being in their way and enabling multitasking possible.
  • Automatic check-in and waiting process, tracks user online status, manages late joiners and effectively manages the queue even if the user goes offline.
  • A backend which is robust and reliable running an Express Server with MongoDB and Redis as databases.

Let’s Talk!

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

Tequerist Infotech Private Limited
6/858-m, 2nd Floor, Valamkothil Towers
Thrikkakara P O, Kakkanad, Ernakulum
Kerala, India, 682021

GST: 32AAICT3607M1Z8
CIN: U72900KL2021PTC066988

Copyright ©2023. All right reserved.