# NoteJS - Приложение для быстрых заметок Простое веб-приложение для создания и управления заметками с поддержкой Markdown форматирования. ## Особенности - 🚀 Создано на Node.js + Express - 🔐 Аутентификация по паролю (без логина) - 💾 Хранение данных в SQLite базе данных - 📝 Поддержка Markdown форматирования - 🎨 Простой и интуитивный интерфейс - 📱 Адаптивный дизайн ## Установка и запуск ### Предварительные требования - Node.js (версия 14 или выше) - npm ### Установка 1. Клонируйте репозиторий: ```bash git clone 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.