Course description
Title of the Teaching Unit
Architecture Web
Code of the Teaching Unit
21BA040
Academic year
2026 - 2027
Cycle
Number of credits
6
Number of hours
0
Quarter
2
Weighting
Site
ECAM
Teaching language
French
Teacher in charge
Lurkin Quentin
Objectives and contribution to the program
Contribution au programme
- Compréhension technique approfondie des applications web : Assimiler le fonctionnement sous-jacent des applications web (protocoles,
architecture client-serveur, flux de données) afin de dialoguer efficacement et avec autorité avec les équipes de développement technique.
- Modélisation et formalisation des besoins métiers : Traduire des règles et processus métier complexes en schémas relationnels de
données, en spécifications d'API et en logiques applicatives back-end.
- Autonomie de prototypage : Développer et déployer de manière autonome des prototypes fonctionnels (Proof of Concept) pour valider rapidement des hypothèses produit et des cas d'usage analytiques.
- Gouvernance, sécurité et intégration : Évaluer la faisabilité technique, les impacts sécuritaires (authentification, autorisations) et les stratégies d'intégration de services tiers via API dans un écosystème d'entreprise.
Acquis d'apprentissage spécifiques
Au terme de cette UE, l'étudiant·e sera capable de :
Comprendre les principes fondamentaux de l'architecture Web et du protocole HTTP
Concevoir et développer une application web dynamique selon l'architecture MVC
Modéliser une base de données relationnelle et assurer la persistance des données via un ORM
Sécuriser une application web (authentification, gestion des sessions et contrôle d'accès)
Concevoir, consommer et tester des API Web (REST / JSON)
Prerequisites and corequisites
Content
Fondations du Web et Protocoles
Architecture Client-Serveur et Protocole HTTP : Analyse du cycle requête-réponse, des méthodes HTTP (GET, POST, PUT, DELETE), des en-têtes et des codes de statut normalisés.
Micro-framework et Routage Web : Fonctionnement d'une application Flask, enregistrement de routes statiques et extraction de
paramètres dynamiques via décorateurs.
Rendu Dynamique et Interactions Utilisateur
Moteur de Templates Jinja2 : Séparation stricte de la vue et de la logique métier, manipulation de structures de contrôle dans le HTML et factorisation par héritage de layouts.
Traitement et Validation des Formulaires : Récupération des données entrantes, validation côté serveur, gestion du cycle de vie des requêtes POST et transmission de notifications d'état (Flash messages).
Persistance et Modélisation Relationnelle
Modélisation Conceptuelle de Données : Structuration de schémas relationnels, gestion des contraintes d'intégrité, clés primaires et clés étrangères.
Mappage Objet-Relationnel (ORM) : Abstraction de la persistance relationnelle avec SQLAlchemy, manipulation d'entités Python et gestion des sessions de base de données.
Opérations CRUD et Requêtes Avancées : Implémentation des opérations fondamentales (Create, Read, Update, Delete) avec filtres conditionnels, tris et jointures.
Module 4 : Architecture Applicative et Sécurité
Patron d'Architecture MVC et Modularité : Organisation du code applicatif en couches distinctes et découpage en modules fonctionnels via les Blueprints Flask.
Authentification et Gestion des Sessions : Mécanismes d'état HTTP par cookies et sessions serveur, hachage cryptographique sécurisé des mots de passe.
Contrôle d'Accès Basé sur les Rôles (RBAC) : Restriction d'accès aux routes applicatives et sécurisation des actions métier selon les privilèges des utilisateurs.
Module 5 : Intégration d'API, Qualité et Déploiement
Architecture RESTful et Sérialisation JSON : Conception d'endpoints d'API normalisés, sérialisation de structures de données et gestion des réponses JSON
Consommation d'API Externes : Communication HTTP synchrone avec des services tiers via la bibliothèque requests et gestion sécurisée des secrets d'authentification
Tests Logiciels Automatisés : Écriture de suites de tests unitaires et d'intégration avec unittest, utilisation d'objets factices (Mocks) pour isoler les dépendances externes.
Industrialisation et Environnement de Production : Configuration de serveurs d'application WSGI (Gunicorn), gestion des variables d'environnement et préparation au déploiement en conteneur ou PaaS.
Teaching methods
Pédagogie par projet et fil rouge : Alternance continue entre apports théoriques et mise en pratique immédiate sur un cas d'application
concret.
Apprentissage actif en laboratoire : Résolution de problèmes réels de développement, détection de bugs et refactorisation de code.
Assessment method
Modalité unique : examen écrit (100%) organisé en session d'examen
References
Supports de présentation : Diapositives des séances théoriques au format PDF synthétisant les concepts fondamentaux, schémas d'architecture et extraits de code clés.
Exercices et projet de code applicatifs: Projet fil rouge complet et tutoriels guidés pas à pas.