transfer from private server/git server

This commit is contained in:
M1n-0
2026-08-21 09:12:02 +02:00
parent 45c8982178
commit 6ecb014238
75 changed files with 4344 additions and 274 deletions

133
docs/01_journal_de_bord.md Normal file
View File

@@ -0,0 +1,133 @@
# 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.