TP 1
Avec une bonne compréhension des différentes techniques de prompting, on va pouvoir commencer à générer du code de qualité.
Durée : 15 minutes
Contexte
Un client souhaite extraire des données d'un fichier Excel pour les afficher sur une page web.
Pour le moment, il n'a besoin que de ça : une seule feuille Excel et une transposition littérale en page web.
Contraintes pédagogiques
Vous êtes libres d'utiliser l'outil de votre choix.
Le code final doit être déployé soit avec le fichier Excel inclus dans le projet ou bien en acceptant un upload de fichier Excel dans la page web.(./document.xslx
) soit en acceptant un upload de fichier Excel dans la page web.
Un fichier Excel d'exemple est disponible ici.
Objectifs
Construire une application frontend monolithique Node.js/Express avec SheetJS pour parser des fichiers Excel et afficher les données dans une page web.
Contraintes techniques
- Utiliser Docker pour l'environnement
- Le frontend doit être servi via
public/index.html
- Express avec NodeJS comme framework web
- SheetJS pour le parsing Excel côté client
Step 1
Demander au LLM comment initialiser un projet Node.js via Docker et un volume Docker pour éviter d'installer Node sur le poste.
Le code du serveur Express doit être dans un dossier TP1, un fichier app.js
et répondre "Hello Docker" sur l'URL /
.
Demander au LLM de n'afficher que les informations nécessaires.
Indice
Comment faire initialiser un projet Node.js via une image NodeJS ?
On veut initialiser via une ligne de commande Docker une application NodeJS avec le framework Express.
La commande docker doit créer les fichiers dans un dossier TP1 en local et utiliser un volume.
L'application Express doit être dans un fichier app.js
et répondre "Hello Docker" sur l'URL /
.
Fournis uniquement les lignes de commande permettant d'arriver à ce résultat de manière sécurisée et complète.
Step 2
Demander au LLM le code du serveur Express pour servir un fichier public/index.html
.
Construire un prompt pour le projet qui inclut
- les contraintes du client
- les langages que vous souhaitez utiliser
- les fonctionnalités attendues
Il aura pour but de développer le index.html
avec :
- Zone de dépôt de fichiers Excel
- Code utilisant SheetJS pour parser → générer tableau HTML
Demander au LLM de n'afficher que les informations nécessaires.
Indice
Le client veut une page web qui permette de choisir un fichier excel et de l'afficher dans un tableau HTML.
La page doit utiliser le framework SheetJS pour la conversion de fichier Excel.
Le frontend doit être servi par une application Express via une page statique public/index.html
.
Fournis uniquement le contenu du fichier HTML et de l'application Express.
Step 3
Demander au LLM d'écrire la recette Docker pour notre application.
On veut avoir le Dockerfile pour construire une image avec les contraintes :
- Image de base
node:latest
- Installation des dépendances
- Exposition du port 3000
- Lancement de
Demander au LLM comment construire l'image puis la lancer.
Indice
Écris la recette Docker pour notre application Node.js.
- Utilise l'image de base
node:latest
. - Installe les dépendances.
- Expose le port 3000.
- Lance l'application via le fichier
app.js
.
Fournis aussi les commandes pour construire l'image et la lancer.
Fournis uniquement les informations utiles.
Step 4
Vérifier que l'application tourne correctement en la lançant via Docker sur le port 3000.
Visiter la page web.
Solution
Cliquer ici
Synthèse
Qu'est-ce qui marche ?
Quels sont les problèmes rencontrés ?