Skip to content

Repository files navigation

🔭 SolarScope — explorer l’Univers, comprendre les donnĂ©es

Quality External resources Next.js TypeScript Vercel

SolarScope est un site Ă©ducatif gratuit pour dĂ©couvrir l’Univers avec des mots simples, de vraies images et des missions courtes.

Il s’adresse d’abord aux enfants de 6 Ă  12 ans, mais aussi aux adolescents, aux parents, aux enseignants et Ă  toutes les personnes qui veulent comprendre l’espace sans se perdre dans des explications compliquĂ©es.

🌐 DĂ©couvrir SolarScope : solar-scope.vercel.app

Aperçu de SolarScope

D’un projet de fin d’études Ă  une application web complĂšte

SolarScope est nĂ© comme Projet 3, le projet final de fin d’études Ă  la Wild Code School en 2025. La premiĂšre version Ă©tait un tableau de bord data dĂ©veloppĂ© avec Python et Streamlit. Des scripts d’ingestion alimentaient une base PostgreSQL hĂ©bergĂ©e sur Railway Ă  partir de plusieurs API de la NASA.

La version actuelle est une refonte importante, pas un simple changement visuel :

Projet final d’origine SolarScope aujourd’hui
Dashboard Streamlit en Python Application Next.js 16, React 19 et TypeScript
Données copiées dans PostgreSQL/Railway par lots Sources interrogées cÎté serveur, normalisées et mises en cache selon leur cadence
Navigation orientée analyse de données Parcours éducatifs par ùge, missions et passeport spatial
Pages surtout statiques Données spatiales évolutives, 3D, PWA et fonctionnement dégradé explicite
Assistant Gemini expĂ©rimental SolarBot limitĂ©, sourcĂ©, protĂ©gĂ© et dotĂ© d’un mode de secours local
Validation manuelle CI, tests unitaires, tests Playwright, accessibilité et contrÎles de production

Cette Ă©volution conserve l’ADN data du projet initial tout en le transformant en produit web maintenable, documentĂ© et pensĂ© pour un public rĂ©el.

Pourquoi SolarScope existe

L’espace fait rĂȘver, mais il peut aussi sembler immense et difficile Ă  comprendre. Entre les distances gigantesques, les mots scientifiques et les informations qui changent rĂ©guliĂšrement, il n’est pas toujours facile de savoir par oĂč commencer.

SolarScope transforme cette dĂ©couverte en aventure. Chaque sujet part d’une question simple, prĂ©sente quelques idĂ©es importantes, puis propose d’observer, de comparer ou de relever un petit dĂ©fi.

L’objectif n’est pas de tout apprendre d’un coup. Il est de donner envie de regarder le ciel, de poser des questions et de comprendre progressivement ce que les scientifiques dĂ©couvrent.

Ce que l’on peut dĂ©couvrir

Sur SolarScope, on peut notamment :

  • comprendre le Soleil et explorer les huit planĂštes ;
  • suivre les rovers sur Mars et observer Perseverance en 3D ;
  • dĂ©couvrir les astĂ©roĂŻdes, les mĂ©tĂ©orites et les exoplanĂštes ;
  • suivre l’ISS et les prochaines missions spatiales ;
  • admirer les images du tĂ©lescope James-Webb et la photo astronomique du jour ;
  • prĂ©parer une observation du ciel ;
  • rĂ©pondre Ă  des quiz et remplir un passeport d’explorateur ;
  • poser une question Ă  SolarBot et retrouver les sources utilisĂ©es.

Une mission, comment ça marche ?

Chaque parcours est conçu pour ĂȘtre suivi en quelques Ă©tapes :

  1. Choisir une mission selon son ùge ou sa curiosité.
  2. DĂ©couvrir l’idĂ©e essentielle avec une explication courte.
  3. Observer et manipuler une image, une comparaison ou une visualisation.
  4. Relever un dĂ©fi pour vĂ©rifier ce que l’on a compris.
  5. Conserver sa progression dans son passeport spatial.

On peut lire les missions dans l’ordre ou simplement choisir le sujet qui donne envie aujourd’hui.

Des informations que l’on peut vĂ©rifier

