unfinished guru-admin

This commit is contained in:
RetasyaSalsabila 2026-02-17 20:56:59 +07:00
parent b0709c5747
commit 2ff49894ef
7 changed files with 119 additions and 2 deletions

View File

@ -0,0 +1,18 @@
<?php
namespace App\Http\Controllers\Guru;
use App\Http\Controllers\Controller;
use App\Models\Leaderboard;
class LeaderboardController extends Controller
{
public function index()
{
$leaderboards = Leaderboard::orderBy('ranking')
->orderByDesc('total_exp')
->paginate(10);
return view('admin.leaderboard.index', compact('leaderboards'));
}
}

View File

@ -0,0 +1,16 @@
<?php
namespace App\Http\Controllers\Guru;
use App\Http\Controllers\Controller;
use App\Models\Mapel;
class MapelController extends Controller
{
public function index()
{
$mapels = Mapel::paginate(10);
return view('guru.mapel.index', compact('mapels'));
}
}

View File

@ -0,0 +1,34 @@
@extends('admin.layouts.app')
@section('title', 'Leaderboard')
@section('content')
<h3 class="mb-4">🏆 Leaderboard</h3>
<table class="table table-striped bg-white">
<thead>
<tr>
<th>Ranking</th>
<th>NISN</th>
<th>Total EXP</th>
<th>Semester</th>
<th>Tahun Ajaran</th>
</tr>
</thead>
<tbody>
@foreach($leaderboards as $lb)
<tr>
<td>{{ $lb->ranking }}</td>
<td>{{ $lb->nisn }}</td>
<td>{{ $lb->total_exp }}</td>
<td>{{ $lb->semester }}</td>
<td>{{ $lb->tahun_ajaran }}</td>
</tr>
@endforeach
</tbody>
</table>
{{ $leaderboards->links() }}
@endsection

View File

@ -160,13 +160,13 @@ class="sidebar-link {{ request()->routeIs('guru.siswa.*') ? 'active' : '' }}">
<span>Daftar Siswa</span>
</a>
<a href="{{ route('guru.siswa.index') }}"
<a href="{{ route('guru.mapel.index') }}"
class="sidebar-link {{ request()->routeIs('guru.mapel.*') ? 'active' : '' }}">
<img src="{{ asset('images/icon/sidebar/mapel.png') }}" class="sidebar-icon">
<span>Mata Pelajaran</span>
</a>
<a href="{{ route('guru.siswa.index') }}"
<a href="{{ route('guru.leaderboard.index') }}"
class="sidebar-link {{ request()->routeIs('guru.leaderboard.*') ? 'active' : '' }}">
<img src="{{ asset('images/icon/sidebar/lb.png') }}" class="sidebar-icon">
<span>Leaderboard</span>

View File

@ -0,0 +1,34 @@
@extends('guru.layouts.app')
@section('title', 'Leaderboard')
@section('content')
<h3 class="mb-4">🏆 Leaderboard</h3>
<table class="table table-striped bg-white">
<thead>
<tr>
<th>Ranking</th>
<th>NISN</th>
<th>Total EXP</th>
<th>Semester</th>
<th>Tahun Ajaran</th>
</tr>
</thead>
<tbody>
@foreach($leaderboards as $lb)
<tr>
<td>{{ $lb->ranking }}</td>
<td>{{ $lb->nisn }}</td>
<td>{{ $lb->total_exp }}</td>
<td>{{ $lb->semester }}</td>
<td>{{ $lb->tahun_ajaran }}</td>
</tr>
@endforeach
</tbody>
</table>
{{ $leaderboards->links() }}
@endsection

View File

@ -11,6 +11,7 @@
use App\Http\Controllers\Admin\KelasController as AdminKelasController;
use App\Http\Controllers\Admin\SiswaController as AdminSiswaController;
use App\Http\Controllers\Admin\MapelController as AdminMapelController;
use App\Http\Controllers\Admin\LeaderboardController as AdminLeaderboardController;
// GURU CONTROLLERS
use App\Http\Controllers\Guru\LoginController as GuruLoginController;
@ -19,6 +20,9 @@
use App\Http\Controllers\Guru\KelasController as GuruKelasController;
use App\Http\Controllers\Guru\SiswaController as GuruSiswaController;
use App\Http\Controllers\Guru\ProfilController as GuruProfilController;
use App\Http\Controllers\Guru\MapelController as GuruMapelController;
use App\Http\Controllers\Guru\LeaderboardController as GuruLeaderboardController;
// ====================
// LANDING PAGE
@ -85,12 +89,16 @@
Route::get('/profil', function () {
return view('admin.profil');
})->name('profil');
// CRUD AREA
Route::resource('guru', AdminGuruController::class);
Route::resource('siswa', AdminSiswaController::class);
Route::resource('kelas', AdminKelasController::class);
Route::resource('mapel', AdminMapelController::class);
Route::resource('leaderboard', AdminLeaderboardController::class)
->only(['index']);
// LOGOUT ADMIN
Route::post('/logout', [LoginController::class, 'logout'])
@ -114,6 +122,13 @@
// Daftar Siswa (Read Only)
Route::get('/daftar-siswa', [GuruSiswaController::class, 'index'])->name('siswa.index');
Route::get('/mapel', [GuruMapelController::class, 'index'])
->name('mapel.index');
Route::get('/leaderboard', [GuruLeaderboardController::class, 'index'])
->name('leaderboard.index');
// Profil (Edit)
Route::get('/profil', [GuruProfilController::class, 'show'])->name('profil.show');
Route::put('/profil', [GuruProfilController::class, 'update'])->name('profil.update');