Developed a real-time chat application with support for group messaging, implementing end-to-end functionality using Flutter and Firebase. The app is architected using Clean Architecture, separating business logic (use cases), domain models, presentation, and data sources to ensure scalability and testability.
Create, join, and manage group chats and channels
Real-time messaging with Firestore
Send and edit text messages
Delete messages and update group data dynamically
User authentication with Firebase Auth and Google Sign-In
Secure local storage of user data using encryption
Image caching and uploading via Firebase Storage
Responsive UI using flutter_screenutil
e scalability and testability.
Frontend: Flutter (Dart)
Architecture: Clean Architecture (with separation of domain, application, data, and presentation layers)
State Management: BLoC (flutter_bloc) + equatable
Backend Services: Firebase Auth, Firestore, Firebase Storage
Local Storage: Shared Preferences + encrypted data handling
Dependency Management: get_it (Service Locator pattern)
This is a self-initiated project and the source code is not open-source or publicly accessible. However, if you're interested in hiring or collaborating, I'm open to discussing the architecture, development approach, and walking you through how I built it in a scheduled session. You can find my contact information in the navigation menu, feel free to reach out anytime.Â
App Preview - Device 1 & Device 2
Groups Page - Loading Before Groups Showed
Chat Page
Chat - Actions Edit or Delete
Edit Message - On Input Text
Chat - Delete Image Message
Chat - Delete Image Message
Create Group
After Group Created
Edit Group
Edit Group
After Group Edited
Image Message - Open & Zoom
Search Group
Search Group
Technical Captures
Preview App + Code
Remote Data Source - Implement
Local & Remote Data Source Implement
Few Use Cases
Repository Impl & Controller(Cubit/BLoC)
Contributed to this project as part of my role at Self Project.
Feb 2023 - Jun 2023 (now maintenance)