# Messenger App

A Telegram-like mobile messenger application built with Flutter using Clean Architecture.

## Architecture

This project follows Clean Architecture principles with the following structure:

```
lib/
├── core/               # Core utilities, network, errors, theme
├── features/           # Feature modules (auth, chat, profile, settings)
│   └── [feature]/
│       ├── data/       # Data layer (repositories, datasources)
│       ├── domain/     # Domain layer (entities, usecases, repository interfaces)
│       └── presentation/ # UI layer (bloc, pages, widgets)
└── internal/           # App configuration, DI, routing
```

## Dependencies

- **State Management**: flutter_bloc, bloc
- **Architecture & DI**: get_it, injectable, freezed_annotation
- **Network & Real-time**: dio, signalr_netcore
- **Navigation**: auto_route
- **Database**: isar, isar_flutter_libs

## Setup

1. Install Flutter dependencies:
   ```bash
   flutter pub get
   ```

2. Generate code:
   ```bash
   dart run build_runner build --delete-conflicting-outputs
   ```

3. Run the app:
   ```bash
   flutter run
   ```

## Features

- Authentication (Login/Register)
- Real-time Chat
- Contacts
- Profile Management
- Settings
