Тестовое задание
Есть сервис https://pastebin.com, Он позволяет загружать части текста/кода и получать на них короткую ссылку, которую можно отправить другим людям. Необходимо создать подобный сервис в упрощенном виде.
Основная функциональность:
- возможность загрузить часть текста/кода ("пасту") из названия и текста
- можно указать ограничение доступа:
- public - доступна всем, видна в списках (по умолчанию)
- unlisted - доступна только по ссылке
- можно выбрать срок, в течение которого "паста" будет доступна:
- время жизни: 1 час, 1 день, 1 неделя, 1 месяц, без ограничения
- после окончания срока получить доступ к "пасте" нельзя, в т. ч. в публичных списках
- для "пасты" можно выбрать язык, тогда при выводе синтаксис выбранного языка должен подсвечиваться (не обязательно (как плюс), можно пропустить, объяснив как это сделано было бы)
- для загруженной "пасты" выдается короткая ссылка вида http://my-awesome-pastebin.tld/{какой-то-рандомный-хэш}, например, http://my-awesome-pastebin.tld/ab12cd34
Возможность просмотра:
- по ссылке
- на главной странице есть блок с последними 10 публичными "пастами"
- пагинация на главной (не обязательный пункт, будет плюсом)
Требования к проекту:
- Backend: Symfony или любой другой с обоснованием
- DB: без ограничений
- Frontend - без ограничений
- Код с инструкцией по запуску в репозитории на github, при этом, крайне желательно пользоваться репозиторием, а не залить что получится в конце одним коммитом
- запуск проекта: docker compose up -d (соответственно должен быть установлен docker)
- ./bin/console doctrine:fixtures:load - тестовые данные
- для подсветки кода использовал бы https://highlightjs.org/