Chaque technologie a un rôle simple : structure, style, interaction, logique, mémoire ou données.
Atelier de construction
Bienvenue dans l’atelier TaskFlow
Une vraie WebApp relie une interface, une logique serveur et une mémoire organisée.
Ce module transforme les notions du Module 1 en application concrète. Il ne s’agit pas de mémoriser du code, mais de comprendre les pièces, de guider Codex et de tester chaque résultat.
Mini-projet : Gestionnaire de tâches intelligent
TaskFlow permettra d’ajouter, classer, filtrer et conserver des tâches dans MySQL.
HTML CSS JavaScript PHP MySQL
Notre fil rouge
TaskFlow
TaskFlow est une WebApp fictive de gestion de tâches. Pendant ce module, elle nous aidera à comprendre comment créer, afficher et enregistrer une tâche, utiliser une base de données, manipuler des formulaires, découvrir les API et les controllers, puis guider Codex avec précision.
CréerAfficherEnregistrerFormulairesBase de donnéesAPIControllersCodex
Vous n’avez pas besoin de mémoriser le code. Vous devez comprendre comment les pièces communiquent entre elles.
Objectif du module
Passer de l’idée à une WebApp complète
120 min
Comprendre
Lire une architecture, une réponse Codex et un échange API.
Construire
Créer un formulaire, une base MySQL et des fichiers organisés.
Tester
Vérifier les données, comprendre les erreurs et itérer avec Codex.
À la fin
Vous saurez construire TaskFlow avec HTML, CSS, JavaScript, PHP, MySQL et une API simple.
Animation contrôlée
Suivez le trajet de “Préparer le cours”
Étape 1/6
Avancez à votre rythme avec les boutons.
InterfaceSaisit la tâche
FormulairePrépare les données
ControllerValide la demande
MySQLEnregistre
JSONRépond
InterfaceAffiche la tâche
Préparer le cours
La tâche est saisie dans TaskFlow.
Interface
La tâche est saisie dans TaskFlow
L’utilisatrice écrit le titre avant de l’envoyer.
Préparer le cours
Préparer le coursVisible dans TaskFlow
Laboratoire HTML/CSS
Modifiez le code et observez immédiatement le résultat
Pourquoi apprendre ces mots ?
Vous n’avez pas besoin de devenir développeuse. Reconnaître un input, une table, un bouton ou un formulaire permet de mieux guider Codex, repérer un bug et demander une correction précise.
Mieux expliquer votre besoin
Comprendre ce que Codex modifie
Identifier plus vite l’élément qui pose problème
TaskFlow · Aperçu
TaskFlow
Organisez votre journée.
Nouvelle tâche
Préparer le cours
Tâche
Priorité
Préparer le cours
Haute
index.phpHTML valide
<div>
Un conteneur qui regroupe plusieurs éléments.
Exemple Codex : “Place le formulaire dans une div.”
Composants en action
Cliquez sur un terme, puis manipulez son vrai exemple
19 termes UI
TaskFlowAtelier UI
Bonjour Julie
Voici les informations importantes de votre journée.
12Projets
83Tâches
5En retard
78Terminées
Un dashboard résume les informations importantes au même endroit.
Profil : Julie organise ses projets dans TaskFlow.
UrgentNouveauTerminé
Préparer le coursHaute · En coursCorriger le siteMoyenne · À faireEnvoyer le planningBasse · Terminé
Cette zone peut contenir une description, une date limite ou des commentaires.
Tâche
Priorité
État
Préparer le cours
Haute
En cours
Corriger le site
Moyenne
À faire
Envoyer le planning
Basse
Terminé
Liste scrollable
Cette zone peut défiler
Préparer le coursTester TaskFlowRépondre aux messagesCorriger le siteExporter les tâchesEnvoyer le planningPréparer la réunionArchiver le projetRelire le formulaireVérifier la baseClasser les prioritésPréparer la démo
Modale
Modifier la tâche
Une tooltip apporte une aide courte sans quitter la page.
Terme sélectionné
Card / tuile
Un bloc qui regroupe une information ou une action.
Phrase Codex“Ajoute une card pour chaque tâche.”
Conseil debugSi une tuile ne s’affiche pas, vérifiez si les données nécessaires sont bien disponibles.
Démonstration HTTP
Deux manières d’envoyer un formulaire
GET
Demander ou filtrer
Les données apparaissent dans l’URL. GET convient aux recherches, aux filtres et aux pages avec paramètres.
Avantage : le lien peut être partagé.
Limite : évitez les données sensibles ou trop longues.
POST
Envoyer ou modifier
Les données voyagent dans le corps de la requête. POST convient aux formulaires, connexions, créations et modifications.
Avantage : adapté aux données de formulaire.
Limite : il faut inspecter la requête pour voir son contenu.
GET demande. POST envoie.
task.php
Navigateur
GET
Paramètres visibles dans l’URL
PHP
URLtask.php?title=Acheter%20du%20caf%C3%A9Corps de la requêtevidePHP reçoit
$_GET['title'] = 'Acheter du café';
GET sert surtout à demander, filtrer ou lire. POST sert à envoyer, créer ou modifier.
Mini phpMyAdmin pédagogique
Naviguer dans une base contenant plusieurs tables
tasks · 3 lignes
Table active
tasks
3 lignes
SELECT id, title, status, priority FROM tasks ORDER BY id;
Base taskflowTables tasks + remindersColonne un type d’informationLigne un enregistrementClé primaire id
Dans phpMyAdmin, l’onglet SQL est l’endroit où vous pouvez coller une requête préparée par Codex.
Relations sans mathématiques
Relier les informations plutôt que les répéter
Clés étrangères
1 → N
← N
Un projet possède plusieurs tâches
La colonne project_id permet à chaque tâche de retrouver son projet.
tasks.project_id → projects.id
Éditeur vivant
Le JSON devient une carte TaskFlow
JSON valide
JSON : des données structurées et transportables
JSON signifie JavaScript Object Notation. C’est un format texte léger, lisible par les humains et facile à analyser par les machines.
Malgré son nom, JSON ne dépend pas de JavaScript : PHP, Python, Java, C# et beaucoup d’autres langages peuvent l’utiliser. Dans une WebApp, il sert surtout aux échanges avec une API et aux fichiers de configuration.
1. Objet { }
Un objet contient des paires clé / valeur.
{
"name": "Julie"
}
2. Tableau [ ]
Un tableau contient une liste de valeurs ou d’objets.
Une virgule oubliée ou mal placée peut rendre tout le JSON invalide.
Modifiez une valeur pour voir le résultat.
Priorité haute
Préparer le cours
Statut : à faire
SIRIUSurgent
Clé "title"Valeur "Préparer le cours"Objet { ... }Tableau [ ... ]Attention aux virgules
Chef de circulation
Le controller organise l’action côté serveur
Choisissez une action
Le chef de circulation côté serveur
Un controller reçoit une demande, vérifie ce qu’il faut faire, puis oriente l’action vers le bon traitement. Il ne sert pas à afficher joliment la page : il organise la logique côté serveur.
Voilà pourquoi Codex crée souvent un fichier comme task_controller.php : il centralise les décisions au lieu de mélanger la validation, MySQL et l’affichage.
task_controller.phpChef d’orchestre
MySQL
API
JSON
Réponse
Je reçois l’action et je décide où l’envoyer.
Le controller attend une action
Choisissez Ajouter, Supprimer, Modifier ou Filtrer.
// task_controller.php organise le trafic
Le controller ne stocke rien. Il valide, choisit et organise le trafic.
Guichet pédagogique
Une API répond à une demande précise
Prête
Une passerelle entre deux systèmes
API signifie Application Programming Interface. Elle permet à une application de demander une information ou une action sans connaître tout le fonctionnement interne du système appelé.
Carte et itinéraire Paiement Notification SMS
Dans TaskFlow, JavaScript peut appeler POST /api/save_task.php, puis recevoir une réponse JSON claire.
POST/api/save_task.php
Requête envoyéePOST /api/save_task.php
{
"title": "Préparer le cours",
"priority": "haute"
}
{
"success": false,
"error": "Le titre de la tâche est obligatoire.",
"field": "title"
}
Résultat du test
—
Envoyez la requête avec ou sans titre.
{ "waiting": true }
201 confirme la création. 422 signale une donnée invalide. Une API peut refuser proprement une demande et indiquer exactement quel champ doit être corrigé.
Choisir le bon niveau de stockage
Toutes les applications n’ont pas les mêmes besoins
Confidentialité
localStorage
Simple pour un outil individuel. Les données restent dans ce navigateur.
Limite : elles ne sont pas partagées automatiquement entre appareils.
Un navigateur ne peut pas écrire librement dans un fichier ou un dossier réseau. Cette restriction protège l’ordinateur. Une solution interne doit être validée par l’institution.
Code déjà prêt
Une librairie peut accélérer le travail
Décision humaine
Une librairie externe est un morceau de code déjà prêt. Elle peut faire gagner du temps pour un besoin précis, sans remplacer la réflexion sur l’architecture et la confidentialité.
Comparaison simulée
Chart.js
Transforme des chiffres bruts en graphique lisible.
Sans la librairie
Janvier : 12
Février : 18
Mars : 9
Avec la librairie
Niveau de confiance : plutôt sûre
Si elle vient du site officiel, de npm ou d’un CDN fiable, avec une version précise.
Une librairie n’est pas dangereuse par nature
Le risque dépend surtout de sa source, de sa maintenance, de sa licence, de sa version, du CDN utilisé, des données manipulées et de sa nécessité réelle.
Codex peut proposer une librairie. L’humain doit valider si elle est utile, fiable et autorisée.
Mini atelier
Repérer les actions importantes dans une réponse Codex
0/3 réponses
Réponse CodexTaskFlow
Fichiers modifiés
index.php
api/save_task.php
assets/js/taskflow.js
SQL à exécuter
ALTER TABLE tasks
ADD due_date DATE NULL;
Tests
Ajouter une tâche, vérifier la réponse JSON puis rafraîchir la page.
Quel élément est un fichier à envoyer sur le serveur ?
Choisissez une réponse.
Quel fichier est une API ?
Choisissez une réponse.
Quel SQL doit être exécuté dans phpMyAdmin ?
Choisissez une réponse.
Une réponse Codex devient simple quand on sépare : fichiers, SQL, upload et tests.
Recréer Lyria dans un projet ChatGPT
Clarifier l’idée avant de parler à Codex
Prompt prêt à copier
Avant de parler à Codex, ChatGPT peut aider à transformer une demande floue en prompt propre, structuré et exécutable. Ce copilote ne construit pas l’application à votre place : il vous aide à mieux préparer la demande.
ClarifierIdentifier le besoin réel et les zones floues.StructurerDistinguer interface, PHP, MySQL, API et controller.Préparer les testsTransformer l’idée en étapes vérifiables.
Instructions du projet ChatGPT
Prompt complet du copilote
Tu es mon copilote WebApp, stratégique, pédagogique et technique.
Ton rôle :
M’aider à transformer mes idées en prompts Codex clairs, structurés et efficaces.
Contexte :
Je crée des WebApps avec Codex.
Je travaille principalement avec :
- PHP 8+
- MySQL / MariaDB
- phpMyAdmin
- HTML
- CSS
- JavaScript vanilla
- JSON
- API PHP
- controllers
- MAMP en local
- FileZilla / FTP pour la mise en ligne
- hébergement Infomaniak
Ton comportement :
- Tu m’aides à clarifier mon besoin.
- Tu me dis si mon idée est floue, trop large ou mal cadrée.
- Tu proposes une architecture simple.
- Tu distingues ce qui relève du HTML, du CSS, du JavaScript, du PHP, de MySQL, des API ou des controllers.
- Tu m’aides à formuler un prompt Codex complet.
- Tu indiques toujours le niveau Codex recommandé : Moyen, Élevé ou Très approfondi.
Règles importantes :
- Si une base de données est concernée, demande à Codex de fournir le SQL à exécuter dans phpMyAdmin.
- Si des fichiers doivent être envoyés sur le serveur, demande à Codex de lister clairement les fichiers à uploader.
- Si une fonctionnalité touche la sécurité, les données sensibles, les accès ou les mots de passe, signale les risques.
- Ne me laisse pas coller de données sensibles dans une IA.
- Préfère les solutions simples, maintenables et compréhensibles.
- Ne propose pas de framework lourd sauf demande explicite.
- Pour les débutants, explique les concepts simplement.
Quand je te donne une idée, réponds toujours avec :
1. Ce que j’ai compris
2. Ce qui est flou
3. Les questions utiles si nécessaire
4. Le niveau Codex recommandé
5. Le prompt Codex prêt à copier
6. Les points à tester après exécution
Style :
Sois clair, direct, bienveillant, précis et orienté action.
Ne copiez jamais de données sensibles, de mots de passe, de dossiers patients ou d’informations internes dans une IA sans autorisation.
De l’idée à la maintenance
Cycle de vie d’un projet WebApp
Un projet WebApp avec Codex avance par itérations. On teste, on corrige si besoin, on publie et on améliore.
Flowchart interactif
OuiNonOuiNon
Faites glisser le diagramme pour suivre tout le parcours.
Étape sélectionnée
Idée
Tout projet commence par un besoin concret à transformer en solution.
Phrase utile à dire à Codex“Je veux créer une WebApp qui répond à ce besoin : …”
ObjectifCréer l’arborescence de base.Niveau CodexÉlevé
Prompt Codex
Crée une WebApp PHP appelée TaskFlow.
Stack :
PHP 8+, HTML, CSS, JavaScript vanilla.
Compatible MAMP.
Architecture souhaitée :
- index.php
- assets/css/app.css
- assets/js/app.js
- includes/config.php
- includes/db.php
- api/
- controllers/
- sql/
Pour l’instant, pas de base de données connectée.
Crée une page d’accueil moderne avec le titre TaskFlow et un formulaire visuel de tâche.
Donne-moi l’arborescence, le contenu des fichiers et les étapes pour tester dans MAMP.
Test après cette étapeOuvrir http://localhost:8888/taskflow/
ObjectifCréer les tables tasks et categories.Niveau CodexÉlevé
Prompt Codex
Ajoute la base de données MySQL pour TaskFlow.
Crée un fichier sql/install.sql avec :
- table categories
- table tasks
- relation category_id
- champs : id, title, description, status, priority, due_date, created_at, updated_at
Donne-moi le SQL complet à coller dans phpMyAdmin.
Explique aussi dans quel ordre tester.
Test après cette étapeColler le SQL dans phpMyAdmin et vérifier que les tables existent.
ObjectifCréer config.php et db.php.Niveau CodexMoyen
Prompt Codex
Connecte TaskFlow à MySQL avec PDO.
Utilise includes/config.php pour les constantes DB_HOST, DB_NAME, DB_USER, DB_PASS.
Utilise includes/db.php pour créer une connexion PDO sécurisée.
Ne modifie pas l’interface.
Ajoute un petit test temporaire de connexion puis indique comment le retirer.
Test après cette étapeVérifier que la page ne plante pas.
Ajoute la fonctionnalité d’ajout de tâche.
Le formulaire doit envoyer title, description, priority, category_id et due_date.
Crée api/save_task.php.
Utilise POST.
Valide les données :
- title obligatoire
- priority parmi low, medium, high
- due_date optionnelle
Utilise une requête préparée PDO.
Retourne du JSON : success true ou success false.
Ne recharge pas toute la page si possible.
Explique les fichiers modifiés et les tests à faire.
Test après cette étapeAjouter une tâche et vérifier dans phpMyAdmin.
ObjectifLire MySQL et afficher les tâches.Niveau CodexÉlevé
Prompt Codex
Ajoute l’affichage des tâches depuis MySQL.
Crée api/get_tasks.php si nécessaire.
Affiche les tâches dans des cartes TaskFlow.
Chaque carte doit montrer :
- titre
- description
- priorité
- catégorie
- date limite
- statut
Utilise JSON côté API.
Explique les fichiers modifiés.
Test après cette étapeRafraîchir la page et vérifier que les tâches restent affichées.
ObjectifChanger À faire / En cours / Terminé.Niveau CodexÉlevé
Prompt Codex
Ajoute la modification du statut d’une tâche.
Crée ou modifie une API update_task_status.php.
Le statut doit accepter uniquement : todo, progress, done.
La carte doit se mettre à jour visuellement.
Utilise POST et des requêtes préparées.
Explique les fichiers modifiés et les tests.
Test après cette étapeChanger le statut et vérifier en base.
ObjectifAfficher les catégories comme colonnes ou badges.Niveau CodexÉlevé
Prompt Codex
Ajoute des catégories visuelles dans TaskFlow.
Les catégories doivent venir de MySQL.
Affiche les tâches par catégorie ou avec des badges visibles.
Ajoute un filtre par catégorie.
Ne casse pas l’ajout de tâche.
Explique les fichiers modifiés.
Test après cette étapeCréer plusieurs tâches dans différentes catégories et filtrer.
ObjectifDéplacer une carte d’une catégorie ou d’un statut à l’autre.Niveau CodexTrès approfondi
Prompt Codex
Ajoute le drag and drop des cartes TaskFlow.
Objectif :
Pouvoir déplacer une tâche d’une colonne à une autre.
Quand une carte est déplacée, la base MySQL doit être mise à jour via une API.
Contraintes :
- JavaScript vanilla si possible
- pas de librairie externe sauf si tu expliques clairement pourquoi elle est nécessaire
- conserver l’interface existante
- ne pas casser les filtres
- retour visuel en cas de succès ou d’erreur
Donne :
1. les fichiers modifiés
2. le code complet
3. le SQL si nécessaire
4. les tests à faire
Test après cette étapeDéplacer une carte et rafraîchir pour vérifier que la position ou le statut est conservé.
ObjectifApprendre à lire une erreur.Niveau CodexMoyen
Prompt Codex
Crée volontairement un petit bug pédagogique dans TaskFlow, puis explique comment le trouver avec la console navigateur ou l’onglet Network.
Le bug doit être simple et réversible :
- mauvais chemin JS
ou
- endpoint API incorrect
ou
- champ JSON mal nommé
Explique :
1. le symptôme
2. où regarder
3. comment corriger
Test après cette étapeLire la console et corriger le problème.
ObjectifSavoir terminer une itération.Niveau CodexMoyen
Prompt Codex
Analyse l’état actuel de TaskFlow.
Donne-moi :
1. les fonctionnalités présentes
2. les fichiers importants
3. les risques
4. les bugs possibles
5. les prochaines améliorations recommandées
6. les fichiers à sauvegarder
7. les fichiers à uploader si je devais publier
Test après cette étapeComparer le bilan avec le projet réel.
Mission accomplie
TaskFlow relie maintenant une interface, PHP, une API et MySQL.
Après chaque étape, on teste avant de continuer. Si on empile 5 demandes sans tester, on fabrique une lasagne de bugs.
Continuer sans repartir de zéro
Faire évoluer TaskFlow
Défi personnel
Catégories
Afficher les catégories avec une identité visuelle claire.
Drag and drop
Déplacer une carte d’une catégorie à une autre.
Modale d’édition
Modifier une tâche sans quitter la page.
Filtre par catégorie
Réduire la liste aux tâches recherchées.
Compteurs
Afficher le nombre de tâches par catégorie.
État urgent
Rendre les priorités critiques immédiatement visibles.
Confirmation
Demander confirmation avant toute suppression.
Design des cartes
Améliorer la hiérarchie et la lisibilité.
Suivi des fichiers
Demander la liste des fichiers modifiés après chaque itération.
Travaillez une amélioration à la fois : prompt précis, fichiers modifiés, test local, puis itération suivante. Vous réutiliserez ainsi HTML, CSS, JavaScript, PHP, MySQL, controllers, API et vocabulaire UI.