← Le cours

Kickoff

Sept missions au jour 1. À la fin, la boutique de votre équipe existe en ligne.
0 / 7 missions accomplies

L'équipe choisit son commerce : produits, forfaits ou services. L'aperçu ci-dessous et la fiche du projet complète se synchronisent en direct : ce que vous tapez ici apparaît là-bas, et vice-versa (la page se souvient de vos réponses sur ce poste) :

Un excellent sujet naît d'une passion véritable ou de la volonté de résoudre un problème concret.

Le domaine de la boutique est choisi, réservé, et répond dans le navigateur. Notez-le ici, il vous sera rappelé au moment de la remise :

Le domaine tout neuf est bloqué sur le réseau du cégep ? C'est la règle, pas l'exception : suivez Débloquer son domaine (FortiGuard) - la demande de reclassification sur fortiguard.com/webfilter, avec le commentaire rédigé par Gemini.

Les commandes d'initialisation pour le serveur (à copier-coller en tant que root dans votre terminal) :

Les références du cours de serveur :

La configuration du Virtual Host de la boutique, en résumé :

# Creer le repertoire de la boutique : prenom@vps:~$ sudo mkdir -p /var/www/votre-domaine prenom@vps:~$ sudo chown -R www-data:www-data /var/www/votre-domaine # Ecrire le vhost : prenom@vps:~$ cd /etc/apache2/sites-available prenom@vps:...$ sudo jed votre-domaine.conf
<VirtualHost *:80> ServerAdmin admin@votre-domaine ServerName votre-domaine DocumentRoot /var/www/votre-domaine/ ErrorLog ${APACHE_LOG_DIR}/votre-domaine.error.log CustomLog ${APACHE_LOG_DIR}/votre-domaine.access.log combined </VirtualHost>
# Activer le vhost et recharger Apache : prenom@vps:...$ sudo a2ensite votre-domaine.conf prenom@vps:...$ sudo service apache2 reload
Écrivez aussi l'adresse au tableau de l'équipe : à partir de maintenant, c'est le nom de votre commerce.

Chaque membre de l'équipe a son accès webmestre et peut se connecter à l'espace de la boutique. Le rappel des commandes, comme à la semaine 0 du cours de serveur :

# Se connecter au serveur de la boutique : vous@portable:~$ ssh prenom@adresse.de.votre.boutique # Creer le compte d'un coequipier (repeter pour chacun) : prenom@vps:~$ sudo adduser coequipier prenom@vps:~$ sudo usermod -aG sudo coequipier # Creer le compte du prof, avec le droit d'ECRIRE dans le dossier : prenom@vps:~$ sudo adduser nadine prenom@vps:~$ sudo usermod -aG sudo nadine prenom@vps:~$ sudo usermod -aG www-data nadine prenom@vps:~$ sudo chmod -R g+w /var/www/votre-domaine
Le compte du prof fait partie de l'équipe : il doit pouvoir écrire dans le dossier, pas seulement le lire. Testez-le avant de cocher la case.
Remettez ensuite le compte du prof dans le salon GitHub du cours : URL, IP, usager et mot de passe.
Travaillez dans un projet IA dédié : Forger son projet IA personnel pour le créer, et Paramétrer ses projets IA selon votre compagnie IA.

L'IA génère les pages de départ de la boutique, et elles sont publiées sur le VPS :

INTERDICTION STRICTE : Vous ne devez créer AUCUN champ de carte de crédit dans votre code HTML, et vous ne devez avoir AUCUNE colonne pour les cartes de crédit dans votre base de données. La collecte et la sécurité de ces informations bancaires sont strictement déléguées à PayPal ou Stripe.

La méthode à suivre : Générer les pages HTML avec l'IA.

Les trois pages sont les faces de la MÊME boutique. Coordonnez-vous avant de générer : les champs affichés sur la page produit (Vitrine) doivent correspondre très exactement aux champs du formulaire d'ajout (Catalogue). Vous partagerez le même modèle de données.
Chaque étudiant génère SON propre HTML et partage le lien de sa discussion IA : trois regards valent mieux qu'un, et l'équipe choisira le meilleur point de départ.

