Files
xamxam/docs/LIVRAISONS_PAR_MOIS.md
T

7.0 KiB
Raw Blame History

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 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 → 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