Financial Billing App

Schulmensa

Desktop-додаток, який замінив ручне складання візуальних чеків в 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 і не переносить туди цифри з калькулятора. Клієнт отримує нормальний лист, а не файл, який треба ще чимось відкривати.