Ответ
Тема моего диплома: «Разработка и внедрение веб-системы управления проектами на основе Laravel».
Ключевые аспекты реализации:
- Архитектура: Монолитное приложение на Laravel с модульной структурой (отдельные модули для задач, команд, отчетности).
- Backend: PHP 7.4, Laravel 8, MySQL. Реализовал REST API для мобильного клиента.
- Frontend: Blade-шаблоны с использованием Livewire для реактивных компонентов.
- Основной функционал:
- Система ролей и разрешений (использовал пакет
spatie/laravel-permission). - Диаграмма Ганта для планирования задач с drag-and-drop (интеграция библиотеки Frappe Gantt).
- Уведомления в реальном времени через WebSocket (Pusher).
- Генерация отчетов в PDF (dompdf).
- Система ролей и разрешений (использовал пакет
Пример кода для сервиса создания задачи:
class TaskService
{
public function create(User $user, array $data): Task
{
// Проверка прав доступа
if (!$user->can('create-tasks')) {
abort(403);
}
// Бизнес-логика: автоматическая установка дедлайна
if (empty($data['deadline'])) {
$data['deadline'] = now()->addWeek();
}
return Task::create($data);
}
}
Работа была защищена на «отлично». Кодовая база послужила основой для нескольких учебных проектов на кафедре.