Aller au contenu

Exercices

Étape 0 : Configuration initiale

Acceptation du devoir

Votre enseignant vous fournira un lien GitHub Classroom (exemple: https://classroom.github.com/a/xyz123) au début de ce TP. Ce lien créera automatiquement un dépôt privé pour vous.

  1. Accepter le devoir GitHub Classroom
  2. Cliquez sur le lien fourni par l'enseignant
  3. Connectez-vous à votre compte GitHub si nécessaire
  4. Acceptez l'assignment
  5. Attendez que GitHub crée votre dépôt personnel (cela prend quelques secondes)

  6. Ouvrir dans GitHub Codespaces

  7. Une fois le dépôt créé, cliquez sur le bouton vert Code
  8. Sélectionnez l'onglet Codespaces
  9. Cliquez sur Create codespace on main
  10. Patientez pendant que l'environnement de développement se charge (1-2 minutes)

  11. Vérifier la structure initiale

1
2
3
4
5
6
7
8
# Dans le terminal Codespaces, vérifiez votre configuration
git config --global user.name 
# => "Votre Nom"
git config --global user.email 
# => "votre.email@example.com"

# Vérifiez que vous êtes sur la branche main
git branch

Dossiers et fichiers à ne pas modifier

Ne modifiez pas la structure des dossiers ou les fichiers déjà présents dans le dépôt. Chaque exercice doit être réalisé dans son propre dossier (exercice-1/, exercice-2/, etc.) comme indiqué dans les énoncés.

Liste des dossiers/fichiers à ne pas modifier :

1
2
3
4
5
6
7
votre-depôt-github/
├── .github/
├── .devcontainer/
├── .vscode/
├── .gitignore
├── LICENSE
...
Workflow de travail avec GitHub Classroom (Rappel)

Étape 0 : Configuration initiale (Début du TP)

Acceptation du devoir

Votre enseignant vous fournira un lien GitHub Classroom au début de ce TP. Ce lien créera automatiquement un dépôt privé pour vous.

  1. Accepter le devoir GitHub Classroom
  2. Cliquez sur le lien fourni par l'enseignant
  3. Connectez-vous à votre compte GitHub si nécessaire
  4. Acceptez l'assignment
  5. Attendez que GitHub crée votre dépôt personnel (cela prend quelques secondes)

  6. Ouvrir dans GitHub Codespaces

  7. Une fois le dépôt créé, cliquez sur le bouton vert Code
  8. Sélectionnez l'onglet Codespaces
  9. Cliquez sur Create codespace on main
  10. Patientez pendant que l'environnement de développement se charge (1-2 minutes)

  11. Vérifier la structure initiale

1
2
3
4
5
6
7
8
# Dans le terminal Codespaces, vérifiez votre configuration
git config --global user.name 
# "Votre Nom"
git config --global user.email 
# "votre.email@example.com"

# Vérifiez que vous êtes sur la branche main
git branch

Workflow par exercice

Pour chaque exercice de ce TP, vous devez suivre rigoureusement ce processus :

1. Créer une branche dédiée

1
2
3
4
5
6
7
# Assurez-vous d'être sur main et à jour
git checkout main
git pull origin main

# Créez une nouvelle branche pour l'exercice
git checkout -b exercice-1
# ou exercice-0, exercice-2, exercice-3, exercice-4, exercice-5

Nommage des branches

Respectez strictement le format : exercice-1, exercice-2, etc. (tout en minuscules, avec tiret)

2. Créer le dossier de l'exercice

1
2
3
4
5
6
7
8
# Créez un dossier dédié pour l'exercice
mkdir exercice-1
cd exercice-1

# Créez vos fichiers de travail à l'intérieur
touch index.html
touch styles.css
# ... autres fichiers selon l'exercice

Organisation

Chaque exercice doit avoir son propre dossier : exercice-1/, exercice-2/, etc.

3. Développer la solution

  • Travaillez sur les fichiers dans le dossier de l'exercice
  • Testez régulièrement votre code dans le navigateur
  • Utilisez l'extension Live Preview de Codespaces pour prévisualiser

4. Commits réguliers

1
2
3
4
5
6
7
8
9
# Ajoutez vos fichiers à l'index Git
git add .

# Faites un commit avec un message descriptif
git commit -m "feat(exercice-1): ajout du tableau HTML avec 10 élèves"

# Continuez à travailler et faire des commits réguliers
git add .
git commit -m "style(exercice-1): stylisation du tableau avec CSS"

Conseils pour les commits

  • Faites des commits atomiques (une fonctionnalité = un commit)
  • Utilisez des messages clairs et descriptifs
  • Préfixes recommandés : feat:, style:, fix:, docs:

5. Pousser la branche vers GitHub

# Poussez votre branche vers le dépôt distant
git push origin exercice-1

6. Ouvrir une Pull Request (PR)

  1. Allez sur votre dépôt GitHub dans le navigateur
  2. GitHub détectera automatiquement votre nouvelle branche
  3. Cliquez sur Compare & pull request
  4. Remplissez la description de la PR :
## Exercice 1 : Tableau des notes d'élèves

### Ce qui a été réalisé
- [x] Création du tableau HTML avec 10 élèves
- [x] Calcul des moyennes générales
- [x] Stylisation CSS avec bordures et en-tête
- [x] Effet hover sur les lignes

### Captures d'écran

#### Vue normale
![Capture tableau normal](URL_de_votre_capture)

#### Vue avec effet hover
![Capture avec hover](URL_de_votre_capture)

### Points d'attention
- J'ai utilisé `calc()` pour calculer les moyennes en CSS (si applicable)
- Le tableau est responsive avec `overflow-x: auto`

### Questions pour l'enseignant
- (optionnel) Listez vos questions ici
  1. Ajoutez des captures d'écran dans les commentaires de la PR :
  2. Faites des captures de votre travail (Windows : Win+Shift+S, Mac : Cmd+Shift+4)
  3. Glissez-déposez les images directement dans le champ de commentaire
  4. GitHub les hébergera automatiquement

  5. Cliquez sur Create pull request

Important : NE PAS MERGER

  • Ne cliquez JAMAIS sur le bouton "Merge pull request"
  • Attendez la validation de votre enseignant
  • L'enseignant pourra :
    • Commenter votre code
    • Demander des modifications
    • Valider et merger lui-même

7. Passer à l'exercice suivant

1
2
3
4
5
6
7
8
# Revenez sur la branche main
git checkout main

# Répétez les étapes 1-6 pour exercice-2, exercice-3, etc.
git checkout -b exercice-2
mkdir exercice-2
cd exercice-2
# ... continuez votre travail

Exemple de structure finale du dépôt

tp2-html-css-votre-nom/
├── README.md
├── exercice-1/
│   ├── index.html
│   └── styles.css
├── exercice-2/
│   ├── index.html
│   └── styles.css
├── exercice-3/
│   ├── index.html
│   ├── header.html
│   ├── navigation.html
│   ├── accueil.html
│   ├── apropos.html
│   ├── contact.html
│   └── iframe-styles.css
├── exercice-4/
│   ├── commande.html
│   ├── commande-styles.css
│   └── images/
│       ├── produit-a.jpg
│       ├── produit-b.jpg
│       └── produit-c.jpg
└── exercice-5/
    ├── galerie.html
    ├── galerie-styles.css
    ├── script.js
    └── images/
        ├── image-1.jpg
        ├── image-2.jpg
        └── ...

Checklist de validation avant PR

Avant d'ouvrir chaque pull request, vérifiez :

  • Mon code fonctionne correctement (testé dans le navigateur)
  • Tous mes fichiers sont dans le bon dossier (exercice-X/)
  • J'ai fait des commits réguliers avec des messages clairs
  • Ma branche est nommée correctement (exercice-X)
  • J'ai ajouté au moins 2 captures d'écran dans la description de la PR
  • Je n'ai PAS cliqué sur "Merge"
  • Mon code est propre (indentation, pas de code commenté inutile)

Tests automatiques avec GitHub Actions (Autograding)

Présentation du système d'autograding

Tests automatisés

Votre dépôt GitHub Classroom est configuré avec des tests automatiques qui s'exécutent à chaque push. Ces tests vérifient que votre code respecte les exigences de chaque exercice.

Comment ça fonctionne ?

  1. Déclenchement automatique : À chaque git push, GitHub Actions lance une série de tests
  2. Validation du code : Les tests vérifient la structure HTML, le CSS, la présence de fichiers, etc.
  3. Rapport de résultats : Vous recevez un feedback immédiat sur ce qui fonctionne ou non
  4. Note automatique : Votre score est calculé en fonction des tests réussis

Où voir les résultats des tests ?

1. Sur votre Pull Request

Quand vous ouvrez une PR, vous verrez une section "Checks" en bas de la page :

1
2
3
✅ All checks have passed        (Tous les tests sont OK)
❌ Some checks were not successful  (Des tests ont échoué)
🟡 Checks are running...         (Tests en cours)

Pour voir les détails :

  1. Cliquez sur "Details" à côté du test qui a échoué
  2. Vous serez redirigé vers la page des logs GitHub Actions

2. Dans l'onglet "Actions" du dépôt

  1. Allez sur votre dépôt GitHub
  2. Cliquez sur l'onglet "Actions" en haut
  3. Vous verrez la liste de tous les workflows exécutés
  4. Cliquez sur un workflow pour voir les détails

Comprendre les logs de tests

Structure typique des logs

FAIL tests/exercice-1.test.js
Exercice 1 - Tableau des notes
     Le fichier index.html existe (15 ms)
     Le fichier styles.css existe (3 ms)
     Le tableau contient 10 lignes d'élèves (45 ms)
    ✓ L'en-tête du tableau a un background différent (12 ms)
     Les cellules ont des bordures (8 ms)

Tests Suites: 1 failed, 1 total
Tests:       2 failed, 3 passed, 5 total

Interpréter les résultats

Symbole Signification Action requise
Test réussi Rien à faire, c'est parfait !
Test échoué Lire le message d'erreur et corriger
⏭️ Test ignoré Peut-être pas encore implémenté

Debugging pas à pas

Étape 1 : Identifier le test qui échoue

Dans les logs, cherchez la ligne avec :

 Les cellules ont des bordures (8 ms)

Étape 2 : Lire le message d'erreur complet

Juste en dessous, vous trouverez des détails :

1
2
3
Expected CSS property 'border' on 'td' or 'table' elements
Selector checked: td, table
Property found: none

Étape 3 : Localiser le problème dans votre code

Ouvrez styles.css et vérifiez :

1
2
3
4
5
6
7
/* ❌ Problème : règle manquante ou mal écrite */
/* table { ... } */

/* ✅ Solution : ajoutez la règle */
td, th {
border: 1px solid #ddd;
}

Étape 4 : Corriger et re-tester

1
2
3
git add .
git commit -m "fix(exercice-1): ajout bordures cellules tableau"
git push origin exercice-1

Les tests se relanceront automatiquement !

Conseils pour réussir les tests

Conseils pratiques

  1. Testez localement avant de pusher.
  2. Lisez attentivement les messages d'erreur
  3. Respectez les noms de fichiers exacts (minuscules, tirets)
  4. Validez votre HTML sur W3C Validator
  5. Commitez régulièrement pour voir l'évolution des tests
  6. Ne paniquez pas si des tests échouent : c'est fait pour vous guider !

Pièges courants

  • ❌ Fichiers dans le mauvais dossier
  • ❌ Fautes de frappe dans les noms de fichiers
  • ❌ Balises HTML mal fermées
  • ❌ Sélecteurs CSS trop spécifiques ou inexistants
  • ❌ Images sans attribut alt
  • ❌ Oubli du lien vers le fichier CSS

En cas de problème persistant

Si vous ne comprenez pas pourquoi un test échoue :

  1. Relisez les logs attentivement (ligne par ligne)
  2. Comparez avec l'énoncé de l'exercice
  3. Vérifiez que votre structure de dossiers est correcte
  4. Demandez de l'aide dans les commentaires de la PR
  5. Consultez la documentation MDN pour la syntaxe HTML/CSS

L'enseignant peut également ajouter des commentaires directement sur votre PR pour vous guider.

Étape 1 : faire les exercices

Rendez-vous dans les sections dédiées aux exercices dans la barre de navigation latérale pour accéder aux énoncés détaillés et aux ressources nécessaires pour chaque exercice.

Liste des exercices

Ce TP comprend 6 exercices progressifs couvrant les tableaux HTML, les formulaires, les iframes et les galeries d'images :

Date limite et modalités de rendu

Deadline

Date limite : à la fin de la séance

  • Toutes les branches doivent être poussées sur GitHub
  • Les 6 pull requests doivent être ouvertes et documentées
  • Les captures d'écran doivent être ajoutées dans les PRs

Aucun retard ne sera accepté sans justification valable.


Bon courage et bon codage ! 🚀