Разработал систему срочных уведомлений о новых заказах для сети розничных магазинов. Событие из МойСклада через webhook поступает на сервер и доставляется на компьютер нужной торговой точки.
Внедрено в эксплуатации: семь торговых точек используют Windows-клиент, серверный контур работает на VPS.
Техническое решение:
• FastAPI принимает webhook и пропускает только заказы с нужным статусом;
• склад сопоставляется с торговой точкой через конфигурацию без хранения токенов в коде;
• сервер доставляет событие по защищённому WebSocket-каналу с отдельной авторизацией каждой точки;
• heartbeat и автоматическое переподключение обнаруживают обрыв связи;
• приложение PyQt6 показывает полноэкранное окно, включает сирену и открывает заказ по кнопке;
• подтверждения доставки и версия клиента поступают обратно на сервер;
• фоновые проверки восстанавливают пропущенные события, а проблемы отправляются в служебные уведомления.
Архитектура: FastAPI на VPS, WebSocket push, Windows-клиент PyQt6/PyInstaller, CI/CD через GitHub Actions, Nginx и systemd.
Результат: новый заказ автоматически попадает на нужный компьютер без постоянного ручного контроля учётной системы. Разделение точек, восстановление соединения и наблюдаемая доставка снижают риск пропустить заказ при сетевом сбое.
Технологии: Python 3.12, FastAPI, PyQt6, PyInstaller, WebSocket, httpx, Pydantic, Nginx, systemd, GitHub Actions, МойСклад API.