199 lines
4.7 KiB
Markdown
199 lines
4.7 KiB
Markdown
# NoteJS React - Приложение для заметок
|
||
|
||
Современное PWA приложение для ведения заметок с поддержкой Markdown, изображений, файлов и AI.
|
||
|
||
## Структура проекта
|
||
|
||
```
|
||
notejs-react/
|
||
├── backend/ # Backend сервер (Node.js + Express)
|
||
│ ├── database/ # SQLite базы данных
|
||
│ ├── public/ # Статические файлы и загрузки
|
||
│ ├── server.js # Основной файл сервера
|
||
│ └── package.json # Зависимости бэкенда
|
||
├── src/ # Frontend исходники (React + TypeScript)
|
||
│ ├── api/ # API клиенты
|
||
│ ├── components/ # React компоненты
|
||
│ ├── hooks/ # Кастомные хуки
|
||
│ ├── pages/ # Страницы приложения
|
||
│ ├── store/ # Redux store
|
||
│ ├── styles/ # CSS стили
|
||
│ ├── types/ # TypeScript типы
|
||
│ └── utils/ # Утилиты
|
||
├── public/ # Публичные файлы (иконки, манифест)
|
||
└── package.json # Зависимости фронтенда
|
||
```
|
||
|
||
## Установка
|
||
|
||
### 1. Установка зависимостей фронтенда
|
||
|
||
```bash
|
||
npm install
|
||
```
|
||
|
||
### 2. Установка зависимостей бэкенда
|
||
|
||
```bash
|
||
cd backend
|
||
npm install
|
||
cd ..
|
||
```
|
||
|
||
## Запуск
|
||
|
||
### Вариант 1: Запуск всего приложения (рекомендуется)
|
||
|
||
```bash
|
||
npm start
|
||
```
|
||
|
||
или
|
||
|
||
```bash
|
||
npm run dev:all
|
||
```
|
||
|
||
Это запустит:
|
||
|
||
- **Frontend** на `http://localhost:5173`
|
||
- **Backend** на `http://localhost:3001`
|
||
|
||
### Вариант 2: Раздельный запуск
|
||
|
||
**Frontend:**
|
||
|
||
```bash
|
||
npm run dev
|
||
```
|
||
|
||
**Backend (в отдельном терминале):**
|
||
|
||
```bash
|
||
npm run server
|
||
```
|
||
|
||
или
|
||
|
||
```bash
|
||
cd backend
|
||
npm start
|
||
```
|
||
|
||
## Функционал
|
||
|
||
### ✨ Основные возможности
|
||
|
||
- 📝 Создание и редактирование заметок с Markdown
|
||
- 🖼️ Загрузка изображений к заметкам
|
||
- 📎 Прикрепление файлов (PDF, DOC, XLS, ZIP и др.)
|
||
- 📌 Закрепление важных заметок
|
||
- 📦 Архивация заметок
|
||
- 🔍 Поиск по заметкам и тегам
|
||
- 📅 Календарь заметок
|
||
- 🏷️ Система тегов
|
||
- 🌓 Светлая/тёмная тема
|
||
- 🎨 Настройка цветовой схемы
|
||
- 👤 Профили пользователей с аватарами
|
||
|
||
### 🤖 AI функционал
|
||
|
||
- Улучшение текста заметок
|
||
- Исправление ошибок
|
||
- Генерация контента
|
||
- Настройка собственного OpenAI-совместимого API
|
||
|
||
### 📱 PWA
|
||
|
||
- Установка как приложение
|
||
- Работа офлайн (Service Worker)
|
||
- Push-уведомления (опционально)
|
||
- Адаптивный дизайн для всех устройств
|
||
|
||
### Markdown поддержка
|
||
|
||
- Заголовки (H1-H5)
|
||
- **Жирный** и _курсив_
|
||
- Списки (маркированные и нумерованные)
|
||
- ~~Зачеркнутый текст~~
|
||
- [Ссылки](https://example.com)
|
||
- `Код` и блоки кода
|
||
- Todo списки с чекбоксами
|
||
- ||Спойлеры||
|
||
- Внешние ссылки
|
||
|
||
## Технологии
|
||
|
||
### Frontend
|
||
|
||
- React 18
|
||
- TypeScript
|
||
- Redux Toolkit
|
||
- React Router
|
||
- Vite
|
||
- Axios
|
||
- Marked (Markdown)
|
||
- Iconify
|
||
|
||
### Backend
|
||
|
||
- Node.js
|
||
- Express
|
||
- SQLite3
|
||
- Bcrypt
|
||
- Multer
|
||
- Express Session
|
||
- Helmet
|
||
|
||
## Разработка
|
||
|
||
### Сборка production версии
|
||
|
||
```bash
|
||
npm run build
|
||
```
|
||
|
||
Собранные файлы будут в папке `dist/`.
|
||
|
||
### Проверка типов
|
||
|
||
```bash
|
||
npm run lint
|
||
```
|
||
|
||
## Конфигурация
|
||
|
||
### Backend (.env)
|
||
|
||
Создайте файл `backend/.env`:
|
||
|
||
```env
|
||
PORT=3001
|
||
SESSION_SECRET=your-secret-key-here
|
||
NODE_ENV=development
|
||
```
|
||
|
||
### AI настройки
|
||
|
||
Настройки AI выполняются через интерфейс приложения в разделе "Настройки".
|
||
|
||
Требуется:
|
||
|
||
- OpenAI API Key (или ключ совместимого API)
|
||
- Base URL (например, `https://api.openai.com/v1/`)
|
||
- Модель (например, `gpt-3.5-turbo`)
|
||
|
||
## Порты
|
||
|
||
- **Frontend (dev)**: `http://localhost:5173`
|
||
- **Backend**: `http://localhost:3001`
|
||
- **Старое приложение**: `http://localhost:3000` (если запущено)
|
||
|
||
## Лицензия
|
||
|
||
ISC
|
||
|
||
## Автор
|
||
|
||
NoteJS Team
|