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
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.
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.
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.
Chaque parcours est conçu pour ĂȘtre suivi en quelques Ă©tapes :
- Choisir une mission selon son ùge ou sa curiosité.
- DĂ©couvrir lâidĂ©e essentielle avec une explication courte.
- Observer et manipuler une image, une comparaison ou une visualisation.
- Relever un dĂ©fi pour vĂ©rifier ce que lâon a compris.
- 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.
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.
- 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.
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.
- Explorer SolarScope
- Commencer par les planĂštes
- Voir son passeport spatial
- Consulter les sources scientifiques
- Lire la politique de confidentialité
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"]
| 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.
| 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Ă©.
- 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
- 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.
- 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.
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 ciCopiez ensuite .env.example vers .env.local, puis lancez le site :
npm run devLe 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:productionLa 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. đ