7.8 KiB
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.