Назад в архив
IV. Клиентские проекты и логистические платформыдополнительносолоклиент анонимизирован

OFD Backend — Fiscalization for Restaurant Chain

Бэкенд ОФД-фискализации для Restaurant chain (UZ) (web): API на Elysia/Bun + админка на Next.js + кроны. Мультитенантный RBAC, синхронизация типов оплаты (UzCard/Humo) и терминалов через iiko Cloud API, коды SPIC (фискальная классификация UZ). Solo, компактный.

Статус
активный
Период
2026-02-07 → 2026-02-27
AI-сессий
13
Стек
Языки
TypeScriptSQL
Фреймворки · Инфра
Elysia.jsNext.jsDrizzleRedis
§01

Обзор

  • Что это: управляющий бэкенд для фискализации/платежей сети Restaurant chain (UZ) — веб-аналог ofdplugin (#40, C# для iiko). Админка управляет организациями (мультитенантность), продуктами, терминалами, типами оплаты, ролями/правами; синхронизирует данные с iiko Cloud и платёжными провайдерами.
  • Тип / статус / роль: web-app (API + админка) / active / solo (~11/14 коммитов пользователя; 3 — Shahzod).
  • Активный период: 2026-02-07 → 2026-02-27 (~3 недели, компактно). 13 сессий CC.
§02

Стек

  • API (`api/`): Elysia.js (Bun) + bearer-auth + typebox, Drizzle ORM + PostgreSQL (postgres), Redis (ioredis), jose (JWT), otp-generator, radash/lodash, dayjs.
  • Admin (`admin/`): Next.js + react-hook-form + Zustand (product store).
  • Crons (`crons/`): фоновая синхронизация.
  • Модули API: organizations (мультитенант), organizations_users, products, terminals, payment_types, roles/permissions/users/users_roles/roles_permissions (полный RBAC), cache_control.
§03

Что реализовано

  • RBAC + мультитенант: модули roles/permissions/users + organizations.
  • Синхронизация типов оплаты (f0be309, 40f6e27): эндпоинт синка + кнопка в админке, подтягивает/обновляет типы оплаты из внешнего сервиса по каждой организации; интеграция UzCard, card_type.
  • Синхронизация терминалов через iiko Cloud API (d3a9e39).
  • Синхронизация продуктов (5ba77cf — ограничена одной организацией вместо всех; f0be309).
  • SPIC-селектор (6a2e731 — фискальные коды продуктов из отдельного эндпоинта).
  • UI: миграция форм на react-hook-form, Zustand-store + плавающий тулбар + поиск/сортировка продуктов, русификация.
  • Объём: 14 коммитов, ~11 пользователя, 3 недели.
§04

Технические челленджи

  • Интеграция с iiko Cloud API (d3a9e39): синхронизация терминалов из облака iiko в свою БД. → интеграция API с ресторанной платформой (облачная, в отличие от plugin-based в ofdplugin).
  • Синхронизация типов оплаты с внешним провайдером (f0be309): синк по каждой организации (UzCard/Humo), маппинг card_type, ручной триггер из админки с уведомлениями. → доменная работа с платёжными системами UZ.
  • Коды SPIC (6a2e731): селектор фискальных классификаторов продуктов (SPIC — обязательный код фискализации в Узбекистане). → знание локальной фискальной специфики.
  • Мультитенантный RBAC (organizations + roles/permissions/users_roles/roles_permissions): полная модель прав поверх Elysia/Drizzle.
  • Фиксы области синхронизации (5ba77cf — по одной организации, а не по всем) — корректная изоляция данных тенантов.
§05

AI-разработка

  • Найдено сессий: 13 .jsonl. .claude/.
  • Что сделано с AI: построение модулей/синков, миграция форм на react-hook-form, фиксы drizzle-kit v0.31 (dialect/url), вынос типов drizzle-orm в корневой workspace. Чистые описательные коммиты.
  • Паттерн: Claude Code для быстрой сборки CRUD+sync бэкенда на Elysia/Drizzle.
§06

Достижения и метрики

  • Solo-бэкенд фискализации/платежей за ~3 недели: мультитенант, RBAC, 3 синхронизации (платежи/терминалы/продукты), SPIC.
  • Современный стек (Elysia/Bun/Drizzle/Redis/jose).
  • Небольшой объём; метрик нет.
§07

Контрибьюторы

git shortlog · все ветки

  1. Dave9310
  2. shahzodsalimsakov3
  3. Your Name1
3 контрибьютора14 коммитов всего
Сейчас

Открыт к ролям Senior / Staff инженера и избранному фрилансу — продакшн-AI, платформы и full-stack разработка.

Связаться