Telegram-бот для заявок на оплату с согласованием, WebApp, фото и Excel-отчетами

Ссылка на работу
Проект для компании с подрядчиками и объектами, где важно прозрачно и быстро согласовывать заявки на оплату. Реализован Telegram-бот с мини-приложением (Telegram WebApp) и вебхуками на aiohttp. Пользователи-исполнители подают заявки на аванс и материалы: выбирают контракт, объект, работу, контрагента, сумму, добавляют комментарий и фото. Согласующие берут заявку в работу, корректируют или отклоняют, выбирают счет плательщика и подтверждают оплату. Плательщик фиксирует факт оплаты. Все действия логируются. Веб-интерфейс на WebApp закрыт по ролям: формы заявок, редактор справочников (типы работ, контрагенты, счета плательщиков), панель администратора, генератор отчетов и рассылок. Есть страницы "загрузить фото работ" и быстрые выгрузки: журналы оплат по исполнителям, единый список, и ZIP с множеством книг Excel. Отчеты формируются в Excel: журналы по заявкам и свод по объектам/работам, автоформатирование, числовые форматы и ширины колонок. Реализованы рассылки по e‑mail: отправка журналов и сводных файлов, включая адреса одобренных получателей. Есть ежедневные бэкапы: ZIP с дампом MongoDB и Excel-журналами отправляется в Telegram-группу и по e‑mail, задачи заведены в cron, сервис поднимается через systemd. Хранилище данных - MongoDB с Beanie ODM, асинхронные операции через motor, бизнес-модели: Person, Request, Job, BuildObject, Contract и др., с триггерами на создание/обновление/удаление и историей изменений.