134 lines
7.8 KiB
Markdown
134 lines
7.8 KiB
Markdown
# 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.
|