Skip to content

Тестовое задание. Регистрация. Авторизация по JWT. Фильтрация не предопределенных свойств

Notifications You must be signed in to change notification settings

POMXARK/test_task_laravel_9

Repository files navigation

Laravel Framework 9.52.15 (node v20.3.0)

Тестовое задание для PHP разработчика

На вакансию: https://khabarovsk.hh.ru/vacancy/76497462?hhtmFrom=chat

  • Разработать API backend на фреймворке Laravel 9.
  • В качестве БД использовать MySQL или PostgreSQL.

Требуемый функционал:

  • Регистрация:

    • Поля:

      • ФИО,
      • email (уникальный),
      • телефон (уникальный),
      • пароль,
      • подтверждение пароля.
    • Условия:

      • Все поля обязательны.
      • Пароль должен быть не менее 6 символов, только латиница, минимум 1 символ верхнего регистра, минимум 1 символ нижнего регистра, минимум 1 спец символ $%&!:.
      • Телефон должен удовлетворять маске: начинаться с +7 после чего идет 10 цифр.
  • Авторизация:

    • Поля:
      • email или телефон (одно поле),
      • пароль
    • Условия:
      • Для авторизованных пользователей доступен “каталог товаров”.
      • Идентификация пользователя должна происходить по Bearer токену.
  • Каталог товаров

    • Поля (Product):
      • название,
      • цена,
      • количество.
      • Свойства (опции) товара: название и значение
    • Условия:
      • Только для авторизованных
      • Свойства товара должны быть произвольными т.е. заполняться в отдельной таблице БД (например: color / red; color / white; weight / 1000, weight / 1250)
      • Реализовать фильтрацию списка товаров с множественным выбором, например GET /products?properties[color][]=red&properties[color][]=white&properties[weight][]=1000
  • Методы доступные неавторизованным пользователям: регистрация, авторизация
  • Методы доступные авторизованным пользователям: список товаров (“каталог товаров”) пагинированных по 40

Запуск

  • cp .env.example .env
  • php php composer_2.phar update
  • npm i

demo-deploy (all in one)

  • sudo rm -r docker
  • php artisan passport:keys
  • php artisan optimize
  • docker build -t test_task_laravel_9 .
  • docker run -d -p 8000:80 --name test_task_laravel_9 test_task_laravel_9

About

Тестовое задание. Регистрация. Авторизация по JWT. Фильтрация не предопределенных свойств

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published