feat: Lernapp mit Mathe/Deutsch/Englisch, Münzsystem und Belohnungen

This commit is contained in:
root
2026-05-05 14:41:09 +00:00
parent 21e40cd2da
commit bd1640994c
45 changed files with 1522 additions and 58 deletions
+27 -12
View File
@@ -1,20 +1,35 @@
<?php
use App\Http\Controllers\ProfileController;
use App\Http\Controllers\Admin;
use App\Http\Controllers\Child;
use Illuminate\Support\Facades\Route;
Route::get('/', function () {
return view('welcome');
Route::get('/', fn() => redirect()->route('dashboard'));
// Role-aware dashboard redirect
Route::middleware(['auth','verified'])->get('/dashboard', function () {
return auth()->user()->isAdmin()
? redirect()->route('admin.dashboard')
: app(\App\Http\Controllers\Child\DashboardController::class)->index();
})->name('dashboard');
// ── ADMIN ──────────────────────────────────────────────────
Route::middleware(['auth','admin'])->prefix('admin')->name('admin.')->group(function () {
Route::get('/', [Admin\DashboardController::class, 'index'])->name('dashboard');
Route::resource('users', Admin\UserController::class);
Route::resource('questions',Admin\QuestionController::class);
Route::resource('rewards', Admin\RewardController::class)->except('show');
Route::get ('redemptions', [Admin\RedemptionController::class,'index']) ->name('redemptions.index');
Route::patch ('redemptions/{redemption}/approve', [Admin\RedemptionController::class,'approve'])->name('redemptions.approve');
Route::patch ('redemptions/{redemption}/reject', [Admin\RedemptionController::class,'reject']) ->name('redemptions.reject');
});
Route::get('/dashboard', function () {
return view('dashboard');
})->middleware(['auth', 'verified'])->name('dashboard');
Route::middleware('auth')->group(function () {
Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit');
Route::patch('/profile', [ProfileController::class, 'update'])->name('profile.update');
Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy');
// ── CHILD ──────────────────────────────────────────────────
Route::middleware(['auth','child'])->group(function () {
Route::get ('lernen', [\App\Http\Controllers\Child\LearnController::class,'subjects'])->name('learn.subjects');
Route::get ('lernen/{subject:slug}', [\App\Http\Controllers\Child\LearnController::class,'quiz']) ->name('learn.quiz');
Route::post('lernen/{subject:slug}/antwort', [\App\Http\Controllers\Child\LearnController::class,'answer']) ->name('learn.answer');
Route::get ('belohnungen', [\App\Http\Controllers\Child\RewardController::class,'index']) ->name('rewards.index');
Route::post('belohnungen/{reward}/einloesen', [\App\Http\Controllers\Child\RewardController::class,'redeem']) ->name('rewards.redeem');
});
require __DIR__.'/auth.php';