Initial commit - lms-v2 + CLAUDE.md

This commit is contained in:
Iwit
2026-05-30 22:15:16 +07:00
commit 5811409e2d
183 changed files with 23225 additions and 0 deletions
@@ -0,0 +1,84 @@
@extends('layouts.app')
@section('content')
<div class="max-w-5xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
<div class="mb-6 flex items-center justify-between">
<div class="flex items-center space-x-3">
<a href="{{ route('admin.reports.training') }}" class="text-slate-400 hover:text-indigo-600 transition-colors">
<svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 19l-7-7m0 0l7-7m-7 7h18"></path></svg>
</a>
<h2 class="text-2xl font-bold text-slate-800 tracking-tight">Rapor Evaluasi Karyawan</h2>
</div>
<button class="px-4 py-2 bg-slate-900 text-white rounded-lg text-sm font-semibold shadow-md hover:bg-slate-800 flex items-center">
<svg class="w-4 h-4 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 17h2a2 2 0 002-2v-4a2 2 0 00-2-2H5a2 2 0 00-2 2v4a2 2 0 002 2h2m2 4h6a2 2 0 002-2v-4a2 2 0 00-2-2H9a2 2 0 00-2 2v4a2 2 0 002 2zm8-12V5a2 2 0 00-2-2H9a2 2 0 00-2 2v4h10z"></path></svg>
Cetak PDF
</button>
</div>
<div class="grid grid-cols-1 md:grid-cols-4 gap-4 mb-8">
<div class="bg-white p-6 rounded-2xl shadow-sm border border-slate-200">
<p class="text-sm font-semibold text-slate-500 mb-1">Identitas Trainee</p>
<h3 class="text-xl font-extrabold text-slate-900">{{ $user->first_name }} {{ $user->last_name }}</h3>
<p class="text-xs text-slate-400 mt-1">NIK: {{ $user->nik ?? 'N/A' }}</p>
</div>
<div class="bg-indigo-50 p-6 rounded-2xl border border-indigo-100">
<p class="text-sm font-semibold text-indigo-600 mb-1">Total Evaluasi</p>
<h3 class="text-3xl font-extrabold text-indigo-900">{{ $stats['total_exams'] }}</h3>
</div>
<div class="bg-emerald-50 p-6 rounded-2xl border border-emerald-100">
<p class="text-sm font-semibold text-emerald-600 mb-1">Total Lulus</p>
<h3 class="text-3xl font-extrabold text-emerald-900">{{ $stats['passed'] }}</h3>
</div>
<div class="bg-orange-50 p-6 rounded-2xl border border-orange-100">
<p class="text-sm font-semibold text-orange-600 mb-1">Rata-rata Nilai</p>
<h3 class="text-3xl font-extrabold text-orange-900">{{ number_format($stats['avg_score'], 1) }}</h3>
</div>
</div>
<div class="bg-white rounded-2xl shadow-sm border border-slate-200 overflow-hidden">
<div class="p-6 border-b border-slate-100">
<h3 class="text-lg font-bold text-slate-800">Riwayat Sesi Ujian</h3>
</div>
<div class="overflow-x-auto">
<table class="w-full text-left text-sm whitespace-nowrap">
<thead class="bg-slate-50 text-slate-500 text-xs uppercase tracking-wider">
<tr>
<th class="px-6 py-4 font-semibold">Tanggal Ujian</th>
<th class="px-6 py-4 font-semibold">ID / Sesi Ujian</th>
<th class="px-6 py-4 font-semibold text-center">Skor Akhir</th>
<th class="px-6 py-4 font-semibold text-center">Status</th>
</tr>
</thead>
<tbody class="divide-y divide-slate-100 text-slate-700">
@forelse($examHistory as $history)
<tr class="hover:bg-slate-50 transition-colors">
<td class="px-6 py-4 text-slate-500 font-medium">
{{ $history->created_at->format('d M Y - H:i') }}
</td>
<td class="px-6 py-4 font-bold text-slate-900">
Exam ID: #{{ $history->exam_id }}
</td>
<td class="px-6 py-4 text-center font-extrabold {{ $history->score >= 70 ? 'text-emerald-600' : 'text-red-500' }}">
{{ $history->score }}
</td>
<td class="px-6 py-4 text-center">
@if($history->is_passed)
<span class="px-3 py-1 text-xs font-bold bg-emerald-100 text-emerald-700 rounded-full">LULUS</span>
@else
<span class="px-3 py-1 text-xs font-bold bg-red-100 text-red-700 rounded-full">GAGAL</span>
@endif
</td>
</tr>
@empty
<tr>
<td colspan="4" class="px-6 py-8 text-center text-slate-500">
Karyawan ini belum pernah mengikuti evaluasi ujian.
</td>
</tr>
@endforelse
</tbody>
</table>
</div>
</div>
</div>
@endsection