Vue d’ensemble
- 08/01/2026 (matin) Intro, REST, OpenAPI, TP
- 09/01/2026 (matin) GraphQL, TP
- 09/01/2026(aprem)
- 12/01/2026 (aprem) je viens voir comment ça avance
- 13/01/2026 (journée)
- 14/01/2026 après-midi
- quiz individuel
- je vois comment ça avance
- 16/01/2026 (journée)
- 20/01/2026 (journée)
- 21/01/2026 (matin)
- 21/01/2026 (aprem) Evaluation orale du Hackaton
2 séances de cours/tuto/tp
REST
GraphQL
TP
Le TP est optionnel mais conseillé, en particulier pour les personnes qui n’ont jamais fait d’API REST et GraphQL. Contrairement aux tutoriels il vous permettra de mieux voir comment les services s’appellent les uns les autres et de comprendre une architecture micro-services plus en détails. Vous pouvez le faire entièrement, partiellement, l’important est de comprendre. Le quiz individuel sur papier me permettra de voir si vous avez suivi les tutoriels sérieusement et si vous comprenez les concepts. Avoir fait le TP aidera forcément mais n’est pas obligatoire.
Hackaton
Le projet vise à développer un backend (ou une application complète avec frontend - optionnel) sur le thème des déplacements multimodaux. À vous de choisir le spectre de votre application : Nantes, Bretagne, France, ou dans le monde. Pour cela il sera nécessaire d’interroger plusieurs APIs externes et de croiser les données: trains, bus, naolib, vélo perso, voiture et co-voiturage, moto, trottinnette, bâteaux etc. Il ne s’agit pas forcément de calculer l’itinéraire le plus direct, il faut penser aux connections, au trafic, aux conditions de sécurité etc. Vous pouvez même imaginer d’autres critères plus qualitatifs que quantitatifs sur les trajets à considérer. Laissez parler votre imagination pour une application originale (ou même farfelue) !
Votre application offrira elle même plusieurs micro-services (calculs diverses, comptes utilisateurs/préférences, gateway, etc.) avec leurs APIs correspondantes. Les APIs de votre application seront utilisées pour que les micro-services se parlent entre eux, et pour qu’un éventuel frontend ou utilisateur y fasse des requêtes. Pensez bien vos API et votre architecture !
- Organisation : constituer des groupes de 4 ou 5 élèves
- Contraintes
- coder au moins 3 micro-services dans votre application avec au moins une API REST et une API GraphQL (gRPC non obligatoire)
- coder au moins un micro-service dans un autre langage que Python (Go, Js, Ts, Java etc.)
- utiliser des APIs externes pour obtenir des données pour votre application
- votre application doit être dockerisée
- fournir l’export Insomnia permettant de tester votre application (si vous n’avez pas fait de front)
- bonus :
- utilisation d’une base de données NoSQL (voir cours/tuto MongoDB plus bas) pour gérer les données des micros-services (cache, données calculées)
- utiliser un broker de messages (MQTT, RabbitMQ, Kafka ou autre) dans votre application pour gérer des événements ou messages asynchrones ou un cache de données des APIs externes
- coder un frontend en REACT ou autre techno
- coder une API gRPC (voir cours/tutoriel proposé plus bas)
Evaluation
Les différentes choses évaluées
- Quiz individuel noté - 20 minutes le 14/01
- Implication lors des discussions des séances du 12/01 et 14/01
- Evaluation orale projet - 30 minutes par groupe
- contexte de la présentation : devant toute la classe
- présenter rapidement (10 minutes max) avec des slides votre projet et l’architecture de votre application avec les différentes API et langages utilisés
- présenter votre application à travers une démonstration ~15 minutes
- phase de Q/R ~5 minutes
- Rendu moodle du projet
Compétences :
- BC4 CONCEVOIR UNE APPLICATION SUIVANT UNE ARCHITECTURE DE (MICRO-)SERVICES EN COMPRENANT ET CHOISISSANT LES SOLUTIONS ADAPTÉES À LA PROBLÉMATIQUE POSÉE PAR LE CLIENT
- Hackaton (oral et rendu)
- BC5 PRODUIRE UNE APPLICATION RÉPONDANT À DES SPÉCIFICATIONS EN SUIVANT UNE ARCHITECTURE DE (MICRO-)SERVICES EN PYTHON/FLASK EN UTILISANT LES API REST ET GRAPHQL
- Quiz