Skip to content

BadLame/itsol_test

Repository files navigation

Установка проекта:

  • Копировать .env.example -> .env
  • php artisan key:generate
  • Настроить соединение с БД (или использовать готовое на sqlite)
  • php artisan migrate:fresh --seed - сид для создания хоть одного пользователя, чтобы новости/посту было к кому крепиться
  • php artisan storage:link - чтобы загружаемые с видео-постом файлы были доступны по ссылке

Проверка работы: php artisan test

Документация: /docs/api

  • 403 / 404 статусы обрабатываются через отлов исключений в /bootstrap/app.php
  • Тесты проверяют работоспособность функционала, корректность структур ответов, а так же статусы ошибок при "неправильных" запросах
  • Некоторые вещи, вроде передачи user_id (ID "авторизованного" пользователя) сделаны из-за условности (отсутствия авторизации), выглядело бы лучше на реальных кейсах
  • На практике я видел лишь раз реальное и целесообразное применение сервисных/репозиторных слоёв, понимаю их значение, но оно обычно нужно уже на больших и серьёзных проектах. Здесь использовал ради практики
  • Комментарии добываются по отдельному роуту, куда передаётся entity_type и entity_id - для универсальности применения

Тестовое задание Задача: Реализовать простую систему комментариев к контенту. Для проверки достаточно сделать API, шаблоны делать не нужно.

Вводные: Сущности – Новость, Видео Пост, Пользователь, Комментарий На комментарии можно отвечать – это является отдельным комментарием, как и отвечать на комментарий к комментарию и т.д.

Необходимые API: Создание/чтение видео постов, новостей. Поля – название, описание (к пользователю не привязываем, в рамках тестового это не играет роли) CRUD комментариев от лица пользователя к видео посту/новости/комментарию

Основные требования: При чтении Новости/Видео Поста API должно отдавать список комментариев с курсорной пагинацией

Технические требования: PHP 8.2+, Laravel 11+, MySQL 8+. Для решения задачи можно использовать сторонние библиотеки если в них есть смысл, решение загрузить на GitHub.


TODO

  • Новости
    • Создание
  • Перенести crud операции в сервисы
  • Комментарии
    • Пагинация
    • Создание
    • Редактирование
    • Удаление
  • Видео посты
    • Список
    • Привязка файла
    • Создание

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages