Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/elrouss/express-mesto-gha

Учебный backend-проект "Место"
https://github.com/elrouss/express-mesto-gha

backend celebrate elrouss eslint expressjs helmetjs joi mongodb mongoose nodejs nodemon rate-limit rest-api yandex-praktikum

Last synced: 8 days ago
JSON representation

Учебный backend-проект "Место"

Awesome Lists containing this project

README

        

[![Tests](../../actions/workflows/tests-14-sprint.yml/badge.svg)](../../actions/workflows/tests-14-sprint.yml)

Учебный backend-проект: "Место"



Фрагмент кода проектной работы (контроллер users)



Оглавление


  1. Описание проекта

  2. Стек технологий

  3. Установка и запуск приложения в локальном репозитории, эксплуатация

  4. Процесс создания

  5. Функционал

  6. Статус проекта



1. Описание проекта


Данная проектная работа выполнена в рамках образовательной программы Яндекс Практикума. Проект представляет собой написание серверной логики для последующего объединения с частью frontendа, сделанной на "React"


Ссылка на проект: https://github.com/elrouss/express-mesto-gha




Чеклисты:


https://code.s3.yandex.net/web-developer/checklists-pdf/new-program/checklist_14.pdf


https://code.s3.yandex.net/web-developer/checklists-pdf/new-program/checklist_13.pdf

* - проект прошел код-ревью

(к оглавлению)

2. Стек технологий



Иконка 'Express'
Иконка 'Node JS'
Иконка 'MongoDB'
Иконка 'Postman'

(к оглавлению)

3. Установка и запуск приложения в локальном репозитории


1. `git clone https://github.com/elrouss/express-mesto-gha` - клонировать репозиторий (с использованием HTTPS) на свое устройство
2. `npm i` - установить зависимости
3. `npm run dev` - запустить сервер в режиме разработчика с hot-reload (в браузере ввести ссылку `http://localhost:3000/`, где `3000` - рабочий порт)

(к оглавлению)

4. Процесс создания


Работа выполнена в 2 этапа:


1. Написание схем, контроллеров и моделей (users & cards), подключение запросов с методами api (см. ниже), добавление кодов и текстов ошибок при неуспешных запросах (400, 404, 500)
2. Расширение схем и контроллеров (users & cards), добавление функций регистрации и авторизации пользователей, добавление предварительного этапа валидации данных (celebrate & joi), обработка новых ошибок в едином обработчике (401, 403 и 409), обеспечение безопасности приложения (хэширование паролей пользователей, защита от DoS-атак, настройка заголовков HTTP)

(к оглавлению)

5. Функционал


- Регистрация пользователя
- Авторизация пользователя
- Получение данных о всех пользователях, об одном и о текущем авторизованном
- Редактирование данных пользователя

- Создание карточки
- Получение карточек
- Переключение лайка карточки
- Удаление карточки

(к оглавлению)

6. Статус проекта


Проект завершен

(к оглавлению)



Фрагмент кода проектной работы (контроллер users)