# Changelog Все значимые изменения в проекте DoSoapCalc документируются в этом файле. Формат основан на [Keep a Changelog](https://keepachangelog.com/ru/1.0.0/), и проект следует [Semantic Versioning](https://semver.org/lang/ru/). ## [2.0.0] - 2024-11-01 ### Добавлено - **Модульная архитектура калькуляторов**: Система поддержки множества калькуляторов с единой логикой - **Система регистрации калькуляторов**: Плагинная архитектура для backend и frontend - **Универсальный компонент DynamicCalculator**: Автоматическая генерация форм из схемы полей - **Пример нового калькулятора**: Калькулятор свечей (candle) как пример добавления новых калькуляторов - **Динамические роуты**: Поддержка `/[calculatorType]` для любых зарегистрированных калькуляторов - **Переменные окружения**: Использование `.env` файлов вместо хардкода - **Валидация данных**: Проверка обязательных и числовых полей на backend - **Улучшенная обработка ошибок**: Детальное логирование и обработка ошибок Telegram API - **PM2 конфигурация**: Файл `ecosystem.config.js` для управления процессами - **Конфигурация CORS**: Настройка разрешённых доменов через переменные окружения - **Документация**: - `PROJECT_INFO.md` - сводная информация о проекте для быстрого понимания - `CALCULATOR_GUIDE.md` - руководство по добавлению новых калькуляторов - `README.md` - обновлённая документация проекта - `CHANGELOG.md` - этот файл для отслеживания изменений ### Изменено - **Рефакторинг backend**: Разделение на модули (calculators, lib, routes, config) - **Рефакторинг frontend**: Переход на модульную систему с TypeScript типами - **API маршруты**: Изменён с `/api/submit` на `/api/submit/:calculatorType` - **Компонент SoapCalculator**: Заменён на универсальный DynamicCalculator - **Структура проекта**: Реорганизована для масштабируемости ### Улучшено - **Безопасность**: Токены и URL вынесены в переменные окружения - **Масштабируемость**: Легко добавлять новые калькуляторы без изменения основной логики - **Типизация**: Добавлены TypeScript типы для калькуляторов - **Код-организация**: Разделение ответственности между модулями ### Технические детали #### Backend структура: - `backend/config/env.js` - загрузка переменных окружения - `backend/lib/telegram.js` - общая логика отправки в Telegram - `backend/lib/validator.js` - валидация данных - `backend/calculators/` - модули калькуляторов - `backend/routes/api.js` - динамические API маршруты #### Frontend структура: - `frontend/types/calculator.ts` - TypeScript типы - `frontend/lib/calculators/` - модули калькуляторов (frontend) - `frontend/components/DynamicCalculator.tsx` - универсальный компонент - `frontend/app/[calculator]/page.tsx` - динамические роуты ### Зависимости - **Добавлено**: `dotenv@^16.4.5` для работы с переменными окружения ## [1.0.0] - 2024-10-XX ### Добавлено - Базовый функционал калькулятора мыла - Интеграция с Telegram ботом - Веб-интерфейс на Next.js - Отправка результатов расчёта в Telegram - Поддержка загрузки фото --- [2.0.0]: https://github.com/yourusername/DoSoapCalc/compare/v1.0.0...v2.0.0 [1.0.0]: https://github.com/yourusername/DoSoapCalc/releases/tag/v1.0.0