Whale-Chat is a modern, full-featured messaging application built with Flutter and Firebase. It provides a seamless communication experience with real-time messaging, status updates, and robust user authentication.
- Real-time Messaging: Instant text and image sharing with emoji support.
- Status Stories: Share image or text-based statuses that disappear after 24 hours.
- Smart Notifications: Real-time push notifications for messages and updates using Firebase Cloud Messaging.
- User Search: Easily find and connect with other users within the app.
- Secure Authentication: Complete auth flow including Signup, Login, Password Reset, and Email Verification.
- Cloud-Powered Backend: Utilizes Firebase Cloud Functions for secure server-side logic and data integrity.
- Frontend: Flutter (Dart)
- Backend: Firebase
- Authentication: Firebase Auth
- Database: Cloud Firestore
- Storage: Firebase Storage (for media)
- Server-side Logic: Cloud Functions for Firebase
- Messaging: Firebase Cloud Messaging (FCM)
- Architecture: MVVM (Model-View-ViewModel) with the Repository pattern for clean code separation.
- State Management: Provider / ChangeNotifier.
lib/
├── data/ # Repositories, Models, and Services
├── view/ # Screens and UI Components
│ └── app/screens # Modular feature screens (Chat, Status, Search, etc.)
├── view_model/ # Business logic and UI state (ChangeNotifiers)
└── theme/ # Custom styling and color schemes
functions/ # Node.js Cloud Functions source code
- Flutter SDK installed and configured.
- A Firebase project setup at Firebase Console.
-
Clone the repository:
git clone https://github.com/AhmedHelmy18/Whale-Chat.git cd Whale-Chat -
Install dependencies:
flutter pub get
-
Firebase Setup:
- Follow the FlutterFire CLI guide to configure your project.
- Download your
google-services.json(Android) andGoogleService-Info.plist(iOS) and place them in the appropriate directories if not using the CLI.
-
Run the app:
flutter run
This project is licensed under the MIT License - see the LICENSE file for details.