Пользователю предоставляется поле для ввода URL, по нажатию кнопки “Уменьшить” пользователю предоставляется короткая ссылка с текущим доменом сайта (вида http:///aBcD). При переходе по уменьшеной ссылке юзер будет перенаправлен на исходную страницу.
Пользователь должен иметь возможность создать свою короткую ссылку. Пользователь должен иметь возможность создавать ссылки с ограниченным сроком жизни.
Как бонус: Пользователь, создающий ссылку также получает ссылку на статистику переходов. В статистике должна отображаться география переходов, данные из юзер агентов переходящих (можно использовать google charts).
-
PHP 5.6+
-
ООП
-
PSR2 (http://www.phpfig.org/psr/psr2/)
-
PSR4 (http://www.phpfig.org/psr/psr4/)
-
Apache 2.4 / Nginx
-
PDO для работы с MySQL
Будет хорошим плюсом, если будет использовано:
-
https://getcomposer.org/ для автолоада классов и подключения сторонних библиотек, используемых для решения задачи
(написанных вами в том числе)
-
http://getbootstrap.com/ для стилизации HTML страниц
Решение прислать ввиде ссылки на код проекта на https://github.com/ В репозитории обязан быть файл README.md, содержащий инструкцию как установить проект и просмотреть функциональность.
Покрыть код unitтестами (https://phpunit.de). Юнит тесты добавить в проект с помощью composer https://getcomposer.org/
- Склонируйте репозиторий в локальный WEB сервер;
- Сконфигурируйте файл "config.ini" для подключения к базе данных MySQL;
- Запустите файл "db_table_creator.php" для создания таблиц в базе данных либо воспользуйтесь дампом "db_dump.sql";
- В броузере перейдите на сайт проекта;
- В поле ввода "Input your URL address:" введите требуемую ссылку для минимизации или перехода по заранее созданной короткой ссылке;
- Нажатие кнопки "Minimize" выполнит минимизацию и вернет короткий вариант ссылки;
- Если установлен чекбокс "Create a link with a limited shelf life", короткая ссылка просуществует ограниченное количество времени(1 час);
- Кнопка "Redirect" осуществляет перенаправление на сайт по короткой ссылке;
- При нажатии "Custom link" появится новое поле ввода для пользовательского варианта короткой ссылки;
- Кнопка "Show statistic" служит для отображения статистики переходов;