# Partie 6 — Journal de bord Ce journal est reconstitué à partir de l'historique Git réel du dépôt GestHub (`git log --all`, 41 commits entre le 1er avril 2025 et le 16 décembre 2025). Il ne s'agit pas d'un journal tenu heure par heure pendant le développement, mais d'une reconstitution honnête après-coup : chaque entrée correspond à une ou plusieurs sessions de travail identifiables par leurs commits (même date), avec ce qui a été accompli, les difficultés rencontrées et, quand elles sont identifiables depuis les messages de commit et le code, les solutions appliquées. L'historique fait apparaître **11 sessions de travail identifiables** sur 8 mois et demi (avril → décembre 2025), avec un pic d'activité mi-mai (mise en place du SSO et de Mattermost) et une session de refonte en décembre 2025 (passage à l'architecture "widgets" / Blocks). Le dossier RNCP narratif évoque "12 ydays" : ce chiffre inclut vraisemblablement des séances de travail sans commit (recherche, tests locaux non versionnés) non visibles dans Git — l'écart entre 11 et 12 est mineur et n'affecte pas la trajectoire générale du projet. --- ### Session 1 — 1er avril 2025 — Amorçage du projet **Commits :** `34ec9ad` Initial commit · `2f82260` add list of members · `f548db3` add readme Création du dépôt Git, rédaction d'un premier README et de la liste des membres du projet. GestHub démarre comme projet personnel pendant les ydays de B2, motivé par la dispersion des outils utilisés jusque-là (WhatsApp pour les annonces, clés USB pour les fichiers, agendas séparés). ### Session 2 — 8 avril 2025 — Expérimentations dépôt / CI **Commits :** `094eeb7` add base · `b7901b9` testname · `ab9a11a` remove fileTest · `ec246dd` test strange name on github · `7a7ad1e` remove test Session d'expérimentation autour du comportement de GitHub (noms de fichiers, déclenchement d'actions) — plusieurs commits de test créés puis supprimés. Aucune fonctionnalité livrée, mais compréhension des contraintes de la plateforme avant de s'engager dans l'architecture définitive. ### Session 3 — 14 avril 2025 — Squelette Docker **Commits :** `17c91e5` add base web + change a container · `6b3baed` add base asset · `e5a93eb` modif docker files Premher squelette de l'application web et premier conteneur Docker. Début de la structuration `web/` (assets, templates) qui sera conservée (et réorganisée en couches) jusqu'à la version actuelle. ### Session 4 — 17 avril 2025 — Webhook **Commit :** `ffbb86a` testwebhook Test d'un webhook (déploiement automatisé) — piste explorée puis abandonnée au profit d'un déploiement manuel `docker compose up -d` documenté dans le README (plus simple à maintenir seul sur ce projet). ### Session 5 — 13 mai 2025 — SSO Keycloak + Caddy fonctionnels **Commits :** `11900c2` add things · `5812193` repair things · `387b9be` modif things · `248b608` repair broken README · `cd4678c` add working sso + working Caddy + 2 scripts for hosts · `e1e8ed6` delete useless file · `9a2cdcc` debug + change hostname · `004c701` test tranfer to server **Session la plus significative techniquement à ce stade.** Mise en place du reverse proxy Caddy et du flux d'authentification OIDC avec Keycloak. **Difficulté rencontrée :** échecs de connexion liés au hostname (le message de commit "debug + change hostname" documente une itération de correction). **Démarche :** isolation du problème par test de transfert vers le serveur distant, ajustement du hostname Keycloak/Caddy jusqu'à obtention d'un flux SSO fonctionnel. Cette difficulté est la même famille de problème que celle détaillée dans le dossier technique (Bloc 3 — C5 Debugging) : Keycloak générant des URLs incohérentes avec le proxy tant que le hostname et les en-têtes de proxy ne sont pas alignés. ### Session 6 — 16 mai 2025 — Consolidation **Commit :** `2e87761` add too many things Session de rattrapage regroupant plusieurs ajustements sur `app.py`, `docker-compose.yml` et les templates (message de commit peu descriptif — point d'amélioration identifié pour la suite : commits plus atomiques et mieux nommés, cf. Annexe A1). ### Session 7 — 17 mai 2025 — Intégration Mattermost **Commits :** `6f69316` index html et css · `f248ba3` ajout boutons pour les documents · `0aaa312` add working mattermost + working sso for all · `5009865` fix website · `7050cd3` modif js · `8b13674` Test fontAwesome Page d'accueil restructurée (HTML/CSS) et intégration de **Mattermost** (chat + tableaux Kanban) via authentification SSO partagée avec Keycloak. Décision d'architecture actée ici : réutiliser Mattermost plutôt que développer un chat et un Kanban maison (cohérent avec le principe DRY — Bloc 2, C6 — réutilisation d'un outil mature plutôt que réinvention). ### Session 8 — 18 mai 2025 — Session utilisateur et widgets **Commits :** `3a2f44c`/`8d6a9d0`/`a671314` test show username · `8d38a23`/`8b34ea8` fix logger · `45d905f` Add debug mode on flask · `df729c8` Update html with display name and add logout button · `4d68f48` test widget · `e8773a9`/`00c5bb7` add working widget for board Affichage du nom d'utilisateur (claim OIDC `preferred_username`) et bouton de déconnexion. Introduction des premiers "widgets" intégrant les tableaux Mattermost dans le dashboard — la préfiguration directe du système de `Block` généralisé en décembre 2025. ### Session 9 — 18–19 mai 2025 — Version fonctionnelle bout en bout **Commits :** `9cab64f`/`d5ede3c` website fonctionnel / front=ok / back=ok / docker=ok · `697902d` export config keycloak · `3172c6e` merge · `9080df2`/`3b2fa00` modif README Premier jalon "de bout en bout" : front, back et Docker fonctionnels ensemble. Export de la configuration Keycloak (`export_keycloak/*.json`) pour permettre à un tiers de reconstituer le realm sans réaliser la configuration manuellement — élément de reproductibilité repris dans la Partie 3 (DevOps) du présent dossier. ### Session 10 — 3 octobre 2025 — Hygiène du dépôt **Commit :** `4c7bb77` add gitignore Après une pause de près de 4 mois et demi (rentrée académique B3, spécialité Robotique & Systèmes Embarqués), ajout d'un `.gitignore`. Signale la reprise du projet et un souci d'hygiène avant de poursuivre le développement. ### Session 11 — 16 décembre 2025 — Refonte du dashboard + widgets **Commits :** `e0883b0` test redesign gesthub · `1f2c67f` modif hostname keycloak (im stupid) · `45c8982` modif port keycloak (im stupid) Refonte majeure : remplacement du stockage JSON des annonces par un modèle `Block` en base MariaDB (via Flask-SQLAlchemy à l'époque), généralisation du tableau de bord en widgets déplaçables (drag & drop, SortableJS), API `/api/layout` pour la persistance de l'agencement. **Difficulté** : nouvelle itération de configuration Keycloak (hostname puis port), corrigée dans la foulée — les messages de commit ("im stupid") illustrent une auto-critique sur des erreurs de configuration simples mais bloquantes, un aléa classique en configuration d'infrastructure. --- ## Travaux réalisés pour ce dossier RNCP (janvier–août 2026, hors Git détaillé) En vue du présent dossier, le code a été **repris et complété** pour correspondre à l'état réellement décrit dans la Partie 2 : passage de Flask-SQLAlchemy à PyMySQL avec architecture en couches (routes/services/models, Repository Pattern), ajout des modules Annonces, Fichiers et Planning (jusque-là absents ou à l'état de squelette), ajout de la table et du service `audit_log`, écriture et exécution réelle d'une suite de 34 tests automatisés (pytest, contre une vraie base MariaDB), vérification réelle par flake8 et radon (0 violation, complexité moyenne A/1.70, taux de commentaires 13 %). Ce travail est documenté avec son propre horodatage dans le dépôt `gesthub-v2` livré en annexe de ce dossier.