SolarScope s’appuie sur des organismes scientifiques reconnus comme la NASA, l’ESA et la NOAA.

Les chiffres qui Ă©voluent — position de l’ISS, mĂ©tĂ©o solaire, lancements ou dĂ©couvertes — sont accompagnĂ©s de leur source. Lorsqu’une information en direct n’est pas disponible, le site prĂ©fĂšre le dire clairement plutĂŽt que d’afficher une estimation comme si elle Ă©tait certaine.

La page DonnĂ©es et sources permet de retrouver facilement l’origine des informations.

Pensé pour les enfants et les familles

  • Aucun compte enfant n’est nĂ©cessaire.
  • Le passeport et la progression restent sur l’appareil utilisĂ©.
  • SolarBot rappelle de ne jamais partager son nom, son adresse, son Ă©cole, son tĂ©lĂ©phone ou son e-mail.
  • Les pages sont utilisables sur ordinateur, tablette et tĂ©lĂ©phone.
  • La navigation est conçue pour rester accessible au clavier et avec les outils d’assistance.

Une page spéciale propose également des repÚres aux parents et aux enseignants pour accompagner une mission ou lancer une discussion.

Et la version anglaise ?

Le français est la langue principale de SolarScope. Une prĂ©sentation de l’accueil est disponible en anglais, mais les parcours pĂ©dagogiques dĂ©taillĂ©s restent actuellement en français.

Ce choix est volontaire : une bonne traduction pour les enfants doit prĂ©server la simplicitĂ© des mots et l’exactitude scientifique, pas seulement traduire les phrases mot Ă  mot.

Liens utiles

Architecture des données et persistance

La version actuelle n’a pas de base relationnelle centrale et ne stocke pas de comptes utilisateurs. Ce choix rĂ©duit la collecte de donnĂ©es personnelles et Ă©vite de conserver une copie vieillissante de donnĂ©es scientifiques qui disposent dĂ©jĂ  de sources de rĂ©fĂ©rence.

flowchart LR
  sources["NASA · NOAA · ESA · Launch Library · ISS"] --> adapters["Adaptateurs serveur Next.js"]
  adapters --> validation["Validation · normalisation · délais maximum"]
  validation --> cache["Cache Next.js · CDN · stale-while-revalidate"]
  cache --> pages["Pages, graphiques et visualisations"]
  gemini["Gemini"] --> solarbot["SolarBot sourcé + mode de secours"]
  redis["Upstash Redis"] --> limits["Limitation distribuĂ©e des requĂȘtes"]
  limits --> solarbot
  browser["localStorage du navigateur"] --> passport["Passeport, quiz, langue et préférences"]
Loading
Couche RÎle Données conservées
API scientifiques Fournir les données de référence ou évolutives Aucune copie permanente dans SolarScope
Cache Next.js/Vercel Réduire la latence et protéger les services amont Réponses techniques temporaires, selon la cadence de chaque source
Upstash Redis Appliquer un quota partagé aux routes sensibles en production Compteurs techniques de courte durée, pas de profil utilisateur
localStorage Garder l’expĂ©rience sans crĂ©er de compte Progression, meilleur score, langue et Ă©tape pĂ©dagogique sur l’appareil
PostgreSQL/Railway Architecture de la premiÚre version Streamlit Héritage du Projet 3, non utilisé par le runtime Next.js actuel

Lorsqu’une source distante ne rĂ©pond pas, SolarScope affiche soit la derniĂšre donnĂ©e connue avec son statut, soit un Ă©tat indisponible. Une valeur de secours n’est jamais prĂ©sentĂ©e comme une mesure en direct.

Sources scientifiques et services

Source Utilisation principale
NASA Open APIs APOD, astéroïdes proches et événements DONKI
NASA Images Galerie d’images du tĂ©lescope James-Webb
NASA Exoplanet Archive Nombre et catalogue d’exoplanĂštes confirmĂ©es
NASA Science Faits de référence sur les planÚtes, Mars et Webb
NOAA Space Weather Prediction Center Vent solaire, champ magnétique, rayons X et indice Kp
Where the ISS at? Position et tĂ©lĂ©mĂ©trie de l’ISS
Launch Library 2 Prochains lancements spatiaux
Nominatim / OpenStreetMap Nom de la zone d’observation à partir d’une position
Google Gemini Réponses optionnelles de SolarBot, avec repli local

