Przejdź do głównej zawartości

70. Planer tygodnia szkolnego

Planer tygodnia szkolnego

Aplikacja PHP do planowania tygodnia: dodawaj zadania szkolne przypisane do konkretnego dnia tygodnia, oznaczaj jako wykonane i przeglądaj podsumowanie postępu.

  • Organizowania danych w strukturze tygodniowej
  • Przechowywania stanu w sesji PHP lub pliku JSON
  • Oznaczania zadań jako wykonane z checkboxem
  • Obliczania procentu ukończonych zadań

Planery i listy zadań (todo apps) to klasyczne aplikacje webowe. Nauka zarządzania stanem zadań (done/pending) i organizacji danych w układzie czasowym jest podstawą każdego systemu zarządzania projektami.

  1. Formularz: treść zadania + dzień tygodnia
  2. Widok tygodnia: 5 lub 7 kolumn z zadaniami
  3. Checkbox przy każdym zadaniu (oznacz jako wykonane)
  4. Pasek postępu dnia (% wykonanych)
  5. Usuwanie zadania
{
"tasks": [
{
"id": 1,
"day": "poniedzialek",
"content": "Oddać projekt PHP",
"done": false,
"created_at": "2026-02-10"
},
{
"id": 2,
"day": "wtorek",
"content": "Nauczyć się array_map()",
"done": true,
"created_at": "2026-02-10"
}
]
}
  • Formularz dodawania zadania (treść + dzień)
  • Lista zadań zgrupowanych po dniu
  • Checkbox oznaczający wykonanie (POST + reload)
  • Zapis w sesji PHP lub JSON
Ocena: 3.0
<?php
$days = ['poniedzialek', 'wtorek', 'sroda', 'czwartek', 'piatek'];
// Grupowanie zadań po dniu
function groupByDay(array $tasks, array $days): array {
$grouped = array_fill_keys($days, []);
foreach ($tasks as $task) {
if (isset($grouped[$task['day']])) {
$grouped[$task['day']][] = $task;
}
}
return $grouped;
}
// Postęp dnia
function getDayProgress(array $dayTasks): array {
$total = count($dayTasks);
if ($total === 0) return ['done' => 0, 'total' => 0, 'percent' => 0];
$done = count(array_filter($dayTasks, fn($t) => $t['done']));
return ['done' => $done, 'total' => $total, 'percent' => round($done / $total * 100)];
}
// Oznaczenie zadania
function toggleTask(array &$tasks, int $id): void {
foreach ($tasks as &$task) {
if ($task['id'] === $id) {
$task['done'] = !$task['done'];
return;
}
}
}

Zaplanuj ten tydzień!

Dodaj swoje prawdziwe zadania szkolne na przyszły tydzień. Aplikacja będzie działać lepiej gdy testujesz ją na realnych danych!