OBYN — учёт расходов в белорусских рублях
Расходы по периодам с графиками, бюджетом и пересчётом в доллары и евро по официальному курсу Национального банка Республики Беларусь. Приложение работает целиком в браузере: без сервера, без регистрации и без отправки ваших данных.
Учёт чеков по категориям
Каждая покупка записывается с датой, категорией, необязательной подкатегорией и необязательным комментарием. Повторное нажатие на подкатегорию снимает выбор. Кнопка «Сохранить чек» всегда видна внизу формы, прокручиваются только поля над ней. У каждой категории свой цвет, одинаковый во всех графиках, метках и фильтрах.
| Категория | Подкатегории по умолчанию |
|---|---|
| Магазины и покупки | Копеечка, Корона, Санта, Евроопт, Гиппо, Соседи, Прочее |
| Обязательные платежи | Мобильная связь, Интернет, ЖКХ, Налоги, Прочее |
| Автомобиль | Бензин, Обслуживание, Прочее |
| Развлечения | Поездка, Кафе, Прогулка, Прочее |
| Спорт | Волейбол, Коньки, Ролики, Бассейн, Бокс, Прочее |
| Другие расходы | своё название для разовых трат |
Для «Прочее» вы вводите своё название. Приложение запоминает его и в следующий раз предлагает одной кнопкой.
Вид формы чека
Иконка настроек → «Вид формы чека». По умолчанию форма короткая: дата одной строкой «Дата 15.10.2026» с кнопкой «Изменить», поля комментария нет.
- Категория по умолчанию уже выбрана при добавлении нового чека, в списке категорий она помечена «по умолчанию».
- Подкатегории можно скрыть: чек сохранится просто с категорией.
- Комментарий включается одной галочкой, дату можно вернуть полем ввода.
- При изменении старого чека скрытые подкатегория и комментарий не теряются. «Как по умолчанию» возвращает исходную форму.

Список чеков и поиск
- Тонкие строки: каждый чек — значок категории, название и сумма. Чек в $ или € показывает и сумму в валюте.
- Подробности по нажатию: строка раскрывается в таблицу — категория, комментарий, сумма с курсом, сумма в долларах, дата и время добавления. Там же кнопки «Изменить», «Обновить курс» и «Удалить». В архиве таблица открывается без кнопок изменения.
- Поиск по названию, подкатегории, комментарию, категории, сумме («22,00») и дате («12.10»). Несколько слов ищутся вместе, например «магазины корона». Видно, сколько чеков найдено и на какую сумму, Esc очищает поле.
- Фильтр по категориям работает вместе с поиском.
- Страницы по 20 чеков: внизу стрелки и номера, на телефоне компактно «2 из 5». Итог дня в заголовке считается по всем чекам дня.
- Листание, фильтр и поиск обновляют только список, графики не перестраиваются, поэтому всё работает быстро даже с тысячами чеков.

Свои категории и подкатегории
Стандартный набор можно полностью настроить: иконка настроек в шапке → «Категории и подкатегории».
- Добавить категорию: название, короткое имя для графиков, цвет (12 готовых или любой свой) и иконка.
- Подкатегории: добавить, переименовать, удалить. При переименовании старые чеки тоже получают новое название.
- Порядок меняется стрелками, в этом порядке категории идут в форме чека.
- Удалить можно категорию без чеков. Категорию с чеками можно скрыть: её нет в форме, но она остаётся в статистике и архиве.
- «Другие расходы» удалить нельзя: туда попадают чеки, чья категория не найдена.
Перенос и обмен настройками
- Настройки входят в резервную копию: «Заменить всё» берёт категории из файла, «Объединить» добавляет новые к вашим.
- Настройки можно сохранить отдельным файлом
finance-settings-ГГГГ-ММ-ДД.jsonбез чеков и сумм и поделиться им. Режимы загрузки: «Добавить к моим» и «Заменить мои». При замене ваши категории с чеками не пропадают, а становятся скрытыми. - «Вернуть стандартные категории» восстанавливает исходный набор, чеки не удаляются.
Вид страницы «Период»
Иконка настроек → «Вид страницы «Период»». Чекбоксами выбирается, что показывать на странице текущего и архивного периода:
| Блок | Что можно скрыть внутри |
|---|---|
| Курсы валют | метки над названием периода и график курса за месяц. По умолчанию выключены |
| «Потрачено» | сумму в долларах, цветную полосу, «В среднем за день», количество чеков, «Больше всего уходит на» |
| «Бюджет» | полосу прогресса, «Можно тратить в день», «На сегодня осталось», прогноз, «Когда закончится бюджет». Без бюджета скрытый блок убирает и напоминание о нём |
| Графики | все четыре графика по отдельности. Переключатель BYN / $ пропадает, если скрыты все |
| Список чеков | поиск, фильтр по категориям, сумму в долларах и курс у каждого чека |
| «Учёт расходов в белорусских рублях» | блок с описанием и частыми вопросами внизу страницы, скрывается на всех вкладках |
Раскладка подстраивается сама, «Показать всё» включает все блоки, в том числе курсы валют. Вид переносится вместе с категориями в резервной копии и файле настроек.
Курс Нацбанка для каждой записи
Сумма вводится в рублях, долларах или евро — переключатель BYN / $ / € рядом с суммой. Приложение берёт официальный курс НБРБ на дату чека: к рублям показывает эквивалент в $, а чек в $ или € пересчитывает в рубли, например «100,00 € = 336,52 BYN».
- Курс сохраняется внутри записи, поэтому сумма в долларах за прошлые дни не меняется.
- Итог в $ складывается из записей, каждая по курсу своего дня, а не пересчитывается по сегодняшнему курсу.
- Курсы кешируются, за один и тот же день запрос не повторяется.
Курсы валют
Два необязательных блока по официальному курсу НБРБ. По умолчанию они выключены и включаются в «Вид страницы «Период»».
- Метки над названием периода: $/BYN, €/BYN и $/€ — на сколько процентов изменился курс. Рост — красным со стрелкой вверх, снижение — зелёным со стрелкой вниз. Срок выбирается переключателем «День · Неделя · Месяц».
- График курса за последний месяц с переключателем $/BYN · €/BYN · $/€, текущим курсом и изменением за месяц.
- Первая валюта в паре — та, чья цена показана: $/BYN — сколько рублей стоит доллар, $/€ — сколько евро стоит доллар.
- Курсы за месяц загружаются, только когда блоки включены, один раз в день, дальше берутся из кеша. Если НБРБ не ответил, блоки не показываются.


