Skip to content

Бэкенд часть приложения Дипломного проекта, Яндекс.Практикум, Веб-разработка

Notifications You must be signed in to change notification settings

MaxRMNK/movies-explorer-api

Repository files navigation

movies-explorer-api

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

Описание

Бэкенд приложения написанного в качестве Дипломного проекта на курсе ЯндексПрактикум «Веб-разработчик».

Ссылки на проект

IP 84.201.135.155

Backend https://api.diplom.maxrmnk.nomoredomains.xyz

Технологии

  • JavaScript ES6
  • Node.js v.20.11.1
  • Express.js v.4.18.2
  • NPM v.10.2.4
  • MongoDB v.4.4.22

Особенности

  • Авторизация с использованием JWT
  • 3 уровня валидации:
    • на уровне роутов с помощью модуля celebrate
    • на уровне контроллеров собственные проверки
    • на уровне схем с помощью модуля validator
  • Кастомизированная обработка ошибок, и стандартных, и полученных полученных от модуля celebrate
  • Логгирование запросов с помощью библиотеки winston и мидлвэр express-winston
  • Ограничение лимита запросов с помощью модуля express-rate-limit
  • Настроены заголовки ответа приложения с помощью модуля helmet
  • Ограничение кросс-доменных запросов с помощью модуля cors

Директории

  • /routes — Файлы роутера
  • /controllers — Файлы контроллеров пользователя и карточки
  • /models — Файлы описания Схем пользователя и карточки
  • /middlewares — Промежуточные миддлвэры
  • /utils — Вспомогательные файлы

API

Signin/Signup

  • POST /signup — Регистрация (name, email, password)
  • POST /signin — Авторизация (email, password)

Users

  • GET /users/me — Получить данные текущего пользователя
  • PATCH /users/me — Изменить данные текущего пользователя (name, email)
  • GET /users — Получить список всех пользователей

Movies

  • GET /movies — Получить фильмов добавленных в закладки текущим пользователем
  • POST /movies — Добавить фильм в закладки (country, director, duration, year, description, image, trailer, nameRU, nameEN, thumbnail, movieId)
  • DELETE /movies/:bookmarkId — Удалить фильм из закладок по ID

Разворачиваем проект локально

Для того чтобы фронтенд и бэкенд могли работать одновременно на локальном сервере бэкенд-часть приложения запускается на порту 3001, а фронтенд на 3000.

  1. Склонировать проект, перейти в папку /movies-explorer-api
    git clone [email protected]:MaxRMNK/movies-explorer-api.git
    cd movies-explorer-api/
  2. Проверить версии устновленных MongoDB, Node.js и библиотеки пакетов NPM
    mongod -version # проверка версии MongoDB
    node -v # проверка версии Node.js
    npm -v # проверка версии NPM
  3. Установить проект и его зависимости
    npm install

Запуск проекта

  • Запуск сервера в режиме разработки, с hot-reload
    npm run dev
  • Запуск сервера
    npm run start
    # или `npm start`
    # или `node app.js`

После запуска приложение доступно на адресе localhost:3001.

Ctrl + C - остановка сервера

Из чего состоит .env

# .env
NODE_ENV=production
PORT_ENV=3001
SECRET_KEY_ENV=0uazgLqewAIjDY5Qnt9sgmY0tuX3d2jQzqsA
MONGO_DB_ENV=mongodb://localhost:27017/bitfilmsdb # localhost

Можно доработать

  • Возможно в Схеме пользователя нужно добавлять ссылки на фильмы в закладках - в ТЗ об этом ничего не было, но кажется, это было бы правильным решением.

About

Бэкенд часть приложения Дипломного проекта, Яндекс.Практикум, Веб-разработка

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published