Требования:

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

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

В рамках задания мы не ограничиваем вас. Это может быть космический/магический кинотеатр 🍿 или клон любого существующего кинотеатра, тут мы полагаемся на вашу фантазию, также вы можете самостоятельно расширить требования задачи при желании.

Дизайн

https://www.figma.com/design/rtf8FFjkY084yTN81wsjsr/Задания-ШИФТ-Интенсив?node-id=0-1&t=12Jogxp0YHZpKRFg-0

https://www.figma.com/file/KsxWtBbM0Ni8e5c9aFBa8I/UI-Kit-ШИФТ?type=design&node-id=76-9676&mode=design&t=ppJ28OQPmP1ZBr9h-0

Api

My Website

Уровни выполнения:

  1. Легкий - ожидаемым результатом является создание страницы/экрана афишы и страницы/экрана конкретного фильма:
    1. Реализована страница/экран афиша со списком фильмов, список фильмов получен с помощью запроса get /cinema/today
    2. Реализована страница/экран конкретного фильма
  2. Средний - ожидаемым результатом является форма для расчета доставки, в которую входит:
    1. Реализована страница/экран афиша с списком фильмов, список фильмов получен с помощью запроса get /cinema/today
    2. Реализована страница/экран конкретного фильма, фильм получен с помощью запроса get /cinema/film/:filmId
    3. Реализовано отображение расписания на 7 дней с помощью запроса get /cinema/film/:filmId/schedule
    4. Реализован выбор места с помощью селектов.
    5. Реализована форма заполнения данных для оплаты
  3. Сложный -
    1. Флоу
      1. Реализована страница/экран афиша с списком фильмов, список фильмов получен с помощью запроса get /cinema/today
      2. Реализована страница/экран конкретного фильма, фильм получен с помощью запроса get /cinema/film/:filmId
      3. Реализовано отображение расписания на 7 дней с помощью запроса get /cinema/film/:filmId/schedule
      4. Реализован выбор места с помощью матрицы зала
      5. Реализована форма заполнения данных для оплаты (если пользователь авторизован, подставить его данные из профиля)
      6. Реализовано отображение результата оплаты
    2. Личный кабинет
      1. Реализовать страницу/экран авторизации
      2. Реализовать страницу/экран личный кабинет
        1. Получение заказов с помощью запроса get /cinema/orders
        2. Отмена оплаты с помощью запроса post /cinema/order/cancel

Требования к валидации:

Экран авторизации

Поле Допустимые символы Кол-во символов Дополнительные требования Значения для проверки Сообщения валидации Примечание
Телефон Только цифры 79234232343 Корректное значение. Сообщения нет
Пустое поле Поле является обязательным
Буквы или символы Не можем ввести. Сообщения нет
Код Только цифры 6 123456 Корректное значение. Сообщения нет
Пустое поле Поле обязательно для заполнения
333 Код должен содержать 6 цифр

Экран ввода карты

Поле Допустимые символы Кол-во символов Дополнительные требования Значения для проверки Сообщения валидации Примечание
Номер карты Только цифры 8 12345678 Корректное значение. Сообщения нет
~!@#$%^&*()_+=[]{};:" \./<>? Ввести не можем. Сообщения нет
qweqw Ввести не можем. Сообщения нет
123456 Код должен содержать 8 цифр
Пустое поле Поле является обязательным
CVV код Только цифры 4 1234 Корректное значение. Сообщения нет
~!@#$%^&*()_+=[]{};:" \./<>? Ввести не можем. Сообщения нет
qweqw Ввести не можем. Сообщения нет
123 Код должен содержать 4 цифры
Пустое поле Поле является обязательным
Срок действия - Месяц/Год Только цифры 2 для месяца, 2 для года Максимально допустимое число месяца 12 12 Корректное значение. Сообщения нет
Максимально допустимое число для года 99 99 Корректное значение. Сообщения нет
qweqw Ввести не можем. Сообщения нет
Пустое поле Поле является обязательным
~!@#$%^&*()_+=[]{};:" \./<>? Ввести не можем. Сообщения нет

Экран бронирования места

Поле Допустимые символы Количество символов Дополнительные требования Значения для проверки Сообщения валидации Примечание
Фамилия Буквы алфавита, пробел “ “, спец. символы: ` ‘ - 1-60 Недопустим ввод спец. символов в начале и в конце строки Пустое поле Поле является обязательным
Имя Недопустим ввод нескольких спец. символов в строке подряд Иванов Иван Корректное значение. Сообщения нет
Отчество (необязательное) 0-60 Недопустим ввод различных алфавитов в рамках одного поля или группы полей ФИО Ivaнов (сочетание латиницы и кириллицы в одном поле) Значение должно быть задано с использованием одного из следующих алфавитов: кириллического, латинского Обязательность поля определяется его пустотой (если поле пустое – значит не обязательное)
Ivanov Иван Ivanovich Значения заданы с использованием разных алфавитов
-Иванов Некорректный формат
Иванов- Некорректный формат
Ива--нов Некорректный формат
~!@#$%^&*()_+=[]{};:" \./<>? Ввести не можем. Сообщения нет
Телефон Только цифры 79234232343 Корректное значение. Сообщения нет
Пустое поле Поле является обязательным