Skip to content

Приложение поиска и сохранения фильмов, дипломный проект. Бэкенд-часть с API-сервером.

Notifications You must be signed in to change notification settings

KindofShuga/movies-explorer-api

Repository files navigation

Проект Movies-explorer backend

Репозиторий бэкенд-части приложения Movies-explorer.

📋 Описание:

«Movies-explorer» — завершающий дипломный проект на платформе Яндекс.Практикум. Проект представляет собой сервис поиска и сохранения фильмов по ключевым словам.


🔍 Обзор:

🔗 Функционал

🔗 Технологии

🔗 Директории

🔗 Версии зависимостей

🔗 Запуск

🔗 Дополнительные ссылки


📑 Функционал:

  • Все маршруты объединены в отдельную папку /routes.
  • Работа с базой данных/дефолтная валидация схем, с помощью библиотеки Mongoose.
  • Валидация маршрутов библиотекой celebrate; Валидация email, в схеме пользователя, библиотекой validator.
  • Хранение пароля пользователя в виде хэша с солью, с помощью bcryptjs.
  • Маршруты, требующие входа, защищены мидлвэром авторизации, базируется на jsonwebtoken.
  • Обработка CORS через мидлвэр.
  • Логирование запросов и ошибок, с помощью winston и express-winston.
  • Ограничение количества запросов мидлвэром express-rate-limit.
  • Безопасные заголовки HTTP модулем helmet.
  • Автоматический перезапуск приложения утилитой nodemon, при изменении файлов проекта.

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

Технологии

  • Yandex.Cloud — Виртуальная машина.
  • Ubuntu — ОС.
  • pm2 — Менеджер процессов на сервере.
  • LetsencryptSSL — Сертификаты от Letsencrypt.
  • Mongoose — Библиотека для работы с БД.
  • ESlint — Библиотека-линтер, анализирует код на ошибки.

📂 Директории:

Папка Описание
/controllers контроллеры пользователя и фильма.
/errors кастомные ошибки.
/middlewares функции промежуточной обработки.
/models описания схем пользователя и фильма.
/routes файлы с маршрутами приложения.

🔼 Версии зависимостей:

"bcrypt": "^5.1.0",
"celebrate": "^15.0.1",
"dotenv": "^16.0.3",
"express": "^4.18.2",
"express-rate-limit": "^6.7.0",
"express-winston": "^4.2.0",
"helmet": "^6.1.5",
"jsonwebtoken": "^9.0.0",
"mongoose": "^7.0.3",
"validator": "^13.9.0",
"winston": "^3.8.2"

"devDependencies":
"eslint": "^8.38.0",
"eslint-config-airbnb-base": "^15.0.0",
"eslint-plugin-import": "^2.27.5",
"nodemon": "^2.0.22"

💡 Запуск:

Примечание: для корректной работы, потребуется заменить все запросы к API на localhost.

  • Развернуть API:

Команда Описание
git clone https://github.com/KindofShuga/movies-explorer-api.git клонировать репозиторий
npm install установка зависимостей
npm run dev запуск сервера (порт 3000)
  • Развернуть фронтенд:

Команда Описание
git clone https://github.com/KindofShuga/movies-explorer-frontend.git клонировать репозиторий
npm install установка зависимостей
npm run build собрать проект
npm run start запуск проекта

🔗 Дополнительные ссылки