Outil gratuit de préparation à l'examen théorique du permis de conduire classe 5 — Québec.
- Node.js 18+ (
node --version) - Git (
git --version) - Compte Vercel gratuit (https://vercel.com/signup)
cd saaq-prep
npm install
npm run dev
# → http://localhost:5173# Installer l'outil de génération d'icônes
npm install -g pwa-asset-generator
# Générer toutes les icônes depuis le favicon SVG
pwa-asset-generator public/favicon.svg public/ \
--icon-only \
--type png \
--background "#0f172a" \
--padding "15%"
# OU manuellement : créer icon-192.png, icon-512.png et apple-touch-icon.png (180x180)
# à partir du favicon.svg avec n'importe quel outil graphiqueOption A — Via CLI :
npm i -g vercel
vercel login
vercel
# Suivre les prompts → accepter les défauts → URL live en ~60 secondesOption B — Via GitHub :
git init
git add .
git commit -m "SAAQ Prep B++ v1.0"
git remote add origin [email protected]:TON_USER/saaq-prep.git
git push -u origin mainPuis sur vercel.com :
- "Add New Project"
- Importer le repo GitHub
- Framework preset : Vite
- Deploy → URL live en ~90 secondes
vercel domains add saaqprep.ca
# Ou dans le dashboard Vercel : Settings > Domains- URL publique type :
https://saaq-prep.vercel.app - PWA installable sur mobile (icône sur écran d'accueil)
- Fonctionne hors-ligne (service worker)
- HTTPS automatique
- CDN global (rapide partout au Québec)
- 0$/mois (tier gratuit Vercel = 100 GB bandwidth)
Capacitor encapsule l'app web dans un conteneur natif. Même code React → app Android + iOS.
- Android Studio installé
- JDK 17+
- Compte Google Play Developer (25$ USD — frais unique à vie)
# 1. Installer Capacitor
npm install @capacitor/core @capacitor/cli
npx cap init "SAAQ Prep" "ca.marksystems.saaqprep" --web-dir dist
# 2. Ajouter la plateforme Android
npm install @capacitor/android
npx cap add android
# 3. Build le projet web
npm run build
# 4. Synchroniser avec Android
npx cap sync android
# 5. Ouvrir dans Android Studio
npx cap open androidDans Android Studio :
- Build > Generate Signed Bundle / APK
- Créer un keystore (garder précieusement — requis pour les mises à jour)
- Générer un Android App Bundle (.aab)
Google Play Console :
- Créer une app ("SAAQ Prep")
- Remplir la fiche : description, captures d'écran, catégorie "Éducation"
- Upload le .aab dans "Production"
- Soumettre pour review (1-3 jours)
Titre : SAAQ Prep — Examen théorique Québec
Sous-titre : Prépare ton permis de conduire gratuitement
Description courte :
Outil 100% gratuit pour réussir l'examen théorique SAAQ du premier coup.
Description longue :
Prépare-toi efficacement à l'examen théorique de la SAAQ avec un outil basé
sur les sciences cognitives.
✅ 250+ questions couvrant les 12 catégories de l'examen
✅ 5 niveaux de difficulté (facile à expert)
✅ Système de révision espacée (SRS) pour ne rien oublier
✅ Simulation d'examen réaliste (30 questions / 60 minutes)
✅ Diagnostic initial pour un plan d'étude personnalisé
✅ Jauge de confiance pour détecter la surconfiance
✅ Scénarios visuels d'intersection
✅ Zéro pub. Zéro frais. 100% communautaire.
Basé sur le Code de la sécurité routière du Québec.
Catégorie : Éducation
Classification : Tout public
Prix : Gratuit (pas d'achats intégrés)
- Mac avec macOS (obligatoire — Apple ne permet pas de build iOS sur Linux/Windows)
- Xcode 15+
- Compte Apple Developer (99$ USD/an)
# 1. Ajouter la plateforme iOS
npm install @capacitor/ios
npx cap add ios
# 2. Build + sync
npm run build
npx cap sync ios
# 3. Ouvrir dans Xcode
npx cap open iosDans Xcode :
- Signer avec ton Apple Developer certificate
- Product > Archive
- Distribute App > App Store Connect
App Store Connect :
- Créer l'app, remplir la fiche
- Upload le build depuis Xcode
- Soumettre pour review (1-7 jours, Apple est plus strict)
Depuis iOS 16.4+, les PWA installées depuis Safari supportent :
- Push notifications (partiel)
- Stockage persistant
- Mode plein écran
Pour ton cas (app éducative sans besoin de hardware natif), la PWA est suffisante sur iOS. L'utilisateur visite le site → Safari → "Ajouter à l'écran d'accueil" → app fonctionnelle.
| Poste | Coût | Fréquence |
|---|---|---|
| Hébergement Vercel | 0$ | — |
| Domaine .ca (optionnel) | ~15$/an | Annuel |
| Google Play Developer | 25$ USD | Unique (à vie) |
| Apple Developer | 99$ USD | Annuel |
| Total sans Apple | 25$ USD | Unique |
| Total avec Apple | 124$ USD | Première année |
Si tu ne veux dépenser aucun dollar :
- Déployer sur Vercel (gratuit)
- Les utilisateurs Android installent la PWA depuis Chrome ("Ajouter à l'écran d'accueil")
- Les utilisateurs iOS installent la PWA depuis Safari
- Pas de frais de stores, pas de review Apple/Google
- Mises à jour instantanées (pas besoin de republier sur les stores)
# Modifier le code
git add . && git commit -m "v1.x" && git push
# Vercel redéploie automatiquement en ~30 secondesnpm run build
npx cap sync
# Ouvrir Android Studio / Xcode → rebuild → upload nouveau .aab/.ipasaaq-prep/
├── index.html # Point d'entrée HTML
├── package.json # Dépendances
├── vite.config.js # Config Vite + PWA
├── vercel.json # Config déploiement Vercel
├── capacitor.config.ts # Config mobile (Android/iOS)
├── public/
│ ├── favicon.svg # Icône vectorielle
│ ├── icon-192.png # Icône PWA (à générer)
│ ├── icon-512.png # Icône PWA (à générer)
│ └── apple-touch-icon.png # Icône iOS (à générer)
└── src/
├── main.jsx # Bootstrap React
└── App.jsx # Application complète
Projet communautaire gratuit — Mark Systems, Québec.
Free tool to prepare for the SAAQ Class 5 theoretical driving exam in Quebec.
Built by Mark Systems.
- 250+ questions covering all 12 exam categories
- 5 difficulty levels (easy to expert)
- Spaced repetition system (SRS)
- Realistic exam simulation (30 questions / 60 minutes)
- Initial diagnostic for personalized study plan
- Confidence gauge to detect overconfidence
- Visual intersection scenarios
- PWA — installable on mobile, works offline
- Zero ads. Zero fees. 100% community.
| Layer | Technology |
|---|---|
| Framework | React + Vite |
| Mobile | Capacitor (Android / iOS) |
| PWA | Service Worker, offline-first |
| Deployment | Vercel |
cd saaq-prep
npm install
npm run dev # http://localhost:5173Hosted on Vercel (free tier). PWA installable on any device.
URL: saaq-prep.vercel.app
| Item | Cost | Frequency |
|---|---|---|
| Vercel hosting | $0 | — |
| Domain .ca (optional) | ~$15/yr | Annual |
| Google Play Developer | $25 USD | One-time |
| Apple Developer | $99 USD | Annual |
Free community project — Mark Systems, Quebec.