Les deux prompts de la méthode, prêts à copier. ATTENTION : ces prompts utilisent l'exemple précis des cupcakes pour vous montrer le niveau de détail attendu. Vous DEVEZ les adapter à VOTRE projet, VOS champs et VOTRE charte.

Le prompt de la première page (l'accueil de la boutique publique) :

Génère la page d'accueil de ma boutique de cupcakes en UN SEUL
fichier HTML avec le CSS embarqué dans la page. Pas de framework,
pas de JavaScript pour l'instant.

La page présente : une section vedette avec le cupcake du moment,
puis la vitrine principale organisée en grille de cartes (image,
nom, prix sur chaque carte). La vitrine est séparée en deux
catégories : « avec gluten » et « sans gluten ». L'entête de la
page contient le nom de la boutique et le menu (Accueil, Cupcakes,
Contact), et un pied de page complète le tout.

Style : [ex: minimaliste, tons pastels roses et beiges, typographie
arrondie et chaleureuse].

Textes réalistes : tous les textes parlent de vrais cupcakes
(saveurs, prix, descriptions appétissantes), en français -
AUCUN lorem ipsum.

Spécification du code, sémantique et EN FRANÇAIS : des id pour les
éléments uniques (#entete, #vitrine-cupcakes), des classes
systématiques pour ce qui se répète (.cupcake > .cupcake-titre,
.cupcake-prix), balises header, nav, main, section, footer.

Le prompt de la page détail du produit :

J'ai téléversé ma page d'accueil terminée (index.html).

Génère maintenant la page de détail d'un cupcake : une grande
photo, le nom, la catégorie (avec ou sans gluten), la description
gourmande et le prix, avec un bouton "Acheter" bien visible. Une
seule page servira tous les cupcakes.

Le bouton "Acheter" lance l'achat en FLUX DIRECT : il mène
directement au paiement de CE cupcake, sans panier.

Cette page doit être PARFAITEMENT cohérente avec l'accueil :
exactement le même entête, le même menu, le même pied de page,
les mêmes classes et palette. Un lien "Retour à la vitrine"
permet de revenir.

Textes réalistes : un vrai cupcake, en français - AUCUN lorem
ipsum.

Spécification du code, sémantique et EN FRANÇAIS : des id pour
les éléments uniques (#detail-cupcake, #photo-cupcake,
#prix-cupcake), les classes pour ce qui se répète.
Dans cette première itération, il n'y a pas de système de panier complexe à coder. L'achat se fait en FLUX DIRECT : un paiement par produit ou service, sans panier. La mécanique d'un panier complet fera l'objet d'une réflexion future.

Le prompt des pages suivantes, à répéter pour chaque page (le panneau admin de l'inventaire, le paiement en ligne...) :

J'ai téléversé ma page d'accueil terminée (index.html).

Génère maintenant les DEUX pages du panneau d'administration.

1. La page "Liste de l'inventaire" : elle présente la liste des
cupcakes avec un bouton "Ajouter" en haut. Pour chaque ligne, on
retrouve un bouton "Éditer" et un bouton "Supprimer" utilisant des
icônes claires. Une alternance de couleurs ou une démarcation
franche permet de bien distinguer chaque rangée.

2. La page "Formulaire" (qui sert pour Ajouter ET Éditer) : elle
comporte les champs Nom, Description, Prix, Image, et un menu
déroulant (Avec / Sans gluten). Ces champs sont logiquement
regroupés dans deux fieldsets.

Ces pages doivent être PARFAITEMENT cohérentes avec l'accueil :
exactement le même entête, le même menu (avec l'élément actif
indiqué), le même pied de page, les mêmes classes et palette.

Textes réalistes : les libellés, le tableau et les exemples
parlent de vrais cupcakes, en français - AUCUN lorem ipsum.

Spécification du code, sémantique et EN FRANÇAIS : des id pour
les éléments uniques (#liste-inventaire, #formulaire-cupcake),
classes systématiques pour ce qui se répète (.rangee-cupcake).
Téléversez toujours le fichier HTML de la page de base avec votre prompt.

Coéquipier 1 : ouvre TA propre discussion IA dans le projet d'équipe, génère ta version des trois pages, publie-la sur le VPS dans ton sous-répertoire (par exemple maquette/prenom/), puis colle ici tes deux liens.

Coéquipier 2 : ouvre TA propre discussion IA dans le projet d'équipe, génère ta version des trois pages, publie-la sur le VPS dans ton sous-répertoire (par exemple maquette/prenom/), puis colle ici tes deux liens.

Coéquipier 3 : ouvre TA propre discussion IA dans le projet d'équipe, génère ta version des trois pages, publie-la sur le VPS dans ton sous-répertoire (par exemple maquette/prenom/), puis colle ici tes deux liens.

Pour guider vos choix de design, consultez le hub Expérience utilisateur.

Le dossier fonctionnel de la boutique est généré et accompagne le site.

Amorcez votre dossier fonctionnel avec ce prompt, à copier directement dans votre projet IA :

Le prompt rapide du dossier fonctionnel :

À partir de la description du projet et du template du devis fonctionnel
(dans les documents du projet), rédige le devis fonctionnel de
l'itération 1 de notre boutique.

Respecte exactement les sections du template : MAQUETTES des fenêtres
(titre, description et auteur pressenti pour chaque fenêtre),
PROTOTYPES HTML et CSS (la liste des fenêtres à prototyper), et
SCÉNARIOS (une fiche de cas d'utilisation OU un storyboard par
processus important - propose le meilleur choix pour chacun).

Avant de commencer, pose-nous trois questions si des informations
manquent dans la description.
Chaque coéquipier produit, à partir du template, UNE maquette et UN cas d'utilisation ou scénario storyboard : dupliquez la diapositive voulue, remplacez l'exemple par votre contenu. Les pages originales du template (les diapositives d'exemple et d'instructions) ne restent JAMAIS dans le devis remis. Et dans le tableau de la fiche de cas d'utilisation, on raconte le dialogue acteur-site (entrée, sortie, entrée, sortie), pas une liste de pages : les pages appartiennent aux MAQUETTES.

Pour éviter les conflits de versions en travaillant tous dans le même fichier, chaque coéquipier travaille dans son propre document pour réaliser son scénario et sa maquette, puis exporte son travail en fichier PDF séparé. Le scénario s'illustre par une fiche use case (format entrée-sortie) OU un storyboard, et doit couvrir le moment critique de votre propre volet (consulter, gérer ou payer).

Une fois vos PDF individuels prêts, assemblez-les en un seul document d'équipe final grâce à la ligne de commande Linux :

# Étape 1 : Assurez-vous que l'outil est installé
sudo apt install poppler-utils

# Étape 2 : Fusionnez les PDF (les fichiers sources d'abord, le fichier final à la fin)
pdfunite garde.pdf vitrine.pdf catalogue.pdf caisse.pdf dossier-equipe.pdf

Coéquipier 1 : choisis ton format, documente UN scénario critique du parcours magasiner-acheter-payer, dessine la maquette de la page concernée, puis ajoute les deux au dossier fonctionnel de l'équipe. Note ici ce que tu as couvert.

Coéquipier 2 : choisis ton format, documente UN scénario critique du parcours magasiner-acheter-payer, dessine la maquette de la page concernée, puis ajoute les deux au dossier fonctionnel de l'équipe. Note ici ce que tu as couvert.

Coéquipier 3 : choisis ton format, documente UN scénario critique du parcours magasiner-acheter-payer, dessine la maquette de la page concernée, puis ajoute les deux au dossier fonctionnel de l'équipe. Note ici ce que tu as couvert.

Le dépôt git de l'équipe est créé, et chaque membre a cloné le projet et poussé au moins un commit.

Le dépôt se crée directement dans l'organisation du cégep : github.com/organizations/cegepmatane/repositories/new, sous le nom projet-web-2026-[nom-projet].

La planification de l'itération avec le kanban : Sprint planning.

Le kanban se crée dans l'organisation du cégep : github.com/orgs/cegepmatane/projects, cliquer sur New project, puis choisir le layout Kanban en haut à droite.

Le dialogue Create project de l'organisation, avec le gabarit Kanban encadré en haut à droite des modèles proposés

Le tableau kanban de l'équipe est initialisé avec ses tickets de départ. Chaque étudiant ajoute exactement UN ticket (celui correspondant à son propre sujet). Voici trois gabarits prêts à copier-coller, un par volet de l'itération 1 :

INTERDICTION STRICTE : Un étudiant ne doit en aucun cas créer les tickets des autres personnes. Chaque membre de l'équipe doit obligatoirement manipuler le Kanban et créer son propre ticket.

La description de votre ticket doit clarifier le scénario et faire référence à vos maquettes. Ces liens s'écrivent directement dans le texte avec la syntaxe Markdown (exemple : "[voir la maquette](url)"). De plus, vous ajouterez vos liens de progression (commits) dans les commentaires du ticket.

Titre : [VITRINE] Consulter le catalogue des cupcakes

DEFINITION OF DONE (DoD) :
Le visiteur consulte [la liste des cupcakes classés par catégories
(avec et sans gluten)](https://cupcakes.projet.autos/),
puis clique sur un cupcake pour afficher la page détail qui présente
une grande image du cupcake, son prix et sa description détaillée.

TÂCHES :
- [ ] La page liste affiche les produits depuis la base de données
- [ ] Les catégories organisent la navigation
- [ ] Chaque produit a sa page de détail

TRAÇABILITÉ :
- Ajoutez vos liens de commits, ainsi que vos recherches, trouvailles et réflexions dans les commentaires de ce ticket.
Titre : [CATALOGUE] Gérer l'inventaire des cupcakes

DEFINITION OF DONE (DoD) :
Le marchand accède à [l'URL du panneau
d'administration](https://cupcakes.projet.autos/admin/) (mot de passe prof:cupcakes) pour
ajouter, modifier ou retirer des cupcakes de l'inventaire. Il doit
notamment pouvoir classer les cupcakes entre les catégories
"avec gluten" et "sans gluten".

TÂCHES :
- [ ] Le panneau admin liste l'inventaire depuis la base de données
- [ ] L'accès au répertoire est verrouillé par un .htaccess
- [ ] Ajouter, modifier et retirer fonctionnent
- [ ] Chaque produit peut recevoir son image

TRAÇABILITÉ :
- Ajoutez vos liens de commits, ainsi que vos recherches, trouvailles et réflexions dans les commentaires de ce ticket.
Titre : [CAISSE] Commander et se faire livrer les cupcakes

DEFINITION OF DONE (DoD) :
La page détail du cupcake présente un bouton Acheter. En cliquant
sur le bouton, le client procède au [paiement de ses
cupcakes](https://cupcakes.projet.autos/paiement.php?id=9) à travers un
parcours par étapes (wizard). Il doit d'abord indiquer son adresse
de livraison et ses préférences de réception, avant d'aboutir à la
transaction finale.

TÂCHES :
- [ ] Le tunnel d'achat (wizard) collecte l'adresse et les préférences
- [ ] Le paiement est complété via formulaire classique (ex: PayPal standard)
- [ ] l'Enregistrement de la transaction dans la base de données (IPN)
- [ ] Le panneau admin affiche la [liste des achats](https://cupcakes.projet.autos/admin/achats.php) réalisés par les clients
- [ ] Une confirmation d'achat est affichée au client

TRAÇABILITÉ :
- Ajoutez vos liens de commits, ainsi que vos recherches, trouvailles et réflexions dans les commentaires de ce ticket.
Un ticket par case restante du kickoff, puis un ticket par fonctionnalité du dossier fonctionnel : votre itération 1 est déjà planifiée.

La remise du jour 1

Quand les sept missions sont accomplies, l'équipe remet ses adresses (rappel du domaine : à inscrire à la mission 2) :

Vos réponses restent aussi mémorisées dans ce navigateur.

Bravo, équipe fondée ! Sujet choisi, domaine en ligne, boutique publiée, dossier fonctionnel livré, git et kanban en marche : l'itération 1 peut commencer.