# Неделя #1 Настройка окружения, начало работы. Реализация HTTP-сервера, использование promises или async\await


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

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

Представиться в telegram-канале своего потока.

Познакомиться с наставником.

Установить VSCode или удобный для вас редактор кода.

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

# Выполнить домашнюю работу #1 (Систематизация файлов по папкам)

Задание:

Есть сложная структура папок (обязательна вложенность папок) с файлами (тип файлов на ваш выбор - музыкальные, файлы изображений). Необходимо разобрать коллекцию, создав новую общую папку и расположив внутри все файлы по папкам в алфавитном порядке, т.е. все файлы начинающиеся на “a” должны быть в папке “A” и т.д.

Критерии оценивания:

  1. Создана итоговая папка
  2. Название внутренних папок совпадает с первыми буквами имен файлов, находящихся в них
  3. При реализации использовались callback функции

Дополнительно:

  1. Исходная папка удалена
  2. Путь к исходной и итоговой папкам, а также необходимость удаления исходной папки передавать в качестве параметров в командной строке

Легкий вариант:

Можно пользоваться вспомогательными модулями

Сложный:

Сделать нативными методами Node.js.

Использовать линтер: Перейти к использованию

Файл .eslintrc должен быть следующим:
{
 "extends": "standard",
 "rules": {
   "no-extra-semi": "error",
   "semi": [2, "always"]
 }
}

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

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

# Выполнить домашнюю работу #2 (Реализация http-сервера)

Задание 1

Необходимо реализовать http-сервер, который при обращении с помощью GET запроса инициирует асинхронные операции:

  • Непрерывный вывод в консоль сервера текущей даты и времени в формате UTC через определенные временные промежутки.
  • Остановка консольного вывода отправки времени через некоторое время и завершение ответа сервера с возвращением клиенту текущей даты и времени отключения в формате UTC.

Критерии оценивания:

  1. При подключении к серверу начинается вывод в консоль текущего времени через равные интервалы
  2. Остановка вывода в консоль через указанное время, возврат текущей даты и времени пользователю
  3. Интервал и временной промежуток должны задаваться при запуске сервера с помощью переменных окружения
  4. Стабильная работа сервера при нескольких одновременных запросах

Задание 2

Перепишите первую домашнюю работу с использованием promises или async\await.

Критерии оценивания:

  1. При реализации использовались promises или async\await
  2. Функция должна возвращать promises

Пример вызова :

	yourFunction(from, to, true).then(function(){
		console.log(‘Success’);
})

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

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

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

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

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

Просмотр видео “Введение в Node.js и настройка рабочей среды”, которое будет доступно в 20:00

Реальные фото на аватарку, фамилия и имя в профиле Telegram на русском языке

Заполняем данные о себе в Личном кабинете (фамилия и имя будут использоваться привыдачи сертификата)

# 🗓 Вторник

Изучаем материалы по теме "Модули, файловая система и потоки"

В течении дня вы попадете к своему наставнику в подгруппу. Знакомимся с одногруппниками и наставником

# 🗓 Среда

Начинаем работу над домашней работой №1

Перечитываем методичку по теме "Модули и файловая система"

# 🗓 Четверг

Изучаем методичку по теме "Работа с асинхронностью в Node.js"

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

Доделываем домашнюю работу №1 и отправляем ее на проверку

# 🗓 Пятница

Изучаем материалы по теме "Работа с асинхронностью в Node.js"

Начинаем работу над домашней работой №2

# 🗓 Суббота

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

Доделываем домашнюю работу №2 и отправляем ее на проверку

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