Roadmap V1: alignement données programmes + demo cours complétés - #2
Roadmap V1: alignement données programmes + demo cours complétés#2amelia277 wants to merge 3 commits into
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
🟡 Not ready to approve
Le seed/défaut “démo” est appliqué automatiquement à tous les nouveaux utilisateurs et devrait être opt-in (ex: via ?demo=1) pour éviter un comportement persistant non désiré en production.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
This review doesn't count toward merge requirements. Sign up for the private preview to control whether Copilot approvals count.
Pull request overview
Cette PR vise à améliorer la démo et la cohérence des données de programmes pour le Roadmap V1, en mettant à jour des listes de cours/segments et en rendant l’interface plus robuste face à des cours “complétés” incomplets (ex. objets stockés sans titre).
Changes:
- Ajout d’un état “cours complétés” de démo et d’un défaut d’université (UdeM) côté frontend.
- Ajustement UI pour afficher un fallback quand un cours complété n’a pas de titre.
- Mise à jour des données de programmes (UdeM/McGill/Concordia) : crédits max ajustés et listes de cours enrichies.
File summaries
| File | Description |
|---|---|
| web/src/shared.jsx | Fallback d’affichage pour les cours complétés sans titre. |
| web/src/App.jsx | Seed de cours complétés de démo + université par défaut via localStorage. |
| programs/udem_informatique.json | Ajuste credits_max (Génie logiciel) pour refléter 2 cours (6 cr). |
| programs/mcgill_computer_science.json | Enrichit la liste des cours complémentaires + synchronise tous_les_cours. |
| programs/concordia_computer_science.json | Enrichit les cours à option + math/science electives + synchronise tous_les_cours. |
Review details
Suppressed comments (1)
web/src/App.jsx:32
- Le défaut
homeUniversite = 'UdeM'change le comportement pour tous les nouveaux utilisateurs (UI pré-sélectionnée + storage). Si c’est seulement pour la démo, faites-en aussi un comportement opt-in (ex:?demo=1) afin de garder l’état initial neutre en production.
const [homeUniversite, setHomeUniversite] = useState(() =>
localStorage.getItem('homeUniversite') || 'UdeM'
)
- Files reviewed: 5/5 changed files
- Comments generated: 1
- Review effort level: Lite
We're testing this review assessment. Please use 👍 or 👎 to tell us if it's correct.
| const [completed, setCompleted] = useState(() => { | ||
| try { return JSON.parse(localStorage.getItem('completed') || '[]') } catch { return [] } | ||
| const raw = localStorage.getItem('completed') | ||
| if (raw == null) return DEMO_COMPLETED | ||
| try { return JSON.parse(raw) } catch { return [] } | ||
| }) |
Résumé
Démo en direct
https://regions-served-platform-diverse.trycloudflare.com
(Tunnel pointé sur mon environnement local — actif tant que mon poste tourne. Recherche de cours, disponibilité, etc. fonctionnent comme en local avec Neo4j.)