Les faits stables et les donnĂ©es en direct sont distinguĂ©s dans le code par un registre de sources. Chaque donnĂ©e importante peut afficher sa provenance, sa date de vĂ©rification et son comportement en cas d’indisponibilitĂ©.

Choix techniques

  • Application : Next.js 16 App Router, React 19, TypeScript 5
  • Interface : CSS responsive, Framer Motion, composants accessibles
  • 3D : Three.js, React Three Fiber et Drei
  • DonnĂ©es : routes serveur Next.js, validation des rĂ©ponses et cache par source
  • IA : Gemini cĂŽtĂ© serveur, rĂ©ponses de secours, sources et garde-fous enfants
  • Protection : CSP, en-tĂȘtes HTTP, taille maximale des requĂȘtes, dĂ©lais et quotas Upstash
  • QualitĂ© : ESLint, TypeScript, Vitest, Playwright et axe-core
  • DĂ©ploiement : Vercel, cron de rafraĂźchissement et GitHub Actions

Respect de la vie privée

  • Aucun compte enfant n’est demandĂ©.
  • La progression reste sur l’appareil et peut ĂȘtre effacĂ©e depuis le site.
  • SolarBot demande de ne jamais partager nom, adresse, Ă©cole, tĂ©lĂ©phone ou e-mail.
  • Les clĂ©s NASA, Gemini, Redis et cron restent exclusivement cĂŽtĂ© serveur.
  • La politique complĂšte est disponible sur la page ConfidentialitĂ©.

SolarScope est un projet Ă©ducatif indĂ©pendant et n’est pas un site officiel de la NASA, de l’ESA, du CNES ou de la NOAA.

Limites connues

  • Le français est la langue principale ; l’anglais reste une prĂ©visualisation partielle.
  • Les contenus et flux externes peuvent changer sans prĂ©avis malgrĂ© les contrĂŽles automatisĂ©s.
  • Les tests automatisĂ©s complĂštent, mais ne remplacent pas, une validation rĂ©guliĂšre avec des enfants, parents et enseignants.
  • La progression locale ne se synchronise pas entre plusieurs appareils.

Participer au projet

SolarScope est un projet ouvert aux idées et aux améliorations. Une contribution peut prendre plusieurs formes :

  • signaler une explication difficile Ă  comprendre ;
  • proposer une nouvelle mission ou une activitĂ© ;
  • corriger une information ou ajouter une meilleure source ;
  • amĂ©liorer l’accessibilitĂ© ou l’affichage sur mobile ;
  • aider Ă  prĂ©parer une vĂ©ritable version anglaise.

Vous pouvez ouvrir une issue sur GitHub pour partager une idée ou signaler un problÚme.

Installer le projet pour contribuer

SolarScope utilise Next.js. Node.js 22 est recommandé ; la version minimale prise en charge est 20.9.

git clone https://github.com/AtomCrtr/SolarScope.git
cd SolarScope
npm ci

Copiez ensuite .env.example vers .env.local, puis lancez le site :

npm run dev

Le site sera disponible sur http://localhost:3000.

Avant de proposer une modification, lancez :

npm run check
npm run test:a11y
npm run check:external
npm run check:production

La CI exécute les contrÎles de qualité à chaque push et pull request. Un workflow hebdomadaire vérifie aussi les ressources externes et les parcours de production. Dependabot surveille les dépendances npm et les actions GitHub.

Les choix d’organisation du projet sont expliquĂ©s dans docs/ARCHITECTURE.md. Les principes utilisĂ©s pour les contenus destinĂ©s aux enfants et les donnĂ©es scientifiques se trouvent dans docs/LEARNING_AND_DATA.md.


SolarScope invite chacun à lever les yeux, rester curieux et explorer l’Univers une question aprùs l’autre. 🚀

About

🔭 Application interactive pour explorer l'espace — Streamlit + NASA APIs

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages