NoteJS/README.md

7.1 KiB
Raw Blame History

NoteJS - Приложение для быстрых заметок

Простое веб-приложение для создания и управления заметками с поддержкой Markdown форматирования и системой аутентификации.

Особенности

  • 🚀 Создано на Node.js + Express
  • 🔐 Система регистрации и авторизации по логину и паролю (NEW!)
  • 🔒 Безопасное хранение паролей с bcrypt хешированием
  • 💾 Хранение данных в SQLite базе данных
  • 👥 Изолированные заметки - каждый пользователь видит только свои заметки (NEW!)
  • 📝 Поддержка Markdown форматирования
  • 🎨 Простой и интуитивный интерфейс
  • 📱 Адаптивный дизайн

Установка и запуск

Предварительные требования

  • Node.js (версия 14 или выше)
  • npm

Установка

  1. Клонируйте репозиторий:
git clone <repository-url>
cd NoteJS
  1. Установите зависимости:
npm install
  1. Настройте переменные окружения:
    • Откройте файл .env
    • Установите секрет сессии в переменной SESSION_SECRET
    • Установите порт в переменной PORT (по умолчанию 3000)

Пример файла .env:

SESSION_SECRET=your_session_secret_here
PORT=3000
  1. Запустите сервер:
npm start
  1. Откройте браузер и перейдите по адресу http://localhost:3000

Использование

Регистрация

  1. Нажмите на ссылку "Зарегистрируйтесь" на странице входа
  2. Заполните форму регистрации:
    • Логин: минимум 3 символа
    • Пароль: минимум 6 символов
    • Подтвердите пароль: повторите пароль
  3. Нажмите кнопку "Зарегистрироваться"
  4. Вы будете автоматически залогинены и перенаправлены на страницу заметок

Вход в систему

  1. Введите ваш логин
  2. Введите ваш пароль
  3. Нажмите кнопку "Войти"
  4. После успешного входа вы попадете в интерфейс заметок

Создание заметок

  1. Введите текст заметки в поле ввода
  2. Используйте кнопки форматирования для добавления Markdown элементов:
    • B - жирный текст
    • I - курсив
    • H - заголовок
    • 📋 - элемент списка
    • " - цитата
    • </> - код
    • 🔗 - ссылка
  3. Нажмите кнопку "Сохранить"

Редактирование заметок

  1. Нажмите кнопку "Редактировать" рядом с заметкой
  2. Отредактируйте текст в появившемся поле ввода
  3. Нажмите кнопку "Сохранить"

Удаление заметок

  1. Нажмите кнопку "Удалить" рядом с заметкой
  2. Подтвердите удаление в появившемся диалоговом окне

Выход из системы

Нажмите кнопку "🚪 Выйти" в верхней части страницы заметок

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

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.