В данном проекте реализован API обеспечивающий безопасную систему регистрации, входа, редактирования профиля и получения данных. Для использования API создан интуитивный UI (html + css + javascript). Также можно использовывать Postman или Insomnia.
-
Регистрация пользователей: Пользователи могут зарегистрироваться, указав имя, электронную почту, пароль, пол и фотографию профиля. Поддерживается загрузка файлов для фотографий профиля с помощью библиотеки Multer (до 10 мб, расширения: jpg, png).
-
Редактирование профиля: Аутентифицированные пользователи могут редактировать свои профили, указав свой идентификатор пользователя, новое имя / фамилию. Администратор имеет более широкий доступ, позволяющий редактировать профиль любого пользователя.
-
Вход пользователей в систему: Безопасная аутентификация пользователей осуществляется с помощью JSON Web Tokens (JWT). Пользователи могут войти в систему, указав свою электронную почту и пароль, и получить JWT для последующих запросов, который будет храниться в cookie.
-
Получение данных пользователя по идентификатору: Пользователи могут получить данные своего профиля, указав свой ID. Администратор имеет более широкий доступ, позволяющий им получать данные любого пользователя.
-
Получить все профили с пагинацией: Эксклюзивная для администраторов функция получения всех профилей пользователей с пагинацией (10 профилей на страницу). Профили сортируются по дате регистрации.
- Бэкенд: Node.js и Express.
- База данных: MySQL, Sequelize (ORM).
- Middleware: Multer для загрузки файлов.
- Аутентификация: JSON Web Tokens (JWT), cookie-parser.
Для использования проекта необходимо:
- Клонировать репозиторий удобным способом.
- Установить зависимости проекта (npm install).
- Установить базу данных MySQL (находится в корне репозитория).
- Изменить переменные окружения в файле .env в зависимости от конфигурации вашей базы данных.
- Запустить сервер Node.js (npm start)
- Файл .env находится в репозитории. Перед деплоем необходимо занести его в файл .gitignore.
- Для получения доступа к профайлу админа, введите email: admin@admin.com, пароль "Admin123,"

