System punktacji uczniów
Aplikacja do zarządzania punktacją uczniów w klasie: dodawanie uczniów, przyznawanie punktów za aktywności (odpowiedź, projekt, konkurs) i wyświetlanie rankingu.
System punktacji uczniów
Aplikacja do zarządzania punktacją uczniów w klasie: dodawanie uczniów, przyznawanie punktów za aktywności (odpowiedź, projekt, konkurs) i wyświetlanie rankingu.
usort)Systemy gamifikacji i punktacji są w każdej platformie e-learningowej, systemach CRM i programach lojalnościowych. Ta aplikacja uczy agregacji danych i budowania rankingów.
{ "students": [ { "id": 1, "name": "Jan Kowalski", "class": "3TI", "points": [ {"amount": 5, "reason": "Odpowiedź na lekcji", "date": "2026-02-10"}, {"amount": 10, "reason": "Projekt tygodnia", "date": "2026-02-14"} ] } ]}<?php// Obliczanie sumy punktów uczniafunction getTotalPoints(array $student): int { return array_sum(array_column($student['points'], 'amount'));}
// Budowanie rankingufunction buildRanking(array $students): array { $ranked = array_map(function($s) { $s['total'] = getTotalPoints($s); return $s; }, $students);
usort($ranked, fn($a, $b) => $b['total'] <=> $a['total']);
foreach ($ranked as $i => &$s) { $s['rank'] = $i + 1; } return $ranked;}
// Przyznawanie punktówfunction addPoints(array &$students, int $studentId, int $amount, string $reason): bool { foreach ($students as &$student) { if ($student['id'] === $studentId) { $student['points'][] = [ 'amount' => $amount, 'reason' => htmlspecialchars($reason), 'date' => date('Y-m-d'), ]; return true; } } return false;}Gamifikacja w klasie!
Zacznij od listy uczniów i sumy punktów. Potem dodaj formularz przyznawania. Ranking przyjdzie naturalnie po usort().