Проект представляет собой desktop-приложение на Python с использованием фреймворка PyQt6 для реализации внутреннего корпоративного чата.
- Описание
- Технологии
- Структура проекта
- Taskfile
- Конфигурация
- Запуск
- Создание установщика
- Тестирование
Проект реализует клиент‑серверное desktop‑приложение для обмена сообщениями (личные и групповые чаты) в рамках корпоративного использования.
Клиентская часть предоставляет GUI на базе PyQt6, серверная — обрабатывает запросы, хранит данные. Nginx обеспечивает безопасность обмена данными, шифруя и дешифруя их (при развертывании нескольких серверов может также выполнять роль маршрутизатора).
Обмен сообщениями организован через TCP-сокеты.
- Python 3.8+
- PyQt6
- Сокеты (TCP)
- pytest
- pyinstaller
- Inno Setup
- Task
- nginx
The_room/
├── hooks/ # Дополнительные хуки для PyInstaller
├── src/
│ ├── client_app/ # Клиентская часть
│ │ ├── custom_delegates/ # Пользовательские делегаты для представлений
│ │ ├── data/ # Ресурсы и файлы данных
│ │ ├── ethernet/ # Сетевые модули
│ │ ├── notification/ # Модуль уведомлений
│ │ ├── pages/ # Страницы интерфейса
│ │ ├── styles/ # Стили приложения
│ │ ├── test/ # Модуль тестов клиента
│ │ ├── __init__.py
│ │ ├── config.ini # Конфигурационный файл клиента
│ │ └── main.py # Точка входа клиента
│ └── server/ # Серверная часть
│ ├── certs/ # SSL‑сертификаты
│ ├── data/ # Данные для работы сервера
│ ├── database/ # Модуль работы с БД
│ ├── __init__.py
│ ├── config.ini # Конфигурационный файл сервера
│ └── main.py # Точка входа сервера
├── .gitignore
├── .gitlab-ci.yml # CI/CD для gitlab
├── icons8.ico # Иконка приложения
├── installer.iss # Скрипт Inno Setup
├── pytest.ini # Запуск тестов
├── nginx.conf # конфиг для nginx
├── requirements.txt # Список всех зависимостей
└── Taskfile.yml # Описание команд Task
-
В PowerShell (если Task ещё не установлен):
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser iwr -useb get.scoop.sh | iex scoop install task
-
Перейдите в корень проекта.
-
Доступные команды:
task install # создаст venv и установит зависимости task build # соберёт .exe и подготовит папку dist task run # запустит сервер и клиент (PostgreSQL должен быть установлен) task clean # удалит артефакты и окружение
Для запуска проекта необходимо указать ваши параметры подключения к базе данных, а для развертывания проекта не на localhost нужно также написать корректные IP-адреса.
Все необходимые зависимости расположены в файле requirements.txt.
Конфигурационные файлы находятся в:
src/client_app/config.inisrc/server/config.ini
-
Запустите сервер:
python src/server/main.py
-
Запустите клиент:
python src/client_app/main.py
- Скачайте и установите Inno Setup Compiler.
- Откройте
installer.issв Inno Setup. - Нажмите F9 или кнопку «Compile» для сборки установщика.
- Готовый
.exeустановщика окажется в папкеinstaller_output/.
В корне проекта с активированным venv запустите:
pytest