- 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
5.7 KiB
5.7 KiB
История изменений
[Не опубликовано] - Рефакторинг под модульную архитектуру
Добавлено
- Модульная система калькуляторов: Создана универсальная архитектура для добавления новых калькуляторов через конфигурационные файлы
- Система типов (
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/