TrainHub — Diagnostics¶
Vérifications rapides¶
État du déploiement Vercel¶
# Depuis un poste avec accès au projet (compte/équipe Vercel confirmé au préalable)
vercel ls daily-c-language-training-platform
vercel inspect <deployment-url>
Health check applicatif¶
Judge0 (sandbox d'exécution de code) — déprécié, repris par devkora (Zeno)¶
Vérifier d'abord si devkora a remplacé ce backend
Judge0/Piston est en cours de remplacement par devkora (module du projet Zeno, repris par Edwin). Les commandes ci-dessous ne s'appliquent qu'à l'ancien backend — si devkora est déjà en place sur l'environnement concerné, se référer à sa propre documentation/diagnostics côté Zeno.
# Vérifier que l'instance répond et liste les langages
curl -s -H "X-Auth-Token: $JUDGE0_API_KEY" "$JUDGE0_API_URL/languages" | head -20
# Si auto-hébergé via judge0/docker-compose.yml, sur la machine qui l'héberge :
docker compose -f judge0/docker-compose.yml ps
docker compose -f judge0/docker-compose.yml logs judge0-server --tail 50
docker compose -f judge0/docker-compose.yml logs judge0-workers --tail 50
Cron (rappels d'entraînement)¶
# Vérifier la config du cron déclarée dans le projet
cat vercel.json
# Sur le dashboard Vercel : Project → Cron Jobs → dernière exécution + statut
Base de données (Supabase)¶
Toutes les requêtes ci-dessous s'exécutent via le SQL Editor du dashboard Supabase du projet, ou via psql avec la chaîne de connexion du projet.
Migrations appliquées¶
Il n'y a pas de table de suivi de version automatisée — les fichiers scripts/*.sql sont appliqués manuellement. Pour vérifier qu'une table attendue existe :
Sessions planifiées du jour et leur statut de complétion¶
select ps.id, ps.title, ps.scheduled_date, ps.is_published,
count(psa.id) filter (where psa.completed_at is not null) as completed,
count(pst.id) as targeted
from planned_sessions ps
left join planned_session_targets pst on pst.planned_session_id = ps.id
left join planned_session_attempts psa on psa.planned_session_id = ps.id
where ps.scheduled_date = current_date
group by ps.id;
Rôles et droits admin¶
Dernières soumissions Recode (résultats de tests)¶
select id, exercise_id, user_id, status, created_at
from recode_submissions
order by created_at desc
limit 20;
Activité récente (tracking d'engagement)¶
select event_type, page, count(*)
from student_activity
where created_at > now() - interval '24 hours'
group by event_type, page
order by count(*) desc;
Emails (Resend)¶
- Dashboard Resend → Logs : voir les envois récents, statut de livraison, bounces.
- Vérifier la clé API et le domaine d'expédition vérifié (
RESEND_FROM_EMAIL, défauttrainhub.epitech.eu).
Variables d'environnement (Vercel)¶
vercel env ls
# Vérifier en particulier : SUPABASE_SERVICE_ROLE_KEY, CRON_SECRET, JUDGE0_API_URL, RESEND_API_KEY
Ne jamais afficher la valeur d'un secret dans un terminal partagé ou un log
vercel env ls liste les noms des variables par environnement, pas leurs valeurs. Pour lire une valeur, utiliser vercel env pull dans un répertoire de travail non versionné, ou le dashboard Vercel directement.