Application web Ionic/Angular pour l'escape game "Les trésors cachés" autour des métiers du bâtiment. L'application est déployée comme une PWA en production.
Ce dépôt contient le front-end complet de l'application :
- interface Ionic/Angular
- assets graphiques et sonores
- données statiques JSON
- configuration Docker pour développement local et preview de build de production
Le projet est construit comme une application web statique. La sortie de build est générée dans www/ puis servie par nginx en production.
- Angular 20
- Ionic 8
- Capacitor 5
- Node.js 20.19.x ou 22.12+
- npm 10 ou 11
- nginx pour le service de la build de production
- PWA avec service worker activé en production
Versions déclarées dans le projet :
- Node.js : voir
.nvmrcetpackage.json - npm : voir
package.json
src/: code source Angular/Ionicsrc/assets/: images, sons, SVG, données JSONdocker/nginx/default.conf: configuration nginx pour la SPADockerfile.dev: image de développementDockerfile: image de build + runtime nginxdocker-compose.yml: orchestration locale
Pré-requis :
- Docker
- Docker Compose
Pré-requis :
- Node.js
20.19.0minimum recommandé - npm
>=10 <12
Installation :
npm ci --legacy-peer-depsLance un serveur de dev avec rechargement à chaud sur le port 8100.
docker compose up --buildAccès :
http://localhost:8100
Comportement :
- le conteneur utilise
Dockerfile.dev - le code du dépôt est monté dans
/app node_modulesreste dans un volume Docker dédié- le serveur Angular écoute sur
0.0.0.0 - le polling est activé pour fiabiliser la détection de changements dans Docker
Construit l'application puis la sert avec nginx sur le port 8080.
docker compose --profile preview up --build webAccès :
http://localhost:8080
Comportement :
- build Angular en configuration
production - service worker activé
- fallback SPA nginx vers
index.html
Installation des dépendances :
npm ci --legacy-peer-depsServeur de développement :
npm startBuild de production :
npm run build -- --configuration productionTests unitaires :
npm testLint :
npm run lintUsage :
- installe les dépendances
- expose le port
8100 - lance
ng serve --host 0.0.0.0 --port 8100 --poll 2000
Usage :
- build multi-stage
- étape 1 : build Angular dans une image Node
- étape 2 : service des fichiers statiques via nginx
Services :
app: développement localweb: preview de la build de production
Le projet n'utilise pas de backend applicatif embarqué dans ce dépôt.
Configuration observée :
src/environments/environment.ts: mode développementsrc/environments/environment.prod.ts: mode production- les contenus métier proviennent principalement de fichiers JSON dans
src/assets/data/
Dépendances externes visibles dans le code :
- Matomo : script et tracker distants
- liens externes vers des sites institutionnels ou éditoriaux
Ces dépendances ne bloquent pas le lancement local du projet, mais elles doivent être connues du prestataire.
Vérifications effectuées sur ce dépôt :
npm run build: OKdocker compose build app web: OK- validation de la configuration
docker compose: OK
Conclusion :
- le projet peut être lancé localement avec Docker
- la build de production peut être construite et servie localement
Pour une transmission correcte, fournir au minimum :
- l'intégralité du dépôt Git
- ce
README - l'historique Git si la reprise doit inclure le contexte technique
Checklist recommandée :
- confirmer la version de référence Node/npm
- confirmer la procédure de build et de lancement Docker
- préciser l'URL de production actuelle si elle existe encore
- lister les accès externes utiles hors dépôt : hébergement, analytics, nom de domaine, stores éventuels
- préciser s'il existe des maquettes, sources graphiques ou documents fonctionnels hors dépôt
- Le projet contient beaucoup d'assets lourds ; les temps de build et la taille du dépôt sont à surveiller.
- Des dépendances npm remontent des vulnérabilités lors de l'installation ; cela ne bloque pas le lancement, mais mérite un audit si une maintenance est prévue.
- Le service worker est activé en production ; en recette, penser aux effets de cache navigateur.
Rebuild complet du dev :
docker compose up --buildRebuild preview prod :
docker compose --profile preview up --build webArrêt des conteneurs :
docker compose down