Test task #4

Есть папка с фотографиями. Сделать скрипт импорта данных о фотографиях в таблицу (сами файлы в базе не хранить). Реализовать возможность повторного запуска скрипта, но при этом в таблицу должны добавляться только новые файлы. Фото может иметь статус активно / не активно.

Сделать страницу на которой отображается 10 фото (со статусом активно) в случайном порядке.

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

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

Событие открытия фото записывается в базу: одно событие одна запись.

Написать запросы к БД для получения следующих данных для последних 50 посетителей: идентификаторы посетителей дата первого открытия фото дата последнего открытия фото какое фото сколько раз было открыто посетителем сколько всего фото было открыто посетителем

Дополнительно: запросы с сортировкой по полям дата первого открытия дата последнего открытия открыто всего

Usage

  1. Install docker, docker-compose
  2. Add to /etc/hosts:
127.0.0.1 test-task-4.dev

where test-task-4.dev can be changed in docker/nginx/configs/symfony.conf 3. Run redeploy.sh 4. To sync database with file storage run run_sync_file_storage_command.sh. Image files are located in application/web/images. 5. Now you can visit running application through test-task-4.dev:8080/app_dev.php or test-task-4.dev:8080

SQL queries

SQL queries are located in queries.sql. You can connect to MySQL through 172.16.5.11:3306.