laravel-12-tech-specs/README.md

16 KiB
Raw Blame History

10 тем проектов для самостоятельной разработки

Стек: PHP 8.2+, Laravel 12, Bootstrap 5
Уровень: Продвинутый новичок
Формат: Командная работа (23 человека)


Общие требования ко всем проектам

  • Полноценный CRUD для основных сущностей
  • Авторизация и разграничение прав (Roles + Gates + Policies)
  • Адаптивная вёрстка на Bootstrap 5
  • Валидация форм, flash-сообщения, пагинация
  • Совместная разработка через Git (ветки, pull request, code review)

Рекомендуемый Git-workflow для команды

  1. Основная веткаmain (защищена, прямой пуш запрещён)
  2. Ветка разработкиdevelop (сливается в main через PR)
  3. Фич-веткиfeature/<название> (например, feature/categories-crud)
  4. Правила:
    • Каждый участник работает в своей фич-ветке
    • Перед слиянием — код-ревью от другого участника команды
    • Конфликты решаются совместно, через обсуждение
    • Коммиты по правилам Conventional Commits: feat:, fix:, docs:, refactor:
  5. Распределение ролей в команде:
    • Каждый участник — ответственный за определённые модули
    • Ротация ролей ревьювера на каждый Pull Request

1. Система управления задачами (Task Manager)

Описание: Веб-приложение для управления личными и командными задачами с возможностью назначения исполнителей и отслеживания статуса.

Основные сущности:

  • Задачи (название, описание, статус, приоритет, дедлайн)
  • Пользователи (исполнитель, постановщик)
  • Проекты (группировка задач)
  • Комментарии к задачам

Роли и права:

  • Администратор — полный доступ, управление пользователями
  • Менеджер — создание/редактирование проектов и задач, назначение исполнителей
  • Исполнитель — просмотр назначенных задач, изменение статуса, добавление комментариев

Что закрепить: CRUD задач и проектов, Policies на редактирование/удаление, фильтрация и сортировка, Bootstrap-компоненты (карточки, модальные окна).


2. Онлайн-магазин с корзиной

Описание: Каталог товаров с возможностью добавления в корзину и оформления заказа.

Основные сущности:

  • Товары (название, описание, цена, изображение, наличие)
  • Категории товаров
  • Корзина (сессия / БД)
  • Заказы (статус, сумма, данные покупателя)
  • Позиции заказа

Роли и права:

  • Администратор — управление товарами, категориями, пользователями
  • Менеджер заказов — просмотр и обновление статусов заказов
  • Покупатель — просмотр каталога, корзина, оформление заказов, просмотр своих заказов

Что закрепить: CRUD товаров с загрузкой изображений, связи многие-ко-многим (категории), работа с сессией, Policies для заказов.


3. Платформа для онлайн-курсов

Описание: Система для публикации и прохождения онлайн-курсов с отслеживанием прогресса.

Основные сущности:

  • Курсы (название, описание, обложка, автор)
  • Уроки (видео, текст, порядок в курсе)
  • Студенты (запись на курс, прогресс)
  • Тесты/викторины к урокам
  • Результаты тестов

Роли и права:

  • Администратор — управление пользователями и всеми курсами
  • Преподаватель — создание/редактирование своих курсов и уроков
  • Студент — запись на курсы, прохождение уроков, сдача тестов, просмотр своего прогресса

Что закрепить: Вложенный CRUD (курс → уроки), Policies на доступ к урокам, прогресс-бары Bootstrap, отношения многие-ко-многим.


4. Система бронирования помещений и оборудования

Описание: Приложение для бронирования конференц-залов, оборудования или рабочих мест с календарём и подтверждением.

Основные сущности:

  • Ресурсы (помещения, оборудование — название, описание, вместимость)
  • Категории ресурсов
  • Бронирования (дата начала/окончания, цель, статус)
  • Пользователи (инициатор бронирования)

Роли и права:

  • Администратор — управление ресурсами и пользователями
  • Модератор — подтверждение/отклонение бронирований, управление расписанием
  • Пользователь — создание бронирований, просмотр своих и доступных ресурсов

Что закрепить: Валидация пересечения дат, календарный интерфейс (Bootstrap), Policies на отмену/редактирование бронирования, статусы.


5. Портфолио-платформа для фрилансеров

Описание: Сервис для публикации портфолио, поиска заказов и обмена отзывами.

Основные сущности:

  • Профили фрилансеров (навыки, описание, контакты)
  • Портфолио-проекты (название, описание, изображение, технологии)
  • Категории услуг
  • Отзывы и рейтинги
  • Заявки на проекты

Роли и права:

  • Администратор — модерация контента, управление пользователями
  • Фрилансер — управление своим профилем, проектами, просмотр входящих заявок
  • Клиент — просмотр каталога, отправка заявок, написание отзывов

Что закрепить: CRUD портфолио с загрузкой изображений, Policies на редактирование профиля, рейтинги, Bootstrap-карточки и сетка.


