139 lines
4.8 KiB
Markdown
139 lines
4.8 KiB
Markdown
# NoteJS - Приложение для быстрых заметок
|
||
|
||
Простое веб-приложение для создания и управления заметками с поддержкой Markdown форматирования.
|
||
|
||
## Особенности
|
||
|
||
- 🚀 Создано на Node.js + Express
|
||
- 🔐 Аутентификация по паролю (без логина)
|
||
- 💾 Хранение данных в SQLite базе данных
|
||
- 📝 Поддержка Markdown форматирования
|
||
- 🎨 Простой и интуитивный интерфейс
|
||
- 📱 Адаптивный дизайн
|
||
|
||
## Установка и запуск
|
||
|
||
### Предварительные требования
|
||
|
||
- Node.js (версия 14 или выше)
|
||
- npm
|
||
|
||
### Установка
|
||
|
||
1. Клонируйте репозиторий:
|
||
|
||
```bash
|
||
git clone <repository-url>
|
||
cd NoteJS
|
||
```
|
||
|
||
2. Установите зависимости:
|
||
|
||
```bash
|
||
npm install
|
||
```
|
||
|
||
3. Настройте аутентификацию:
|
||
- Откройте файл `.env`
|
||
- Установите пароль для входа в переменной `APP_PASSWORD`
|
||
- Установите секрет сессии в переменной `SESSION_SECRET`
|
||
- Установите порт в переменной `PORT` (по умолчанию 3000)
|
||
|
||
Пример файла `.env`:
|
||
|
||
```env
|
||
APP_PASSWORD=your_secure_password_here
|
||
SESSION_SECRET=your_session_secret_here
|
||
PORT=3000
|
||
```
|
||
|
||
4. Запустите сервер:
|
||
|
||
```bash
|
||
npm start
|
||
```
|
||
|
||
5. Откройте браузер и перейдите по адресу `http://localhost:3000`
|
||
|
||
## Использование
|
||
|
||
### Вход в систему
|
||
|
||
1. При первом запуске введите пароль, указанный в файле `.env`
|
||
2. После успешного входа вы попадете в интерфейс заметок
|
||
|
||
### Создание заметок
|
||
|
||
1. Введите текст заметки в поле ввода
|
||
2. Используйте кнопки форматирования для добавления Markdown элементов:
|
||
- **B** - жирный текст
|
||
- _I_ - курсив
|
||
- H - заголовок
|
||
- 📋 - элемент списка
|
||
- " - цитата
|
||
- `</>` - код
|
||
- 🔗 - ссылка
|
||
3. Нажмите кнопку "Сохранить"
|
||
|
||
### Редактирование заметок
|
||
|
||
1. Нажмите кнопку "Редактировать" рядом с заметкой
|
||
2. Отредактируйте текст в появившемся поле ввода
|
||
3. Нажмите кнопку "Сохранить"
|
||
|
||
### Удаление заметок
|
||
|
||
1. Нажмите кнопку "Удалить" рядом с заметкой
|
||
2. Подтвердите удаление в появившемся диалоговом окне
|
||
|
||
## Структура проекта
|
||
|
||
```
|
||
NoteJS/
|
||
├── public/ # Статические файлы (клиентская часть)
|
||
│ ├── index.html # Страница входа
|
||
│ ├── notes.html # Страница заметок
|
||
│ ├── style.css # Стили
|
||
│ └── app.js # Клиентский JavaScript
|
||
├── server.js # Express сервер
|
||
├── .env # Конфигурация (не включать в git!)
|
||
├── package.json # Зависимости проекта
|
||
├── notes.db # SQLite база данных (создается автоматически)
|
||
└── README.md # Документация
|
||
```
|
||
|
||
## API Endpoints
|
||
|
||
### Аутентификация
|
||
|
||
- `POST /login` - вход в систему
|
||
- `POST /logout` - выход из системы
|
||
|
||
### Заметки (требуют аутентификации)
|
||
|
||
- `GET /api/notes` - получить все заметки
|
||
- `POST /api/notes` - создать новую заметку
|
||
- `PUT /api/notes/:id` - обновить заметку
|
||
- `DELETE /api/notes/:id` - удалить заметку
|
||
|
||
## Безопасность
|
||
|
||
- Helmet для защиты от распространенных уязвимостей
|
||
- Ограничение запросов (rate limiting)
|
||
- Сессионная аутентификация
|
||
- Защищенные заголовки
|
||
|
||
## Разработка
|
||
|
||
Для разработки используйте:
|
||
|
||
```bash
|
||
npm run dev
|
||
```
|
||
|
||
Этот скрипт использует **nodemon** для автоматической перезагрузки сервера при изменении файлов. Больше не нужно вручную перезапускать сервер при каждом изменении кода!
|
||
|
||
## Лицензия
|
||
|
||
Этот проект создан Fovway.
|