Театральная касса

Театральная касса #

Требования к лабораторной работе № 1 #

Сущности #

Билет #

  • Дата и время добавления, формируется приложением автоматически.
  • Театр, строка.
  • Спектакль, строка.
  • Дата спектакля.
  • Время спектакля.
  • Зал, строка.
  • Зона зрительного зала, перечисление.
  • Номер ряда, число.
  • Номер места, число.
  • Стоимость в рублях, число.

Требования к лабораторной работе № 2 #

Сущности #

Театр #

  • Название, строка.
  • Адрес, строка.
  • Телефон касс, форматированная строка.

Не надо реализовывать добавление данных пользователем в данный список.

Не менее двух театров.

Театральный зал (сцена) #

  • Театр.
  • Название, строка. Например: большая сцена, камерная сцена и т.д.

Не надо реализовывать добавление данных пользователем в данный список.

Не менее одной сцены в театре. Хотя бы один театр с двумя сценами.

Зона #

  • Театральный зал.
  • Название, строка. Например: партер, бельэтаж, амфитеатр и т.д.

Не надо реализовывать добавление данных пользователем в данный список.

Не менее одной зоны в зале. Хотя бы один зал с хотя бы двумя зонами.

Ряд #

  • Зона.
  • Номер, число.

Не надо реализовывать добавление данных пользователем в данный список.

Не менее двух рядов в зоне.

Место #

  • Ряд.
  • Номер, число.
  • Стоимость, число.

Не надо реализовывать добавление данных пользователем в данный список.

Не менее двух мест в ряду.

Спектакль #

  • Дата и время добавления, формируется приложением автоматически.
  • Дата и время спектакля, дата и время.
  • Сцена.
  • Название, строка.

Билет #

  • Дата и время добавления, формируется приложением автоматически.
  • Спектакль.
  • Место.

Описывает приобретённый билет.

Детали реализации #

  • Сущности «Театр», «Театральный зал», «Зона», «Ряд» и «Место» должны быть заполнены один раз. Не надо реализовывать средства добавления новых сущностей в соответствующие списки.
  • Страница с просмотром списка для вышеупомянутых сущностей требуется только для театров.
  • На странице театра отображается:
    • Детальная информация о театре.
    • Список залов.
  • На странице театрального зала отображается:
    • Список предстоящих спектаклей, отсортированный по возрастанию даты и времени проведения спектакля.
  • На странице спектакля отображается:
    • Список зон.
    • Для каждой зоны визуализируются места в виде таблицы. Ячейка таблицы описывает одно место в одном ряду и содержит стоимость данного места. Если на это место уже куплен билет, то ячейка не является активной.
    • При нажатии на ячейку таблицы открывается страница покупки билета.
  • На странице покупки билета отображается:
    • Информация о спектакле.
    • Информация о театре.
    • Информация о зале.
    • Информация о зоне.
    • Информация о ряду.
    • Информация о месте.
    • Форма для подтверждения покупки билета.
      • Если пользователь соглашается, то создаётся новая сущность билета и происходит открытие страницы билета.
      • Если пользователь отказывается, то происходит возвращение на страницу спектакля.
  • На странице списка билетов отображается:
    • Краткий список билетов, упорядоченный по убыванию даты и времени добавления.
  • На странице списка билетов не требуется добавлять новый билет.
  • На странице билета отображается:
    • Информация о спектакле.
    • Информация о театре.
    • Информация о зале.
    • Информация о зоне.
    • Информация о ряду.
    • Информация о месте.
    • Информация о билете.

Требования к лабораторной работе № 3 #

Сущности #

Театр #

  • Название, строка.
  • Адрес, строка.
  • Телефон касс, форматированная строка.

Не надо реализовывать добавление данных пользователем в данный список.

Не менее двух театров.

Театральный зал (сцена) #

  • Театр.
  • Название, строка. Например: большая сцена, камерная сцена и т.д.

Не надо реализовывать добавление данных пользователем в данный список.

Не менее одной сцены в театре. Хотя бы один театр с двумя сценами.

Зона #

  • Театральный зал.
  • Название, строка. Например: партер, бельэтаж, амфитеатр и т.д.

Не надо реализовывать добавление данных пользователем в данный список.

Не менее одной зоны в зале. Хотя бы один зал с хотя бы двумя зонами.

Ряд #

  • Зона.
  • Номер, число.

Не надо реализовывать добавление данных пользователем в данный список.

Не менее двух рядов в зоне.

Место #

  • Ряд.
  • Номер, число.
  • Стоимость, число.

Не надо реализовывать добавление данных пользователем в данный список.

Не менее двух мест в ряду.

Спектакль #

  • Дата и время добавления, формируется приложением автоматически.
  • Дата и время спектакля, дата и время.
  • Сцена.
  • Название, строка.

Билет #

  • Дата и время добавления, формируется приложением автоматически.
  • Спектакль.
  • Место.

Описывает приобретённый билет.

Роли #

Гость #

  • Может просматривать стартовую страницу.
  • Может просматривать все списки сущностей «Театр», «Театральный зал», «Спектакль» и страницы соответствующих сущностей.
  • Может зарегистрироваться в системе.
  • Может авторизоваться в системе.

Авторизованный пользователь #

Доступны все возможности роли «Гость».

  • Может покупать билеты на предстоящие спектакли.
  • Может вернуть билет, если до начала спектакля осталось не менее суток.
  • Может просматривать свою страницу. На ней отображается:
    • Список купленных билетов, упорядоченный по дате проведения спектакля. Уже прошедшие спектакли должны быть вынесены в отдельный список.

Работник театра #

Доступны все возможности роли «Гость».

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

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

Администратор ресурса #

Доступны все возможности роли «Работник театра».

  • Может добавлять новый театр со всей структурой театра. При добавлении структура театра может быть описана с помощью структурированного описания (с помощью JSON или YAML-документов), которое вставляется в многострочное поле ввода.
  • Может редактировать описание любого театра.
  • Может заводить работников театра.

© A. M. Васильев, 2022, CC BY-SA 4.0, andrey@crafted.su