Tech-stack:
- Laravel 12
- Livewire starter kit
- Filament 4 admin panel
How it works
Here are the main parts of the code of that repository.
Routing + Livewire screens
Student pages are plain Livewire classes that sit directly on routes. No controllers, no extra Blade files.
Fortify powers authentication, so after registration the user immediately lands on /dashboard. From there they can browse quizzes, take them, and open attempt results. Those screens live behind the auth middleware:
Route::middleware(['auth'])->group(function () { Route::get('quizzes', QuizList::class)->name('quizzes.index'); Route::get('quizzes/{quiz}/take', TakeQuiz::class)->name('quizzes.take'); Route::get('attempts/{attempt}/results', QuizResults::class)->name('attempts.results'); Route::redirect('settings', 'settings/profile');});
Because each route points at a Livewire class, state stays on the server. Wire navigation keeps transitions quick, and every page automatically shares auth checks and SEO metadata through the layout components.
Student dashboard and analytics
App\Livewire\Dashboard is the landing page once a user logs in. It exposes three computed properties:
-
statsfor the high-level cards (total attempts, average score, pass rate). -
attemptsfor the paginated table of recent...