Visitar URL original
collection-codework/javascript/mobilization-api at master · splincodewd/collection-codework · GitHub
Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

Readme.md

Задание 2

Напишите библиотеку, предоставляющую API для работы с расписанием лекций из первого задания.

Здесь мы хотим проверить ваши знания в области JavaScript и способность реализовать простые алгоритмы. Также нам важно увидеть, что вы можете выделить основные компоненты приложения и организовать их взаимодействие. Кроме того, мы хотим оценить ваше умение принимать обоснованные технические решения и объяснять их.

Предметная область

Студенты «Мобилизации» обучаются в нескольких школах и посещают лекции. Лекции проходят в аудиториях в определённые часы и дни. Некоторые лекции проводятся одновременно для студентов нескольких школ.

К примеру, лекция «Параллельные и распределённые вычисления» проводилась 15 июня с 19:00 до 21:30 в аудитории «Синий кит» для студентов Школы разработки интерфейсов и Школы дизайна.

У каждой лекции есть свое название и указана фамилия лектора. У каждой школы есть название и указано количество студентов. У каждой аудитории есть название, указана вместимость и дано описание, где она находится.

Вам нужно написать библиотеку, которая реализует следующий программный интерфейс:

  • просмотр расписания школы в заданный интервал дат;
  • просмотр графика лекций в аудитории в заданный интервал дат;
  • ввод и редактирование данных о лекциях;
  • ввод и редактирование данных о школах;
  • ввод и редактирование данных об аудиториях.

Библиотека должна гарантировать корректность и связанность данных:

  • Для одной школы не может быть двух лекций одновременно.
  • В одной аудитории не может быть одновременно двух разных лекций.
  • Вместимость аудитории должна быть больше или равной количеству студентов на лекции.

Пожалуйста, придумайте и добавьте другие проверки.

Дополнительные задания

Любое из этих заданий не обязательно, но их выполнение будет плюсом.

  • Сериализация / десериализация в разные форматы данных.
  • Постоянное хранение данных где-либо.
  • Тесты к библиотеке.
  • Веб-интерфейс или интерфейс командной строки для реализованной библиотеки.

В качестве результата мы ждём:

  • исходный код на GitHub,
  • описание библиотеки и полноценный пример её использования.

Мы не ограничиваем вас в выборе инструментов и способов реализации, но хотим узнать, почему вы предпочли именно их.