Тестовое задание на позицию стажера/junior бекенд разработчика в юнит Авто
Задача:
Нужно сделать HTTP сервис для сокращения URL наподобие Bitly и других сервисов.
UI не нужен, достаточно сделать JSON API сервис.
Должна быть возможность:
-
сохранить короткое представление заданного URL
-
перейти по сохраненному ранее короткому представлению и получить redirect на соответствующий исходный URL
Требования:
-
Язык программирования: Go/Python/PHP/Java/JavaScript
-
Предоставить инструкцию по запуску приложения. В идеале (но не обязательно) – использовать контейнеризацию с возможностью запустить проект командой
docker-compose up -
Требований к используемым технологиям нет - можно использовать любую БД для персистентности
-
Код нужно выложить на github (просьба не делать форк этого репозитория, чтобы не плодить плагиат)
Усложнения:
-
Написаны тесты (постарайтесь достичь покрытия в 70% и больше)
-
Добавлена валидация URL с проверкой корректности ссылки
-
Добавлена возможность задавать кастомные ссылки, чтобы пользователь мог сделать их человекочитаемыми - http://bit.ly/avito-auto-be
-
Проведено нагрузочное тестирование с целью понять, какую нагрузку на чтение может выдержать наш сервис
-
Если вдруг будет желание, можно слепить простой UI и выложить сервис на бесплатный хостинг - Google Cloud, AWS и подобные.