Работа без интернета
После первого открытия приложение открывается и без интернета. Над шапкой появляется плашка «offline», а уведомление подсказывает, по курсу на какую дату сейчас считаются суммы. Чеки, бюджет, графики и архив работают как обычно.
Если курса на дату чека ещё нет, форма предлагает три варианта:
| Вариант | Что происходит |
|---|---|
| Заполнить позже | Чек помечается «курс позже», сумма в $ пока примерная. Когда связь появится, официальный курс подставится сам, в том числе в архиве. |
| Последний курс | Берётся самый свежий известный курс на эту дату или раньше. Чек помечается «курс от 12 окт». |
| Ввести вручную | Курс указываете вы, например из банковского приложения. Чек помечается «курс вручную». |
Чеки с последним и ручным курсом можно пересчитать по официальному курсу: раскройте чек и нажмите «Обновить курс».
Бюджет и его динамика
Бюджет на период задаётся в BYN, долларах или евро — переключателем BYN / $ / € над суммой, как в форме чека. Дата окончания необязательна. Дашборд считает:
- Остаток или перерасход в валюте бюджета, с эквивалентом в рублях.
- Сколько можно тратить в день: остаток на оставшиеся дни, включая сегодня. Лимит не прыгает в течение дня.
- Сколько осталось на сегодня или на сколько превышен дневной лимит. При бюджете в $ или € крупно показана сумма в рублях, валюта бюджета — строкой ниже.
- Отклонение от плана на сегодня: красным «Перерасход на сегодня …» или зелёным «Экономия на сегодня …».
- Прогноз к дате окончания при нынешнем темпе: красным, если бюджет будет превышен, зелёным, если деньги останутся.
- Когда закончится бюджет: через сколько дней и какого числа закончатся деньги и сколько дней периода останется без бюджета (красным), сколько дней в запасе (зелёным) или что бюджет укладывается день в день (синим).
- Полоса прогресса с меткой «по плану на сегодня».
- «В среднем за день» показывает, на сколько в день вы тратите больше или меньше плана.
- Сколько дней осталось до конца периода — метка в шапке: «Осталось 17 дней», в последний день — «Последний день периода».

Графики и инфографика

- Все расходы периода: линия для каждой категории по дням, пунктиром сумма за день и линия планового лимита.
- По дням и категориям: столбцы за каждый день, разбитые по цветам.
- Структура расходов: кольцевая диаграмма. По клику — детализация, например сколько ушло в Копеечке, а сколько в Короне.
- Любой график переключается между BYN и $, подсказки показывают обе валюты. На телефоне подсказки не появляются, чтобы не закрывать график пальцем.
- Графики строятся, когда до них доходит прокрутка, поэтому первый экран открывается сразу. Анимация — только при первом показе.
- График курсов валют за месяц описан в разделе «Курсы валют».
Периоды, архив и сравнение
Учёт ведётся периодами: по месяцам или от зарплаты до зарплаты. Завершённый период уходит в архив со статистикой, графиками и итогом по бюджету.

Раздел «Сравнение» сопоставляет периоды по категориям с изменением в процентах: красная стрелка — расходы выросли, зелёная — сократились.

Выгрузка и резервные копии
Иконка настроек в шапке открывает окно «Настройки и данные»:
- Сохранить резервную копию: JSON-файл со всеми периодами, курсами и настройками. С защитой паролем — зашифрованный.
- Текущий период в таблицу: CSV для Excel или Google Таблиц.
- Загрузить резервную копию: «Объединить» добавляет только новое, «Заменить всё» восстанавливает состояние из файла.
- Удалить историю: стирает все периоды и чеки в этом браузере, а категории, вид страницы и пароль сохраняются. Перед удалением нужно ввести подтверждение, Google Drive при этом отключается, чтобы пустые данные не перезаписали копию.

