Czego się nauczysz?
- Obsługi formularzy z polem daty (input type=“date”)
- Walidacji statusow z ograniczonego zestawu wartości
- Filtrowania danych po dacie
- Generowania prostych statystyk i raportow
Stworzysz Rejestr obecnosci - aplikacje do rejestrowania obecnosci uczniow w okreslonym dniu. Nauczyciel (lub osoba odpowiedzialna) wprowadza imie ucznia, date i status obecnosci, a system zapisuje te dane i generuje podsumowania. Aplikacja pozwala sledzic frekwencje i eksportowac dane do dalszej analizy.
Czego się nauczysz?
W prawdziwej pracy...
Systemy ewidencji sa wszedzie - od szkolnych dziennikow elektronicznych, przez systemy HR rejestrujace obecnosc pracownikow, aż po aplikacje do zarzadzania wydarzeniami. Umiejetnosc budowania systemow z filtrami i raportami to kluczowa kompetencja w tworzeniu aplikacji biznesowych.
Formularz rejestracji obecnosci Użytkownik wprowadza imie i nazwisko ucznia, wybiera date oraz status (obecny/nieobecny/spozniony).
Lista wpisow Wszystkie wpisy sa wyświetlane w tabeli z mozliwoscia przegladania historii obecnosci.
Podsumowanie statystyk System wyświetla liczbe obecnych, nieobecnych i spoznionych dla wybranego dnia lub okresu.
Przykładowa struktura pliku JSON:
{ "attendance": [ { "id": 1, "name": "Jan Kowalski", "date": "2026-02-13", "status": "present", "note": "", "created_at": "2026-02-13 08:15:00" }, { "id": 2, "name": "Anna Nowak", "date": "2026-02-13", "status": "absent", "note": "Choroba", "created_at": "2026-02-13 08:16:00" } ]}Wymagane funkcje:
Przykładowy scenariusz:
Ocena: 3.0Nauczyciel wchodzi na strone, wpisuje “Jan Kowalski”, wybiera dzisiejsza date i status “Obecny”. Po kliknieciu “Zapisz” wpis pojawia się w tabeli ponizej. Przy probie zapisania pustego imienia widzi komunikat błędu.
Wszystko z wariantu A, plus:
Przykładowy scenariusz:
Ocena: 4.0-5.0Nauczyciel wybiera date “2026-02-13” z filtru. Widzi tylko wpisy z tego dnia. U góry wyświetla się podsumowanie: “Obecnych: 15 | Nieobecnych: 3 | Spoznionych: 2”. Może dodać nowy wpis i od razu zobaczyc zaktualizowane statystyki.
Wszystko z wariantu B, plus:
Przykładowy scenariusz:
Ocena: 5.0-6.0Nauczyciel generuje raport za luty 2026. Widzi tabele: każdy uczen w wierszu, każdy dzień w kolumnie, z kolorami oznaczajacymi status. Klika “Eksportuj do CSV” i pobiera plik do dalszej analizy w Excelu. Może też edytować błędny wpis lub dodać notatke “Zwolnienie lekarskie”.
Walidacja statusu:
$allowedStatuses = ['present', 'absent', 'late'];$status = $_POST['status'];
if (!in_array($status, $allowedStatuses)) { $errors[] = "Nieprawidłowy status obecnosci";}Filtrowanie po dacie:
$filterDate = $_GET['date'] ?? date('Y-m-d');$filtered = array_filter($attendance['attendance'], function($entry) use ($filterDate) { return $entry['date'] === $filterDate;});Obliczanie statystyk:
$stats = ['present' => 0, 'absent' => 0, 'late' => 0];foreach ($filtered as $entry) { $stats[$entry['status']]++;}Eksport do CSV:
header('Content-Type: text/csv; charset=utf-8');header('Content-Disposition: attachment; filename="obecnosc.csv"');
$output = fopen('php://output', 'w');fputcsv($output, ['Imie', 'Data', 'Status', 'Notatka']);
foreach ($attendance['attendance'] as $entry) { fputcsv($output, [$entry['name'], $entry['date'], $entry['status'], $entry['note'] ?? '']);}fclose($output);Wykorzystaj lekcje!
Cotygodniowe spotkania podczas lekcji to idealny moment, by:
Pracuj iteracyjnie - lepiej mieć działający wariant A niz niedokonczony C!