École Privée d’Ingénierie du Niger — L’école du nouveau monde

✉ elearning@epiniger.edu.ne    🌐 epiniger.edu.ne

Unité d’enseignement : GELO · S6 · UE2 — Développement Full-Stack & Atelier

  • IoT & Systèmes Embarqués

    Le cours IoT & Systèmes Embarqués (IOT6122, S6, 3 crédits) apprend à concevoir des objets connectés complets : du capteur soudé sur une carte Arduino ou ESP32 jusqu’au tableau de bord dans le cloud. Il est pensé pour le contexte nigérien : villages éloignés du réseau électrique, couverture mobile irrégulière, chaleur et poussière sahéliennes, budgets serrés d’ONG, de communes ou de PME. Les solutions retenues sont donc sobres en énergie (alimentation solaire, veille profonde), tolérantes aux coupures (stockage local puis renvoi) et économes en données (MQTT, LoRaWAN).

    Objectifs d’apprentissage

    • Comprendre l’architecture des systèmes IoT : capteurs, actionneurs, passerelles, cloud IoT.
    • Programmer des microcontrôleurs Arduino et Raspberry Pi pour des applications IoT.
    • Concevoir des protocoles de communication IoT : MQTT, CoAP, LoRaWAN pour l’Afrique rurale.
    • Développer une solution IoT complète adaptée aux contraintes du contexte nigérien.

    Prérequis

    Introduction aux Réseaux TCP/IP (TCP3142, GELO S3) et Algèbre de Boole & Architecture Numérique (BOO1142, S1). Des bases de programmation en C et en Python sont supposées acquises.

    Plan du cours

    1. Leçon 1 — Architecture et Écosystème IoT
    2. Leçon 2 — Programmation des Systèmes Embarqués
    3. Leçon 3 — Protocoles de Communication IoT
    4. Leçon 4 — Projet IoT Intégrateur

    Travaux pratiques

    • TP guidé (leçon 2) : station météo autonome (température, humidité, pression) avec affichage LCD, BME280 + Arduino, passerelle Raspberry Pi.
    • TP projet (leçon 4) : système de surveillance de la qualité de l’eau potable dans un village nigérien (ESP32, MQTT, règles d’alerte, alimentation solaire).

    Matériel minimal conseillé par binôme : une carte Arduino Uno, un ESP32, un capteur BME280, un LCD 16×2 I2C, une plaque d’essai ; un Raspberry Pi par groupe (broker Mosquitto). Les programmes des corrigés ont été testés sur simulateur ou avec un broker MQTT local.

    Modalités d’évaluation

    Volume horaire : CM 20 h, TD 10 h, TP 10 h, TPE 20 h (CTT 60 h). Évaluation CC + ET : contrôle continu 40 % (TP notés, comptes rendus, quiz), examen terminal 60 %. Nature : mixte (écrit et pratique). Le TP projet de la leçon 4 compte dans le contrôle continu.

    Bibliographie

    • Schwartz M., Internet of Things with Arduino Cookbook, Packt.
    • Documentation Arduino (docs.arduino.cc — gratuite) et Raspberry Pi (raspberrypi.com).
    • Documentation MicroPython (docs.micropython.org) et spécification MQTT 3.1.1 / 5.0 (OASIS).
    • Monk S., Programming Arduino: Getting Started with Sketches, McGraw-Hill.
  • Atelier GL — Application Web Full-Stack

    Cet atelier de S6 est le projet intégrateur du parcours Génie Logiciel : les étudiants conçoivent, développent, sécurisent et déploient en production une application web full-stack répondant à un besoin réel nigérien. Il mobilise un backend Node.js/Express (ou Django/FastAPI) avec une API REST, un ORM et une authentification JWT/OAuth2, un frontend React avec gestion d’état, les bonnes pratiques de sécurité OWASP et de performance, puis un déploiement automatisé sur VPS Linux avec supervision. Les programmes des exemples et corrigés ont été exécutés (Jest, Supertest, React Testing Library, Python) et les configurations vérifiées (nginx -t, actionlint).

    Objectifs d’apprentissage

    • Concevoir et développer une application web full-stack complète et déployée en production.
    • Maîtriser un framework backend moderne (Node.js/Express ou Django/FastAPI) et une API REST.
    • Intégrer un framework frontend réactif (React ou Vue.js) avec la gestion d’état.
    • Appliquer les bonnes pratiques de sécurité web et de performance en production.

    Prérequis

    Développement Web Frontend HTML/CSS/JS (DWF3121, S3) ; Programmation Orientée Objet (Java/C#). Bases de données relationnelles et SQL, Git.

    Plan du cours

    1. Leçon 1 — Architecture Full-Stack et Backend
    2. Leçon 2 — Frontend Réactif
    3. Leçon 3 — Sécurité Web et Performance
    4. Leçon 4 — Projet Intégrateur et Déploiement

    Travaux pratiques

    • TP continus (30 h) sur le projet fil rouge : API, frontend, tests, sécurisation.
    • Tests de charge avec k6 ou JMeter (leçon 3).
    • TP guidé : déploiement complet sur VPS avec Nginx, PM2, Let’s Encrypt, GitHub Actions et supervision (leçon 4).
    • Soutenance : démonstration en direct, revue de code, retour d’un jury professionnel.

    Modalités d’évaluation

    Volume horaire : CM 20 h, TD 10 h, TP 30 h, TPE 20 h (CTT 80 h) — 4 crédits. Évaluation CC + ET : contrôle continu 50 % (livrables de sprint, TP, quiz), examen terminal 50 % (soutenance du projet). Nature : mixte.

    Bibliographie

    • D. Flanagan, JavaScript: The Definitive Guide, O’Reilly.
    • Documentation officielle React (react.dev — gratuit) et Node.js (nodejs.org).
    • OWASP, OWASP Top 10 et Cheat Sheet Series (owasp.org — gratuit).
    • Documentation Express (expressjs.com) et Prisma (prisma.io/docs).