Лиана
Все работы

Кейс · Разработка · 2026

Расходы всей семьи за десять секунд

Telegram-бот на кнопках и дашборд на собственной дизайн-системе. Запись становится частью привычного мессенджера, а картина по категориям и участникам собирается сама.

Заказчик

Личный проект

Статус

Работает в семье, 2026

Стек

Node.js, TypeScript, Telegraf, Express, SQLite

Услуги

Продукт, дизайн-система, бот, бэкенд

Дашборд «Достаток» на демо-данных
Дашборд на демо-данных. Реальные траты семьи не публикуются.

Задача

Сделать так, чтобы записать трату было проще, чем её забыть

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

01

Таблицу открывали раз в несколько дней

Записи делались задним числом, по памяти. Часть трат терялась, остальные теряли точность.

02

Не видно, кто и на что потратил

В столбик шла только общая сумма. Кто именно платил и за что конкретно — не разобрать.

03

График строился руками

Чтобы понять, куда уходят деньги в этом месяце, приходилось отдельно собирать диаграмму из таблицы.

Аудитория

Одни ведут бюджет, другие просто тратят

Тот, кто ведёт бюджет

Ему нужна картина месяца целиком: сколько свободно после расходов, где вышли за план, кто и на что потратил. Отдельные записи ему не интересны.

Все остальные

Тратят каждый день, но вести учёт не хотят. Общую таблицу открывали раз в несколько дней и вписывали траты задним числом, по памяти.

Что из этого следовало

  1. 01

    Учёт там, где семья и так переписывается. Бот в Telegram вместо отдельного приложения, которое пришлось бы ставить и не забывать открывать.

  2. 02

    Всё кнопками, кроме суммы. Запись занимает около 10 секунд, поэтому её делают сразу, пока трата ещё в памяти.

  3. 03

    Кто потратил, записывается само. Разбивка по участникам собирается без ручной разметки.

  4. 04

    Дашборд для того, кто ведёт бюджет. Главное число месяца — сколько свободно, рядом план против факта по категориям.

Сценарий

Четыре касания вместо таблицы

Бот ведёт по цепочке, где на каждом шаге либо кнопки, либо одно число. Запись сразу попадает на сервер и сразу видна на дашборде.

1

Категория

Кнопкой

2

Сумма

Единственное поле ввода

3

Комментарий

Или «без комментария»

4

Сохранено

Бот отвечает сразу

Диалог с ботом: категория, сумма, комментарий, сохранение
Так выглядит запись в Telegram

Дашборд

Четыре вопроса, на которые он отвечает

Светлая и тёмная темы, токены и типографика из собственной дизайн-системы «Достаток». Никаких готовых шаблонов дашбордов.

01

Свободно после расходов

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

02

Доход, расход и план

Изменение к прошлому месяцу и отклонение от плана. Красное и зелёное, без интерпретаций.

03

Тренд за шесть месяцев

Две линии: доход и расход. Видно, в какие месяцы расходы обгоняли доходы.

04

Факт против плана по категориям

Полоса факта и засечка плана. Выход за план виден сразу, рядом бублик с долями.

Архитектура

Минимум зависимостей на самом дешёвом VPS

Telegram

Ввод: кнопки в привычном чате

Telegraf

Бот на Node.js и TypeScript

Express

API и дашборд с одного порта

SQLite

База без внешней СУБД

SVG

Графики без сторонних библиотек

Решения

Простое снаружи, продуманное внутри

Всё, кроме суммы, выбирается кнопкой. Нет опечаток в категориях, нет «продукты» и «Продукты» как двух разных строк, запись занимает около 10 секунд с телефона.

Что отдано

Не только код, но и путь до работающего сервера

Код целиком

Бот, сервер и дашборд в одном проекте. Готов к развёртыванию.

Пошаговая инструкция

От установки Node на VPS до HTTPS-домена. Рассчитана на человека, который делает это впервые.

Интерактивный дашборд

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

Результат

Что получилось

10сек

На одну запись с телефона. Четыре касания вместо открытия таблицы.

1поле

Свободного ввода во всём боте: сумма. Остальное кнопками.

0библиотек

Для графиков. Всё нарисовано на чистом SVG.

1сеанс

От архитектуры до рабочего кода: бот, сервер, база и дашборд собраны вместе.

Бот уже работает в моей семье и записывает реальные траты. Настоящие суммы и категории я не публикую, поэтому на скриншотах демо-данные.

Нужен бот или дашборд? Давайте обсудим

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