Auto Supervisor Assignment

AI-powered supervisor recommendations based on coursework, travel preference, distance, and workload

Awaiting Assignment

{{ $stats['total_unassigned'] }}

Already Assigned

{{ $stats['total_assigned'] }}

@if (session()->has('success'))

{{ session('success') }}

@endif @if (session()->has('error'))

{{ session('error') }}

@endif

Students Awaiting Supervisor Assignment

@forelse($students as $student) @empty @endforelse
Student Program Company Job Scope Action
{{ $student->user->name }}
{{ $student->studentID }}
{{ $student->program ?? 'N/A' }}
@if($student->acceptedPlacementApplication)
{{ $student->acceptedPlacementApplication->companyName }}
{{ $student->acceptedPlacementApplication->companyCity }}, {{ $student->acceptedPlacementApplication->companyState }}
@else N/A @endif
@if($student->acceptedPlacementApplication && $student->acceptedPlacementApplication->jobscope)
{{ $student->acceptedPlacementApplication->jobscope }}
@else N/A @endif

All students have been assigned supervisors!

Great job! All students with accepted placements now have supervisors.

@if($students->hasPages())
{{ $students->links() }}
@endif
@if($showRecommendationModal && $selectedStudent)

AI Supervisor Recommendations

Based on coursework match, travel preference, proximity, and workload analysis

Student Information

Name:

{{ $selectedStudent->user->name }}

Student ID:

{{ $selectedStudent->studentID }}

Program:

{{ $selectedStudent->program ?? 'N/A' }}

@if($selectedStudent->acceptedPlacementApplication)

Company:

{{ $selectedStudent->acceptedPlacementApplication->companyName }}

Job Scope:

{{ $selectedStudent->acceptedPlacementApplication->jobscope ?? 'N/A' }}

@endif
@if(empty($recommendations))

No recommendations available

This could be due to:

  • • All supervisors are at full capacity
  • • No supervisors match the student's department
  • • Missing location data for distance calculation
@else
@foreach($recommendations as $index => $rec) @php $lecturer = $rec['lecturer']; $score = $rec['score']; $breakdown = $rec['breakdown']; $distance = $rec['distance_km']; $availableQuota = $rec['available_quota']; // Determine rank badge color $badgeColors = [ 0 => 'bg-yellow-500 text-white', // Gold 1 => 'bg-gray-400 text-white', // Silver 2 => 'bg-orange-600 text-white', // Bronze ]; $badgeColor = $badgeColors[$index] ?? 'bg-gray-300 text-gray-700'; // Score color based on value $scorePercent = $score * 100; if ($scorePercent >= 80) $scoreColor = 'text-green-600'; elseif ($scorePercent >= 60) $scoreColor = 'text-blue-600'; elseif ($scorePercent >= 40) $scoreColor = 'text-yellow-600'; else $scoreColor = 'text-gray-600'; @endphp
#{{ $index + 1 }}
{{ $lecturer->user->name }}

{{ $lecturer->lecturerID }} • {{ $lecturer->department ?? 'N/A' }}

{{ number_format($score * 100, 1) }}%
Match Score
Course Match (40%)
{{ number_format($breakdown['course_match']['raw'] * 100) }}%
Travel Pref (30%)
{{ number_format($breakdown['preference_match']['raw'] * 100) }}%
Distance (20%)
{{ number_format($breakdown['distance_score']['raw'] * 100) }}%
Workload (10%)
{{ number_format($breakdown['workload_score']['raw'] * 100) }}%
Distance: {{ $distance ? number_format($distance, 2) . ' km' : 'N/A' }}
Travel Pref: {{ ucfirst($lecturer->travel_preference) }}
Workload: {{ $lecturer->current_assignments }}/{{ $lecturer->supervisor_quota }} ({{ $availableQuota }} available)
@if($lecturer->program)
Program:  @php $programNames = [ 'BCS' => 'BCS - Bachelor of Computer Science (Software Engineering) with Honours', 'BCN' => 'BCN - Bachelor of Computer Science (Computer Systems & Networking) with Honours', 'BCM' => 'BCM - Bachelor of Computer Science (Multimedia Software) with Honours', 'BCY' => 'BCY - Bachelor of Computer Science (Cyber Security) with Honours', 'DRC' => 'DRC - Diploma in Computer Science' ]; @endphp {{ $programNames[$lecturer->program] ?? $lecturer->program }}
@endif
@endforeach

Note: System will automatically add recommendation details to the assignment.

@endif
@endif