Mini platforma e-learningowa
Uproszczona platforma do nauki online: lista kursów z lekcjami, śledzenie postępu uczestnika (które lekcje zostały ukończone) oraz prosty quiz na zakończenie kursu.
Mini platforma e-learningowa
Uproszczona platforma do nauki online: lista kursów z lekcjami, śledzenie postępu uczestnika (które lekcje zostały ukończone) oraz prosty quiz na zakończenie kursu.
{ "courses": [ { "id": 1, "title": "Podstawy PHP", "description": "Zmienne, tablice, pętle i formularze", "lessons": [ { "id": 1, "title": "Zmienne i typy danych", "content": "W PHP zmienne zaczynają się od znaku dolara..." } ], "quiz": [ { "id": 1, "question": "Jak zadeklarować zmienną w PHP?", "options": ["$nazwa", "#nazwa", "@nazwa", "var nazwa"], "correct": 0 } ] } ]}Wymagane funkcje:
Wszystko z A, plus:
Wszystko z B, plus:
Śledzenie postępu w sesji:
function markLessonComplete(int $courseId, int $lessonId): void { session_start(); $_SESSION['progress'][$courseId][$lessonId] = true;}
function getLessonProgress(int $courseId, array $lessons): array { session_start(); $completed = $_SESSION['progress'][$courseId] ?? []; $total = count($lessons); $done = count($completed); return ['done' => $done, 'total' => $total, 'percent' => $total > 0 ? round($done / $total * 100) : 0];}Obliczanie wyniku quizu:
function gradeQuiz(array $questions, array $answers): array { $correct = 0; foreach ($questions as $q) { $userAnswer = (int)($answers[$q['id']] ?? -1); if ($userAnswer === $q['correct']) $correct++; } $total = count($questions); return ['correct' => $correct, 'total' => $total, 'percent' => round($correct / $total * 100)];}