messenger/
│
├── main.py                    # Точка входа в приложение
├── requirements.txt           # Зависимости проекта
├── README.md
│
├── app/                       # Основное приложение
│   ├── __init__.py
│   ├── core/                  # Ядро: логика, модели, сервисы
│   │   ├── __init__.py
│   │   ├── models/            # Модели данных
│   │   │   ├── __init__.py
│   │   │   └── message.py
│   │   ├── services/          # Сервисы (API, БД, криптография)
│   │   │   ├── __init__.py
│   │   │   ├── api_client.py
│   │   │   ├── database.py
│   │   │   └── crypto.py
│   │   └── config.py          # Настройки (можно .env тоже)
│   │
│   ├── ui/                    # Интерфейс пользователя
│   │   ├── __init__.py
│   │   ├── main_window.py     # Главное окно
│   │   ├── widgets/           # Кастомные виджеты
│   │   │   ├── __init__.py
│   │   │   └── chat_bubble.py
│   │   ├── views/             # Разметка экранов
│   │   │   ├── __init__.py
│   │   │   ├── login_view.py
│   │   │   └── chat_view.py
│   │   └── resources/         # Иконки, стили, UI-файлы
│   │       ├── style.qss
│   │       ├── icons/
│   │       └── ui/            # UI-файлы от Qt Designer
│   │           └── login.ui
│   │
│   └── controllers/           # Контроллеры (логика взаимодействия UI и модели)
│       ├── __init__.py
│       ├── login_controller.py
│       └── chat_controller.py
│
└── tests/                     # Тесты (юнит и интеграционные)
    ├── __init__.py
    ├── test_models.py
    ├── test_api_client.py
    └── test_chat_controller.py
