# 10 тем проектов для самостоятельной разработки **Стек:** PHP 8.2+, Laravel 12, Bootstrap 5 **Уровень:** Продвинутый новичок **Формат:** Командная работа (2–3 человека) --- ## Общие требования ко всем проектам - Полноценный 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. Каталог рецептов с рейтингом **Описание:** Кулинарная платформа для публикации рецептов, комментирования и оценки. **Основные сущности:** - Рецепты (название, описание, шаги, время приготовления, порции, изображение) - Категории (завтрак, обед, ужин, выпечка и т.д.) - Ингредиенты - Комментарии - Оценки (рейтинг 1–5) **Роли и права:** - **Администратор** — управление пользователями и модерация контента - **Автор рецепта** — создание/редактирование/удаление своих рецептов - **Пользователь** — просмотр каталога, комментирование, оценка, добавление в избранное **Что закрепить:** 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** |