Files
xamxam/docs/LIVRAISONS_PAR_MOIS.md
T

140 lines
7.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Livraisons par mois — xamxam
## Janvier 2026 (8 commits)
- Site public affichant le contenu de la DB + fichiers
- Formulaire de soumission séparé → écriture en base
- Première version des contrôleurs TFE (création, édition)
- Structure initiale du projet : routing, templates, DB SQLite
- Schéma de base de données (theses, auteurs, formats, langues, etc.)
## Février 2026 (29 commits)
- Formulaire admin + formulaire étudiant (partage)
- Soumissions étudiant via liens de partage (share links)
- Système de visibilité : Libre / Interne / Interdit
- Pages statiques éditables (À propos) → début du CMS
- Gestion des fichiers uploadés (stockage, affichage)
- Export CSV des TFE
- Import CSV des TFE
- Structure admin : index, navigation, table listant les TFE
- Base du système de licences (CC2r)
## Mars 2026 (74 commits)
- Édition / correction / suppression des entrées TFE dans l'admin
- Récapitulatif admin après soumission
- Affichage public des TFE (page tfe.php)
- Moteur de recherche dans le répertoire (par nom)
- Filtres par orientation, AP, année, langue, finalité
- Système d'authentification admin (login / mot de passe / session)
- Protection par mot de passe des fichiers « Interne »
- Données internes : points du jury, remarques, lien BAIU, exemplaires
- Colonnes du répertoire : années, orientations, AP, mots-clés, noms
- Rework CSS majeur (variables, typographie, thème clair/sombre)
- Intégration HTMX pour les interactions dynamiques
- Upload de fichiers avec queues JS (avant FilePond)
- Structure formulaire : champs conditionnels selon les formats
- PDF obligatoire / optionnel selon les formats
- Jury (promoteurices, lecteurices) dans le formulaire admin
## Avril 2026 (207 commits)
- Refonte complète des uploads : FilePond remplace les queues custom
- Architecture d'upload asynchrone FilePond (process/revert/load/remove)
- Pool unique TFE acceptant tous les formats (vidéo, audio, etc.)
- Upload de masse avec barre de progression
- Intégration PeerTube pour vidéos / audio (upload API, embed)
- Système de brouillon automatique (autosave) pour le formulaire partage
- Fragments HTMX partagés admin / partage (formats, fichiers, licence)
- Extraction du JS inline en modules externes (admin-logs, clipboard, pill-search, etc.)
- Composant pill-search pour mots-clés et langues (autocomplete HTMX)
- Gestion des mots-clés et langues dans l'admin (rename, merge, delete)
- TOC sidebar dans les pages admin (IntersectionObserver)
- Tri des colonnes dans l'index admin (Auteur, Accès, etc.)
- Liens de partage : nom éditable, expiration, dialogue d'édition
- Obfuscation des emails en entités HTML (EmailObfuscator)
- Récapitulatif exhaustif (partage + admin)
- Champs conditionnels : website URL, annexes, PeerTube vs. upload direct
- Promoteurices multiples (interne + ULB) avec ajout/suppression dynamique
- Formulaire mobile responsive
- Contact visible / contact interne découplés
- CC2r renommé (ex-CC4r), restructuration des licences
- Pages statiques : Charte, Licence, À propos avec TOC sticky
- Checkboxes admin en auto-save HTMX avec toasts de feedback
- Backups SQLite automatisés (horaire + quotidien, cron)
- Déploiement : recettes justfile, vérification permissions, migrations incrémentales
- Content-Security-Policy, HSTS, SameSite cookies
- Script de scan passif de sécu (pentest)
- Chiffrement du mot de passe SMTP (AES-256-GCM)
- Rate limiting sur les endpoints sensibles
## Mai 2026 (156 commits)
- FilePond : correction crash « can't access property main », tailles en bytes
- Fichiers temporaires FilePond survivent au rechargement de page
- Relink de fichiers orphelins (file browser + FilePond integration)
- Trash policy : suppression → tmp/_trash avec traçabilité
- Storage prefix : theses/ → documents/
- Recap admin : sections → fieldsets, fichiers en table
- Extraction de FormBootstrap pour DRY add/edit
- Système de colonnes thesis_status (two-phase commit lifecycle)
- Draft autosave avec persistence session (HTMX POST/GET fragments)
- Guard no-JS file uploads (filepond_mode désactivé par défaut)
- Accessibilité formulaire : aria-errormessage, aria-invalid, aria-describedby
- Cibles tactiles 44×44px minimum (WCAG 2.5.5)
- Nettoyage périodique des brouillons orphelins (cron)
- Durée TFE : colonnes DB, champs formulaire, affichage XhYm
- Déploiement : split deploy-code/deploy-deps/deploy-migrate
- Intégration Monolog : 4 canaux PSR-3 remplaçant 4 systèmes de log
- Tests PHPUnit : 228 tests, couverture 21,27%
- Remplacement Parsedown → league/commonmark
- Remplacement client HTTP custom → Guzzle
- Remplacement SMTP socket → PHPMailer
- Composer.json et autoloader
- Refactor architecture CSS : layers (reset → colors → typography → base → components)
- Composants CSS dédiés par fichier (links, focus, forms, tables, dialog, etc.)
- SVG icons inline via helper PHP (icon()) — plus de <img> pour icônes
- Style global : liens regular, body light, hover violet, police BBB DM Sans
- Page TFE : layout auteur > titre > meta + synopsis 2-col > fichiers flex
- Répertoire : colonnes triées (match first), scrollbars discrètes, pas de chip bar mobile
- Accordéon mobile pour les filtres du répertoire
- Détails/summary TOC pour pages statiques (responsive)
- Contenus-edit : auto-save, toolbar OverType, liens sidebar dynamiques
- Gestion des contacts admin (grille 3 colonnes, suppression, réindexation)
- Corrections d'identifiants (year-prefix mismatch), migrations PHP
- Fix contact_interne / contact_visible (découplage complet)
- Author name casing (COLLATE NOCASE, idHint lookup)
- Finalité master affichée sur la page publique TFE
- Suppression vidéos PeerTube lors de la suppression d'un TFE
- Nettoyage logs, gitignore vendor/, icône de recherche
- Build pipeline : biome + rolldown + lightningcss (bundling/minification)
- Dev-watch avec chokidar-cli (reconstruction live)
- Gzip activé dans nginx + ~730 lignes de JS inline → 15 fichiers externes
- Scroll-position memory sur les swaps HTMX du répertoire
- Correctifs sécu (open redirect, CSRF partage, gate session, verifyCsrf)
- Biome lint fixes (duplicate CSS, arrow functions)
## Juin 2026 (82 commits)
- Migration icônes <img> → SVG inline (26 templates, helper icon())
- Cleanup dialog : suppression doublons, hx-confirm sur delete
- Refonte pages statiques (layout partagé, TOC sticky)
- PHP upload limits → 8GB pour vidéos
- Debug leftover crash HTMX FormData(fieldset)
- Type hint adminOld corrigé (string → string|array)
- Index SQLite pour requêtes langues/tags
- Accordéon mobile répertoire : toggle, chevron, badge actif
- Remplacement sticky nav par details/summary TOC responsive
- Icône recherche corrigée
- Scroll colonnes répertoire + admin TOC duplication
- Filtres répertoire : tri matched-first, mot-clés en haut
- Suppression chip bar mobile
- Accordéon re-init après HTMX swap (bug DOM détaché)
- Gzip + extraction JS inline
- Build pipeline CSS/JS
- Dev-watch
- Transition scroll + swap fluide sur répertoire
- Correctifs sécu (csrf partage, open redirect, verifyCsrf)
- TODO et tasks de sécu complétés