7.1 KiB
7.1 KiB
NoteJS - Приложение для быстрых заметок
Простое веб-приложение для создания и управления заметками с поддержкой Markdown форматирования и системой аутентификации.
Особенности
- 🚀 Создано на Node.js + Express
- 🔐 Система регистрации и авторизации по логину и паролю (NEW!)
- 🔒 Безопасное хранение паролей с bcrypt хешированием
- 💾 Хранение данных в SQLite базе данных
- 👥 Изолированные заметки - каждый пользователь видит только свои заметки (NEW!)
- 📝 Поддержка Markdown форматирования
- 🎨 Простой и интуитивный интерфейс
- 📱 Адаптивный дизайн
Установка и запуск
Предварительные требования
- Node.js (версия 14 или выше)
- npm
Установка
- Клонируйте репозиторий:
git clone <repository-url>
cd NoteJS
- Установите зависимости:
npm install
- Настройте переменные окружения:
- Откройте файл
.env - Установите секрет сессии в переменной
SESSION_SECRET - Установите порт в переменной
PORT(по умолчанию 3000)
- Откройте файл
Пример файла .env:
SESSION_SECRET=your_session_secret_here
PORT=3000
- Запустите сервер:
npm start
- Откройте браузер и перейдите по адресу
http://localhost:3000
Использование
Регистрация
- Нажмите на ссылку "Зарегистрируйтесь" на странице входа
- Заполните форму регистрации:
- Логин: минимум 3 символа
- Пароль: минимум 6 символов
- Подтвердите пароль: повторите пароль
- Нажмите кнопку "Зарегистрироваться"
- Вы будете автоматически залогинены и перенаправлены на страницу заметок
Вход в систему
- Введите ваш логин
- Введите ваш пароль
- Нажмите кнопку "Войти"
- После успешного входа вы попадете в интерфейс заметок
Создание заметок
- Введите текст заметки в поле ввода
- Используйте кнопки форматирования для добавления Markdown элементов:
- B - жирный текст
- I - курсив
- H - заголовок
- 📋 - элемент списка
- " - цитата
</>- код- 🔗 - ссылка
- Нажмите кнопку "Сохранить"
Редактирование заметок
- Нажмите кнопку "Редактировать" рядом с заметкой
- Отредактируйте текст в появившемся поле ввода
- Нажмите кнопку "Сохранить"
Удаление заметок
- Нажмите кнопку "Удалить" рядом с заметкой
- Подтвердите удаление в появившемся диалоговом окне
Выход из системы
Нажмите кнопку "🚪 Выйти" в верхней части страницы заметок
Структура проекта
NoteJS/
├── public/ # Статические файлы (клиентская часть)
│ ├── index.html # Страница входа
│ ├── register.html # Страница регистрации (NEW!)
│ ├── notes.html # Страница заметок
│ ├── login.js # Логика входа (обновлена)
│ ├── register.js # Логика регистрации (NEW!)
│ ├── app.js # Клиентский JavaScript
│ └── style.css # Стили
├── server.js # Express сервер
├── .env # Конфигурация (не включать в git!)
├── package.json # Зависимости проекта
├── notes.db # SQLite база данных (создается автоматически)
└── README.md # Документация
API Endpoints
Аутентификация
GET /- страница входаGET /register- страница регистрацииPOST /api/register- регистрация нового пользователяPOST /api/login- вход в системуPOST /logout- выход из системыGET /api/user- получить информацию о текущем пользователе (требует аутентификации)
Заметки (требуют аутентификации)
GET /notes- страница заметокGET /api/notes- получить все заметкиPOST /api/notes- создать новую заметкуPUT /api/notes/:id- обновить заметкуDELETE /api/notes/:id- удалить заметку
Безопасность
- Bcrypt хеширование паролей при сохранении
- Сессионная аутентификация с express-session
- Helmet для защиты от распространенных уязвимостей
- CORS конфигурация
- Body Parser для безопасной обработки запросов
- Защищенные маршруты с проверкой аутентификации
Требования к паролям
- Минимум 6 символов при регистрации
- Пароли хешируются с использованием bcrypt (стандарт раундов: 10)
- Пароли не могут быть восстановлены из БД
Требования к логину
- Минимум 3 символа
- Должен быть уникальным (нельзя создать два аккаунта с одинаковым логином)
Разработка
Для разработки используйте:
npm run dev
Этот скрипт использует nodemon для автоматической перезагрузки сервера при изменении файлов. Больше не нужно вручную перезапускать сервер при каждом изменении кода!
Лицензия
Этот проект создан Fovway.