Frontières Historiques
Visualisez les frontières des pays à différentes époques de l'histoire (2000 av. J.-C. - 1994)
Tel que vu sur r/dataisbeautiful.
Capture d'écran

Fonctionnalités
Sources d'information
L'application fournit des informations sur les pays via deux sources :
- Wikipedia (par défaut) - Récupère les informations en temps réel depuis Wikipedia
- IA - Utilise Google Gemini IA pour générer des informations pays avec contexte historique
Mise en cache des réponses IA
L'application utilise Redis pour mettre en cache les réponses IA et améliorer les performances :
- ⚡ Réponses instantanées pour les pays/années déjà demandés
- 💰 Réduction des coûts API - Moins d'appels à Google Gemini
- 🔧 Expiration intelligente - TTL de cache d'1 heure pour garder le contenu à jour
- 📊 Suivi analytique - Taux de cache hit/miss dans Google Analytics
Analyse des fonctionnalités IA
L'application inclut un suivi complet via Google Analytics pour la fonctionnalité IA afin de comprendre l'engagement utilisateur et les performances :
#### Événements suivis
Utilisation du fournisseur :
toggle_provider- Lorsque les utilisateurs changent entre Wikipedia et IAenable_ai/disable_ai- Activation/désactivation de la fonctionnalité IAprovider_restored- Lorsque la préférence est chargée depuis localStoragesession_provider_active- Fournisseur actif par session
request_initiated- Requête IA démarréeresponse_success- Réponse IA réussieresponse_time_success- Temps de réponse pour les requêtes réussiesresponse_length- Nombre de caractères des réponses IAresponse_word_count- Nombre de mots des réponses IArequest_failed- Requêtes IA échouéesapi_error- Erreurs spécifiques à l’API avec codes de statutapi_key_missing- Événements de clé API manquante
cache_hit- Réponse servie depuis le cache Redis (plus rapide)cache_miss- Pas de réponse en cache, appel API effectuécache_error- Redis indisponible (retour à l’API)cache_write_success- Réponse mise en cache avec succèscache_write_error- Échec de la mise en cache de la réponse
popup_displayed- Lorsque les popups affichent du contenu IA vs Wikipediacontent_displayed- Affichage réussi du contenucontent_error_displayed- Contenu d’erreur affiché aux utilisateurscontent_empty_displayed- Scénarios de contenu vide/absentpopup_closed- Utilisateur ferme les popups d’information
- Temps de réponse (succès/échec)
- Indicateurs de qualité du contenu (nombre de mots, nombre de caractères)
- Taux et types d’erreurs
- Modes d’engagement des utilisateurs
Tous les événements liés à l’IA utilisent la catégorie "Fonctionnalité IA" pour un filtrage facile dans Google Analytics.
#### Confidentialité des Données
Le suivi analytique est anonymisé et se concentre sur les modèles d'utilisation des fonctionnalités plutôt que sur les informations personnelles. Aucune clé API ni donnée sensible n'est suivie.
Configuration
Prérequis
- Node.js 18+ et yarn
- Clé API Google Gemini (offre gratuite disponible)
- Propriété Google Analytics 4 (optionnel, pour les analyses)
Installation
git clone https://github.com/nrgapple/historic-country-borders-app.git
cd historic-country-borders-app
yarn installVariables d'environnement
Créez un fichier .env.local :
# Optional for analytics
NEXT_PUBLIC_GA_FOUR=your_google_analytics_idOptional for map features
NEXT_PUBLIC_MAPBOX_ACCESS_TOKEN=your_mapbox_tokenRedis for AI response caching (required for caching)
REDIS_URL=your_redis_connection_stringRequired for AI features (server-side only)
GEMINI_API_KEY=your_gemini_api_key_here
Obtention des clés API
#### Google Gemini API (Gratuit)
- Visitez Google AI Studio
- Connectez-vous avec votre compte Google
- Cliquez sur "Create API Key"
- Copiez la clé générée dans votre fichier
.env.local
- ✅ 60 requêtes par minute (niveau gratuit généreux)
- ✅ Pas de carte bancaire requise
- ✅ Réponses IA de haute qualité
- ✅ Excellente connaissance historique
- Configurez Redis sur Vercel ou un autre fournisseur Redis
- Ajoutez la variable d’environnement
REDIS_URLà votre projet - Consultez REDIS_SETUP.md pour les instructions détaillées
- ⚡ Réponses instantanées pour le contenu mis en cache
- 💰 Réduit l’utilisation et les coûts de l’API
- 🔧 Expiration automatique du cache au bout d’1 heure
- 📊 Analyses de performance du cache
- Visitez Google Analytics
- Créez une nouvelle propriété GA4
- Obtenez votre ID de mesure (format : G-XXXXXXXXXX)
- Ajoutez-le à votre fichier
.env.local
Développement
yarn devOuvrez http://localhost:3000 pour voir l'application.
Tests
# Run all tests
yarn testRun tests in watch mode
yarn test:watchRun specific test files
yarn test hooks/__tests__/useAI.test.tsxDépannage des fonctionnalités IA
Problèmes courants
"Les informations IA nécessitent la configuration de la clé API Gemini"
- Ajoutez votre clé API Gemini dans
.env.local - Redémarrez le serveur de développement
- Voir GEMINI_SETUP.md pour la configuration détaillée
- Temps de réponse normal : 1-3 secondes
- Vérifiez votre connexion Internet
- L’API Gemini a des limites de fréquence (60 requêtes/minute)
- Essayez de basculer temporairement sur Wikipedia
- Vérifiez la console du navigateur pour des messages d’erreur détaillés
- Vérifiez que votre clé API est valide
Tableau de bord analytique
Pour consulter les analyses des fonctionnalités IA dans Google Analytics :
- Allez dans Événements → Tous les événements
- Filtrez par Catégorie d’événement = "AI Feature"
- Principaux indicateurs à surveiller :
toggle_provider- Adoption de la fonctionnalitéresponse_successvsrequest_failed- Taux de succèsresponse_time_success- Performancecontent_displayed- Engagement des utilisateurs
Surveillance des performances
L’application suit plusieurs indicateurs de performance :
- Temps de réponse : Temps moyen de réponse IA vs Wikipedia
- Taux de réussite : Ratios de succès/échec des requêtes IA
- Qualité du contenu : Nombre de mots et longueur des réponses IA
- Engagement utilisateur : Comment les utilisateurs interagissent avec le contenu IA vs Wikipedia
Contribution
- Forkez le dépôt
- Créez une branche de fonctionnalité
- Faites vos modifications
- Ajoutez des tests pour les nouvelles fonctionnalités
- Assurez-vous que tous les tests passent
- Soumettez une demande de tirage
Licence
Licence MIT - voir LICENSE pour plus de détails.
Remerciements
- Données historiques des frontières issues de World Historical Gazetteer
- IA propulsée par Google Gemini
- Cartes propulsées par Mapbox
- Analyses par Google Analytics 4