/cinematest

Test film tickets without any frameworks

Primary LanguagePHP

Тестово задание

Задание

Необходимо, на чистом PHP без использования сторонних библиотек, реализовать приложения для управления записью посетителей на фильмы в одном кинотеатре.

В функционале обязаны присутствовать:

  1. Добавление, Вывод, Редактирование и удаление фильмов администратором.
  2. Просмотр кол-ва купленных билетов на сеанс для администратора.
  3. Вывод фильмов и сеансов посетителям портала.
  4. Запись на сеанс посетителя по эмейлу и номеру телефона.

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

На странице фильма выводится все возможные сеансы на текущий момент. По клику на которой открывается форма с доступными местами и формой для записи на сеанс по эмейлу посетителя и номеру телефона.

В кинотеатре сеансы проходят каждый день в 10, 12, 14, 16, 18, 20 часов. В зале кинотеатра 5 рядов по 10 мест.

Выбор способа хранения информации и визуальной составляющей на усмотрение кандидата.

Предоставить задание в открытом репозитории, с доступной документацией по установке и настройке.

Срок выполнения до 5 дней.

Рабочее окружение, которое использовалось для разработки

  • PHP 7.3.11 (cli) (built: Oct 24 2019 11:29:42) ( NTS )
  • laravel valet
  • nginx+php
  • Mysql
  • SublimeText
  • SequelPro

Инсталляция

Необходимо создать БД. Или импортировать вместе с данными: film-session\db\films_2020-03-06.sql. В файле: film-session\db\db.php, указать параметры подключения:

    private $DB_HOST = '127.0.0.1';
    private $DB_NAME = 'films';
    private $DB_USERNAME = 'root';
    private $DB_PASSWORD = '372423';

Опционально

Возможно для nginx, необходимо прописать:

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

Использование и Функционал

БД состоит из таблиц:

  • clients Таблица клиентов

  • films Таблица списка фильмов

  • places Таблица номеров мест с привязкой к рядам

  • rows Таблица рядов мест

  • session_times Таблица времени на сеансы

  • sessions Таблица списка записей на сеансы, с привязкой к таблицам: Времени сеансов, Клиентов, Фильмов, Места.

Функционал:

На главной странице Доступен слайдер ТОП фильмов, сортировка по количеству занятых мест в зале. По переходу на страницу Фильма, доступна возможность выбора времени сеанса, места, Имя, Телефон, email. Если такой пользователь уже есть по email/телефону - он будет использован, если нет - будет создан новый.

По переходу по ссылке в админку - доступны:

  • Список забронированных мест с привязкой к фильму, клиенту
  • Список фильмов с возмжностью CRUD: создание/редактирование/удаление (с каскадным удалением в списке заказов) и загрузкой постер/изображения
  • Список рядов и мест
  • Список времени

Примеры:

1.jpeg

2.jpeg

3.jpeg

4.jpeg