# Список изменений - NoteJS React

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

Проект реорганизован для независимой работы фронтенда и бэкенда:

### ✅ Backend (Node.js + Express)

**Расположение:** `backend/`

**Что сделано:**

- ✅ Скопирован `server.js` из корня проекта
- ✅ Скопированы `package.json` и `package-lock.json`
- ✅ Изменён порт с `3000` на `3001` (чтобы не конфликтовать со старым приложением)
- ✅ Установлены все зависимости (`npm install`)
- ✅ Созданы папки:
  - `database/` - для SQLite баз данных
  - `public/uploads/` - для загруженных файлов
- ✅ Создан `.gitignore` для исключения ненужных файлов
- ✅ Создан `README.md` с инструкциями

**Запуск:**

```bash
cd backend
npm start
```

**Адрес:** http://localhost:3001

---

### ✅ Frontend (React + TypeScript)

**Расположение:** `src/`

**Что сделано:**

- ✅ Обновлён `vite.config.ts`:
  - Порт изменён на `5173` (стандартный для Vite)
  - Настроен proxy для API запросов к бэкенду (`http://localhost:3001`)
  - Добавлены proxy правила для `/api`, `/uploads`, `/logout`
- ✅ Обновлён `package.json`:
  - Добавлен скрипт `server` для запуска бэкенда
  - Добавлен скрипт `dev:all` для одновременного запуска фронтенда и бэкенда
  - Добавлен скрипт `start` как алиас для `dev:all`
  - Установлен пакет `concurrently` для параллельного запуска

**Запуск только фронтенда:**

```bash
npm run dev
```

**Адрес:** http://localhost:5173

---

## 🚀 Запуск всего приложения

### Вариант 1: Одна команда (рекомендуется)

```bash
npm start
```

Это запустит фронтенд и бэкенд одновременно.

### Вариант 2: Раздельный запуск

**Терминал 1 (Backend):**

```bash
cd backend
npm start
```

**Терминал 2 (Frontend):**

```bash
npm run dev
```

---

## 📋 Установка зависимостей

### Первый раз:

```bash
# Фронтенд
npm install

# Бэкенд
cd backend
npm install
cd ..
```

---

## 🔧 Конфигурация

### Backend (.env)

Создайте файл `backend/.env`:

```env
PORT=3001
SESSION_SECRET=your-secret-key-here
NODE_ENV=development
ENCRYPTION_KEY=your-encryption-key-min-32-chars
```

**Важно:** `ENCRYPTION_KEY` используется для шифрования заметок в базе данных. Используйте надежный случайный ключ минимум 32 символа!

---

## 📍 Порты

- **Frontend (dev):** http://localhost:5173
- **Backend (новый):** http://localhost:3001
- **Старое приложение:** http://localhost:3000 (если запущено)

---

## ✨ Преимущества новой структуры

1. **Независимость:** Фронтенд и бэкенд могут разрабатываться и деплоиться независимо
2. **Современный стек:** Vite для быстрой разработки фронтенда
3. **Hot Reload:** Автоматическая перезагрузка при изменениях
4. **TypeScript:** Типизация на фронтенде
5. **Proxy:** Нет проблем с CORS в разработке
6. **Раздельные зависимости:** Чистое разделение фронтенд/бэкенд зависимостей

---

## 📖 Документация

- [QUICK_START.md](QUICK_START.md) - Быстрый старт
- [README_RU.md](README_RU.md) - Полная документация на русском
- [backend/README.md](backend/README.md) - Документация бэкенда
- [DEBUG.md](DEBUG.md) - Отладка и решение проблем

---

## 🔄 Совместимость со старым приложением

Старое приложение (порт 3000) и новое (порты 5173 + 3001) могут работать одновременно.

**База данных:** Оба приложения используют разные базы данных:

- Старое: `/database/notes.db`
- Новое: `/backend/database/notes.db`

Если нужно использовать общую базу, можно скопировать файлы из `/database/` в `/backend/database/`.
