Real-Time Messaging Microservice (Chat + PTT) for an existing app

Real-Time Messaging Microservice (Chat + PTT) for an existing app

Real-Time Messaging Microservice (Chat + PTT) for an existing app

Upwork

Upwork

Remote

9 hours ago

No application

About

We are developing and maintaining a mobile emergency dispatch application used by Search and Rescue (SAR) teams. The app allows dispatchers to send mission alerts, track responders via GPS, and manage their ETA. We are now looking to integrate a self-hosted real-time communication microservice, including text-based group chat and Push-to-Talk (PTT) voice functionality. The solution must use open-source technologies only, fully self-hosted on our local infrastructure (Proxmox / Docker environment), with no recurring licensing or cloud service fees. The system must prioritize stability, responsiveness, and reliability under weak or variable mobile network conditions. Scope of Work: 1. Real-Time Chat Text messaging with delivery/read status Group channels by unit or active dispatch Mentions and message replies Offline message queue with auto resend 2. Push-to-Talk (PTT) Audio LiveKit or WebRTC integration for low-latency voice streaming Push-to-Talk button with visual “who’s speaking” indicator Private and group voice channels Optional short audio playback history 3. Attachments and Location Send photos, documents, and GPS coordinates Quick “Share My Location” button 4. Notifications and Urgency Levels The application already uses Firebase Cloud Messaging (FCM) for push notifications and Twilio for sending SMS alerts when data connectivity is unavailable. Developers must continue using these existing systems: FCM for all push notifications (chat messages, PTT activity, dispatch updates). Twilio for SMS alerts only (no push or in-app notifications through Twilio). No additional paid or third-party notification services (such as Twilio Notify, OneSignal, or AWS SNS) should be used. The notification system must provide: Real-time alerts for new chat messages, PTT requests, and dispatch updates. Custom tones and vibration patterns for: Non-urgent Urgent Critical Mayday Visual indicators inside the chat (color-coded badges or banners) to reflect urgency. Offline queueing support — if the device is disconnected, the notification must appear immediately once it reconnects. Optionally, a local WebSocket or MQTT gateway may be implemented for in-app real-time updates to complement FCM push delivery. 5. Security and Integration Full integration with existing MongoDB collections (dispatches, users, units, zones) Secure logging and message retention for post-incident review 6. User Interface (UI/UX) Dark theme optimized for field use and night operations Large circular PTT button for ease of use with gloves Smooth, responsive animations Deliverables: Flutter mobile client (Android & iOS) Backend (Node.js or Python) with WebSocket or LiveKit integration (audio) MongoDB schema and integration with existing database Docker deployment files and installation documentation API documentation and setup guide Technical Stack (preferred) Flutter (Dart) Node.js / Express or Python (FastAPI) MongoDB LiveKit or WebRTC (open-source, self-hosted) Docker Firebase Cloud Messaging (existing integration) Twilio (SMS alerts only) Requirements: All components must be open-source and self-hosted locally No paid SaaS or cloud-based dependencies (other than FCM) Full source code and installation documentation required Delivery Schedule: The target completion date for this project is March 2026. Minor extensions may be considered based on milestone progress and mutual agreement.