Skip to content

andrewLapshov/news-explorer-api

Repository files navigation

news-explorer-api

Бэкенд для сервиса News Explorer в рамках дипломного проекта на курсе "Веб-разработчик" в Яндекс.Практикуме.

Описание

Проект по созданию сервера для сервиса "News Explorer" на основе фреймворка Express.js. Сервер хранит данные пользователей и их сохранённые статьи. На данный момент реализовано:

  • запрос на GET /users/me возвращает информацию об авторизованном пользователе (email и имя)
  • запрос GET /articles возвращает все сохранённые пользователем статьи;
  • запрос POST /articles создаёт статью с переданными в теле keyword, title, text, date, source, link и image;
  • запрос DELETE /articles/:articleId удаляет сохранённую статью по _id;

Реализован централизованный обработчик ошибок, пре-валидация запросов посредством Joi и Celebrate, логгирование запросов и ошибок с помощью библиотеки Winston. Авторизация проходит посредством JWT токена, который выдается пользователю на неделю, что исключает необходимость повторной авторизации при каждом входе.

Сервер доступен по адресу - https://api.newsapp.tk/. Удаленный сервер доступен как по http, так и по https протоколу, SSL-сертификат выдан CA Let's Encrypt. Сам сервер расположен по IP-адресу 84.201.154.74 на сервисе Яндекс.Облако.

Использование

Для запуска проекта локально:

  • git clone https://github.com/andrewLapshov/news-explorer-api.git - клонировать репозиторий
  • npm install - установить все необходимые пакеты
  • Установить MongoDB
  • mongod - запустить БД
  • npm run start - сервер будет доступен на локальном порте 3000
  • npm run dev - режим разработки с поддержкой Hot reload, будет доступен на локальном порте 3000

About

Дипломный проект (Бэкенд часть)

Resources

License

Stars

Watchers

Forks

Packages

No packages published