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
This commit is contained in:
2026-07-16 11:38:08 +04:00
commit 4420c5c60a
73 changed files with 11088 additions and 0 deletions

167
DEPLOYMENT.md Normal file
View File

@@ -0,0 +1,167 @@
# Запуск 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:**
```bash
cd backend
npm install
```
**Frontend:**
```bash
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)**
```bash
docker-compose up -d
```
**Вариант 2: Локальный PostgreSQL**
- Установить PostgreSQL 15
- Создать БД `nutshell_db`
- Обновить `DATABASE_HOST` в backend/.env
### 4. Запуск серверов
**Backend (новый терминал):**
```bash
cd backend
npm run dev
```
Будет слушать на `http://localhost:3001/api`
**Frontend (новый терминал):**
```bash
cd frontend
npm run dev
```
Будет слушать на `http://localhost:3000`
### 5. Проверка
Откройте http://localhost:3000 в браузере
## Скрипты для быстрого старта
**Запустить всё сразу (Windows):**
```bash
start_all.bat
```
**Только backend:**
```bash
start_backend.bat
```
**Только frontend:**
```bash
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:
```bash
# 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