Releases: DEADover/DzenAnalytics
v0.9.8 — Docker, онлайн-версия и удобный старт
В этом релизе — новые способы запустить и попробовать DzenAnalytics (Docker и онлайн-версия), удобный стартовый экран с выбором источника данных и пара важных правок в графиках.
🐳 Self-hosting через Docker
Добавлен готовый Docker-сетап для самостоятельного хостинга (Dockerfile + docker-compose.yaml + nginx.conf): приложение собирается и раздаётся через nginx с SPA-фолбэком, security-заголовками и кэшированием статики.
docker compose up -d --build # → http://localhost:8000Порт меняется переменной LISTEN_PORT. Подробности — в README, раздел «Сборка и деплой → Запуск через Docker». Спасибо @IdSafy за первоначальный вклад (PR #2)!
🌐 Онлайн-версия (тестовый режим)
Если не хочется запускать локально — есть размещённая версия dzenanalytics.zentable.ru: открываете в браузере и сразу пользуетесь. Работает в тестовом режиме; как и локально, данные остаются в вашем браузере (IndexedDB), а запросы к Zenmoney API идут напрямую.
🚀 Удобный экран «Нет данных»
Стартовый экран без данных переделан: теперь он предлагает оба источника — карточку «Подключить Дзен-мани» (онлайн-синхронизация по токену API, рекомендуется) и «Загрузить CSV» (офлайн-импорт выгрузки). Каждая ведёт сразу на нужную вкладку в настройках.
📅 Календарь: тепловая карта за все годы
Исправлен баг: переключатель года на странице «Календарь» не работал, если глобальный фильтр стоял на «текущем месяце» — карта схлопывалась в один месяц, а стрелки года были заблокированы. Теперь годовая тепловая карта живёт по своей оси времени: стрелки листают все годы с данными, выбранный год показывается целиком. Остальные фильтры (счета, категории, валюты, поиск) продолжают работать.
🎨 Мелкие правки
- Тёмная тема: в графике «Все категории» на странице «Категории» строка с суммой в подсказке (тултипе) при наведении на бар теперь читаемая (белая), а не тёмная.
Установка
Standalone (один файл): скачайте DzenAnalytics-v0.9.8-standalone.zip, распакуйте, дважды кликните по DzenAnalytics.html. Никаких установок, серверов и интернета — всё работает офлайн в браузере.
Полный список изменений: v0.9.7...v0.9.8
v0.9.7 — Корзина с восстановлением в облако и полный список счетов
Главное в этом обновлении — корзина с восстановлением операций обратно в облако, гибкий формат сумм и полный список счетов (включая счета без операций и кредитки с минусом).
🗑️ Корзина «Удалённые» и восстановление в облако
Удалённые операции больше не пропадают безвозвратно. Кнопка в тулбаре «Операции» открывает страницу «Удалённые» (/trash) со всеми скрытыми операциями:
- любую можно восстановить одним кликом — она вернётся во все расчёты и графики;
- при включённой двусторонней синхронизации восстановление возвращает операцию обратно в облако Дзен-мани — главная страховка на случай случайного удаления;
- в панели множественного выбора добавлена кнопка «Удалить» — скрыть сразу все отмеченные операции одним действием.
Под капотом — несколько правок синхронизации: воскрешение операции идемпотентно (через детерминированный id копии), а облачно-удалённые строки корректно реконструируются из снимка, поэтому возврат в облако работает надёжно.
💳 Все счета — без операций и с минусом
Страница «Счета» теперь показывает все реальные счета из Дзен-мани, которые влияют на баланс, — даже если по ним не было операций за выбранный период (раньше такие счета просто не появлялись в списке). А кредитки и долги отображаются с минусом (красным): они берут свой естественный отрицательный знак и корректно уменьшают итоговые суммы, так что совокупный баланс честно учитывает обязательства.
🔢 Формат сумм (копейки)
В «Настройки → Валюты» появился переключатель «Без дробной части / С дробной частью»: суммы по всему приложению показываются либо округлёнными до целого, либо с двумя знаками (копейки, центы — в зависимости от валюты). Удобно, когда хочется видеть ровные числа без визуального шума или, наоборот, точную сумму до копейки.
Note
На осях графиков всегда остаётся компактный вид — иначе подписи налезали бы друг на друга.
Что ещё
- 📅 Русский календарь в полях даты. Браузерный
<input type="date">подмешивал английский из локали системы — теперь поля даты используют свой календарь полностью на русском, с выбором месяца и года в два клика.
Установка
Standalone (один файл): скачайте DzenAnalytics-v0.9.7-standalone.zip, распакуйте, дважды кликните по DzenAnalytics.html. Никаких установок, серверов и интернета — всё работает офлайн в браузере.
Полный список изменений: v0.9.6...v0.9.7
v0.9.6 — Массовые правки везде и реальные балансы счетов
Обновление про массовые правки, балансы счетов и читаемые суммы. Массовое редактирование теперь работает на всех экранах со списками операций, на странице «Счета» виден актуальный баланс и появился табличный вид, а суммы в виджетах больше не сокращаются.
✅ Массовое редактирование — теперь везде
Раньше отметить много операций и поправить их за один раз можно было только в ленте «Операции». Теперь множественный выбор есть везде, где виден список операций:
- окна детализации (drill-down) — по категории, счёту, тегу, периоду, дню и т.д.;
- результаты «Поиска»;
- группы на странице «Дубликаты».
Отмечаете чекбоксами нужные строки (или «выделить все») — снизу появляется панель «Изменить», и Категория, Получатель и/или Комментарий меняются сразу у всех выбранных операций.
💼 Актуальный баланс счёта и табличный вид
Страница «Счета» переработана:
- на карточках теперь виден актуальный баланс счёта. При подключённом Дзен-мани это реальная сумма из облака (для валютных счетов — ещё и в валюте счёта). В режиме CSV остатков нет, поэтому честно показывается «Изменение» — доход минус расход по фильтрам.
- добавлен переключатель «Карточки / Таблица» — те же данные (баланс, изменение за период, поступления, списания, число операций) можно смотреть компактной таблицей.
🔢 Полные суммы без сокращений
По всему приложению — в KPI, карточках, таблицах и подсказках графиков — суммы теперь показываются целиком, без «млн» и «тыс.». Так 3 160 000 ₽ виден полностью, а не как «3,16 млн ₽».
Note
Компактная запись осталась только на осях графиков — иначе подписи налезали бы друг на друга и становились нечитаемыми.
Установка
Standalone (один файл): скачайте DzenAnalytics-v0.9.6-standalone.zip, распакуйте, дважды кликните по DzenAnalytics.html.
Из исходников:
git clone https://github.com/DEADover/DzenAnalytics.git
cd DzenAnalytics
npm install
npm run devПолный changelog
Все коммиты v0.9.5 → v0.9.6: v0.9.5...v0.9.6
v0.9.5 — Массовое редактирование операций
Небольшое обновление с упором на удобство правок. Теперь можно менять сразу много операций за раз, смена типа операции наконец уезжает в облако, а группировкой получателей стало удобнее управлять.
✅ Массовое редактирование операций
Раньше, чтобы поправить десяток похожих операций, каждую приходилось открывать по отдельности. Теперь в ленте «Операции» у каждой строки есть чекбокс, а в шапке — «выделить все» (с учётом текущих фильтров и поиска).
Отметили нужные — снизу появляется панель с кнопкой «Изменить». В одном окне три поля: Категория (+подкатегория), Получатель и Комментарий. Заполняете только то, что хотите поменять — пустое поле оставляет значение строки как было. Одно действие — и правка применяется ко всем выбранным операциям.
🔄 Смена типа операции теперь уходит в облако
Раньше смена типа между Расходом, Доходом и Возвратом меняла операцию только локально, в браузере. Теперь при включённой двусторонней синхронизации это изменение отправляется обратно в Дзен-мани — наравне с правками категории, суммы и получателя.
Note
Переводы и мультивалютные операции по-прежнему меняются только локально и в облако не уходят — для них всё ещё нужно использовать мобильное приложение.
🏷️ Удобная группировка получателей
На вкладке «Настройки → Обработка» теперь видны все авто-группировки получателей, а не только ручные. Если автоматика свела вместе не то (или, наоборот, не объединила похожее) — цель любой группы можно поправить вручную прямо в списке или сбросить к авто-значению.
🧹 Мелочи и доводка
- Страница настроек переехала на адрес
/settings(старая ссылка/importпродолжает работать). - Убраны белые вспышки при открытии модальных окон.
- Улучшена доступность диалогов (фокус, подписи кнопок) и адаптивность таблицы лога синхронизаций.
Установка
Standalone (один файл): скачайте DzenAnalytics-v0.9.5-standalone.zip, распакуйте, дважды кликните по DzenAnalytics.html.
Из исходников:
git clone https://github.com/DEADover/DzenAnalytics.git
cd DzenAnalytics
npm install
npm run devПолный changelog
Все коммиты v0.9.0 → v0.9.5: v0.9.0...v0.9.5
v0.9.0 — Двусторонняя синхронизация, бэкапы и удаление операций
Большое обновление перед версией 1.0. DzenAnalytics научился не только читать ваши данные из Дзен-мани, но и писать обратно — правки и удаления операций теперь могут уезжать в облако. Плюс надёжные бэкапы, расписание синхронизации и заметно переработанные настройки.
☁️ Двусторонняя синхронизация с Дзен-мани
Раньше приложение работало только на чтение: вы могли править операции, но всё оставалось локально в браузере. Теперь правки можно отправлять обратно в облако Дзен-мани. Три режима на выбор:
- Вручную — отправляете кнопкой, когда сами решите. Полный контроль.
- Авто после правки — изменили операцию, и через пару секунд она уходит в облако сама.
- При синхронизации — правки прицепляются к каждому обновлению данных.
Что отправляется: дата, получатель, бренд, комментарий, сумма, валюта, категория и подкатегория. По умолчанию всё выключено — режим чтения, как и раньше.
🗑️ Удаление операций
Появилась возможность удалять операции — кнопка есть и в карточке операции, и прямо в ленте рядом с редактированием. Операция скрывается из всех расчётов и графиков, а при включённой синхронизации удаляется и в облаке Дзен-мани.
🛟 Облачные снимки и бэкапы
- Облачный снимок — полный «слепок» состояния вашего облака, сохраняется локально. Перед каждой отправкой правок снимок делается автоматически (политику можно настроить) — если что-то пойдёт не так, всегда можно вернуться к сохранённому состоянию.
- Бэкапы теперь разделены на локальные (выгрузка в файл, в т.ч. по расписанию) и облачные (снимки Дзен-мани) — в удобных вкладках.
⏱️ Синхронизация по расписанию
Можно включить автоматическое обновление данных из Дзен-мани с нужной периодичностью — задаёте число и единицу (минуты / часы / дни). Работает, пока вкладка открыта.
📋 Лог синхронизаций
Внизу вкладки «Данные» — наглядная таблица всех синхронизаций, отправок и удалений: тип, дата-время, сколько операций затронуто, длительность и статус (успешно / ошибка). С пагинацией и подсказками. Если что-то не отправилось — сразу видно, что и почему.
🏷️ Свой получатель, которого нет в брендах
Если вводите имя получателя, которого нет в списке брендов Дзен-мани, теперь его всё равно можно сохранить — оно уедет в облако как свободный текст. Под полем сразу видно, бренд это из списка или произвольное имя.
⚙️ Переработанные настройки
Страница настроек теперь разбита на горизонтальные вкладки — Данные, Валюты, Обработка, Бэкапы. Источник данных, токен и статус подключения собраны в один аккуратный блок. Подтверждения опасных действий теперь показываются красивыми модальными окнами по центру экрана.
🚀 Скоро 1.0
Потихоньку готовимся к версии 1.0 — осталось уже недолго. Большинство крупных функций уже на месте; впереди ещё немного нового и доводка того, что уже сделано. Спасибо, что пользуетесь и подсказываете, что улучшить!
Установка
Standalone (один файл): скачайте DzenAnalytics-v0.9.0-standalone.zip, распакуйте, дважды кликните по DzenAnalytics.html.
Из исходников:
git clone https://github.com/DEADover/DzenAnalytics.git
cd DzenAnalytics
npm install
npm run devПолный changelog
Все коммиты v0.6.0 → v0.9.0: v0.6.0...v0.9.0
v0.6.0 — Поддержка брендов
В Дзен-мани появилась функциональность «Бренды» — единое чистое имя получателя поверх сырого текста из выписки банка. DzenAnalytics теперь это поддерживает: «Wildberries» вместо «WB-RU-MOSCOW-12345», «Магнит» вместо «MAGNIT MM RU-MOSCOW 5678».
☑️ Бренды как основное имя получателя
Дзен сам присваивает большинству операций понятный бренд (либо вы это сделали вручную в мобильном приложении). Раньше DzenAnalytics этот бренд игнорировал и показывал в ленте сырой текст из выписки. Теперь — наоборот:
- В ленте операций, в drawer-окнах drill-down, в поиске, в дубликатах — везде, где раньше показывался получатель, теперь сверху видно бренд, а под ним мелким серым — сырой текст из выписки (если отличается).
- Никаких настроек включать не нужно — после обычного синка всё работает само.
Что важно для существующих пользователей: чтобы подтянулись бренды для исторических операций, после обновления нажмите «⤓ Полная синхронизация» в шапке. Обычное «↻ Обновить» подтянет только новые операции, а у старых брендов не будет.
✏️ В редакторе операции — выпадающий с полным каталогом
Двойной клик по операции → поле «Получатель» теперь умеет автодополнять из полного словаря брендов из вашего Дзена (Wildberries, Магнит, Spotify и т.д. — всё, что есть в мобильном приложении), а не только из того, что уже было в операциях.
Под полем мелкой подсказкой видно «В выписке: …» — это сырой текст из банка, неизменяемый. Полезно, когда в имени получателя какая-то странность и хочется понять, откуда она взялась — например, банк прислал «P2P TRANSFER», а в самом приложении подписали как «Сосед Сёма».
Если работаете с CSV-импортом (без подключения к API) — автодополнение, как и раньше, использует историю операций.
Установка
Standalone (один файл, 345 KB): скачайте DzenAnalytics-v0.6.0-standalone.zip, распакуйте, дважды кликните по DzenAnalytics.html.
Из исходников:
git clone https://github.com/DEADover/DzenAnalytics.git
cd DzenAnalytics
npm install
npm run devПолный changelog
Все коммиты v0.5.7 → v0.6.0: v0.5.7...v0.6.0
v0.5.7 — Подорожавшие подписки и доводка тёмной темы
Небольшой релиз с двумя темами: подписки теперь сами «сигнализируют» о подорожании, тёмная тема стала аккуратнее.
💸 «Регулярные» подсветят подорожавшие подписки
На странице Ещё → Регулярные теперь видно, какие подписки тихо подняли цену. Если Netflix или Spotify ушли с 800 ₽ на 900 ₽ — это сразу заметно в списке: красная стрелочка ↑ +15% рядом с суммой.
Над таблицей появилась плашка «Подорожали N». Один клик — и в списке остаются только такие подписки. Удобно раз в полгода пройтись и решить, что отключить.
Заодно добавились фильтры по периодичности:
- Ежемесячные (большинство подписок)
- Еженедельные (например, абонементы или развоз)
- Реже раза в месяц (квартальные, годовые-ish)
В каждом пузырьке — количество подписок этого типа.
🌑 Тёмная тема — две заметные правки
Границы карточек теперь видны. Раньше в тёмной теме рамки сливались с фоном — карточки, фильтры, кнопки выглядели «слипшимися». Теперь у каждого элемента есть чёткий контур.
Читаемые подписи под графиками и KPI. Серые подписи на тёмном фоне были на грани читаемости — стали ярче, но не отвлекают от основного контента.
Установка
Standalone (один файл, 344 KB): скачайте DzenAnalytics-v0.5.7-standalone.zip, распакуйте, дважды кликните по DzenAnalytics.html.
Из исходников:
git clone https://github.com/DEADover/DzenAnalytics.git
cd DzenAnalytics
npm install
npm run devПолный changelog
Все коммиты v0.5.6 → v0.5.7: v0.5.6...v0.5.7
v0.5.6 — Синхронизация в один клик
Маленький релиз, сосредоточенный на ускорении повседневной работы с приложением. Главное — теперь не нужно идти в Настройки каждый раз, чтобы подтянуть свежие операции из Дзен-мани.
☁️ Синхронизация одним кликом из шапки
Рядом с шестерёнкой настроек появились две новые кнопки:
- ↻ Обновить — подтягивает только новое и изменившееся с прошлой синхронизации. Самая быстрая. Наведите курсор — увидите, когда синхронизировались в последний раз.
- ⤓ Полная синхронизация — сбрасывает локальный кэш и заново скачивает всё. Нужна, если данные расходятся с мобильным приложением или после массовых переименований категорий.
После синхронизации под кнопками появляется аккуратное матовое уведомление: «+12 новых/изменённых. Всего 7 637 операций.» — само пропадает через 5 секунд.
Кнопки видны только при подключённом токене Дзен-мани. Если пользуетесь CSV — шапка остаётся чистой, лишних элементов нет.
🧭 Меню стало проще
Главное меню теперь короче — оставили четыре самых частых раздела: Главная, Операции, Счета, Категории.
Тренды и Цели переехали в «Ещё» и встали в самом начале списка — открываются за один клик. На большинстве экранов теперь больше места для основного контента, и шапка не выглядит перегруженной.
🔍 Командная палитра шире
Кнопка «Команды… ⌘K» в шапке стала заметно шире и оформлена как полноценное поле поиска. На больших экранах хватает места и для подсказки, и для шортката. Удобно нажать мышкой, не целясь в крошечный значок.
Установка
Standalone (один файл, 342 KB): скачайте DzenAnalytics-v0.5.6-standalone.zip, распакуйте, дважды кликните по DzenAnalytics.html.
Из исходников:
git clone https://github.com/DEADover/DzenAnalytics.git
cd DzenAnalytics
npm install
npm run devПолный changelog
Все коммиты v0.5.5 → v0.5.6: v0.5.5...v0.5.6
v0.5.5 — Поддержка возвратов («Возврат по расходным операциям»)
В Дзен-мани с недавних пор появился отдельный тип операций — «Возврат по расходным операциям» (когда вы вернули покупку и деньги пришли обратно на карту). DzenAnalytics раньше считал их обычным доходом, и это завышало цифры. Теперь возвраты обрабатываются как в самом Дзене.
↩ Возвраты теперь работают правильно
Когда магазин возвращает деньги за покупку:
- Расход по этой категории уменьшается — например, если на «Одежда» было потрачено 30 000 ₽ и вы вернули покупку на 10 000 ₽, в категории осталось 20 000 ₽
- Доход не растёт — возврат больше не попадает в Доход и не завышает KPI
- Баланс счёта корректно увеличивается — деньги ведь реально пришли
Возврат выделен фиолетовым со значком ↩ — заметно отличается от обычных доходов и расходов в ленте операций, в drill-down списках, в поиске и в дубликатах.
При наведении показывается подсказка «Возврат — уменьшает расход категории».
✏ Можно вручную пометить возврат
Если вы пользуетесь импортом из CSV (где Дзен-мани не передаёт всех данных), в редакторе операции теперь есть 4-я кнопка «Возврат» — нажмите её, и операция получит правильную семантику.
🔄 Везде, где видны цифры — правильные числа
Возвраты корректно учитываются в:
- Бюджетах — вернули покупку → бюджет восстановился
- Категориях (донат, treemap, иерархия, drill-down)
- Топ-получателях — полностью возвращённые исчезают из топа
- Дашборде, Трендах, Сравнении, Аномалиях, Поиске, Дайджесте, Годовом отчёте
- Балансах счетов и графике совокупного баланса
🐛 Исправления
Графики реагируют на смену отчётного периода. Если в Настройках выбрать «месяц начинается с 11-го числа», то донат, treemap и иерархия категорий теперь это видят и пересчитываются. Раньше показывали данные за 1–31, даже когда период был настроен по-другому.
Все 25 подписей категорий видны на горизонтальном графике «Все категории» на странице Категории и в Сравнении. Раньше у верхних 3–4 баров терялись подписи — теперь имя категории есть всегда.
Подписи на treemap в светлой теме стали белыми — лучше читаются на ярких ячейках.
Установка
Standalone (1 файл, 342 KB): скачайте DzenAnalytics-v0.5.5-standalone.zip, распакуйте, дважды кликните по DzenAnalytics.html.
Из исходников:
git clone https://github.com/DEADover/DzenAnalytics.git
cd DzenAnalytics
npm install
npm run devПолный changelog
Все коммиты v0.5.4 → v0.5.5: v0.5.4...v0.5.5
v0.5.4 — Логотипы счетов и обновлённый редактор операций
Релиз посвящён визуальной чистоте и серьёзной переработке окна редактирования операций.
🏦 Логотипы счетов вместо букв
В списках счетов раньше показывалась буква в кружке («С» для Сбера). Теперь — настоящие фирменные значки 50+ банков: Сбер, Т-Банк, Альфа, ВТБ, Райффайзен, Kaspi, Halyk и другие — каждый со своим цветом и узнаваемой монограммой. Долговые счета (кредиты, рассрочки) получили отдельную иконку и приглушённый фон.
Подключено в карточке «Балансы счетов» на Главной.
✏️ Редактор операций стал умнее
Двойной клик по операции открывает обновлённое окно:
- Переключатель типа — три кнопки сверху: Расход / Доход / Перевод. Цвета как везде в приложении.
- Получатель с автодополнением — начинаете печатать, появляются варианты из ваших операций, отсортированные по частоте.
- Счёт с автодополнением — список ваших счетов с подсказками.
- Для переводов появляется второй счёт — «Со счёта» / «На счёт», заполняются корректно по умолчанию.
- Список категорий зависит от типа — для дохода показываются доходные категории, для расхода — расходные.
- Выпадающие списки больше не вылезают за экран — даже у длинных списков высота ограничена.
- Случайно не закроется — раньше при выделении текста с выходом за пределы окно могло пропасть, теперь нет.
🎨 Мелочи, которые приятно заметить
- Иконки у синтетических категорий «Долг» и «Перевод» — раньше показывался серый кружок, теперь — нормальные значки.
- Получатель у переводов показывает только цель: «Т-Банк» вместо «Сбер → Т-Банк», источник и так виден в колонке Счёт.
- Даты теперь с годом в drawer операций по счёту:
15.03.26вместо15.03. - «Чистый» → «Прибыль» в KPI на странице Операции — звучит понятнее.
Установка
Standalone (1 файл, 342 KB): скачайте DzenAnalytics-v0.5.4-standalone.zip, распакуйте, дважды кликните по DzenAnalytics.html.
Из исходников:
git clone https://github.com/DEADover/DzenAnalytics.git
cd DzenAnalytics
npm install
npm run devПолный changelog
Все коммиты v0.5.3 → v0.5.4: v0.5.3...v0.5.4