ChatFlow is a modern and user-friendly real-time messaging application. Built with Flutter framework, it provides seamless functionality across both iOS and Android platforms.
lib/
├── core/
│ ├── base/
│ │ ├── model/ # Base model interfaces
│ │ └── view/ # Base view classes
│ ├── bloc/ # Global BLoC states
│ ├── constants/ # App constants
│ ├── init/
│ │ ├── network/ # Network layer management
│ │ ├── cache/ # Local storage management
│ │ ├── notification/ # Push notification setup
│ │ └── theme/ # App theme configuration
│ ├── models/ # Data models
│ └── service/ # API services
├── feature/
│ ├── auth/ # Authentication feature
│ │ ├── login/
│ │ └── register/
│ ├── chat/ # Chat feature
│ ├── home/ # Home feature
│ └── profile/ # Profile feature
└── main.dart
The project includes a robust network layer implementation with the following features:
- Singleton pattern for network operations
- Generic response handling
- Type-safe API calls
- Automatic error handling
Future<R?> send<T extends INetworkModel<T>, R>({
required String path,
required RequestType type,
required T parseModel,
Map<String, dynamic>? queryParameters,
Map<String, dynamic>? data,
})- Generic base model for all network responses
- Type-safe JSON parsing
abstract class INetworkModel<T> {
T fromJson(Map<String, dynamic> json);
Map<String, dynamic> toJson();
}Example service implementation showing CRUD operations:
abstract class IPostService {
Future<List<PostModel>?> getPosts();
Future<PostModel?> getPost(int id);
Future<PostModel?> createPost(String title, String body, int userId);
Future<PostModel?> updatePost(int id, String title, String body);
Future<bool> deletePost(int id);
}- Secure session management with JWT
- User registration and login
- Secure password storage
- Instant messaging with Firebase Realtime Database
- Typing indicators
- Message read/unread status
- Last seen feature
- Firebase Cloud Messaging (FCM) integration
- Customizable notification settings
- In-app notification management
- Profile creation and editing
- Profile picture upload with Firebase Storage
- User settings management
- Clean Architecture principles
- State management with BLoC pattern
- Firebase services integration
- Comprehensive error handling
- Unit and widget tests
- Generic network layer
- Type-safe API calls
-
Prerequisites:
- Flutter SDK (latest version)
- Dart SDK (latest version)
- Android Studio / VS Code
- Firebase account
-
Clone the project:
git clone [repo-url] cd chat_flow -
Install dependencies:
flutter pub get
-
Configure Firebase:
- Add your
google-services.jsonfor Android - Add your
GoogleService-Info.plistfor iOS
- Add your
-
Run the app:
flutter run
Run tests using:
flutter testFor detailed documentation about the implementation:
- iOS 11.0 and above
- Android 5.0 (API level 21) and above
- Fork the project
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'feat: Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License.
screenshots/
├── login.png
├── chat_list.png
├── chat_detail.png
└── profile.png
Note: Please add your application screenshots to the screenshots directory following the structure above.





