Skip to content

alexvenga/test-rows

Repository files navigation

Задание

Laravel (Docker, Laravel echo, redis, mariadb)

Развернуть laravel в docker с установкой laravel cron и сервером очередей rabbitmq

  1. Реализовать контроллер с валидацией и загрузкой excel файла
  2. Загруженный файл через jobs поэтапно (по 1000 строк) парсить в бд (таблица rows)
  3. Прогресс парсинга файла хранить в redis (уникальный ключ + количество обработанных строк)
  4. Поля excel:
    1. id
    2. name
    3. date (d.m.Y)
  5. Для парсинга excel можете использовать maatwebsite/excel
  6. Реализовать контроллер для вывода данных (rows) с группировкой по date - двумерный массив
  7. Будет плюсом если вы реализуете через laravel echo передачу event-а на создание записи в rows
  8. Написать тесты

Установка

  1. Клонировать проект
  2. Выполните установку зависимостей docker run --rm -u "$(id -u):$(id -g)" -v $(pwd):/opt -w /opt laravelsail/php82-composer:latest composer install --ignore-platform-reqs
  3. Скопировать .env.example в .env, при необходиемости внести изменения (все настройки для текущего контейнера для запуска на MacOS уже внесены)
  4. Подключить алиас для sail Документация
  5. Запустить docker-compose командой sail up -d
  6. Установить frontend-зависимости sail npm i --save-dev
  7. Собрать frontend sail npm run build
  8. Сгенерировать ключь продукта sail artisan key:generate
  9. Запустить миграции sail artisan migrate
  10. Запустить выполнение заданий в очереди sail artisan queue:work усли запустить queue:listen будет работать медленнее и нагляднее
  11. Открыть адрес localhost

Тестирование

  1. Выполнить миграции sail artisan migrate --env=testing
  2. Запустить тесты sail test

Реальные тесты пишу впервые)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published