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 можно сказать тоже не работает, выжал максимум, к сожалению потрачено много времени на него, чтоб переделывать с другим репо. Для того чтобы хотяб как то его запустить нужно выполнить манипуляцию

  1. src/Baum/Move.php на строке 355 заменить на это $method = $halt ? 'until' : 'dispatch';

Может вы конечно об этом и знали, но предлагаю для тестового другим кандидатам давать хотябы этот репозиторий: https://github.com/lazychaser/laravel-nestedset

Так же насройки webpack не смог посмотреть в репозитории vue-admin, так как репозиторий на рефакторе.