A premium, fully-featured real-time chat and calling application built with Flutter and Firebase. This application showcases modern UI/UX design (glassmorphism, dark mode, micro-animations) alongside complex backend integrations including real-time Firestore sync, Firebase Authentication, and background WebRTC call signaling via Firebase Cloud Messaging (FCM).
To help you understand the codebase, architecture, and how to run this project, we have created highly detailed documentation folders:
-
- View Mermaid diagrams of the Client-Serverless architecture.
- Understand the state management approach (BLoC) and routing mechanisms.
- Trace the exact sequence of events for Authentication, Chatting, and Voice Calling.
-
- Explore what the app can do: Direct Messaging, Background Call Waking, In-App Password Changes, Avatar Cropping/Compression, and more.
- See exactly which Firebase services are responsible for which features.
-
- Understand the NoSQL structure of the
usersandchatscollections. - Learn how the custom
sendCallInviteCloud Function operates to wake up sleeping devices. - Review a high-level summary of the Firebase Security Rules.
- Understand the NoSQL structure of the
-
- Step-by-step instructions on cloning the repo, running
flutterfire configure, and getting the app running locally. - Instructions for deploying the required Node.js Cloud Functions.
- Step-by-step instructions on cloning the repo, running
If you already have Flutter and Firebase configured on your machine, you can get started quickly:
# Clone the repository
git clone <your-repository-url>
cd Chat_App_Flutter
# Install dependencies
flutter pub get
# Connect your Firebase project
flutterfire configure
# Run the app
flutter runNote: Make sure to read the Setup & Deployment Guide for instructions on deploying the necessary Cloud Functions for the Calling features to work!
- UI Framework: Flutter
- State Management:
flutter_bloc - Routing:
go_router - Backend Services: Firebase Authentication, Cloud Firestore, Cloud Storage, Cloud Functions, Firebase Cloud Messaging.
- Calling/Signaling: Custom implementation using WebRTC and FCM Data Payloads.