Piton Studios
Piton Studios
[34]

Бот учёта платежей

2025
[ ВИДЕО · ПРОЕКТ ]
Клиент
Piton Studios
Год
2025
Объём
Automation, backend, Telegram integration
Роль
Development
§ Детали проекта

Бот учёта платежейВеб-приложение для учёта платежей с автоматическими напоминаниями в Telegram.

Мы разработали веб-приложение, которое отслеживает платежи компании (рассрочка, чеки, наличные) и автоматически отправляет напоминания в Telegram при приближении срока — на лёгком и надёжном стеке Node.js, Express и SQLite.

Автогенерация графиков рассрочки, панель просроченных и предстоящих платежей на 7 дней и защита целостности финансовых записей — наглядный пример автоматизации бизнес-процессов.

Node.jsTelegram BotAutomationFintech

Задача

Компания вручную отслеживала рассрочку по кредитным картам, чеки, наличные и другие виды платежей; забытый срок оплаты создавал риск просрочки, а записи о платежах у разных сотрудников велись в разных таблицах и блокнотах. Нужна была лёгкая, но надёжная система — работающая на одном сервере, без отдельной команды администрирования или сложной инфраструктуры, — которая автоматизирует контроль сроков и вовремя предупреждает ответственных. Также требовалось, чтобы уже оплаченные записи не портились при редактировании по ошибке, а итоговые отчёты корректно экспортировались с турецкими символами.

Решение

Мы разработали веб-приложение с серверным рендерингом на Node.js, Express и EJS, использующее однофайловую базу SQLite через better-sqlite3. Для платежей в рассрочку график рассчитывается автоматически помесячно от первой даты платежа (с учётом переноса на конец месяца); суммы выравниваются в последнем платеже так, чтобы не оставалось расхождения в копейках. Через node-cron ежедневно в 09:00 идёт проверка сроков, в 08:00 — ежедневная сводка, а по понедельникам в 08:15 — сообщение с недельным планом через Telegram Bot API; таблица логов уведомлений гарантирует, что одно и то же напоминание по одному сроку не уйдёт повторно. Авторизация хеширует пароль через bcrypt и хранит сессию в файловом хранилище (session-file-store), поэтому сессии сохраняются даже после перезапуска сервера. На странице платежей есть экспорт в CSV с UTF-8 BOM и разделителем «точка с запятой», учитывающий активные фильтры. Интерфейс собран на Tailwind CSS и отдаётся без зависимости от CDN.

Ключевые технические решения

  • Автоматизация графика рассрочки: помесячные платежи формируются автоматически от первой даты, перенос на конец месяца корректируется, а расхождение в копейках выравнивается в последнем платеже.
  • Три отдельных автоматизации через Telegram Bot API: напоминание по конкретному сроку (число дней до него настраивается), ежедневная сводка (08:00) и недельный план (понедельник, 08:15) — все по расписанию node-cron.
  • Таблица логов уведомлений (уникальность по installment_id + window_days) не даёт одному и тому же напоминанию уйти повторно.
  • При редактировании платежа график не пересоздаётся, если по записи уже есть оплаченный взнос — история платежей сохраняется.
  • Экспорт в CSV с UTF-8 BOM и разделителем «точка с запятой» учитывает активные фильтры и корректно показывает турецкие символы прямо в Excel.

Технологии

Node.jsExpressEJSbetter-sqlite3node-cronTelegram Bot APITailwind CSSbcrypt

Результат

Теперь компания отслеживает все виды платежей из одной панели и не держит сроки в голове; автоматические напоминания в Telegram и ежедневные/недельные сводки снизили риск просрочки. Оплаченные записи сохраняются при редактировании, поэтому финансовая история остаётся надёжной, итоговая отчётность ускорилась благодаря экспорту в CSV с учётом фильтров, а сессии не прерываются даже после перезапуска сервера.

Связанные решения