Skip to content

avknor/shortener

Repository files navigation

#«Сокращатель ссылок» ##Задача Кандидату предлагается создать простейший сервис, который позволяет преобразовывать длинные адреса в более короткие и удобные. Известные аналоги: bitly.com, goo.gl, tiny.cc и др.

Требования к серверной части:

  • Система должна корректно работать с PHP 7.2+, MySQL 5.7+.
  • Допускается и приветствуется использование фреймворков (в особенности Laravel, Symfony), библиотек, компонентов.

Требования к клиентской части:

  • Система должна корректно отображаться во всех популярных современных браузерах. Допускается и приветствуется использование фреймворков, JS-библиотек.

Функциональные требования:

  1. Создание короткой ссылки. На главной странице пользователь видит поле для ввода URL и ряд настроек. По нажатию кнопки “Уменьшить” пользователю предоставляются:

    • короткая ссылка с текущим доменом сайта вида http://superjob.test/RaNd0m57r1n9;
    • уникальная ссылка для просмотра статистики переходов этой ссылки.

    Возможные настройки для ссылки:

    • Пользовательский текст: у пользователя должна быть возможность выбрать свой текст для короткой ссылки, например, http://superjob.test/mytext;
    • Срок жизни ссылки: время, после истечения которого переход по ссылке будет невозможен;
    • Коммерческая ссылка: чекбокс/радио.
  2. Переход по короткой ссылке.

    • При переходе по уменьшенной ссылке пользователь получает редирект на целевую страницу. Переход фиксируется.
    • Для коммерческих ссылок перед перенаправлением в течение 5 секунд пользователю показывается случайная картинка из определенной директории. Показ картинки и переход фиксируются.
  3. Просмотр статистики одной ссылки.

    • По ссылке, полученной при создании, пользователь может посмотреть историю всех посещений одной, конкретной ссылки.
    • В случае коммерческой ссылки необходимо отобразить, какая картинка в какой переход была показана.
  4. Просмотр статистики всех ссылок.

    • По определенной ссылке (например, /stat) можно посмотреть общую статистику всех переходов по всем ссылкам. Для этого на основе истории переходов нужно посчитать общее количество уникальных посетителей для каждой ссылки в базе данных за последние 14 дней.

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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published