@extends('layouts.admin') @section('content')

Proctoring Review

Violation Dashboard

Review captured screenshots, grouped by exam, and drill into the students who triggered warnings.

Total Violations

{{ $stats['total_violations'] }}

Affected Exams

{{ $stats['affected_exams'] }}

Affected Students

{{ $stats['affected_students'] }}

@if($reasonHighlights->isNotEmpty())

Top Violation Reasons

A quick summary of the most frequent triggers.

Top {{ $reasonHighlights->count() }}
@foreach($reasonHighlights as $highlight)

{{ $highlight->reason }}

{{ $highlight->total }}

@endforeach
@endif

Exam Summaries

{{ $examSummaries->count() }} exams with recorded violations
@forelse($examSummaries as $exam)

{{ $exam->title }}

{{ $exam->subject ?: 'No subject' }}

Violations

{{ $exam->violations_count }}

Last violation: {{ optional($exam->latest_violation_at)->format('d M Y, h:i A') ?? 'N/A' }}

@empty
No violations found yet.
@endforelse

Recent Violations

Latest {{ $recentViolations->count() }}
@forelse($recentViolations as $violation)
@php($imageUrl = route('admin.violations.image', $violation))
Violation capture

{{ $violation->reason }}

{{ $violation->user?->name ?? 'Unknown student' }} @if($violation->user?->registration_no || $violation->user?->email) • {{ $violation->user?->registration_no ?? $violation->user?->email }} @endif {{ $violation->exam?->title ?? 'Unknown exam' }}
{{ $violation->created_at?->format('d M, h:i A') }}
@empty
No recent violations to show.
@endforelse
@endsection