Skip to content

Rejestr obecnosci (mini)

This content is not available in your language yet.

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?

  • 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

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.

  1. Formularz rejestracji obecnosci Użytkownik wprowadza imie i nazwisko ucznia, wybiera date oraz status (obecny/nieobecny/spozniony).

  2. Lista wpisow Wszystkie wpisy sa wyświetlane w tabeli z mozliwoscia przegladania historii obecnosci.

  3. 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:

  • Formularz: imie i nazwisko, data, status (present/absent)
  • Walidacja w PHP (imie niepuste, status z dozwolonej listy)
  • Wyswietlanie listy wpisow w tabeli
  • Zapis do pliku JSON
  • Prosty interfejs CSS (czytelna tabela)

Przykładowy scenariusz:

Nauczyciel 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.

Ocena: 3.0

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:

  • Pokazac postepy - nawet małe kroki się licza
  • Wyjaśnić watpliwosci - pytaj, nie zgaduj
  • Skonsultowac rozwiązania - feedback pomoze Ci się rozwijac

Pracuj iteracyjnie - lepiej mieć działający wariant A niz niedokonczony C!