- 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
168 lines
4.1 KiB
Markdown
168 lines
4.1 KiB
Markdown
# Запуск 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
|