DoSoapCalc/docs/CHANGELOG.md
DosAi 88ed4b3580 docs: Add knowledge base, project rules and organize documentation
- Created .cursorrules for development context

- Added KNOWLEDGE_BASE.md with architecture details

- Added PROJECT_RULES.md with coding standards

- Updated README.md with project overview

- Moved CHANGELOG.md and PLAN.md to docs/ folder

- Updated CHANGELOG.md with latest changes
2025-11-02 16:09:30 +03:00

5.7 KiB
Raw Permalink Blame History

История изменений

[Не опубликовано] - Рефакторинг под модульную архитектуру

Добавлено

  • Модульная система калькуляторов: Создана универсальная архитектура для добавления новых калькуляторов через конфигурационные файлы
  • Система типов (frontend/lib/calculator-types.ts): Типизация для полей, шагов расчета, подитогов и конфигураций калькуляторов
  • Реестр калькуляторов (frontend/lib/calculator-registry.ts): Централизованная система регистрации и управления калькуляторами
  • Универсальный компонент CalculatorEngine (frontend/components/CalculatorEngine.tsx): Динамический рендеринг форм на основе конфигурации
  • Компонент меню выбора (frontend/components/CalculatorMenu.tsx): Интерфейс для выбора калькулятора
  • Модуль калькулятора мыла (frontend/calculators/soap/): Калькулятор мыла вынесен в отдельный модуль с конфигурацией
  • Модуль калькулятора свечей (frontend/calculators/candles/): Добавлен пример калькулятора свечей для демонстрации модульной системы
  • Универсальный бэкенд: Адаптирован backend/bot.js для работы с любыми типами калькуляторов
  • Команда /myid: Добавлена команда в бота для получения chat_id пользователя
  • Документация: Создано руководство по созданию новых калькуляторов (frontend/docs/calculator-creation-guide.md)

Изменено

  • Главная страница (frontend/app/page.tsx): Теперь отображает меню выбора калькулятора вместо прямого отображения калькулятора мыла
  • Бэкенд API (backend/bot.js): Универсализирован для обработки данных от любых калькуляторов с поддержкой форматирования сообщений через конфигурацию

Удалено

  • Старый компонент SoapCalculator (frontend/components/SoapCalculator.tsx): Заменен на модульную систему
  • Старая логика расчетов (frontend/lib/calc.ts): Перенесена в модуль калькулятора мыла

Исправлено

  • Отступы между полями и блоками расчета: Добавлены правильные отступы между группами полей и соответствующими блоками расчета
  • Расчет цены за 100г: Исправлена формула, теперь корректно использует дополнительные расчеты
  • NaN в расчетах: Добавлены проверки на деление на ноль и пустые значения
  • URL API для локальной разработки: Исправлен URL бэкенда для работы с localhost

Технические детали

  • Каждый калькулятор теперь состоит из конфигурационного файла (config.ts) и опционального файла с функциями расчета (calc.ts)
  • Добавление нового калькулятора требует только создания модуля и регистрации в реестре
  • Все поля, формулы и подитоги настраиваются через конфигурацию
  • Поддержка различных типов полей: text, number, file
  • Группировка полей через groupName с показом блоков расчета после групп через showStepAfter
  • Динамическое форматирование сообщений для Telegram через функцию formatTelegramMessage в конфигурации
  • Дополнительные расчеты могут зависеть от других дополнительных расчетов (передается 4-й параметр additional)
  • Автоматическое определение URL API (localhost для разработки, продакшн для деплоя)

Добавлено после первоначального релиза

  • Калькулятор свечей: Добавлен полнофункциональный пример калькулятора для свечей (frontend/calculators/candles/) с демонстрацией всех возможностей системы
  • Исправления для production build: Устранены ошибки ESLint (удален any, добавлен комментарий для <img>)
  • База знаний и правила проекта: Создана документация для контекста разработки (.cursorrules, docs/KNOWLEDGE_BASE.md, docs/PROJECT_RULES.md)
  • Организация документации: Вся документация собрана в папке docs/