# Journal de Bord - SAE S2.02 ## Séance 1 **Objectif de la séance :** Mettre en place le projet . **Travail réalisé :** * Création du dépôt sur Grond et ajout des collaborateurs (Ulysse Jarnouen, Denis Monnerat). * Création du fichier "README.md". * Création du fichier "JOURNAL.md". **Difficultés rencontrées :** Nous avons des tp de retard donc on ne vas pas commecer le projet dans cette séance mais la prochaine. **Décisions prises :** Mise en place du workflow Git avec une branche dédiée par séance. **Travail de chacun :** Pour cette séance on est ensemble et on configuration le Git et dépôt. **Points à reprendre à la séance suivante :** Commencer réellement le projet **Usage de l'IA (Séance 1) :** **Prompts utilisés :** Demandes d'aide sur la configuration initiale de Git, le fonctionnement des branches, et la syntaxe pour bien rédiger les fichiers `.md` (README et JOURNAL). **Extraits de réponse jugés utiles :** Les explications claires sur le workflow Git (pourquoi on ne travaille pas sur le main, l'utilité de git checkout -b`) et le rôle d'une Pull Request. > Les symboles '#' et '##' : Les Titres > Le nombre de '#' détermine l'importance et la taille du titre. C’est l’équivalent des balises '

' et '

' en HTML. > "#" Titre Principal : Crée un titre de niveau 1 (très grand, utilisé pour le nom du projet). > "##" Sous-Titre : Crée un titre de niveau 2 (taille moyenne, parfait pour séparer tes sections comme "Membres du binôme" ou "Séance 1"). > "###" Titre de niveau 3 : Pour des sous-sections encore plus petites. > Règle d'or : Il faut toujours mettre un espace entre les '#' et le premier mot (écris '##' Séance 1 et non '##Séance 1'). > 2. Le symbole '*' : Les listes et le style > L'astérisque change de rôle selon la façon dont tu l'utilises : > Pour faire des listes à puces > Si tu places un '*' au tout début d'une ligne, suivi d'un espace, cela génère une liste propre. > "*" Ibrahim devient une puce avec "Ibrahim". > "*" Tajeddine devient une puce avec "Tajeddine". > Pour modifier le style du texte > Si tu colles les astérisques autour d'un mot ou d'une phrase (sans espace cette fois) : > '*texte*' (un seul de chaque côté) : Met le mot en italique. > texte (deux de chaque côté) : Met le mot en gras (très pratique pour faire ressortir les mots-clés). ## Séance 2 **Objectif de la séance :** Avancer sur le projet. **Travail réalisé :** * Aucun, Tajeddine et moi étions absents. **Difficultés rencontrées :** Absence du binôme. **Décisions prises :** Rattraper le travail pendant la séance 3. **Travail de chacun :** Rien pour cette séance. **Points à reprendre à la séance suivante :** Rattraper le retard et commencer à coder. **Usage de l'IA (Séance 2) :** Aucun. ## Séance 3 **Objectif de la séance :** Rattraper la séance 2, définir la répartition des rôles, réparer les problèmes de Git et avancer sur la gestion des jeux. **Répartition des tâches décidée :** * **Tajeddine :** S'occupe de l'interface utilisateur (Accueil, listes des jeux par catégories, fiche détaillée d'un jeu, et barre de recherche). * **Ibrahim :** S'occupe de l'administration des données (Formulaires d'ajout et de modification, suppression des jeux, et filtres de tri). **Travail réalisé :** * Création de la vue `formulaire_ajout.php` ( pour l'ajout et la modification). * Création du contrôleur `Jeux.php` et mise à jour de `Game_model.php` pour gérer l'insertion, la mise à jour et la suppression. * Configuration de `base_url` dans `config.php` et ajout de `url` et `form` dans `autoload.php`. **Difficultés rencontrées :** * Conflits sur Git en voulant fusionner les branches. * La base de données bloquait l'ajout en silence car on avait oublié le champ `description` qui est obligatoire (`NOT NULL` dans la table). **Travail de chacun :** * Ibrahim : Réparation du dépôt Git, configuration du projet, et code complet des fonctionnalités "Créer", "Modifier" et "Supprimer" un jeu. **Points à reprendre à la séance suivante (Séance 4) :** * Ibrahim : Faire la Mission 4 (Ajouter les filtres de tri par titre/année sur les listes). * Tajeddine : Avancer sur l'affichage visuel des listes de jeux pour qu'on puisse y intégrer les boutons de modification/suppression et les filtres. **Usage de l'IA (Séance 3) :** **Prompts utilisés :** Demande de commandes pour nettoyer Git après un conflit, aide pour comprendre une erreur de "fonction non définie", et aide pour trouver l'erreur d'insertion MariaDB. **Extraits de réponse jugés utiles :** * L'armoire Jeux est parfaitement déclarée ! Il faut maintenant y ajouter notre tiroir, c'est-à-dire la méthode ajouter(). À l'intérieur de cette méthode, nous avons besoin de deux instructions que tu as déjà utilisées tout à l'heure : L'instruction pour charger l'outil natif des URL (le helper). L'instruction pour charger et afficher la vue qui s'appellera formulaire_ajout_vue. Comment vas-tu écrire cette fonction public function ajouter() avec ces deux lignes à l'intérieur de ta classe ? * Ton début de code pour la classe Jeux est parfait. Dans CodeIgniter, la commande $this->load fonctionne comme un couteau suisse. Pour l'utiliser, on lui ajoute une flèche -> suivie de l'action que l'on veut faire. Dans notre fonction ajouter(), nous avons besoin de faire deux actions : Charger un outil (helper) pour gérer les liens web. L'outil s'appelle 'url' et la commande à utiliser est helper(). Charger l'interface visuelle (vue) qui contiendra le formulaire. Nous allons l'appeler 'formulaire_ajout_vue' et la commande est view(). En utilisant la syntaxe $this->load->..., comment écrirais-tu ces deux lignes complètes à l'intérieur de ta fonction ajouter() ?