Skip to content

paninebaluy/mesto-back-end

Repository files navigation

EN

на русском

v3.1.2 – added a dev secret key for dev mode, fixed regexes for urls and password

Mesto is a single page project, part of sprints 13, 14 and 15 in Yandex.Praktikum study program. It's an interactive web page for sharing pictures with short titles. This project focuses on Mesto's back end. Here Node.js meets Exress.js and a database on MongoDB via Mongoose. JWT tokens are stored in http request cookies. Server-side validation is handled with celebrate library, requests and errors are logged with winston.

Availability

How to start using it locally:

Clone this repository

$> git clone https://github.com/paninebaluy/mesto-back-end

Install dependencies

$> npm install

Install [MongoDB community edition](https://docs.mongodb.com/manual/administration/install-community/) and run it:

$> mongod

(Win) or

$> mongo

or

$> sudo systemctl start mongod

(Linux and macOS)

Run script that starts the local server

$> npm run start

The webpage will open in your default browser using port 3000 as default: https://api.mestamno.ga/ 

It's way more convenient to test routing scenarios using Postman.

Back end part of the project includes routing with Express.js + Node.js, and is connected to mestodb database on MongoDB via Mongoose

Here's what you can do:

Technology used

  • Node.js
  • Express.js
  • MongoDB
  • Mongoose
  • HTML 5
  • CSS
  • Vanilla JS

To top/Наверх

RU

v3.1.2 исправлены регэкспы для ссылок и пароля, добавлен секрет к режиму разработки

Место — одностраничный проект, созданный в рамках 13-го, 14-го и 15-го спринтов учебной программы Яндекс.Практикума. Это интерактивный сайт, пользователи которого могут делиться изображениями с кратким названием. Этот проект сосредоточен на бэкенде сайта, где роутинг реализован на Node.js и Exress.js, а также подключена база данных на MongoDB посредством Mongoose. JWT-токен хранится в http-куках запроса. Серверная валидация обрабатывается библиотекой celebrate, логи запросов и ошибок записываются при помощи winston.

Доступность

Как запустить его локально

Клонировать репозиторий

$> git clone https://github.com/paninebaluy/mesto-back-end

Установить зависимости

$> npm install

Установить [MongoDB community edition](https://docs.mongodb.com/manual/administration/install-community/) и запустить

$> mongod

(Win) или

$> mongo

или

$> sudo systemctl start mongod

(Linux и macOS)

Вызвать скрипт запуска сервера

$> npm run start

Сайт будет доступен по адресу https://api.mestamno.ga/ (порт 3000 используется по умолчанию).

Для проверки запросов рекомендую использовать Postman.

В бэкенд-части проекта реализованы роутинг на Express.js + Node.js, а также подключение к базе данных mestodb database на MongoDB через Mongoose

Вот что здесь можно делать:
  • Зарегистрировать нового пользователя: POST https://api.mestamno.ga/signup (запрос должен содержать поля: name (str, 2-30 символов), about (str, 2-30 символов), avatar (url), email, password (>= 8 символов))
  • Залогиниться: POST https://api.mestamno.ga/signin (запрос должен содержать поля: email, password (>= 8 символов)) | следующие действия доступны только для авторизованных пользователей
  • Получить JSON со всеми пользователями из базы данных: GET https://api.mestamno.ga/users
  • Получить JSON со всеми карточками: GET https://api.mestamno.ga/cards
  • Получить JSON с данными конкретного пользователя: GET https://api.mestamno.ga/users/id
  • Создать карточку: POST https://api.mestamno.ga/cards (запрос должен содержать поля: name (str, 2-30 символов), link (url))
  • Удалить карточку, если её создал текущий пользователь: DELETE https://api.mestamno.ga/cards/id
  • Обновить профиль текущего пользователя: PATCH https://api.mestamno.ga/users/me (запрос должен содержать одно или несколько ищ полей: name (str, 2-30 символов), about (str, 2-30 символов), avatar (url))
  • Обновить аватар текущего пользователя: PATCH https://api.mestamno.ga/users/me/avatar (запрос должен содержать поле: avatar (url))
  • Лайкнуть карточку (добавляет лайк от пользователя только один раз): PUT https://api.mestamno.ga/cards/:cardId/likes
  • Удалить свой лайк с карточки: DELETE https://api.mestamno.ga/cards/:cardId/likes

Использованные технологии

  • Node.js
  • Express.js
  • MongoDB
  • Mongoose
  • HTML 5
  • CSS
  • Vanilla JS

To top/Наверх

About

Back end for Mesto web page

Resources

License

Stars

Watchers

Forks

Packages

No packages published