Синхронизация с Google Drive
- Подключить Google Drive: вход своим аккаунтом один раз, подключение запоминается. Копия хранится в вашем Drive в файле
finance-backup.json. - С нового устройства: на первом экране большая кнопка «Подключить Google Drive» подключает Drive и сразу загружает ваши чеки и периоды. Если копии в Drive ещё нет, пустой файл не создаётся.
- Кнопка синхронизации в шапке появляется, когда Drive подключён. Зелёная — всё сохранено, жёлтая — есть изменения, которые ещё не в Drive, копии различаются или нужно войти в Google. Нажатие сразу синхронизирует, стрелка крутится, пока идёт синхронизация.
- Автосохранение: после каждого изменения копия обновляется через несколько секунд.
- Несколько устройств: изменения подтягиваются при запуске и по кнопке синхронизации. Если данные поменялись в двух местах, приложение предложит объединить их, взять версию из Drive или оставить свою.
- После перезапуска браузера несохранённые изменения ждут одного нажатия на кнопку синхронизации: Google не даёт продлевать доступ в фоне без сервера. Пока такие изменения есть, кнопка жёлтая.
- Отключить: доступ отзывается, файл в Drive остаётся.
Приложение получает доступ drive.file и видит только собственный файл копии.
Установка как приложение и «Поделиться»
- Установить приложение: большая кнопка на первом экране и пункт в «Настройках и данных» → «Приложение». OBYN получает значок на главном экране телефона или на рабочем столе, открывается без адресной строки и работает без интернета.
- Android и компьютер (Chrome, Edge): открывается системное окно установки. iPhone: короткая инструкция «Поделиться» → «На экран «Домой»». Safari на Mac: «Файл» → «Добавить в Dock».
- Когда приложение установлено, раздел «Приложение» подсвечивается зелёным, а кнопка на первом экране исчезает.
- На iPhone и в Safari на Mac у установленного приложения отдельное хранилище: чеки из браузера переносятся резервной копией или через Google Drive.
- Поделиться приложением: кнопка в шапке и пункт в настройках. На телефоне открывается системное меню, иначе — окно со ссылкой, кнопкой «Скопировать» и кнопками Telegram, WhatsApp, Viber, ВКонтакте, Instagram, TikTok и почты. Отправляется только ссылка, ваши данные никуда не передаются.
Интерфейс
- Светлая и тёмная темы, по умолчанию как в системе.
- Адаптивная вёрстка: на телефоне форма выезжает снизу, есть плавающая кнопка добавления чека.
- Заголовок окна с крестиком закреплён сверху при прокрутке. На iPhone окно закрывается в момент касания крестика и не уходит под статус-бар.
- Первый экран: «OBYN, привет!», кнопки «Установить приложение» и «Подключить Google Drive», понятные пустые состояния, подтверждение перед удалением.
- Несуществующие адреса сайта ведут на страницу «Такой страницы нет» с кнопкой «Вернуться в приложение».

Приватность
- Нет сервера и аккаунта. Чеки, бюджеты и архив хранятся в браузере на вашем устройстве.
- Нет аналитики, рекламы и трекеров. Скрипт входа Google загружается, только если вы пользуетесь Google Drive.
- Шрифты и библиотека графиков встроены, обращений к CDN нет.
- Единственный обязательный внешний запрос идёт к API Нацбанка за курсом: передаются только валюта и дата (для курсов за месяц — начальная и конечная даты).
Полные тексты: Политика конфиденциальности и Условия использования.
Защита паролем
В «Настройки и данные» можно включить шифрование: записи хранятся только в зашифрованном виде, дашборд открывается по паролю.

- AES-256-GCM через встроенную криптографию браузера (Web Crypto API).
- Ключ из пароля: PBKDF2-SHA256, 600 000 итераций и случайная соль.
- Пароль нигде не хранится и не отправляется. Ключ живёт только в памяти открытой вкладки, есть автоблокировка.
- Резервные копии тоже шифруются.
Код восстановления из 24 символов показывается один раз при включении защиты. Запишите его отдельно от устройства.

Чего шифрование не делает
- Не защищает от вирусов и шпионских программ на устройстве.
- Не защищает, пока дашборд разблокирован.
- Не спасает слабый пароль.
- Таблица CSV не шифруется.
Общие рекомендации
Очистка данных браузера удаляет записи, режим инкогнито их не сохраняет. Регулярно делайте резервную копию: она же переносит данные на другое устройство.
Попробовать на тестовых данных
Загрузите тестовую копию finance-test-backup.json, чтобы увидеть графики, бюджет и сравнение без ручного ввода. Все данные вымышленные.
| Период | Чеков | Бюджет |
|---|---|---|
| Октябрь 2026 (текущий) | 28 | 850 € |
| Сентябрь 2026 | 50 | 950 $ |
| Август 2026 | 56 | 3 000 BYN |
| Июль 2026 | 46 | без бюджета |
- Откройте приложение.
- Иконка настроек → «Загрузить резервную копию».
- Выберите файл и режим «Заменить всё».