13 May · 1 min read
Challenge: To develop a fully functional instant-messaging system, including architecture, design, server, frontend, and mobile solution
Solution: Designed from scratch, originally cloud-native approach (Amazon AWS) and architectured as a scalable solution
User Group: Mobile Users
1) Fully functional instant-messaging system, including architecture, design, server, frontend, and mobile solution. The project was implemented as a part of a joint venture with Silicon Walley startup and is currently being promoted to Google Play/AppStore. The target for this B2B solution is small to medium businesses with the goal to replace outdated communication channels, so the idea could be extrapolated to a “virtual office”. According to NDA, the client's name cannot be provided.
The system was designed from scratch, originally a cloud-native approach (Amazon AWS), and architectured as a scalable solution initially. Database design, microservice architecture, clients API, and clients themselves (native apps for iOS & Android) along with Web client (within web-to-desktop solution also used as a Windows client) were fully realized by the team of 10 engineers during 1 year.
The main feature set is:
- instant, cross-platform, and multi-instance messaging
- group chats/channels of communication
- direct audio/video calls
- conference audio/video calls with recording
- all communication (both – text and audio/video) are recorded automatically, automatically sorted, and could be used for structured search later. Transcoding of voice/video communication is automatic and supports more than a dozen most popular languages
- administrative controls of data flow and user management inside workgroup (company)
The development process was designed to support a high rate of automation including code building, client API generation, verification, deployment and upgrade. All codebase is covered by unit and functional tests to achieve an easy sustaining process.
The server-side solution is fully implemented on Kotlin language, native mobile clients (Kotlin & Swift), and React for web solution. RTC communication is mostly supported by WebRTC with a number of enhancements from the server-side.