A modern Android application that enables real-time 1-1 and group communication with integrated audio and video calling. Built using scalable architecture and real-time data handling.
- 1-1 and Group Messaging
- Real-time message delivery using Firebase Realtime Database
- Unread message tracking
- Message status handling
- Pin important messages (visible to all members)
- Unpin or replace pinned messages
- Delete messages for everyone
- Local notifications for new messages
- Smart notification handling (anti-spam, avoids duplicates)
- Background message alerts
- Peer-to-peer audio and video calling
- Group calling using mesh architecture
- Dynamic participant join and leave
- Mute, video toggle and speaker controls
- Real-time connection state handling
- Create and manage groups
- Add and remove participants
- Rename groups
- Leave groups
- Removed users retain chat history with read-only access
- Multi-admin support with role-based permissions
- Admin-controlled group description editing
- Permission controls for:
- Editing group info
- Inviting new members
- Tracks calls:
- Completed
- Missed
- Rejected
- Busy
- Displays call duration and type (audio/video)
- Maintained per user with real-time updates
- Built using Jetpack Compose
- Dynamic video grid layout
- Smooth state-driven UI updates
- Media indicators (mute, video off)
- Material 3 design
- MVVM + Clean Architecture
- Separation of concerns
- Kotlin
- Jetpack Compose
- Firebase Realtime Database
- WebRTC
- Coroutines & Flow
- Push Notifications (FCM)
- End-to-End Encryption
- Active speaker detection
- Improved network resilience
Aarav Halvadiya
GitHub: https://github.com/Aarav3325
LinkedIn: https://www.linkedin.com/in/aaravhalvadiya