Geo Clic

GeoClic est un jeu de géographie interactif conçu pour tester et améliorer sa culture géographique de façon ludique, directement dans le navigateur. Il permet de localiser des pays, capitales, drapeaux ou subdivisions administratives sur une carte cliquable, avec un retour immédiat sur la précision de chaque réponse.

Fonctionnalités

  • Modes de jeu multiples : pays, capitales, drapeaux, départements français ou États américains, chacun avec sa propre carte et sa propre logique de reconnaissance.
  • Feedback chaud/froid : à chaque erreur, la distance géographique réelle entre la réponse et la cible est calculée pour afficher un niveau de proximité (brûlant, chaud, tiède, froid, glacé), avec une jauge visuelle.
  • Configuration de partie : choix de la zone géographique, filtres (pays enclavés, îles), et mode « mort subite » pour une difficulté accrue.
  • Thèmes visuels : plusieurs palettes de couleurs, avec une coloration automatique de la carte garantissant qu’aucun pays voisin ne partage la même couleur.
  • Comptes et historique : connexion par email/mot de passe ou via GitHub et Google, avec un historique personnel de toutes les parties jouées (score, durée, paramètres).
  • Anecdotes générées par IA : après chaque pays trouvé, une anecdote générée par intelligence artificielle peut s’afficher, préparée en amont pour rester instantanée pendant le jeu.
  • Tableau de bord d’administration : suivi de l’activité du site, parties des utilisateurs inscrits comme des visiteurs anonymes.
  • Application installable : packagé en Progressive Web App, utilisable comme une application native sur mobile.

Objectif en bref

Offrir une expérience de jeu fluide et intuitive, tout en couvrant l’ensemble des briques d’une application full-stack moderne — interface interactive, gestion de données, authentification et intelligence artificielle.

Stack technique

Le projet est développé avec Next.js (App Router) et TypeScript, avec react-simple-maps et d3-geo pour le rendu cartographique interactif. Les données sont stockées dans une base PostgreSQL (hébergée sur Neon) via Prisma, et l’authentification repose sur NextAuth v5, avec une gestion de session en JWT pour faire cohabiter connexions par mot de passe et fournisseurs OAuth.

L’intégration de l’API Anthropic pour la génération des anecdotes suit une logique de pré-génération asynchrone plutôt que d’appel en temps réel, afin de garantir des temps de réponse constants et un coût maîtrisé.

L’ensemble du code est structuré en modules clairement séparés — logique de jeu, rendu de la carte, accès aux données et authentification — répartis entre des dossiers dédiés (lib/, components/, app/api/), pour rester lisible et évolutif.