A real-time chat application built with Flutter and Firebase.
This project was developed as part of my learning journey to strengthen my skills in authentication, real-time updates, and cloud integrations.
-
Authentication:
- Register, Login, and Forget Password flows.
- Firebase Authentication for secure user accounts.
-
Real-Time Chat:
- Public chat room with instant messaging.
- Custom chat bubbles and smooth scrolling to latest message.
-
User Presence:
- Online user counter powered by Firebase Realtime Database.
- Cloud Functions for accurate user status updates.
-
Daily Message Limits:
- Each user gets a daily quota.
- Automatically reset at midnight via Firebase Cloud Functions.
-
Cloud-Powered Features:
- Firestore for message storage.
- Firebase Storage for media support.
- Firebase App Check for added security.
| Onboarding | Login | Chat |
|---|---|---|
![]() |
![]() |
![]() |
- Clone the repository:
git clone https://github.com/yourusername/LoopChat.git cd LoopChat - Install dependencies:
flutter pub get
- Configure Firebase:
- Add
google-services.jsontoandroid/app/. - Add
GoogleService-Info.plisttoios/Runner/. - Run
flutterfire configureif you want to regenerate options.
- Add
- Run the app:
flutter run
lib/
├── constants.dart
├── firebase_options.dart
├── main.dart
├── helper/ # Reusable helpers (e.g., update_checker.dart, show_snack_bar.dart)
├── models/ # Data models (e.g., message.dart)
├── screens/ # Pages (login_page.dart, register_page.dart, chat_page.dart, etc.)
├── start/ # Startup & onboarding flow
├── widgets/ # Reusable widgets (chat_bubble.dart, customButton.dart, etc.)
functions/ # Firebase Cloud Functions- Implemented a full authentication experience using Firebase Auth.
- Worked with real-time communication using Firestore & Realtime Database.
- Secured the app with App Check and server logic in Cloud Functions.
- Designed clean, reusable Flutter widgets for consistent UI.
- Learned how to enforce feature limits (daily message quota) using backend logic.
ChatGPT & Gemini for helping with new stuff 😂


