{{-- En-tête de page --}}

Back-office

Tableau de bord

Vue globale de l'application.

{{-- Grille de stats (2 col mobile / 3 col md) --}}
{{-- Utilisateurs inscrits --}}
Utilisateurs inscrits
{{ number_format($totalUsers, 0, ',', '\u{202F}') }}
{{-- Comptes actifs --}}
Comptes actifs
{{ number_format($activeUsers, 0, ',', '\u{202F}') }}
{{-- Réponses aujourd'hui --}}
Réponses aujourd'hui
{{ number_format($answersToday, 0, ',', '\u{202F}') }}
{{-- Flashcards --}}
Flashcards
{{ number_format($cardsCount, 0, ',', '\u{202F}') }}
{{-- Cours --}}
Cours
{{ number_format($coursesCount, 0, ',', '\u{202F}') }}
{{-- Réponses totales --}}
Réponses totales
{{ number_format($totalProgress, 0, ',', '\u{202F}') }}
{{-- Derniers utilisateurs actifs --}}

Derniers utilisateurs actifs

Voir tous
@forelse ($recentUsers as $u) @php $pct = ($u->total_answered ?? 0) > 0 ? round(($u->correct_answered ?? 0) / $u->total_answered * 100) : 0; $initials = implode('', array_map(fn($w) => mb_strtoupper(mb_substr($w, 0, 1)), array_slice(explode(' ', $u->name), 0, 2))); @endphp {{-- Avatar + Nom --}} {{-- Email --}} {{-- Dernière connexion --}} {{-- Cours --}} {{-- Score global --}} {{-- Statut --}} {{-- Action --}} @empty @endforelse
Utilisateur Email Dernière connexion Cours Score global Statut Action
{{ $u->name }}
{{ $u->email }} {{ $u->last_login_at?->diffForHumans() ?? 'Jamais' }} {{ $u->course_stats_count }}
{{ $pct }}%
@if ($u->is_active) Actif @else Suspendu @endif Détail
Aucun utilisateur.
{{-- Cours disponibles --}}

Cours disponibles

@if ($courses->isEmpty())

Aucun cours pour l'instant.

@else
@foreach ($courses as $course)

{{ $course->name }}

{{ number_format($course->cards_count, 0, ',', '\u{202F}') }} {{ $course->cards_count === 1 ? 'carte' : 'cartes' }}

@endforeach
@endif