@vite(['resources/css/app.css', 'resources/js/app.js'])
@if(session('success'))
{{ session('success') }}
@endif

Live Interview Assessments

Temporary Candidate Access, Real-Time Proctored IDE, and Unique Code Records
@forelse($interviews as $inv) @php $logs = $inv->proctor_logs ?? []; $tabSwitches = count(array_filter($logs, fn($l) => ($l['type'] ?? '') === 'tab_switch')); $focusLost = count(array_filter($logs, fn($l) => ($l['type'] ?? '') === 'focus_lost')); $gazeAlerts = count(array_filter($logs, fn($l) => ($l['type'] ?? '') === 'gaze_anomaly')); @endphp @empty @endforelse
Candidate & Temp Pass Unique Submission ID Status & Validity Language Proctoring Alerts Review & Actions
{{ $inv->candidate_name }}
{{ $inv->candidate_email }} • {{ $inv->candidate_phone }}
🔑 Temp Pass: {{ $inv->temp_password }}
{{ $inv->submission_unique_id }} @if($inv->isExpired()) EXPIRED @elseif($inv->status === 'completed') COMPLETED @elseif($inv->isActiveTimeline()) ⚡ TIMELINE LIVE @else SCHEDULED @endif
Timeline: {{ ($inv->scheduled_at ?? $inv->created_at)->format('M d, H:i') }} – {{ $inv->expires_at->format('H:i') }}
{{ $inv->language }}
🔴 Tab Switches: {{ $tabSwitches }} 🟡 Focus Loss / Overlay: {{ $focusLost }} 👁️ Eye Gaze Anomaly: {{ $gazeAlerts }}
Open IDE Link
No candidate interview sessions found. Click "+ Schedule Candidate Interview" above to create one.

Schedule Candidate Assessment

@csrf
@foreach($interviewers as $usr) @endforeach
📞 Real-Time 2-Way Interview Call & Candidate Screen DISCONNECTED
📷
Candidate Camera Stream
Click 'Start 2-Way Call' to connect
👤 Candidate Video
🖥️
Candidate Live Screen Share
Waiting for candidate to share screen...
🖥️ Candidate Shared Screen
🎙️
Interviewer Self Stream
Panelist Self
Submitted Code Solution: PYTHON
Execution Stdout / Stderr Output:
Proctoring Audit:
Send Message to Candidate: