laravel-12-tech-specs/README.md

259 lines
16 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 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** |