ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
Prépare ton permis de conduire au Sénégal/UEMOA
Translation pending
EducationTypeScript · JavaScriptGitHub @AlmGenryusaiOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗PWA mobile-first, hors ligne, pour préparer l'examen théorique du permis B au Sénégal. Français uniquement en V1.
Modèle : 4 900 FCFA · 90 jours · paiement Wave (lien de paiement Business), activation par code. Gratuit : 1 thème + 1 examen blanc.
Préparation à l'examen : ne remplace pas l'auto-école et ne délivre aucun certificat.
Décisions produit et techniques : voir CLAUDE.md. Le dossier
docs/décrit l'ancienne architecture, qui n'est plus valide.
| Écran | État |
|---|---|
| Dashboard — parcours, progression, chips | ✅ (données mock) |
| Quiz libre — 10 questions mock, feedback immédiat | ✅ |
Examen blanc — timer, compteur fautes, résultat (EXAM_CONFIG paramétrable) | ✅ |
| Carnet — dernier score, taux moyen, thèmes faibles | ✅ (données mock) |
| Profil | Stub — à venir |
| Activation par code + licence signée | À faire |
| Hors ligne (service worker) + progression localStorage | À faire |
| Couche | Choix |
|---|---|
| Framework | Next.js 14 App Router |
| Langage | TypeScript strict |
| Style | Tailwind CSS |
| État client | useState + hooks maison (useProgress) |
| Progression | localStorage |
| Hors ligne | Service worker (app + contenu précachés) |
| Contenu | JSON dans le repo (apps/web/content), schéma v1.1 — pas de CMS ni de base de données |
| Panneaux | Composants SVG inline |
| Backend | 1 Edge Function Supabase (activation) + table licenses |
| Licence | Signature ed25519, vérification hors ligne par clé publique embarquée |
| Paiement | Wave (lien de paiement Business) |
| Tests | Vitest + Playwright |
| Hébergement | Vercel |
pnpm install
cp .env.example .env.local # remplir les clés
pnpm --filter web dev # http://localhost:3000
pnpm --filter web dev
pnpm --filter web build
pnpm --filter web typecheck
pnpm --filter web lint
pnpm --filter web test # vitest
pnpm --filter web test:e2e # playwright
legal_ref. Valeurs non confirmées (vitesses, taux d'alcool, format officiel de l'examen) : ne pas inventer, laisser en draft.published seulement après relecture d'un moniteur (et du juriste pour les items réglementaires).EXAM_CONFIG paramétrable. Ne pas afficher « conforme à l'examen officiel » tant que ce n'est pas confirmé.apps/web/
app/ # Routes App Router (/, /quiz, /examen, /carnet, /profil)
components/
dashboard/ # DashboardView, BottomNav, chips
quiz/ # QuizView, QuizOption
exam/ # ExamView
carnet/ # CarnetView
content/ # Questions JSON (source de vérité contenu)
lib/
quiz/ # Questions mock, EXAM_CONFIG, useQuestionGuards, srs
carnet/ # Types + mock données progression
supabase/
migrations/ # SQL (à réduire à la table licenses)
functions/ # Edge Function d'activation (à venir)
Thème Sahel Sun — lisibilité plein soleil, Android low-end.
| Token | Valeur |
|---|---|
--primary | Orange chaud hsl(30 95% 55%) |
--bg | Blanc cassé hsl(30 20% 97%) |
--text | Brun profond hsl(25 20% 15%) |
--success | Vert savane hsl(100 40% 38%) |
--error | Rouge latérite hsl(4 65% 48%) |
Contraste WCAG AA vérifié sur tous les éléments interactifs.
useProgress + localStorage)legal_ref, relu par un moniteurReporté (hors V1) : audio Wolof, moto, UEMOA, comptes utilisateurs.
Solo dev : [email protected]