Files
Aggregator/DEPLOYMENT.md
Semen_Babenishev 4420c5c60a Initial: Nutshell Site Aggregator MVP Phase 1
- Backend: Express + TypeORM + PostgreSQL, JWT + OTP auth
- Frontend: React + Vite + Tailwind, 4 pages (Home/Login/Orders/404)
- Docker Compose: PostgreSQL 15 on port 5434
- Tests: 16 tests passing (API + Frontend)
- ai_state: rules.md, INSTRUCTIONS.md, session tasks
- Examples: brand book PDF, logos, page mockups
2026-07-16 11:38:08 +04:00

4.1 KiB
Raw Blame History

Запуск Nutshell Site Aggregator

Предварительные требования

  • Node.js 18+ (установлен: npm 11.11.0)
  • Docker Desktop (опционально, или PostgreSQL локально)
  • Windows 10+

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

backend/          - Express.js API (TypeScript, port 3001)
frontend/         - React + Vite (TypeScript, port 3000)
processing/       - Python валидатор моделей
docker-compose.yml - PostgreSQL + Nginx конфиг

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

1. Установка зависимостей

Backend:

cd backend
npm install

Frontend:

cd frontend
npm install

2. Переменные окружения

backend/.env (контейнер БД):

NODE_ENV=development
PORT=3001
DATABASE_HOST=localhost
DATABASE_PORT=5432
DATABASE_USER=nutshell
DATABASE_PASSWORD=nutshell_dev_password
DATABASE_NAME=nutshell_db
JWT_SECRET=your_jwt_secret_key_change_this_in_production
SMS_PROVIDER=mock

frontend/.env (URL API сервера):

VITE_API_URL=http://localhost:3001/api

3. Запуск сервисов

Вариант 1: Docker Compose (PostgreSQL + Nginx)

docker-compose up -d

Вариант 2: Локальный PostgreSQL

  • Установить PostgreSQL 15
  • Создать БД nutshell_db
  • Обновить DATABASE_HOST в backend/.env

4. Запуск серверов

Backend (новый терминал):

cd backend
npm run dev

Будет слушать на http://localhost:3001/api

Frontend (новый терминал):

cd frontend
npm run dev

Будет слушать на http://localhost:3000

5. Проверка

Откройте http://localhost:3000 в браузере

Скрипты для быстрого старта

Запустить всё сразу (Windows):

start_all.bat

Только backend:

start_backend.bat

Только frontend:

start_frontend.bat

API Эндпоинты

  • POST /api/auth/login - Вход (phone)
  • POST /api/auth/verify-otp - Проверка OTP
  • GET /api/orders - Список заказов (требует JWT)
  • GET /api/health - Статус сервера

Архитектура

Frontend (React + Vite)

  • Pages: HomePage, LoginPage, OrdersPage, NotFoundPage
  • Context: AuthContext (JWT, user state)
  • i18n: Поддержка русского и английского
  • API: Axios с JWT middleware

Backend (Express + TypeORM)

  • Entities: User, Order, Model3D, Pricing, Translation
  • Auth: JWT + SMS OTP (mock mode)
  • DB: PostgreSQL 15
  • Storage: Nginx (max 200MB)

Database (PostgreSQL 15)

  • 5 таблиц (User, Order, Model3D, Pricing, Translation)
  • JWT токены, OTP, заказы
  • Миграции не требуются (init скрипты в docker-compose.yml)

Проблемы и решения

PowerShell блокирует npm

Используйте cmd.exe вместо PowerShell или скрипты .bat

Docker не запускается

Используйте локальный PostgreSQL:

# Ubuntu/Debian
sudo apt-get install postgresql-15
sudo -u postgres createdb nutshell_db

# Windows
# Скачайте PostgreSQL 15 отсюда: https://www.postgresql.org/download/windows/

Port 3000/3001 уже занят

Измените PORT в backend/.env и VITE_API_URL в frontend/.env

MVP Статус

Реализовано (Phase 1)

  • 4 страницы (HomePage, LoginPage, OrdersPage, NotFoundPage)
  • Аутентификация (JWT + OTP)
  • React Context для state management
  • i18n (русский/английский)
  • Tailwind CSS styling
  • Express API с TypeORM
  • PostgreSQL + Docker

🔄 В разработке

  • Загрузка 3D моделей
  • Расчёт стоимости заказа
  • Email/SMS уведомления

Контакты