Skip to content

Проект бэкенда для проекта Навигатор фильмов

Notifications You must be signed in to change notification settings

Bjorn86/movies-explorer-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Проект: Навигатор фильмов (backend)

Дипломный проект выполненный в рамках курса "Веб-разработчик" от Яндекс Практикум. Проект представляет из себя бэкенд часть для проекта Навигатор фильмов также выполненного в рамках указанного выше учебного курса.

Оглавление

Обзор проекта

Задачи проекта

Проект был призван закрепить навыки backend-разработки, и способы развёртывания приложения на Node.js и Express, а также работе с БД MongoDB и ODM mongoose.

Функциональность проекта

  • В проекте созданы схемы и модели пользователей и карточек с контентом:
    • movie — схема карточки с контентом
    • user — схема пользователя
  • В проекте созданы эндпоинты:
    • /movies — обрабатывает:
      • GET запросы — отдаёт все карточки из БД
      • POST запросы — создаёт новую карточку с контентом
    • /movies/:cardId — обрабатывает DELETE запросы, удаляет карточку по cardId
    • /signin — обрабатывает POST запросы, производит аутентификацию пользователя
    • /signup — обрабатывает POST запросы, производит регистрацию пользователя
    • /signout — обрабатывает POST запросы, производит выход пользователя
    • /users/me — обрабатывает:
      • GET запросы — отдаёт всех информацию о пользователе
      • PATCH запросы — обновляет информацию о пользователе
  • Созданы мидлвары:
    • Авторизации пользователя
    • Валидации поступающих в запросе данных
    • Работе с CORS
    • Централизованной обработки ошибок
    • Ограничитель количества запросов (защита от DDoS атак)
    • Логирования
  • Производится валидация поступающих данных:
    • до передачи информации контроллерам с помощью celebrate
    • на уровне схем с помощью validator и встроенных методов mongoose

Директории проекта

  • /controllers — директория с файлами контроллеров
  • /errors — директория с файлами кастомных ошибок
  • /middlewares — директория с мидлварами
  • /models — директория с файлами описания схем и моделей
  • /routes — директория с файлами роутера
  • /utils — директория со вспомогательными файлами

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

  • npm lint — запускает проверку линтером
  • npm run start — запускает приложение в режиме продакшн
  • npm run dev — запускает приложение в режиме разработки с hot-reload

Ссылки

Ход выполнения проекта

Используемые технологии

Чему я научился работая над проектом

  • Разворачивать приложение на Node.js
  • Использовать в работе фреймворк Express
  • Работать с БД MongoDB
  • Использовать в работе с БД ODM mongoose
  • Создавать схемы и модели для работы с БД
  • Обрабатывать различные виды запросов
  • Обрабатывать ошибки некорректных запросов
  • Валидировать приходящую в запросе информацию
  • Работать с JWT токеном
  • Работать с cookies
  • Базовой защите приложения
  • Логированию
  • Работе с CORS
  • Деплою проекта на реальный хостинг

Автор

Данила Легкобытов

About

Проект бэкенда для проекта Навигатор фильмов

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published