A sleek and modern Flutter chat application with powerful features
Features • Preview • Installation • Architecture • Contributing
|
|
|
|
```
┌──────────────────────────────────────────────────────────┐
│ ChitChat App │
└──────────────────┬───────────────────┬──────────────────┘
│ │
┌──────────────────▼──┐ ┌──────────▼───────┐ ┌──────────────┐
│ Presentation │ │ Business Logic │ │ Data │
│ Layer │ │ Layer │ │ Layer │
├───────────────────┐│ ├──────────────────┐│ ├─────────────┐│
│ ┌───────────────┐ ││ │ ┌──────────────┐ ││ │ ┌─────────┐ ││
│ │ Views │ ││ │ │ Services │ ││ │ │ Models │ ││
│ └───────────────┘ ││ │ └──────────────┘ ││ │ └─────────┘ ││
│ ┌───────────────┐ ││ │ ┌──────────────┐ ││ │ ┌─────────┐ ││
│ │ Controllers │ ││ │ │ Repositories │ ││ │ │ APIs │ ││
│ └───────────────┘ ││ │ └──────────────┘ ││ │ └─────────┘ ││
│ ┌───────────────┐ ││ │ ┌──────────────┐ ││ │ ┌─────────┐ ││
│ │ Widgets │ ││ │ │ Bindings │ ││ │ │Firebase │ ││
│ └───────────────┘ ││ │ └──────────────┘ ││ │ └─────────┘ ││
└───────────────────┘│ └──────────────────┘│ └─────────────┘│
└───────────────────┘ └──────────────────┘ └─────────────┘
```
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ Widget │ => │Controller│ => │ Service │ => │Firebase │
└──────────┘ └──────────┘ └──────────┘ └──────────┘
▲ │ │ │
└──────────────┴───────────────┴────────────────┘
Data Flow
This architecture follows Clean Architecture principles with:
-
Presentation Layer
- Views & Widgets
- Controllers (GetX)
- UI Logic
-
Business Logic Layer
- Services
- Repositories
- Use Cases
-
Data Layer
- Models
- APIs
- Firebase Integration
📱 Core Modules
app/bindings/- Dependency injectioncore/- Core configurationsdata/- Data layer (models, services)modules/- Feature modulesroutes/- App navigationwidgets/- Reusable widgets
🎯 Features
chat/- Real-time messaging implementation
- Media handling
- Message status tracking
home/- User listing
- Search functionality
auth/- Authentication flow
- User session management
🛠️ Services
auth_service.dart- Authentication handlingchat_service.dart- Chat functionalitymedia_service.dart- Media operations
📄 Core Files
app_config.dart- Application configurationapp_pages.dart- Route definitionsinitial_binding.dart- Initial dependencies
- Copy
.env.exampleto.env - Fill in the required environment variables:
GOOGLE_API_KEY: Your Google API key for services
Never commit the .env file or actual API keys to version control.
- Get
google-services.jsonfrom Firebase Console - Place it in
android/app/google-services.json - Never commit this file to version control
Built with ❤️ using Flutter and Firebase



