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

Operator Cart over Bitrix24

Внутренний инструмент для операторов: быстрая сборка корзины заказа поверх CRM Bitrix24 (сеть Restaurant chain (UZ)). В декабре 2025 переписан на современном стеке Next.js 16 / React 19.

Статус
поддерживается
Период
2021-10-10 → 2025-12-19
AI-сессий
Стек
Языки
TypeScript
Фреймворки · Инфра
Next.js 16React 19TanStack QueryZustandshadcn/ui
§01

Обзор

  • Что это: одностраничное приложение для операторов колл-центра и CRM — выбор категории, поиск товаров, сборка корзины, модификаторы, рекомендованные товары, итоговая сумма. Работает поверх Bitrix24 (поля ID, NAME, UF_QUANTITY — userfields Bitrix24). Данные тянутся из внешнего API.
  • Тип / статус / роль: web-app (внутренний инструмент) / maintained / solo (44 из 45 коммитов — пользователь; 1 — деплой из-под root).
  • Активный период: 2021-10-10 → 2025-12-19. Старая история (2021) — легаси; актуальный продукт — декабрьский (2025) rewrite 5217b80 Modernize CRM Cart: Next.js 16, TypeScript, shadcn/ui.
§02

Стек

  • Языки: TypeScript (strict).
  • Фреймворки/библиотеки: Next.js 16 (App Router, Turbopack), React 19, TanStack Query v5, @tanstack/react-virtual (виртуализация списков), Zustand v5 (стор корзины/UI), shadcn/ui (Radix), Tailwind 3, axios, currency.js (деньги), latin-to-cyrillic + convert-layout (транслитерация/раскладка для поиска), lucide-react.
  • Инфра/деплой: PM2 (ecosystem.config.js, порт 8082, nvm node 20, cwd /home/davr/chopar/crm_cart), сервер choparpizza.uz. Bun + yarn (оба лок-файла).
  • Данные: внешний REST API; бэкенд — CRM Bitrix24.
  • Заметный тулинг: shadcn/ui (components.json).
§03

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

Старые сообщения — мусор («asd», «dsad», «sss»); у декабрьского rewrite — чистые.

  • Модернизация на Next 16 + shadcn/ui (5217b80) — полный rewrite легаси-версии.
  • Поиск с транслитерацией и конвертацией раскладки (3bf9ee1 translit, см. hooks/use-products.ts).
  • Виртуализированный список товаров (components/products/product-list.tsx).
  • Корзина с модификаторами (5af701a ability to remove modifier, c3c454e stock, 6a0d6aa fix of stop text).
  • Рекомендованные товары (bfc5359 related products).
  • Фикс PM2/деплоя (4 коммита: путь к node v20.19.0, cwd, запуск next через node).
  • Объём: 45 коммитов, ~44 от пользователя. Активность короткими всплесками; главный всплеск — декабрьский rewrite 2025.
§04

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

  • Виртуализация списка товаров (product-list.tsx, @tanstack/react-virtual): useVirtualizer({ count, estimateSize: () => 44, overscan: 8 }) с абсолютным позиционированием строк внутри 520px скролл-контейнера. → производительный рендеринг большого каталога без лагов; понимание виртуализации.
  • Умный поиск с транслитерацией и переключением раскладки (hooks/use-products.ts): convert-layout/ru + latin-to-cyrillicproduct.NAME.includes(translit(lowerSearch)), так что оператор находит товар, даже набирая латиницей или в неправильной раскладке клавиатуры (частая боль для RU/UZ-ввода). → продуманный UX под доменную локаль.
  • Оптимистичные обновления корзины (stores/cart-store.ts, Zustand): optimisticIncrement/Decrement/Remove + флаг isUpdating — мгновенный отклик UI до подтверждения сервером (декремент с гардом UF_QUANTITY > 1). → паттерн optimistic UI поверх CRM-бэкенда.
  • Денежные расчёты через currency.js (без float-артефактов).
  • Интеграция с Bitrix24 (UF_* userfields) — адаптация UI-стора под схему CRM.
§05

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

  • Найдено сессий: 0 для точного пути. Локально есть .claude/ (настройки) — проект, вероятно, разрабатывался с Claude Code, но сессии не сохранены в профиле пользователя (или удалены / находятся на другой машине).
  • Что делалось с AI: косвенно — декабрьский rewrite на Next 16/shadcn с чистыми сообщениями коммитов выглядит AI-assisted, но прямых сессий нет.
  • Без данных сессий — никаких выводов о AI-воркфлоу.
§06

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

  • Solo-инструмент, переписанный на современном стеке (Next 16 / React 19 / TanStack / Zustand / shadcn).
  • 3 конкретных инженерных приёма в небольшом объёме: виртуализация, поиск с транслитерацией, optimistic UI.
  • Реальное продакшн-использование (PM2, CRM Bitrix24 сети Restaurant chain (UZ)).
  • Скромный масштаб (одностраничный инструмент, ~5 групп компонентов).
§07

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

git shortlog · все ветки

  1. Dave9344
  2. root1
2 контрибьютора45 коммитов всего
Сейчас

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

Связаться