Financial Billing App

Schulmensa

Десктопное приложение, которое заменило ручное создание визуальных чеков в Excel на нормальную генерацию HTML-счетов.

ElectronReactTypeScriptSQLite3Tailwind CSSNodemailerSendGrid

Ручная бухгалтерия, которую пора было убрать

Проект начался не с желания автоматизировать сложную бухгалтерскую таблицу. Наоборот: Excel там почти не использовался как таблица. В нем вручную собирали внешний вид чека — картинки, рамки, подписи, готовые суммы и текстовые поля. Сами цифры считались отдельно на физическом калькуляторе, после чего вручную переносились в Excel-макет. Затем этот файл отправлялся клиентам на почту, и первый вопрос был очевидным: у всех ли он открывается? Выяснилось, что клиенты часто жаловались на невозможность открыть файл.

Schulmensa / Monthly invoices / HTML email / Electron / SendGrid / Schulmensa / Monthly invoices / HTML email / Electron / SendGrid / Schulmensa / Monthly invoices / HTML email / Electron / SendGrid / Schulmensa / Monthly invoices / HTML email / Electron / SendGrid /

Excel использовался не по назначению

Главная проблема была не в том, что формулы в Excel были сложными. Формул там как раз не было. Excel стал визуальным редактором чеков, где человек руками раскладывал элементы, вставлял картинки, рамки и уже посчитанные суммы. Это создавало и лишнюю ручную работу, и плохой клиентский опыт, так как на выходе все равно отправлялся файл, который не все могли открыть.

  • суммы считались отдельно физическим калькулятором и вручную переносились в макет
  • Excel использовался как дизайнерская доска для чека, а не как расчетная система
  • каждый чек требовал ручной сборки внешнего вида
  • клиенты получали файл, который часто не могли или не хотели открывать
  • не было нормального статуса: кому уже отправлено, за какой период и когда

Client List

В программе есть список клиентов с нужными данными, почтой, служебной информацией и переменными, которые раньше вручную переносились в Excel-макет.

Period Control

Пользователь выбирает месяц или нужный период, а программа подставляет данные в счет без ручного копирования и перерисовывания макета.

Invoice Preview

Перед отправкой можно посмотреть готовый вид счета в виде письма, а не открывать отдельный Excel-файл и проверять его вручную.

Single Send

Отдельный счет можно отправить вручную одному клиенту, если нужно проверить или повторить конкретную отправку.

Bulk Send

Главная функция: сгенерировать все счета за месяц и отправить их сразу всем клиентам без ручной сборки каждой карточки чека.

Send History

В карточке видно, когда счет уже отправлялся, чтобы не дублировать письма и не терять контроль над месячным циклом.

Как разрабатывался

Самым важным решением было не автоматизировать существующий Excel, а заменить сам подход. Если Excel использовался только в качестве конструктора внешнего вида, то логичнее было сделать собственный генератор счетов: пользователь работает с данными и кнопками, а программа сама собирает аккуратное HTML-письмо. Клиент видит готовый счет прямо в почте, без вложений и без зависимости от того, есть ли у него Excel.

  1. 01

    Удалил из Excel все поля, которые использовались для ручной сборки макета

  2. 02

    Добавил выбор периода, список клиентов и кастомные поля для счетов

  3. 03

    Создал preview, чтобы перед отправкой был виден финальный вид письма

  4. 04

    Реализовал одиночную отправку и массовую отправку всех счетов за месяц

  5. 05

    Подключил email-слой через Nodemailer и SendGrid для стабильной доставки HTML-писем

Продуктовая идея

В результате процесс стал понятным: выбрал месяц, проверил данные, посмотрел preview, отправил одному клиенту или всем сразу. Человек больше не собирает чек как картинку в Excel и не переносит туда цифры с калькулятора. Клиент получает нормальное письмо, а не файл, который нужно еще чем-то открывать.