Développement WEB

7h

Octobre, 2023

BACHELOR 2 – Créalise

JOUR 1 / 2

Formateur: Philippe Vincent

administrateur + développeur + formateur

= artisan numérique

Support de formation sous Copyleft

autorisation donnée par l’auteur d’utiliser, d’étudier, de modifier et de diffuser son œuvre, dans la mesure où cette même autorisation reste préservée

Licence Art Libre

Présentez-vous !

  • Prénom - NOM

  • Quel est votre niveau en développement Web ?

    • Pouvez-vous citer :
      • quelques outils, …
      • des noms de technologies, …

Plan de formation

Apprendre les bases

img

img img

Préambule

Le réseau Internet [pré-existant au WEB]

définit par

Internet Engineering Task Force (IETF)

Nous rejetons les rois, les présidents et le vote. Nous croyons en un consensus approximatif et un code qui fonctionne

Le tao de l’IETF (en français)

Notion de Protocoles Internet

IP, TCP, SMTP, FTP, …

pour être validé, tout nouveau protocole doit proposer une implémentation libre et ouverte !

Notion de Client/Serveur

img

Notion d’hypertexte

25%

lecture non linéaire ( Vs livre)

Formats ouverts

=

INTEROPÉRABILITÉ

  • images : gif, jpeg, png, …
  • vecteur : svg
  • audio : flac, ogg, …
  • vidéo : mkv, webm, …
  • document: rtf, pdf, odt, ods, csv, …

HTTP / URL / HTML / CSS

À l’origine … Tim Berners Lee

⬇️

Dates importantes

  • 1991 invention du World Wild Web, communément WWW ou W3

  • 1994 création du Consortium, le W3C

    • libération du code sous la forme de domaine publique
      • HTTP le protocole
        • URL l’adresse des pages
        • HTML le contenu des pages
        • CSS les feuilles de styles

URL

Unified Resource Locator

exemple d’url

URL : attention pas d’espace

  • monFichierEnCamelCase
  • MonFichierEnPascalCase
  • mon_fichier_en_snake_case
  • mon-fichier-en-kebab-case

HTML5

Structure classique : DOCTYPE, html, head, title, body

<!DOCTYPE html>
<html>

  <head>
    <meta charset="utf-8" />
    <title>Titre de la page HTML</title>
  </head>

  <body>
    partie visible
  </body>

</html>

HyperText Markup Language = Langage à balises

<head> utile pour définir des métadonnées

Documentation en ligne

Notion de BALISE (Markup)

  • balise ouvrante <div>...

  • balise fermante ...</div>

  • balise orpheline ouvrante et fermante <br/>

    • tolérance acceptable <br> <hr> <img>
  • imbrication, l’ordre est important

    BON ✅ <div><span> contenu </span></div>
    MAUVAIS 💣 <div><span> contenu </div></span>
  • peut contenir des attributs de balise séparés par des espaces ou non

<... attr1='v1 v2' attr2='v3' attr3>

Balise, la suite…

  • commentaire <!-- commentaire -->
  • quelques balises courantes “non exhaustif” 🔍
    • les conteneurs
      • div, p, span
      • section, nav, article (récent => notion sémantique)
    • les titres
      • h1, h2, h3, h4, h5, h6
    • les listes ordonnées et non ordonnées
      • ol, ul, contenant plusieurs li
  • quelques attributs de balise
    • style, class, href

définir un hyperlien

avec la balise a et son attribut href
  <a href='https://www.crealise.io'>
    École
      Digitale
        Créalise
  </a>

École Digitale Créalise

Rq: les espaces en trop sont réduits à un seul !


possibilité de faire des liens inter-page

  <a href='https://fr.wikipedia.org/wiki/Hyperlien#World_Wide_Web'>
    Rubrique WWW dans Wikipedia
  </a>

Rubrique WWW dans Wikipedia

Mise en pratique

Faire une CVthèque, exemple de structure

Alt text

Installer un environnement de programmation

Vs CODIUM

  1. pour les Mac
  2. pour les Windows

⬇️

Pour les Mac

Télécharger

Pour les Windows

Télécharger Version Win64 🔗

Utiliser un navigateur récent

  • Firefox
  • Chromium 🔍
    • ou à défaut… Chrome

Exo 1.1

Personnaliser mon environnement de programmation

* Créez un premier fichier (index.html)
  * Formatez le document
  * Dans Preferences/Settings, activez le champ `format on save`

Ajoutez l’extention Live Server

  Ctl+P
  ext install ritwickdey.LiveServer
    * Démarrez avec `Go Live`
    * Vérifiez que vos modifications sont prises en compte

Exo 1.2

Mon premier fichier HTML

Modifier votre page HTML (index.html)
  * dans <head>, modifiez la balise <title> pour que la page s'appelle "CVThèque"
  * puis dans <body>
    * écrivez un titre de niveau 1 avec <h1>
    * écrivez une liste <ul> de 1 ou 2 élèves avec la balise <li>
    * faites un hyperlien vers une deuxième page...([votre_prénom].html)

30%

Exo 1.3

Naviguer entre 2 fichiers HTML

Faire une deuxième page HTML ([votre_prénom].html)
  * nom de la page "CV de [prénom] [nom]" => remplacer avec votre prénom...
    * qui contient un lien vers la CVThèque
  * vérifier que le lien permet de naviguer entre les 2 pages

30%

Exo 1.4

Ajouter une section identité avec une image

  <section class='identité'>
    <h2>[Prénom NOM]</h2>
    <h3>[age]</h3>
    <img alt='photo' src='...' />
  </section>
  ...
  • au choix
    1. un lien vers un une image publiquement accessible sur Internet
    2. une image téléchargée dans le dossier du projet courant (à coté de index.html)

