Files
gesthub/docs/01_journal_de_bord.md
2026-08-21 09:12:02 +02:00

7.8 KiB
Raw Permalink Blame History

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 — 1819 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 (janvieraoû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.