Кейс · Веб-приложение · TypeScript
budget-split: «Поровну», учёт общих расходов
Веб-приложение учёта общих расходов группы без регистрации: комната по секретной ссылке, деление поровну, по долям, суммам и процентам, расчёт «кто кому» не более n−1 переводов. Пет-проект.
- TypeScript
- Vite
- Cloudflare Workers
- D1
- WebGL
- vitest
- fast-check
- axe
- GitHub Actions
01 · Как выглядит
Скриншоты


02 · О проекте
Что это и зачем
«Поровну» — веб-приложение для учёта общих расходов группы без регистрации. Комната создаётся по секретной ссылке в 128 бит, ссылки «просмотр» и «редактирование» раздельные. Пет-проект.
Бэкенд работает на Cloudflare Workers с базой D1, фронтенд написан на ванильном TypeScript с Vite, в интерфейсе есть WebGL-элементы kit-blob.
Ограничения
Нет аккаунтов: потерял ссылку — потерял право редактирования.
Данные в D1 хранятся открытым текстом.
Правки и удаления офлайн не ставятся в очередь.
Что внутри
- Деление расхода поровну, по долям, по суммам и по процентам
- Мультивалюта с ручным курсом
- Расчёт «кто кому»: не более n−1 переводов; алгоритм жадный, поэтому число переводов не всегда минимально
- Оптимистичная блокировка: из 4 одновременных правок одного расхода проходит одна
- 60 тестов (vitest в workerd, property-тесты fast-check), CI зелёный, npm audit 0, axe 0 нарушений
- Выложено на Cloudflare Workers с D1
03 · Как запустить
Запуск одной командой
git clone <репозиторий по запросу> budget-split
cd budget-split
npm install
npm run dev04 · Код
Репозиторий приватный
Исходники лежат в приватном репозитории. Напишите в Telegram, открою доступ.
Запросить код