Exo 1.5

Ajouter un moyen pour vous contacter et une accroche

  <section class='contact'>
    <p class='email'>
      <span>mel</span>
      <a href='mailto:...'>...</a>
    </p>
    <p class='telephone'>
      <span>tel</span>
      <a href='tel:...'>...</a>
    </p>
  </section>

  <section class='accroche'>
    Mon rêve est ...
  </section>

  ...

Créer du STYLE avec CSS

Attention: HTML et CSS sont 2 langages complétement différents !

syntaxe avec l’attribut style

  • <... style="prop1: valeur1 valeur2; prop2: valeur3">
    • on peut mettre plusieurs valeurs séparées des espaces
    • pour séparer plusieurs propriétés, on utilise le séparateur ;
quelques propriétés valides
  • color: [blue, red, yellow, …]
  • background-color: [blue, red, yellow, …]
  • font-style: [normal, italic]
  • font-weight: [normal, bold]
  • font-size: [20px, 2em, …]

exemple

    <section style="color: Blue; font-size:2em; ">
       [...]
    </section>

syntaxe avec la balise style


<head>
  <style>
    sélecteur1 {
      prop1: valeur1 valeur2;
      prop2: valeur3;
    }
  </style>
...
</head>

<body>
...
  • avec des sélecteurs tels que des balises
    • h1 {...}
    • section {...}
  • ou une référence à une classe préfixée par un .
    • .identité {...}
  • ou des combinaisons
    • section.identité {...}
    • section.contact span.email {...}

Attention: dans un sélecteur le caractère espace définit une imbrication !!!

Quelques propriétés acceptant plusieurs valeurs

les bordures (border)

  • 3 valeurs attendues (width, style, color)
... style="border: 1em solid black"

les marges extérieures (margin) ou intérieures (padding)

  • 4 valeurs attendues (top, right, bottom, left)
    • toujours dans le sens des aiguilles d’une montre
    • possibilité de spécifier avec -top, -right, -bottom, -left
      • margin-top, margin-right, …
      • padding-top, padding-right, …
... style="margin: 1em 1.5em 1.5em 2em"
... style="margin: 1em"
... style="margin-top: 1em; margin-bottom: 2em"

Exo 2.1

Ajouter du style

Sur la page de votre CV, ajouter du style
  * le titre CV => 2 x plus grand que d'habitude
    * pt, px, em => préférez `em`
  * définir une bordure pour chaque section
    * changer la couleur de fond `background-color`

Exo 2.2

Décoration avec une image

  • Créer un répertoire images/
  • Trouver sur Internet une icone représentative pour un email et un téléphone
    • sauvegarder dans images/email.png
    • sauvegarder dans images/telephone.png
  • Ajouter une image décorative sur les hyperliens
    • email
      background: url(images/email.png) no-repeat left /2em;
      padding: .5em 0 .5em 2.5em;
      
    • téléphone
      background: url(images/telephone.png) no-repeat left /2em;
      padding: .5em 0 .5em 2.5em;
      

Exo 2.3

Remaniement de CSS

  • déplacer chaque attribut de style dans une seule et grosse balise <style>
  • déterminer le sélecteur approprié
    • créer une classe si nécessaire
<head>
  <style>
    .identité { ... }
    .accroche { ... }
  </style>
</head>

<body>
  <section class="identité">...</section>
  <section class="accroche">...</section>
</body>

Exo 2.4

Distinguer le fichier CSS

<link
  r...="..."
  h...="..."
>

Flex

changement majeur pour positionner des élements de page, avant on utilisait float et c’était difficile

Jouer à https://flexboxfroggy.com/

BONUS
* intégrer FLEX à votre CV
* vérifier que le CV est lisible en mode responsive
* notion de conteneur et de contenus
  * définir flex au niveau du conteneur
  * ne pas hésiter a rajouter des <div> ou des <span>
    pour faciliter les styles

Le jeu de cartes

“JE SAIS TOUT”

Principe

choisissez un thème (1 parmi 8)

En se basant sur une recherche active sur Internet, vous devez mettre en commun vos connaissances, puis présenter à l’oral à l’ensemble de la classe, comme si vous êtiez un expert du sujet.

Règles

  • 20mn de recherche active
  • 10mn de mise en commun avec son binôme (ou trinôme)
  • 5 mn de présentation à l’oral
  • Ne pas oublier de parler des MOTS CLEFS !

CARTE 1 : Tim Berners Lee

* CERN
* La neutralité du Net
* Solid
  * données personnelles

CARTE 2 : HTTP

* protocole de communication
* méthodes HTTP
* codes d'erreur HTTP
* HTTPS
  * TLS

CARTE 3 : Évolution des Navigateurs

* la guerre des navigateurs
  * Internet Explorer Vs Netscape
* Firefox
* Google Chrome
  * Chromium

CARTE 4 : Moteur de recherche

* indexation
  * robot aspirateur
* Altavista
* Google
  * PageRank

CARTE 5 : Web Réactif/Adaptatif (Responsive)

* smartphone, tablette
* @media
* Flex
* outil de vérification WebDeveloper

CARTE 6 : Serveur Web

* Apache
* NGinx
* Node JS
* Ruby On Rails

CARTE 7 : Web Sémantique

* Ontologie / Taxonomie
* Microformat
* Intelligence Collective

CARTE 8 : Histoire d’Internet

* Arpanet
* I.E.T.F / Request For Comment (RFC)
* Neutralité du réseau

Merci pour votre attention


Question subsidiaire

Qui est le premier programmeur ?

algorithme de calcul des nombres de Bernoulli, 1843

Ada Lovelace