Привет!
Если вы видите это задание, значит вас заинтересовала вакансия самого крутого стартапа в России!
Это задание даст нам понимание ваших навыков backend, а также взаимодействие с движком Laravel.
Что от вас потребуется:
- забрать файлы с этого репозитория и развернуть проект на своей локальной машине (если не понимаете, о чем идет речь, просто установите Xampp)
- создать базу данных, чтобы сделать миграцию, и установить нужные зависимости composer и npm
- создать в данном репозитории свою ветку (обязательно)
- реализовать задачи из списка ниже
- сделать push своей ветки после завершения
Критерии успешного прохождения:
- ваш проект развернут на локальной машине
- вы поняли задачи и реализовали их
- вы создали отдельную ветку и сделали push со всеми доработками
Инструкция по работе с проектом:
- после того, как вы скачали файлы из репозитория к себе, их можно разместить в любой директории
- для работы на локальной машине вам потребуется установить Xampp или его аналоги
- чтобы работать с Laravel, вам нужно поставить Composer
- как только у вас появился Composer, нужно выполнить следующие команды:
composer update
composer dump-autoload
- проект развернут, далее вам нужно создать у себя базу данных (в phpmyadmin, который поставляется из Xampp),
- данные о созданной базе нужно создать файл .env (копия .env.exapmle) и внести правки:
DB_DATABASE
- имя базы
DB_USERNAME
- имя пользователя (обычно root)
DB_PASSWORD
- пароль (если не задавали, оставить пустым) - после создания базы, вам нужно сделать миграцию следующей командой:
php artisan migrate
- необходимо также сгенерировать ключ приложения командой:
php artisan key:generate
- все готово, теперь осталось запустить наш проект:
php artisan serve
- если вы все сделали правильно, проект запущен на локалке и доступен по ссылке localhost:8000
- для дальнейшних компиляций интерфейса вам потребуется пакет npm
- после его установки, вам необходимо сделать:
npm install
- для последующей компиляции интерфейса используйте одну из следующих команд:
npm run watch
- компиляция происходит в реальном времени, файлы создаются после любого изменения (решение для локальной разработки)
npm run dev
- компиляция происходит один раз, создается несжатые файлы
npm run prod
- компиляция происходит один раз, создается сжатые файлы (решение для продакшна)
Подробности:
- это урезанная страница уже рабочего проекта
- задачи представляют собой похожий реальный кейс боевого проекта (над которым и нужно будет работать)
- весь необходимый frontend уже написан, вам осталось дописать сервер для взаимодействия с ним
- тестовое задание неоплачиваемое, т.к. функционал уже реализован на сайте (можете убедиться в этом сами, зайти на страницу peak.promo, зарегистрироваться как музыкант и добавить трек)
Задачи:
- создать таблицу в базе данных (через миграцию), в которой нужно хранить данные о добавленных треках (title: название трека, author: исполнитель, album: название альбома, image: ссылка на обложку (изображение нужно хранить на сайте), url: ссылка на трек в тикток)
- трек должен добавляться в базу post-запросом по адресу /api/v1/add_music (POST)
- обязательно сохранять обложку трека на сайте (storage)
- должна быть возможно предварительно получать информацию о треке из тиктока по адресу /api/v1/get_music (POST)
- отдавать интерфейсу список добавленных треков из базы данных по адресу /api/v1/music_list (GET)
Как получить информацию из тиктока:
- для получения информации необходимо исполнить curl к адресу
https://parser.peak.promo
- в curl должен отправляться post-запрос с полями: action (в данном случае = getMusic), url = ссылка из тиктока на звук
- в полученном ответе будет содержаться нужная информация о треке
Вы можете обращаться к автору задания с какими-либо вопросами или за подсказками: на почту и в telegram