Task-Mesh
About Task
Тестовое задание на Laravel
Даны две сущности: категория и товар Категории сделать при помощи sql паттерна nested set. Можно взять пакет для этого. Товары нужно помещать в категории. У товара должно быть название, описание и изображение Все crud операции (с загрузкой изображения), связанные с товарами и категориями должны быть доступны через API Для получения/записи данных в бд использовать Репозитории/Сервисы Валидация данных должна проходить через FormRequest Для вывода ресурсы или трансформеры Сделать фронтенд на vuejs в виде spa который слева будет отображать дерево категорий, при нажатии подгружать товары из соответствующей категории. Написать seeds и factory для создания фейковых категорий и товаров в них. Для любого контроллера написать unit-тесты
Код должен соответстовать PSR-2.
Nested set пакет: https://github.com/etrepat/baum
Фронтенд: vuejs 2, vue-router, vue-resource. Для верстки давай bulma.io. Сборка посредством webpack. Отличный пример конфига webpack сможешь найти в репозитории vue-admin. Если тебе будет проще, то можешь воспользоваться laravel-mix webpack для сборки. https://pastebin.com/EJyKjycP это пример Юнит не обязательно, но если справишься будет супер
Install project for local machine
- git clone git@github.com:RentCeisy/task-mesh.git
- composer install
- npm install
- npm run dev
Migration database:
- php artisan migrate
DB seeds:
- php artisan db:seed
Attention!!! Baum репозиторий устарел, с laravel выше 5.8 не работает. С laravel 5.8 можно сказать тоже не работает, выжал максимум, к сожалению потрачено много времени на него, чтоб переделывать с другим репо. Для того чтобы хотяб как то его запустить нужно выполнить манипуляцию
- src/Baum/Move.php на строке 355 заменить на это $method = $halt ? 'until' : 'dispatch';
Может вы конечно об этом и знали, но предлагаю для тестового другим кандидатам давать хотябы этот репозиторий: https://github.com/lazychaser/laravel-nestedset
Так же насройки webpack не смог посмотреть в репозитории vue-admin, так как репозиторий на рефакторе.