Skip to content

Тестовое задание, Laravel, REST api, Docker

Notifications You must be signed in to change notification settings

sf966gpm/test28

Repository files navigation

Тесовое задание

Тестовое задание 28

Цель нашего тестового задания - это определить уровень ваших знаний и навыков по разработке бэкенда веб-приложения. Тестовое задание сформулировано без каких-то жёстких требований, но просим при реализации учитывать лучшую практику из вашего опыта по оформлению кода и репозитория, обеспечению безопасности, производительности и командной работе. Пожалуйста, помните, что код и API должны быть не только рабочими, но и стабильными, понятными и удобными в использовании.

Подготовка

  1. Создайте новый публичный репозиторий на Gitlab.com, его нужно назвать “test28”. Пришлите на него ссылку по итогу тестового.
  2. Установите последнюю версию фреймворка Laravel (9.x).

Модели данных

  1. Марка автомобиля
    • Название
  2. Модель автомобиля
    • Название
    • Марка
  3. Автомобиль
    • Марка
    • Модель
    • Год выпуска (опциональный атрибут)
    • Пробег (опциональный атрибут)
    • Цвет (опциональный атрибут)

API

  1. Список марок автомобилей;
  2. Список моделей автомобилей;
  3. Список + CRUD автомобилей.

Дополнительное задание

(выполняется по желанию)

Привязать автомобиль к пользователю и разрешить пользователям доступ только к “своим” автомобилям.

Использование

Docker

cd /project-folder/test28

# Одно из двух делаем
# linux
cp .env.example .env
# windows
copy .env.example .env

# Сборка образа
docker compose build
# Запуск контейнеров
docker compose up -d
  1. Ждём пока соберутся образы.
  2. Запускаем контейнеры.
  3. Убедились что они все поднялись (если не встали, разбираемся почему).
  4. Ждем пока отработает стартовый скрипт в контейнере api.

Postman

Ссылка на открытый Workspace postman, с готовыми запросами.

  1. Форкаем postman, заходим в папку auth.
  2. Выбираем request Login (подготовил пользователя c email=[email protected] password=password).
  3. Отправляем (send).
  4. Из ответа, получаем token(Тип указан в ответе).
  5. Записываем его в Variables коллекции, называем его test28_token

Наслаждаемся.

Добавил от себя

  1. expire token поставил на 30 минут
  2. сделал schedule контейнер, в котором работает Laravel schedule через cron
  3. каждые 15 минут проверяет и удаляет просроченные token

About

Тестовое задание, Laravel, REST api, Docker

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages