-
Notifications
You must be signed in to change notification settings - Fork 0
Architecture technique
ducybrobin-ux edited this page Aug 23, 2026
·
3 revisions
JDP_BC est une PWA sans build : aucun framework, aucune dépendance npm, aucun processus de compilation. Des modules JavaScript classiques chargés par <script> partagent un scope global minimal.
index.html écran familles (SPA par sections .screen)
dashboard.html console organisateur (i18n interne fr)
editeur.html éditeur de contenu → export JSON
questionnaire.html questionnaire testeurs
js/
data.js SITE, TRAIL, BIRDS (8 biais), GUIDE (10 notions), BALISES, quiz
store.js persistance localStorage (profils, réglages, progression) — clés jdp_*
i18n.js interface française (monolingue)
audio.js Web Audio : signatures synthétiques + avertisseurs (radar/bip/pulse/custom)
compass.js boussole + indice lumineux d'approche
qr.js lecture QR (caméra) — jsqr.js — génération QR — qrcode.js
birdnet.js reconnaissance sonore en ligne (« Shazam des ambiances »)
dict.js dictée vocale (Web Speech API)
board.js réception messages/épreuves côté participants
challenges.js épreuves du tableau de bord
declination.js déclinaison magnétique (nord vrai)
app.js orchestration (écrans, énigmes, quiz, carnet, palmarès…)
server.ps1 serveur HTTPS local PowerShell (+ proxy cloudflared optionnel)
sw.js service worker : precache complet → 100 % hors-ligne
docs/ fiche pédagogique PDF + sources du wiki
-
Identifiants historiques conservés :
BIRDS,getBird,chantdésignent désormais les découvertes/pièges — héritage du projet d'origine TSLE1, renommés uniquement dans l'interface. -
Avertisseurs d'approche :
AudioSys.startProxSound()choisit entre la signature de la découverte et l'avertisseur sélectionné (alertSound:radar,bip,pulse,custom). Le mode custom stocke un enregistrement micro (≤ 5 s) en data-URL dans les réglages, décodé enAudioBufferpuis rejoué avec vitesse/gain selon la distance. -
Hors-ligne :
PRECACHEliste tout le nécessaire (y compris le PDF pédagogique) ; caches versionnésjdpbc-*. -
Serveur :
server.ps1crée un certificat auto-signé au premier lancement et sert l'app en HTTPS ; WebSocket/long-polling léger pour le temps réel du tableau de bord.
- Tout fonctionne en local : profils, progression, photos et enregistrements restent sur les appareils / le PC du site.
- Aucun télémétrage, aucun compte en ligne. La reconnaissance sonore est le seul appel sortant optionnel.
- Les données runtime vont dans
data/(non versionnée).
- Forkez, créez une branche, modifiez (éditeur intégré
/editeurpour le contenu). - Vérifiez la syntaxe :
node --check js/*.js. - Pull request bienvenue — licence AGPL-3.0 maintenue.