Калькулятор мыловара
Go to file
2025-11-01 20:22:37 +03:00
backend chore: Обновлён package-lock.json после установки зависимостей 2025-11-01 19:16:33 +03:00
frontend fix: Улучшено получение chat_id из URL для статического экспорта 2025-11-01 20:22:37 +03:00
.git_setup.md docs: Обновлена документация по настройке Git credentials 2025-11-01 19:44:20 +03:00
.gitignore Initial commit 2025-06-04 02:46:45 +03:00
CALCULATOR_GUIDE.md docs: Добавлен CHANGELOG для отслеживания изменений 2025-11-01 19:08:08 +03:00
CHANGELOG.md docs: Обновлена документация по настройке Git credentials 2025-11-01 19:44:20 +03:00
ecosystem.config.js docs: Добавлен CHANGELOG для отслеживания изменений 2025-11-01 19:08:08 +03:00
PROJECT_INFO.md docs: Добавлен CHANGELOG для отслеживания изменений 2025-11-01 19:08:08 +03:00
README.md docs: Обновлена документация по настройке Git credentials 2025-11-01 19:44:20 +03:00

DoSoapCalc

Калькулятор себестоимости изделий ручной работы с отправкой результатов в Telegram.

Описание

DoSoapCalc - это система для расчёта себестоимости различных изделий ручной работы (мыло, свечи и др.) с веб-интерфейсом и интеграцией с Telegram-ботом.

Архитектура

Проект состоит из двух частей:

  • Backend (Node.js + Express) - API сервер и Telegram-бот
  • Frontend (Next.js + React + TypeScript) - веб-интерфейс калькуляторов

Быстрый старт

Backend

  1. Перейдите в папку backend:
cd backend
  1. Установите зависимости:
npm install
  1. Создайте файл .env на основе .env.example:
cp .env.example .env
  1. Заполните переменные окружения в .env:
BOT_TOKEN=your_telegram_bot_token
WEBAPP_BASE_URL=https://your-domain.com
API_BASE_URL=https://api.your-domain.com
HTTP_PORT=3001
CORS_ORIGINS=https://your-domain.com
  1. Запустите сервер:
node bot.js

Frontend

  1. Перейдите в папку frontend:
cd frontend
  1. Установите зависимости:
npm install
  1. (Опционально) Создайте файл .env.local для переопределения API URL:
NEXT_PUBLIC_API_BASE_URL=https://api.your-domain.com
  1. Запустите dev-сервер:
npm run dev
  1. Для production сборки:
npm run build
npm run export

Добавление новых калькуляторов

См. подробное руководство в файле CALCULATOR_GUIDE.md

Структура проекта

DoSoapCalc/
├── backend/
│   ├── calculators/        # Модули калькуляторов
│   │   ├── index.js        # Регистрация калькуляторов
│   │   ├── soap.js         # Калькулятор мыла
│   │   └── candle.js       # Пример: калькулятор свечей
│   ├── config/
│   │   └── env.js          # Загрузка переменных окружения
│   ├── lib/
│   │   ├── telegram.js     # Логика отправки в Telegram
│   │   └── validator.js    # Валидация данных
│   ├── routes/
│   │   └── api.js           # API маршруты
│   └── bot.js               # Главный файл backend
│
└── frontend/
    ├── app/
    │   ├── [calculator]/    # Динамический роут для калькуляторов
    │   └── page.tsx         # Редирект на /soap
    ├── components/
    │   ├── DynamicCalculator.tsx  # Универсальный компонент
    │   └── FormField.tsx          # Переиспользуемые поля
    ├── lib/
    │   ├── calculators/     # Модули калькуляторов (frontend)
    │   │   ├── index.ts
    │   │   ├── soap.ts
    │   │   └── candle.ts
    │   ├── api.ts           # Логика отправки данных
    │   └── config.ts        # Конфигурация
    └── types/
        └── calculator.ts     # TypeScript типы

Использование

  1. Откройте Telegram-бота
  2. Отправьте команду /menu
  3. Нажмите на кнопку для открытия калькулятора
  4. Заполните форму
  5. Нажмите "Отправить расчёт в Telegram"
  6. Результаты будут отправлены в чат с ботом

Доступные калькуляторы

  • Мыло (/soap) - расчёт себестоимости мыла ручной работы
  • Свеча (/candle) - пример калькулятора свечей

Технологии

Backend:

  • Node.js
  • Express
  • node-telegram-bot-api
  • multer (загрузка файлов)

Frontend:

  • Next.js 15
  • React 19
  • TypeScript
  • Tailwind CSS 4

Настройка Git (автоматическая отправка)

Для автоматической отправки изменений в репозиторий без запроса пароля:

  1. Credential helper уже настроен на store
  2. При первом git push введите логин и пароль - они сохранятся
  3. Все последующие push будут выполняться автоматически
git push origin main
# Username: ваш_логин
# Password: ваш_пароль

Подробные инструкции по альтернативным вариантам (SSH, токены) см. в .git_setup.md

Лицензия

ISC