## Thème

Écrire une application web en javascript  qui permet de consulter les données de
parcours sup (vœux de poursuite d'études et de réorientation dans l'enseignement
supérieur et réponses des établissements) afin d'aider un(e) lycéén(e) à faire ses choix.


- La partie cliente devra être réaliser au moyen du framework [riotjs](https://riot.js.org/).
- Les données  seront  consommées au moyen de [l'api](https://data.enseignementsup-recherche.gouv.fr/explore/dataset/fr-esr-parcoursup/api/?timezone=Europe%2FBerlin&sort=tri)  opendata. (cf [méthodologie](https://data.enseignementsup-recherche.gouv.fr/api/datasets/1.0/fr-esr-parcoursup/attachments/methodologie_opendata_2025pdf/))
- La localisation utilisera openstreet map et l'api [Leaflet](https://leafletjs.com/).
- Les graphiques seront réalisés au moyen de [chart css](https://chartscss.org/).

## Fonctionnalités
#### Recherche des formations par mots clés, avec localisation sur une carte.

[<a href="img/search.png">exemple</a>]
#### Vue d'une formation particulière, avec accès aux données de parcourssup, entre autres :
  - les données lors de la phase d'admission,
  - les données lors de la phase complémentaire,
  - le profils des admis,
  - l'évolution de la selectivité, des mentions au bac depuis 2020.

[<a href="img/formation.png">exemple</a>, <a href="img/profil.png">exemple</a>, 
	<a  href="img/profil1.png">exemple</a>]

#### Aide au choix d'orientation

L'utilisateur doit pouvoir selectionner des formations/filières  afin de les comparer et estimer
ses chances d'intégrations en fonction de la série de son bac et de sa moyenne en terminale.

[<a href="img/selection1.png">exemple</a>
, <a href="img/selection2.png">exemple</a>]

Les choix de l'utilisateur devront au moins être persistant localement. Vous pouvez, losque tout fonctionne,
	mettre en oeuvre une persistance avec [firebase](https://firebase.com).

## Réalisation
1. Une partie de votre travail consiste à comprendre comment fonctionne l'api (entrées/sorties), et comment l'utiliser. N'hésitez pas à encapsuler/abstraire les informations de l'api dans votre propre modèle.
2. Le but est d'utiliser la programmation déclarative et par composants de RIOT.js. Il faut donc l'architecturer et l'organiser en 
   conséquence. En particulier, il faut profiter pleinement de l'utilisation de composants le plus génériques possibles.
3. Il faut utiliser des urls routables. Riot.js vient avec un [router](https://github.com/riot/route) très simple d'utilisation.
   Je vous expliquerai comment mettre en oeuvre la réécriture d'url avec apache.
4. Il est possible d'utiliser le pattern observable, avec une bibliothèque adhoc ([exemple](https://github.com/riot/observable))
5. Dans le depot GIT de votre projet, il faut une description des composants, leurs entrées, leurs fonctions, et comment
   ils communiquent avec le reste du monde.

## Attendus
Un mail (sujet S4WEB) m'indiquant les informations suivantes :

- l'url de votre projet sous la forme : http://dwarves.iut-fbleau.fr/~login/parcoursup
- l'url du dépôt GIT avec vos sources sur dwarves.iut-fbleau.fr
- les noms du binôme.

Le tout est à finaliser avant le Vendredi 03 avril 2025, 18 heures. Une soutenance aura lieu la semaine du 30/03.
