- 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
4.1 KiB
4.1 KiB
Запуск 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- Проверка OTPGET /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 уведомления
Контакты
- Email: support@nutshell.dev
- GitHub: https://github.com/nutshell/site-aggregator