A high-performance, real-time messaging application built with Flutter, featuring a modern UI/UX inspired by WeChat and powered by a robust Firebase backend.
| Login | Sign Up |
|---|---|
![]() |
![]() |
| All Chats | Active Conversation |
|---|---|
![]() |
![]() |
| Discover & Search | User Profile |
|---|---|
![]() |
![]() |
- Authentication & User Management:
- Secure Google Sign-In and Email/Password authentication.
- Real-time user search with Recent Searches and Suggested People functionality.
- Real-time presence tracking (Online/Last Seen status).
- Advanced Messaging System:
- Real-time Chat: Instant messaging powered by Firestore streams.
- Media Support: Send/receive images and videos with automatic thumbnail generation.
- Offline Support: Send messages while offline; they auto-sync once a connection is restored.
- Message Management: WhatsApp-style "Delete for Me" and "Delete for Everyone" functionality.
- Read Receipts: Real-time status indicators (Pending, Sent, Delivered, Read).
- Push Notifications: * Instant alerts for new messages using **Firebase Cloud Messaging (FCM) **.
- Performance & Sync:
- Hybrid storage: Uses Hive for ultra-fast local caching and Firestore for cloud sync.
- Seamless pagination and deduplication logic for smooth scrolling.
| Layer | Technology |
|---|---|
| Frontend | Flutter (Dart) |
| State Management | GetX (Reactive State & Dependency Injection) |
| Backend / Database | Firebase (Firestore, Auth, Storage, FCM) |
| Local Database | Hive (NoSQL local caching) |
| Environment | Flutter Dotenv (Secure Config Management) |
| Media Handling | Video Thumbnail, Cached Network Image |
-
Clone the Repository:
git clone [https://github.com/yourusername/wechat_flutter.git](https://github.com/yourusername/wechat_flutter.git)
-
Environment Variables: Create a
.envfile in the root directory and add your Client IDs:GOOGLE_CLIENT_ID=your_id_here GOOGLE_SERVER_CLIENT_ID=your_id_here
-
Firebase Configuration:
- Place
google-services.jsoninandroid/app/. - Place
GoogleService-Info.plistinios/Runner/.
- Place
-
Install Dependencies:
flutter pub get
-
Generate Local Database Adapters:
flutter pub run build_runner build --delete-conflicting-outputs
-
Run the Project:
flutter run





