# NoteJS React

Современное PWA приложение для ведения заметок на React + TypeScript + Vite

## 🚀 Быстрый старт

```bash
# 1. Установка зависимостей
./install.sh

# 2. Запуск приложения
./start.sh
```

Приложение будет доступно по адресу: **http://localhost:5173**

## 📋 Команды

```bash
# Запуск фронтенда и бэкенда
npm start

# Только фронтенд (порт 5173)
npm run dev

# Только бэкенд (порт 3001)
npm run server

# Production сборка
npm run build
```

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

```
notejs-react/
├── backend/          # Backend сервер (Node.js + Express)
│   ├── database/     # SQLite базы данных
│   ├── public/       # Статические файлы и загрузки
│   └── server.js     # Основной файл сервера
├── src/              # Frontend (React + TypeScript)
│   ├── api/          # API клиенты
│   ├── components/   # React компоненты
│   ├── pages/        # Страницы приложения
│   ├── store/        # Redux store
│   ├── hooks/        # Кастомные хуки
│   ├── utils/        # Утилиты
│   └── styles/       # CSS стили
├── public/           # Публичные файлы PWA
└── vite.config.ts    # Конфигурация Vite
```

## 🌐 Адреса

- **Frontend (dev):** http://localhost:5173
- **Backend API:** http://localhost:3001
- **Старая версия:** http://localhost:3000 (не конфликтует)

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

- **[QUICK_START.md](QUICK_START.md)** - Инструкции для начинающих
- **[README_RU.md](README_RU.md)** - Полная документация на русском
- **[COMMANDS.md](COMMANDS.md)** - Справка по командам
- **[CHANGES.md](CHANGES.md)** - Список изменений
- **[backend/README.md](backend/README.md)** - Документация бэкенда

## ✨ Функционал

- 📝 Markdown редактор с поддержкой форматирования
- 🖼️ Загрузка изображений
- 📎 Прикрепление файлов
- 📌 Закрепление заметок
- 📦 Архивация
- 🔍 Поиск и фильтры
- 🏷️ Система тегов
- 🌓 Тёмная/светлая тема
- 🤖 AI функционал
- 📱 PWA с офлайн поддержкой
- 📅 Календарь заметок

## 🛠️ Технологии

### Frontend

- React 18 + TypeScript
- Redux Toolkit
- Vite
- Marked (Markdown)
- Axios

### Backend

- Node.js + Express
- SQLite3
- Multer (загрузка файлов)
- Bcrypt (аутентификация)

## 📦 Требования

- Node.js >= 14
- npm >= 6

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

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

```env
PORT=3001
SESSION_SECRET=your-secret-key-here
NODE_ENV=development
```

## 🤝 Вклад в проект

Приветствуются pull requests и issue!

## 📄 Лицензия

ISC
