Développement d'applications web

Enseignant
Virgile Gerecke
Volume horaire
72h
Contact
Courriel : virgile.gerecke@unistra.fr
RocketChat : https://rocketchat.unistra.fr, virgile.gerecke
Permanence : A partir de 8h pour les cours commençant à 8h30

Description du cours

De nos jours, les applications web sont utilisées quotidiennement par plusieurs milliards de personnes. C'est un moyen simple et efficace d'accès à la culture, aux loisirs, à l'enseignement, etc.

Ce cours propose une introduction aux technologies utilisées pour la réalisation d'applications web ainsi que les interactions entre ces outils et concepts. Ce cours sera l'occasion pour l'étudiant(e) de découvrir et de mettre en œuvre :

  • les langages utilisés pour la création d'une page web
  • les interactions entre les différents éléments technologiques utilisés (serveur web, navigateur, base de données, etc.)
  • les concepts utilisés habituellement dans le développement web
  • des bonnes pratiques à mettre en oeuvre pour assurer un développement cohérent

Ce cours s'appuiera sur le framewok Symfony pour l'illustration de concepts et de bonnes pratiques.

Objectifs du cours

A la fin du cours, l'étudiant(e) aura atteint les objectifs suivants :

  • Maitriser les bases du langage HTML
  • Maitriser les bases du langage PHP
  • Maitriser les fondements de la base de données relationnelle MySQL
  • Maitriser les bases du langage CSS
  • Maitriser les bases du langage JavaScript
  • Maitriser le concept MVC
  • Maitriser les bases de d'un ORM
  • Maitriser les base de l'utilisation du framework Symfony
  • Développer de manière modulaire
  • Maitriser les bases des tests unitaires et fonctionnels
  • Utiliser Ajax avec Symfony

Contenu du cours

L'enseignement s'articulera autour des cours suivants :

  1. Présentation du site web du syllabus, du site web du cours et des livrables attendus
  2. Utilisation d'un système de contrôle de gestion - Principe, introduction à Git
  3. Introduction à HTML - Historique, principes, syntaxe
  4. Introduction à PHP - Historique, principes, syntaxe
  5. Objets PHP - Principes de la programmation orientée objet appliquée à PHP
  6. Conservation des données de navigation
  7. Introduction à MySQL - Principe, requêtes, formes normales, relations, transactions
  8. PHP / MySQL
  9. PHP Data Objects - Mise en œuvre
  10. Introduction à CSS - Sélecteurs, mise en forme, mise en page
  11. Introduction à JavaScript - Syntaxe, JQuery, AJAX
  12. Présentation du concept Modèle/Vue/Contrôleur
  13. Concept d'un framework - Introduction à Symfony
  14. Architecture Symfony
  15. Mise en oeuvre MVC avec le framework
  16. Penser réutilisable
  17. Concept Mapping objet relationnel
  18. Tests unitaires et fonctionnels
  19. Ajax
  20. Découverte d'un framwork JavaScript avec VueJS - Séparation front-end et back-end

Méthode d'enseignement

Ce cours est proposé aux étudiant(s) sous forme de démonstrations, d'instructions et d'exercices progressifs.

Le cours est présenté pendant les séances. Les différentes notions seront ensuite approfondies et mises en œuvre dans le cadre des séances.

Le cours est disponible en ligne à l'adresse http://richie.u-strasbg.fr/~virgile

Evaluation

Des étudiant(e)s

  • Des exercices, réalisés seul ou en équipe durant les séances. Les étudiants devront remettre principalement les codes sources des solutions aux exercices sur le dépôt git mis à leur disposition. Les commentaires et explications seront appréciés. Les exercices d'une séance sont à rendre au plus tard la semaine suivant la séance.
  • Un examen qui se déroulera sur machine en temps limité le 21 janvier 2022 (un changement d'emploi du temps pourrait intervenir pour nécessité pédagogique) . Il s'agira d'une mise en œuvre des notions abordées dans le cours. Les codes sources et documents additionnels devront être remis à la fin du temps imparti.
  • Un projet de développement à réaliser en groupe. Les étudiants devront produire le code source et les documents annexes d'une application web. Ce projet devra mettre en œuvre les technologies ainsi que les concepts théoriques vus dans les cours. Le sujet sera fourni le 14 janvier 2022. Le rendu sera à effectuer un le dépôt git de l'étudiant (spécifique au projet) au plus tard le 17 mars 2022.
  • Tout retard de rendu d'un entrainera une pénalité de 20% des points accordés, par jour.

Du cours

  • Discussion avec les étudiant(e)s à la mi-session et à la fin de la session
  • Retours des étudiants dans le cadre du Conseil de perfectionnement de la formation.

Notes et références

HTML 5
Rodolphe Rimelé - Eyrolles - ISBN 9782212596113
https://biblio.bnu.fr/opac/resource/html-5/BUS2402172?sysb=bnu
PHP 7 : cours et exercices
Jean Engels - Eyrolles - ISBN 9782212009569
https://biblio.bnu.fr/opac/resource/php-7-cours-et-exercices/BUS2271661?sysb=bnu
Programmez en orienté objet en PHP
Victor Thuillier - Eyrolles - ISBN 9782212149364
https://biblio.bnu.fr/opac/resource/programmez-en-oriente-objet-en-php/BUS2316641?sysb=bnu
Fullstack Vue: The Complete Guide to Vue.js
Hassan Djirdeh, Nate Murray, Ari Lerner - CreateSpace Independent Publishing Platform - ISBN 1987595297