6. Система управления мероприятиями (Event Manager)

Описание: Платформа для создания и продвижения мероприятий с регистрацией участников.

Основные сущности:

  • Мероприятия (название, описание, дата, место, вместимость, обложка)
  • Категории (конференции, воркшопы, вебинары)
  • Участники (регистрация на мероприятие)
  • Комментарии/обсуждения

Роли и права:

  • Администратор — управление пользователями и всеми мероприятиями
  • Организатор — создание/редактирование своих мероприятий, просмотр списка участников
  • Участник — регистрация на мероприятия, просмотр расписания, комментарии

Что закрепить: CRUD мероприятий, загрузка изображений, Policies на редактирование, валидация вместимости, Bootstrap-модальные окна для регистрации.


7. Каталог рецептов с рейтингом

Описание: Кулинарная платформа для публикации рецептов, комментирования и оценки.

Основные сущности:

  • Рецепты (название, описание, шаги, время приготовления, порции, изображение)
  • Категории (завтрак, обед, ужин, выпечка и т.д.)
  • Ингредиенты
  • Комментарии
  • Оценки (рейтинг 15)

Роли и права:

  • Администратор — управление пользователями и модерация контента
  • Автор рецепта — создание/редактирование/удаление своих рецептов
  • Пользователь — просмотр каталога, комментирование, оценка, добавление в избранное

Что закрепить: CRUD рецептов, многие-ко-многим (рецепт ↔ ингредиенты), расчёт среднего рейтинга, Policies, Bootstrap-компоненты.


8. Система управления складом (Inventory Management)

Описание: Приложение для учёта товаров на складе с контролем прихода и расхода.

Основные сущности:

  • Товары (артикул, название, описание, единица измерения)
  • Категории товаров
  • Поставщики
  • Приходные накладные (дата, поставщик, позиции)
  • Расходные накладные (дата, получатель, позиции)
  • Остатки на складе

Роли и права:

  • Администратор — полный доступ, управление справочниками и пользователями
  • Кладовщик — оформление прихода/расхода, просмотр остатков
  • Менеджер — просмотр каталога, формирование отчётов, просмотр истории операций

Что закрепить: CRUD с вложенными моделями (накладная → позиции), транзакции БД, Policies, отчёты, Bootstrap-таблицы и навигация.


9. Платформа для обмена книгами (Book Exchange)

Описание: Сервис для обмена книгами между пользователями с системой Wishlist.

Основные сущности:

  • Книги (название, автор, ISBN, описание, обложка, состояние)
  • Категории/жанры
  • Обменные предложения (кто, какую книгу предлагает, какую хочет)
  • Отзывы об обмене
  • Wishlist (список желаемых книг)

Роли и права:

  • Администратор — модерация, управление пользователями
  • Владелец книги — добавление книг, управление обменными предложениями, подтверждение обмена
  • Запрашивающий — просмотр каталога, создание запросов на обмен, Wishlist

Что закрепить: CRUD книг и предложений, статусы обменов, Policies, Bootstrap-бейджи для статусов, валидация запросов.


10. Система помощи питомцам (Pet Shelter Management)

Описание: Платформа для приюта животных: каталог питомцев, заявки на усыновление, управление волонтёрами.

Основные сущности:

  • Питомцы (кличка, вид, порода, возраст, описание, фото, статус)
  • Категории (кошки, собаки, грызуны и т.д.)
  • Заявки на усыновление (данные заявителя, статус, комментарий)
  • Волонтёры (имя, контакты, расписание)
  • Истории питомцев (обновления, лечение)

Роли и права:

  • Администратор — полный доступ к питомцам, заявкам, волонтёрам
  • Волонтёр — добавление питомцев, обновление историй, просмотр заявок
  • Потенциальный хозяин — просмотр каталога, подача заявки на усыновление

Что закрепить: CRUD питомцев с фото, статусы заявок, Policies, загрузка файлов, Bootstrap-карточки и прогресс-бары статусов.


Чек-лист минимального функционала для каждого проекта

  • Аутентификация (Laravel Breeze / Jetstream)
  • CRUD для всех основных сущностей
  • Роли пользователей (минимум 3 роли)
  • Gates и Policies для разграничения прав
  • Валидация форм с сообщениями об ошибках
  • Flash-сообщения (успех / ошибка)
  • Пагинация списков
  • Адаптивная вёрстка Bootstrap 5 (навбар, карточки, таблицы, модальные окна, формы)
  • Git-репозиторий с историей коммитов от всех участников
  • Минимум 3 ветки на каждого участника, слитые через Pull Request

Критерии оценки проекта

Критерий Баллы
Полнота CRUD-операций 20
Корректность разграничения прав (Gates/Policies) 20
Качество вёрстки (Bootstrap 5, адаптивность) 15
Валидация и обработка ошибок 10
Качество Git-истории (коммиты, ветки, PR) 15
Совместная работа (вклад каждого участника) 10
Документация (README, описание проекта) 10
Итого 100