1. Home
  2. /
  3. Projects
  4. /
  5. Corporate Messenger Development
Integra Sources home button.

GET IN TOUCH

Corporate Messenger Development

Custom software development Desktop app development macOS app development Windows app development

Background 

Today, instant messengers and various applications for voice and video calls are used both for private conversations and for communication within organizations. However, few off-the-shelf solutions can meet the needs of large enterprises. Many of them do not have enough capacity to support a significant number of active users or provide the required level of reliability. Hence the demand for custom solutions of this type.

Corporate Messenger Development - Integra Sources case

Request

A large company contacted Integra Sources and asked us to develop a corporate messenger with standard functionality for such solutions and capable of supporting at least 10,000 active users. The client asked the team to pay special attention to the system’s performance.

Solution

Client application development

With the help of the Qt framework and its tools, we created a cross-platform C++ client application compatible with Windows and macOS. The application is responsible for direct interaction with the user and exchanging messages with the server.

A screenshot of the main screen of the corporate messenger client application.

On the left side of the screen, users can see channels, as well as personal and group chats. Chats can be pinned to the list, so that their position does not shift, or marked as favorites. At the top of the screen, users can switch between favorites, others, and all chats and channels. The panel on the left allows you to check notifications, perform search, add contacts, create group chats, channels, and sort icons.

The top of the chat screen displays the photo and the name of the contact (person, group chat, or channel). You can also see the list of participants there.

A screenshot of the profile settings menu in a corporate messenger.

By clicking on their own icon, users can go to the profile menu that allows them to set up their status, view the profile ID, specify their email address, date of birth, and language, change settings, and share their contact with other contacts.

A screenshot of a contact's profile in a corporate messenger.

By clicking on the photo of a contact, you can see the person’s profile. It displays the profile’s ID, email address, and date of birth. In this menu, you can also view the media files you and the person have exchanged, share the contact with others, and block or delete it.

Server application development

The server app is responsible for the main functionality of the system – receiving, forwarding, and queuing messages, identifying recipients, etc. It contains the software, frameworks, and databases necessary for the operation of the client application.

For communication between the client and server applications, the team used the WebSocket protocol, which is a standard way to increase the performance of a system. WebSocket provides bidirectional data flow between the client and the server and, unlike HTTP, does not require the client to poll the server every second.

As part of this task, we also created:

  • A Rest API responsible for additional functionality of the client application: user authorization, profile customization, etc.
  • Data storage for messages and profiles based on the MongoDB database.
  • Dedicated file storage for media files.

Result

The corporate messenger developed by Integra team is capable of supporting more than 10,000 active users and processing up to 200 messages per second. We have created a client and a server application, a Rest API responsible for user authorization, profile customization, and other functions, as well as data storage for messages and profiles based on the MongoDB database.

The functionality of the solution includes the following features:

  • User registration and authorization;
  • Instant messages;
  • Voice and video calls;
  • Group chats;
  • End-to-end encryption;
  • Sharing media files;
  • Search by contacts, messages, and attachments.

Active Users

10,000

Messages per sec.

200