# Неделя #2 Домашняя работа №3-4


# Подготовка к выполнению задания

Изучить все материалы второй недели курса в Личном кабинете

# Что нужно сделать?

# Выполнить домашнюю работу №3-4 (Домашняя работа №3 - реализовать серверную часть на Express.js. Бонусная домашняя работа №4 - реализовать серверную часть на Koa.js)

В проекте есть следующие скрипты:

  1. Запуск приложения в режиме production npm start

  2. Запуск приложения в режиме разработки npm run start:dev

  3. Выполнить форматирование кода npm run prettier

  4. Выполнить проверку кода с помощью Eslint npm run lint

  5. Выполнить проверку кода с помощью Eslint и автоисправлением ошибок npm run lint:fix

Для запуска:

  1. git clone git clone https://bitbucket.org/krabaton/nodejs-hw34.git
  2. npm i (yarn)
  3. npm start

Макет для домашних работ №3-№4 можно скачать по ссылке

# Проект состоит из трех маршрутов

/ - основной лендинг

/login - форма входа в админ панель

/admin - админ панель

Необходимо реализовать

# На главной странице

POST запрос URL: / Отправляет на сервер поля

{
    email,
    password
}

  • Отправить письмо от пользователя.
  • Также на главной странице изменить вывод скиллов и товаров, в соответствующих блоках, из базы данных. То есть если добавлен товар он должен появиться в выдаче на главной странице. Если в административной панели изменили значения скиллов они должны измениться и на главной странице.

# На странице login

POST запрос URL: /login Отправляет на сервер поля

{
    email,
    password
}

Это форма входа в админ панель. Если email и пароль совпадают с сохраненным, то пропускаем на страницу admin, иначе не пускаем с сообщением почему.

# На странице admin

POST запрос URL: /admin/upload

Отправляется FormData объект на сервер с картинкой товара и описанием. Сохраняем картинку товара и его описание в базе данных

в поле photo - Картинка товара
в поле name - Название товара
в поле price - Цена товара

POST запрос URL = /admin/skills

Отправляется объект с полями на сервер со значением скиллов. Скиллы обновляют свои значения в базе данных

 {
    age - 'Возраст начала занятий на скрипке'
    concerts - 'Концертов отыграл'
    cities - 'Максимальное число городов в туре'
    years - 'Лет на сцене в качестве скрипача'
}

Домашняя работа №3 - реализовать серверную часть на Express.js

Бонусная домашняя работа №4 - реализовать серверную часть на Koa.js

В качестве базы данных данные хранить на сервере в JSON файле, можно использовать пакет nconf или LowDB на свое усмотрение

Примечание

  1. JS не используется для отправки форм, все выполняется нативно браузером. По желанию можно самостоятельно написать клиентский код
  2. Для ответов с сервера есть поле .status в каждой форме. Чтобы туда отправлять ответы от сервера используйте пакет connect-flash
  3. Проект можно немного доделать под себя

Сдаем домашнюю работу №3-№4 на проверку:

# 1. Сделайте коммит и пуш изменений

# 2. Создайте пулл реквест и отправьте его на проверку наставнику

# Как всё успеть?

Данный план является примерным ориентиром. Вы всегда можете работать в удобном для себя темпе.

# 🗓 Понедельник

Изучаем методичку по теме "Работа с шаблонами"

Изучаем материалы по теме "Работа с шаблонами"

# 🗓 Вторник

Изучаем методичку по теме "Express.js"

Начинаем выполнять домашнюю работу №3

# 🗓 Среда

Изучаем материалы по теме "Express.js"

# 🗓 Четверг

Доделываем домашнюю работу №3

Изучаем материалы по теме "Koa.js"

Подготовьте вопросы и запишитесь на консультацию к наставнику (тариф "Уютный")

# 🗓 Пятница

Начинаем выполнять домашнюю работу №4

Изучаем методичку по теме "Koa.js"

# 🗓 Суббота

Изучаем материалы воркшопа

Доделываем домашнюю работу №4

Отдыхаем и набираемся сил