WA Clone is a full-stack, cross-platform chat application built using Flutter and Firebase, mimicking the core functionalities of WhatsApp with enhancements. The project features real-time 1-on-1 and group messaging, voice/video calling, media sharing, user status updates(story), and secure authentication. Designed with, modular folder structure, and state management using Riverpod. Interactive UI with modern components
Frontend: Flutter
Backend & Services:
Firebase (Firestore, Auth, Storage)
Zego (Voice/Video Calls, Single and Group)
State Management: Riverpod
Audio/Video & Media:
audioplayers, another_audio_recorder, video_player, image_picker
UI/UX Enhancements:
flutter_screenutil, emoji_picker_flutter, story_view, cached_network_image
Permissions & Contacts:
permission_handler, flutter_contacts, country_picker
🔐 Authentication
Phone number login and OTP verification
Google Sign-In (extendable)
Firebase Auth integration
💬 Messaging
Real-time text messaging using Firestore streams
File sharing (images, documents)
GIF messaging via Giphy
Seen status and message reply preview
Group chat support
Send Image, Video Messages
🎙️ Media and Calls
Voice and video calling using Agora(old) or Zego(latest codes)
Video Call(Single or Group Channel) & Voice Call (Single or Group Channel)
Call history management
🧑🤝🧑 User & Groups
Contact list integration
Group creation and messaging
User profile setup with image uploads
Follows clean modular structure:
features/ – domain-driven folders for auth, chat, call, status(story), etc.
common/ – shared enums, repositories, widgets, and utils
models/ – data models for chat, call, status, user, etc.
config/ – third-party SDK configuration
me/ – internal developer notes and research
Uses a controller–repository pattern for separation of concerns.
Real-time updates using Firestore streams with ref.watch() and StreamBuilder
Riverpod for scalable, testable state management.
Implement Single Responsibility Purpose, Separation of Concerns
Audio recording switchable between different packages for performance tuning
Custom widgets for message cards, reply preview, and media rendering
Optimized image handling using cached_network_image
App Preview
Login using Phone
OTP Verification
List Chats (Group + Personal)
Personal Chat - Video & Image
Personal Chat - GIF Message
Pick GIF
Options
Update Profile
Group Call(Disabled Camera)
Group Call(Front Camera)
Call(Rear Camera)
Single Call(Front Camera)
Users Status/Story
Statuses Of A User
Technical Captures
Video Call
Video Call
Contributed to this project as part of my role at Self Project.
Mar 2023 - Mar 2023