An open API service indexing awesome lists of open source software.

https://github.com/dmitry145528/movies-explorer-api

Movies Explorer - это серверная часть приложения Movies Explorer, предоставляющая API для работы с пользователями и карточками. Реализованная на Node.js и MongoDB, она обеспечивает взаимодействие с базой данных и обработку запросов клиентской части приложения Movies Explorer.
https://github.com/dmitry145528/movies-explorer-api

celebrate cookie-parser cors dotenv express helmet joi-validation jwt-authentication mongodb nodejs rate-limiter validation

Last synced: 2 months ago
JSON representation

Movies Explorer - это серверная часть приложения Movies Explorer, предоставляющая API для работы с пользователями и карточками. Реализованная на Node.js и MongoDB, она обеспечивает взаимодействие с базой данных и обработку запросов клиентской части приложения Movies Explorer.

Awesome Lists containing this project

README

          

# Дипломный проект: Movies Explorer бэкенд.

Movies Explorer - это серверная часть приложения Movies Explorer, предоставляющая API для работы с пользователями и карточками. Реализованная на Node.js и MongoDB, она обеспечивает взаимодействие с базой данных и обработку запросов клиентской части приложения Movies Explorer.

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

* [Movies Explorer (версия React)](https://github.com/Dmitry145528/movies-explorer-frontend)
* Movies Explorer (версия для сервера) - этот репозиторий

## Что сделал:

* Реализовал на Node.js и Express.js, сервер обрабатывает запросы, взаимодействует с базой данных MongoDB и обрабатывает ошибки.

* Настроил использование cookie для хранения сессионных данных пользователей, обеспечивая безопасность и аутентификацию.

## Реализованный функционал:

* Реализованы роуты и контроллеры для работы с пользователями (регистрация, авторизация, получение информации о текущем пользователе, обновление данных пользователя).

* Реализована аутентификация с использованием JWT (JSON Web Token) для безопасной передачи информации между клиентом и сервером.

* Реализованы роуты и контроллеры для работы с карточками (добавление, получение, удаление карточек).

* Реализованы мидлвары для обработки запросов, аутентификации и обработки ошибок.

* Взаимодействие с базой данных MongoDB для сохранения пользовательских данных и фильмов.

## Технологии:

* Node.js: Среда выполнения JavaScript, используемая для разработки серверной части приложения.
* Express.js: Веб-фреймворк для Node.js, облегчающий создание API и обработку HTTP-запросов.
* MongoDB: Документоориентированная NoSQL база данных, используемая для хранения пользовательских данных и информации о фильмах.
* Mongoose: ODM (Object Data Modeling) библиотека для работы с MongoDB, обеспечивающая структурированный доступ к данным.
* JWT (JSON Web Token): Стандарт авторизации для безопасной передачи информации между клиентом и сервером.
* Cors (Cross-Origin Resource Sharing): Механизм, позволяющий веб-страницам получать доступ к ресурсам с других источников в интернете.
* Helmet: Промежуточное ПО для Express, обеспечивающее базовую защиту от некоторых известных уязвимостей HTTP-заголовков.
* Celebrate: Библиотека для валидации и санации данных запроса на основе схемы с использованием Joi.
* Rate Limiter: Промежуточное ПО для Express, ограничивающее количество запросов с одного IP-адреса.

## Инструкция по запуску:

1. **Клонируйте репозиторий:**

```bash
git clone git@github.com:Dmitry145528/movies-explorer-api.git
git clone https://github.com/Dmitry145528/movies-explorer-api.git

2. **Перейдите в директорию проекта, выполнив команду:**

`cd movies-explorer-api`

3. **Установите все необходимые зависимости проекта, выполнив команду:**

`npm install`

4. **Создайте файл .env в корневой директории проекта и добавьте следующие переменные среды:**

`PORT=3000`

`MONGO_URL=mongodb://127.0.0.1:27017/bitfilmsdb`

5. **Вы можете запустить сервер:**

`npm run start`

5. **Вы можете запустить сервер с hot-reload:**

`npm run dev`

## Требования

Перед началом убедитесь, что у вас установлены:

- [Node.js](https://nodejs.org/)
- [MongoDB](https://www.mongodb.com/)

## Статус разработки:

✅ _Завершено_