4.7 KiB
4.7 KiB
Changelog
Все значимые изменения в проекте DoSoapCalc документируются в этом файле.
Формат основан на Keep a Changelog, и проект следует Semantic Versioning.
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- общая логика отправки в Telegrambackend/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
- Поддержка загрузки фото