Plateforme de formation indépendante en français sur Apple MDM, Jamf Pro et Microsoft Intune.
Cette plateforme n’est pas officielle et n’est pas affiliée à Apple, Jamf ou Microsoft.
- Next.js (App Router)
- Tailwind CSS v4
- TypeScript
- Supabase Auth (sessions, profils, progression)
- Vercel (déploiement)
- Apple MDM / Apple Business Manager / ADE / APNs
- Jamf Pro (parcours 100 / 200 et modules associés)
- Microsoft Intune pour Apple (macOS / iOS)
- Labs pratiques, quiz, examens blancs, dashboard apprenant
- Certaines routes admin / pipeline vidéo / outils internes
- Contenus encore en préparation (fallback « Contenu en préparation »)
- Sync progression serveur si schéma Supabase incomplet (fallback localStorage)
Les contenus hors scope sont conservés dans le dépôt ; ils ne sont simplement pas mis en avant dans la navigation principale.
| Zone | Route |
|---|---|
| Accueil | / |
| Catalogue parcours | /parcours |
| Cours / leçons | /cours, /cours/[slug], /cours/[slug]/[lessonSlug] |
| Examens blancs | /examens, /examens/[slug] |
| Quiz | /quiz, /quiz/[slug] |
| Labs | /labs, /labs/[slug] |
| Certifications | /certifications |
| Ressources | /resources |
| Vidéos | /videos |
| Dashboard | /dashboard |
| Tarifs | /pricing (alias /tarifs) |
Note : il n’existe pas de routes
/modulesni/ressources(FR) — utiliser/courset/resources.
- Logo / icônes UI :
components/ui/logo-icon.tsx,public/logos/ - Wordmark sidebar :
components/ui/site-wordmark.tsx - Open Graph :
/opengraph-image - Mentions légales marques :
components/brands/BrandLegalNotices.tsx
- Exécuter dans l’ordre :
supabase/schema.sql, puissupabase/schema-admin.sql - Auth → URL Configuration :
- Site URL : URL publique du site
- Redirect :
{SITE_URL}/auth/callbackethttp://localhost:3000/auth/callback
- Variables (voir
.env.exampleetdocs/AUTH-SETUP.md) :NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYNEXT_PUBLIC_SITE_URLADMIN_EMAILS(optionnel)
npm install
npm run dev # http://localhost:3000
npm run lint
npx tsc --noEmit
npm run build
node scripts/check-internal-links.mjs # audit liens internes (si présent)Compte démo (si provisionné) : voir lib/demo/constants.ts et bouton « Connexion démo » sur /auth/login.
npm run lint→ 0 erreurnpx tsc --noEmit→ OKnpm run build→ OK- Smoke manuel :
/,/parcours,/dashboard,/examens,/cours,/resources,/certifications - Mobile ~375 px : menu hamburger, pas de scroll horizontal, CTA visibles
- Clavier : Tab + focus visible + Escape ferme la sidebar mobile
- Variables d’environnement Vercel à jour
- Redirect Auth Supabase alignés sur le domaine prod
-
npm run buildvert - Pas de secrets dans le commit (
.env, clés service role) - Mentions « non affilié » présentes (footer / docs)
- Liens sidebar / footer vérifiés
- Progression peut rester en localStorage si Supabase n’est pas synchronisé
- Certaines vidéos / captures peuvent être en mode préparation
- Pages admin protégées (
requireAdmin) - Bundle admin lourd — exclusions tracing Vercel déjà en place sur
main
npx vercel link # première fois
npm run build
# Déploiement via CI / Vercel Git integration recommandéNe jamais committer .env, .env.local, ni clés API.