Harmonogram zajęć szkolnych
Aplikacja do tworzenia i zarządzania tygodniowym planem zajęć: dodawanie lekcji, przypisywanie sal i nauczycieli, wykrywanie konfliktów (ta sama sala w tym samym czasie).
Harmonogram zajęć szkolnych
Aplikacja do tworzenia i zarządzania tygodniowym planem zajęć: dodawanie lekcji, przypisywanie sal i nauczycieli, wykrywanie konfliktów (ta sama sala w tym samym czasie).
{ "lessons": [ { "id": 1, "class": "3TI", "subject": "Programowanie aplikacji webowych", "teacher": "mgr Nowak", "room": "B14", "day": "poniedzialek", "hour": 1, "added_at": "2026-01-15" } ], "rooms": ["A01", "A02", "B14", "B15", "Sala gimnastyczna"], "teachers": ["mgr Nowak", "mgr Kowalska", "dr Wiśniewski"]}Wymagane funkcje:
Wszystko z A, plus:
Wszystko z B, plus:
Wykrywanie konfliktu sali:
function hasRoomConflict(array $lessons, string $room, string $day, int $hour, int $excludeId = 0): bool { foreach ($lessons as $lesson) { if ($lesson['id'] === $excludeId) continue; if ($lesson['room'] === $room && $lesson['day'] === $day && $lesson['hour'] === $hour) { return true; } } return false;}Budowanie siatki tygodniowej:
function buildScheduleGrid(array $lessons, string $class): array { $days = ['poniedzialek', 'wtorek', 'sroda', 'czwartek', 'piatek']; $grid = []; foreach ($days as $day) { for ($h = 1; $h <= 8; $h++) { $grid[$day][$h] = null; } } foreach ($lessons as $l) { if ($l['class'] === $class) { $grid[$l['day']][$l['hour']] = $l; } } return $grid;}