- À propos
- Fonctionnalités principales
- Captures d'écran
- Technologies utilisées
- Prérequis
- Installation
- Configuration
- Structure du projet
- Données géographiques
- Utilisation
- Dépannage
- Contribution
- Équipe
- Licence
- Remerciements
SAUVETAROCHE est une application mobile interactive développée pour sensibiliser le grand public aux enjeux de l'érosion côtière et de la montée des eaux liée au changement climatique.
À travers un jeu décisionnel, des défis quotidiens et des cartes prévisionnelles, l'utilisateur découvre l'impact concret de ces phénomènes sur les zones côtières françaises, avec des données scientifiques réelles du BRGM (Bureau de Recherches Géologiques et Minières).
- Sensibiliser aux conséquences du changement climatique sur le littoral
- Apprendre par le jeu, défi et la simulation
- Visualiser les projections à 50, 100 et 200 ans
- Comprendre l'importance des décisions politiques et environnementales
- Jeu décisionnel interactif où vous incarnez un gestionnaire de circonscription
- Deux niveaux de difficulté (Niveau 2 en développement)
- Système de décisions impactant votre territoire et la satisfaction citoyenne
- Carte dynamique montrant l'évolution de votre zone en temps réel
- Jauge de satisfaction pour mesurer l'acceptabilité de vos choix et le ressenti de la population que vous administrez
- Questions-réponses avec explications scientifiques après chaque décision
- Quiz thématiques sur l'érosion côtière et le changement climatique aisin que les politiques associées
- 4 réponses possibles avec correction
- Feedback immédiat : victoire ou défaite avec explications
- Questions basées sur des données réelles
Visualisez l'impact de la montée des eaux avec 4 cartes interactives :
| Projection | Élévation | Année |
|---|---|---|
| Actuel | Niveau actuel | 2024 |
| +50 ans | +0.5m | 2075 |
| +100 ans | +1.5m | 2125 |
| +200 ans | +4.0m | 2225 |
- Données BRGM officielles pour toute la France métropolitaine
- Zones inondables affichées en superposition sur Google Maps/Apple Maps
- Navigation interactive : zoomez, déplacez-vous sur la carte
- Polygones cliquables avec informations détaillées
Page d'accueil avec les 3 modules principaux
Mode Jeu : carte dynamique et système de décisions
Quiz interactif avec feedback immédiat
Cartes prévisionnelles avec zones inondables (bleu : +50 ans, orange : +100 ans, rouge : +200 ans)
- React Native 0.74 - Framework mobile cross-platform
- TypeScript - Typage statique pour JavaScript
- Expo SDK - Outils de développement et build (générer un fichier .apk ou .ipa
- React Navigation - Navigation entre écrans
- react-native-maps - Intégration de cartes natives
- Google Maps SDK (Android) - Affichage des cartes sur Android
- Apple Maps (iOS) - Affichage des cartes sur iOS
- QGIS - Traitement des données géospatiales du BRGM
- Mapshaper - Simplification des fichiers GeoJSON
- BRGM Shapefiles - Données officielles des zones inondables
- Visual Studio Code - IDE principal
- Android Studio - Émulateur Android et SDK
- Xcode (macOS uniquement) - Émulateur iOS
- Node.js - Environnement d'exécution JavaScript
- npm - Gestionnaire de paquets
Avant de commencer, assurez-vous d'avoir installé :
| Logiciel | Version minimale | Lien de téléchargement |
|---|---|---|
| Node.js | ≥ 18.0.0 | nodejs.org |
| npm | ≥ 9.0.0 | Inclus avec Node.js |
| Git | Dernière version | git-scm.com |
| Android Studio | Dernière version | developer.android.com |
| Xcode (macOS) | ≥ 14.0 | Mac App Store |
- RAM : 8 GB minimum (16 GB recommandé)
- Stockage : 10 GB d'espace libre
- OS : Windows 10/11, macOS 12+, ou Linux (Ubuntu 20.04+)
- Compte Google Cloud (gratuit) pour obtenir une clé API Google Maps
# Cloner le dépôt GitHub
git clone https://github.com/votre-username/SauveTaRoche.git
# Entrer dans le dossier du projet
cd SauveTaRoche/App# Installer tous les packages npm
npm install
# Ou avec Yarn
yarn install⏱️ Temps estimé : 2-5 minutes selon votre connexion internet
# Vérifier que Node.js est installé
node --version
# Devrait afficher v18.x.x ou supérieur
# Vérifier que npm est installé
npm --version
# Devrait afficher v9.x.x ou supérieur- Allez sur Google Cloud Console
- Créez un nouveau projet ou sélectionnez un projet existant
- Activez les APIs suivantes :
- Maps SDK for Android
- Maps SDK for iOS (si vous développez pour iOS)
- Créez une clé API dans APIs & Services → Credentials
- Copiez votre clé API
Ouvrez android/app/src/main/AndroidManifest.xml et ajoutez :
<application>
<!-- Ajoutez cette ligne avec VOTRE clé API -->
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="VOTRE_CLE_API_GOOGLE_MAPS"/>
</application>Ouvrez ios/YourApp/AppDelegate.mm et ajoutez :
#import <GoogleMaps/GoogleMaps.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[GMSServices provideAPIKey:@"VOTRE_CLE_API_GOOGLE_MAPS"];
// ... reste du code
}# Option 1 : Via Expo (développement)
npx expo start
# Puis appuyez sur 'a' dans le terminal pour lancer sur Android
# Option 2 : Build natif (production)
npx expo run:android# Via Expo
npx expo start
# Puis appuyez sur 'i' dans le terminal pour lancer sur iOS
# Ou build natif
npx expo run:ios-
Installez Expo Go depuis :
- Google Play Store (Android)
- App Store (iOS)
-
Lancez l'application :
npx expo start- Scannez le QR code qui s'affiche dans le terminal :
- Android : Avec l'application Expo Go
- iOS : Avec l'appareil photo natif
SauveTaRoche/
├── App/ # Dossier principal de l'application
│ ├── activities/ # Écrans de l'application
│ │ ├── CurrentDataActivity.tsx # Carte actuelle
│ │ ├── Data50Activity.tsx # Projection +50 ans
│ │ ├── Data100Activity.tsx # Projection +100 ans
│ │ ├── Data200Activity.tsx # Projection +200 ans
│ │ ├── GameL1Activity.tsx # Jeu niveau 1
│ │ ├── GameL2Activity.tsx # Jeu niveau 2
│ │ ├── ChallengeActivity.tsx # Module défis
│ │ └── ...
│ ├── data/ # Données géographiques
│ │ ├── floodZones50.js/ # Zones inondables +50 ans
│ │ │
│ │ ├── floodZones100.js/ # Zones inondables +100 ans
│ │ │
│ │ └── floodZones200.js/ # Zones inondables +200 ans
│ │
│ ├── model/ # Logique métier
│ │ ├── GameUI.ts # Composants du jeu
│ │ ├──Audiocontext.tsx # Pour pouvoir ajouter le son au jeu
│ │ ├── GameQuestions.ts # Questions du jeu
│ │ └── GameQuestionsRepository.ts
│ ├── assets/ # Ressources (images, polices, sons)
│ │ ├── images/
│ │ ├── fonts/
│ │ └── *.mp3
│ ├── App.tsx # Point d'entrée de l'application
│ ├── app.json # Configuration Expo
│ ├── package.json # Dépendances npm
│ ├── tsconfig.json # Configuration TypeScript
│ └── metro.config.js # Configuration Metro bundler
├── README.md # Ce fichier
└── .gitignore # Fichiers à ignorer par Git
Les zones inondables affichées dans l'application proviennent de données réelles du BRGM (Bureau de Recherches Géologiques et Minières), organisme public français de référence sur les géosciences. Elles sont accéssibles via le lien : https://sealevelrise.brgm.fr/slr/#lng=2.76492;lat=46.67299;zoom=4;level=3.5;layer=0
- Téléchargement : Shapefiles officiels du BRGM pour 3 scénarios (+0.5m, +1.5m, +4m)
- Reprojection : Conversion en WGS84 (EPSG:4326) via QGIS
- Simplification : Réduction de la complexité à 0.03-0.1% via Mapshaper
- Découpage : Division en fichiers de < 3 MB pour optimiser les performances
- Conversion : Transformation en format JavaScript pour React Native
- ✅ Données officielles validées scientifiquement
- ✅ Couverture : France métropolitaine complète
⚠️ Simplification : Les contours peuvent être légèrement approximatifs⚠️ Projections : Basées sur des modèles climatiques (incertitudes inhérentes)
- Page d'accueil : Choisissez entre Jeu, Défis ou Données
- Bouton retour (flèche) : Toujours en haut à gauche pour revenir
- Lisez la question posée par le personnage
- Choisissez une des 4 réponses
- Observez l'impact sur la carte et la jauge de satisfaction
- Lisez l'explication scientifique
- Continuez jusqu'à la fin de la partie
Objectif : Maintenir une satisfaction > 50% jusqu'à la fin du jeu afin de consolider sa place
- Lisez la question affichée
- Sélectionnez votre réponse parmi les 4 choix
- Découvrez si vous avez gagné ou perdu
- Apprenez grâce à la correction détaillée
- Sélectionnez un onglet temporel (Actuel, +50 ans, +100 ans, +200 ans)
- Naviguez sur la carte :
- Zoom : Pincement à deux doigts
- Déplacement : Glisser le doigt
- Cliquez sur une zone bleue/orange/rouge pour plus d'informations
- Fermez/ouvrez la bannière d'information avec le bouton ✕ ou ℹ️
Solution :
# Nettoyer le cache
watchman watch-del-all
rm -rf node_modules
npm install
# Nettoyer le cache Metro
npx expo start --clearSolution :
- Vérifiez que vous avez bien ajouté la clé dans
AndroidManifest.xmlouAppDelegate.mm - Vérifiez que les APIs sont activées sur Google Cloud Console
- Rebuild l'application :
npx expo run:android ou npx eas build --profile-development
Cause : Coordonnées en mauvais système de projection (Lambert 93 au lieu de WGS84)
Solution : Vérifiez que vos fichiers floodZones*.js contiennent des coordonnées du type :
latitude: 48.4084, // Correct
longitude: -4.6147 // Correct
// Et PAS :
latitude: 6179406.5 // ❌ Mauvais systèmeCause : Commentaire // mal placé dans le JSX
Solution : Remplacez les commentaires // par {/* */} dans le code JSX
Cause : Fichiers GeoJSON trop volumineux (> 5 MB)
Solution : Simplifiez davantage sur Mapshaper avec simplify 0.03% keep-shapes
Solution :
# Augmenter le timeout dans metro.config.js
# Voir section ConfigurationLes contributions sont les bienvenues ! Voici comment participer :
Cliquez sur le bouton "Fork" en haut à droite de la page GitHub.
git checkout -b feature/amelioration-xyzgit commit -m "Ajout de la fonctionnalité XYZ"git push origin feature/amelioration-xyzDécrivez vos changements en détail dans la Pull Request.
- ✅ Testez votre code avant de commit
- ✅ Suivez les conventions de nommage existantes
- ✅ Commentez le code complexe
- ✅ Mettez à jour la documentation si nécessaire
Ce projet a été développé par l'équipe CAILLOUX dans le cadre d'un projet pédagogique :
| Membre | Rôle | Contact |
|---|---|---|
| Pako Justin | Développeur Full-Stack | GitHub |
| Jamgotchian Clémence | Designer UX/UI | GitHub |
| Berry Coline | Designer UX/UI | GitHub |
| Kouassi Emmanuel | Développeur Back-End / Données | GitHub |
| Guillot Flavien | Développeur Back-End / Son | GitHub |
Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.
Cela signifie que vous êtes libre de :
- ✅ Utiliser le code pour des projets personnels ou commerciaux
- ✅ Modifier le code selon vos besoins
- ✅ Distribuer le code
- ✅ Utiliser le code dans des projets privés
Sous conditions de :
⚠️ Conserver la notice de copyright⚠️ Inclure une copie de la licence MIT
Nous tenons à remercier chaleureusement :
- BRGM (Bureau de Recherches Géologiques et Minières) pour les données géospatiales officielles
- IMT Atlantique pour l'encadrement du projet
- Google pour l'API Google Maps
- Expo pour les outils de développement mobile
- Tous nos encadrants pour leurs conseils, suivi et leur soutien
- Les participants aux enquêtes de terrain qui ont permis de comprendre la problématique de l'érosion du trait de cote et ainsi developper une solution pertinente
- La communauté React Native pour la documentation et les ressources
- QGIS - Traitement des données géographiques
- Mapshaper - Simplification des fichiers GeoJSON
- React Native et son écosystème
- brgm.org - Données cartographiques libres
Accédez à notre documentation détaillée (User Stories, Personas, Enquêtes de terrain, Blog, État de l'art) :
Ouvrez une Issue sur GitHub en décrivant :
- Le comportement observé
- Le comportement attendu
- Les étapes pour reproduire le bug
- Votre environnement (OS, version de Node.js, etc.)
- Jeu niveau 1 complet
- Module Défis
- Cartes prévisionnelles (Actuel, +50, +100, +200 ans)
- Données BRGM pour toute la France
- Jeu niveau 2 (complexité augmentée)
- Sauvegarde de la progression
- Nouveaux défis quotidiens
- Ajout de nouvelles régions côtières (DOM-TOM)
- Animations 3D des montées des eaux
- Notifications push pour les défis
Pour un avenir plus conscient des enjeux climatiques







