Aller au contenu

Roadmap : Tests terrain Forge

Accueil Retour

Roadmap indépendante de la roadmap de construction Forge.

Objectif : tester Forge comme un utilisateur réel l’apprendrait, depuis l’installation jusqu’à l’autonomie.

Convention

  • Préfixe : FT
  • Un ticket terrain teste une action principale observable.
  • Un ticket terrain ne corrige pas Forge.
  • Chaque ticket détaillé doit respecter le modèle de ticket FT.
  • Chaque retour doit respecter le modèle de retour testeur.

FT-00 : Cadre de la campagne terrain

Objectif : préparer la méthode, les modèles et les règles.

Tickets

  • FT-00-TEST-CHARTER-001, Définir la charte de test terrain.
  • FT-00-FEEDBACK-TEMPLATE-001, Créer le modèle de retour d’expérience.
  • FT-00-SEVERITY-SCALE-001, Définir les niveaux de gravité S0 à S5.
  • FT-00-GUIDANCE-LEVELS-001, Définir les niveaux de guidage G0 à G3.
  • FT-00-HELP-LEVELS-001, Définir les niveaux d’aide A0 à A5.
  • FT-00-TICKET-FORMAT-001, Verrouiller la structure d’un ticket FT.
  • FT-00-TRIAGE-RULES-001, Définir la transformation des retours en tickets correctifs.
  • FT-00-DOC-ERROR-PROTOCOL-001, Définir la procédure si la documentation officielle est erronée pendant un ticket.
  • FT-00-ENV-MATRIX-001, Définir les environnements de test.
  • FT-00-DEBUG-TOOLS-INTRO-001, Découvrir les outils de diagnostic Forge.

FT-01 : Installation de Forge

Objectif : vérifier les parcours d’installation.

Tickets

  • FT-01-INSTALL-PIPX-001, Installer Forge avec pipx.
  • FT-01-INSTALL-VENV-001, Installer Forge dans un environnement virtuel.
  • FT-01-INSTALL-GITHUB-001, Installer Forge depuis GitHub.
  • FT-01-INSTALL-DEV-EDITABLE-001, Installer Forge en mode développement.
  • FT-01-INSTALL-WINDOWS-WSL-001, Installer Forge sous Windows avec WSL.
  • FT-01-INSTALL-DEBIAN-VM-001, Installer Forge sur VM Debian propre.
  • FT-01-INSTALL-VERSION-CHECK-001, Vérifier la version installée.
  • FT-01-INSTALL-UNINSTALL-001, Désinstaller Forge proprement.
  • FT-01-PHASE-REVIEW-001, Revue de phase installation.

FT-02 : Configuration de l’environnement

Objectif : vérifier .env, dev/prod, secrets et erreurs de configuration.

Tickets

  • FT-02-ENV-FILES-LOCATE-001, Identifier les fichiers d’environnement.
  • FT-02-ENV-EXAMPLE-COPY-001, Créer une configuration locale depuis l’exemple.
  • FT-02-ENV-REQUIRED-VARS-001, Identifier les variables obligatoires.
  • FT-02-ENV-OPTIONAL-VARS-001, Identifier les variables optionnelles.
  • FT-02-ENV-DEV-MODE-001, Configurer le mode développement.
  • FT-02-ENV-PROD-MODE-READ-001, Lire la configuration production sans l’activer.
  • FT-02-ENV-MISSING-VAR-001, Tester une variable manquante.
  • FT-02-ENV-BAD-VALUE-001, Tester une valeur incorrecte.
  • FT-02-SECRETS-GITIGNORE-001, Vérifier que les secrets ne partent pas dans Git.
  • FT-02-PHASE-REVIEW-001, Revue de phase environnement.

FT-03 : MariaDB système

Objectif : préparer MariaDB sans utiliser root comme compte applicatif.

Tickets

  • FT-03-MARIADB-INSTALL-CHECK-001, Vérifier que MariaDB est installé.
  • FT-03-MARIADB-SERVICE-001, Vérifier le service MariaDB.
  • FT-03-MARIADB-ROOT-ACCESS-001, Vérifier l’accès administrateur local.
  • FT-03-MARIADB-DATABASE-CREATE-001, Créer une base dédiée au projet.
  • FT-03-MARIADB-USER-CREATE-001, Créer un utilisateur non-root.
  • FT-03-MARIADB-USER-GRANTS-001, Donner les droits au bon schéma.
  • FT-03-MARIADB-USER-LOGIN-001, Tester la connexion de l’utilisateur dédié.
  • FT-03-MARIADB-BAD-PASSWORD-001, Tester une erreur de mot de passe.
  • FT-03-MARIADB-DATABASE-MISSING-001, Tester une base absente.
  • FT-03-PHASE-REVIEW-001, Revue de phase MariaDB.

FT-04 : Connexion Forge à MariaDB

Objectif : relier Forge à la base et tester les erreurs.

Tickets

  • FT-04-FORGE-DB-CONFIG-001, Renseigner la configuration DB côté Forge.
  • FT-04-FORGE-DB-CONNECTION-001, Tester la connexion Forge à MariaDB.
  • FT-04-FORGE-DB-INIT-001, Initialiser la base du projet.
  • FT-04-FORGE-DB-INIT-IDEMPOTENT-001, Relancer l’initialisation.
  • FT-04-FORGE-DB-BAD-HOST-001, Tester un mauvais host.
  • FT-04-FORGE-DB-BAD-LOGIN-001, Tester un mauvais login.
  • FT-04-FORGE-DB-BAD-PASSWORD-001, Tester un mauvais mot de passe.
  • FT-04-FORGE-DB-DOC-CHECK-001, Vérifier la documentation base.
  • FT-04-PHASE-REVIEW-001, Revue de phase connexion DB.

FT-05 : Premier projet Forge

Objectif : créer, lancer et observer un projet minimal.

Tickets

  • FT-05-FIRST-PROJECT-CREATE-001, Créer un projet minimal.
  • FT-05-FIRST-PROJECT-FILES-001, Vérifier les fichiers générés.
  • FT-05-FIRST-PROJECT-RUN-001, Lancer le projet.
  • FT-05-FIRST-PROJECT-HOMEPAGE-001, Afficher la page d’accueil.
  • FT-05-FIRST-PROJECT-STOP-RESTART-001, Arrêter et relancer le projet.
  • FT-05-FIRST-PROJECT-DOC-FOLLOW-001, Suivre uniquement la documentation.
  • FT-05-FIRST-PROJECT-GIT-STATUS-001, Observer l’état Git du projet.
  • FT-05-PHASE-REVIEW-001, Revue de phase premier projet.

FT-06 : Architecture du projet

Objectif : distinguer framework, application, fichiers générés et fichiers manuels.

Tickets

  • FT-06-ARCH-CORE-MVC-001, Distinguer core/ et mvc/.
  • FT-06-ARCH-ROUTES-001, Identifier mvc/routes.py.
  • FT-06-ARCH-CONTROLLERS-001, Identifier mvc/controllers/.
  • FT-06-ARCH-VIEWS-001, Identifier mvc/views/.
  • FT-06-ARCH-MODELS-001, Identifier mvc/models/.
  • FT-06-ARCH-ENTITIES-001, Identifier mvc/entities/.
  • FT-06-ARCH-STATIC-STORAGE-001, Distinguer static/ et storage/.
  • FT-06-ARCH-DO-NOT-TOUCH-CORE-001, Vérifier que le core n’est pas modifié.
  • FT-06-PHASE-REVIEW-001, Revue de phase architecture.

FT-07 : Routes applicatives

Objectif : tester le routage minimal.

Tickets

  • FT-07-ROUTE-FILE-OPEN-001, Ouvrir et lire le fichier des routes.
  • FT-07-ROUTE-ADD-GET-001, Ajouter une route GET simple.
  • FT-07-ROUTE-NAME-001, Nommer une route.
  • FT-07-ROUTE-IMPORT-CONTROLLER-001, Importer le contrôleur utilisé.
  • FT-07-ROUTE-UNKNOWN-URL-001, Tester une URL non déclarée.
  • FT-07-ROUTE-DUPLICATE-001, Tester une route dupliquée.
  • FT-07-ROUTE-METHOD-NOT-ALLOWED-001, Tester une mauvaise méthode HTTP.
  • FT-07-PHASE-REVIEW-001, Revue de phase routes.

FT-08 : Contrôleurs

Objectif : relier une route à une méthode de contrôleur.

Tickets

  • FT-08-CONTROLLER-LOCATE-001, Identifier le dossier des contrôleurs.
  • FT-08-CONTROLLER-CREATE-001, Créer un contrôleur minimal.
  • FT-08-CONTROLLER-METHOD-001, Créer une méthode appelée par la route.
  • FT-08-CONTROLLER-RETURN-TEXT-001, Retourner une réponse texte simple.
  • FT-08-CONTROLLER-RETURN-HTML-001, Retourner une réponse HTML simple.
  • FT-08-CONTROLLER-MISSING-METHOD-001, Tester une méthode absente.
  • FT-08-CONTROLLER-BAD-IMPORT-001, Tester un mauvais import.
  • FT-08-PHASE-REVIEW-001, Revue de phase contrôleurs.

FT-09 : Premier template

Objectif : passer d’une réponse texte à une vue HTML.

Tickets

  • FT-09-TEMPLATE-LOCATE-001, Identifier le dossier des templates.
  • FT-09-TEMPLATE-CREATE-001, Créer un template simple.
  • FT-09-TEMPLATE-RENDER-001, Rendre un template depuis un contrôleur.
  • FT-09-TEMPLATE-VARIABLE-001, Passer une variable au template.
  • FT-09-TEMPLATE-MISSING-001, Tester un template absent.
  • FT-09-TEMPLATE-JINJA-ERROR-001, Tester une erreur Jinja simple.
  • FT-09-PHASE-REVIEW-001, Revue de phase premier template.

FT-10 : Templates Jinja

Objectif : tester les mécanismes Jinja utilisés par Forge.

Tickets

  • FT-10-JINJA-EXTENDS-001, Utiliser {% extends %}.
  • FT-10-JINJA-BLOCKS-001, Utiliser les blocs Jinja.
  • FT-10-JINJA-INCLUDE-001, Inclure un fragment de template.
  • FT-10-JINJA-LOOP-001, Afficher une liste avec une boucle.
  • FT-10-JINJA-CONDITION-001, Afficher selon une condition.
  • FT-10-JINJA-FILTER-001, Utiliser un filtre Jinja simple.
  • FT-10-JINJA-MACRO-001, Tester une macro si utilisée par Forge.
  • FT-10-JINJA-ESCAPING-001, Vérifier l’échappement HTML.
  • FT-10-JINJA-ERRORS-001, Observer les erreurs Jinja.
  • FT-10-PHASE-REVIEW-001, Revue de phase Jinja.

FT-11 : Layout public

Objectif : construire une structure de page publique propre.

Tickets

  • FT-11-LAYOUT-PUBLIC-LOCATE-001, Identifier le layout public.
  • FT-11-LAYOUT-PUBLIC-EDIT-001, Modifier le layout public.
  • FT-11-LAYOUT-NAVIGATION-001, Ajouter une navigation.
  • FT-11-LAYOUT-FOOTER-001, Ajouter un footer.
  • FT-11-LAYOUT-SCRIPTS-BLOCK-001, Tester le bloc scripts si disponible.
  • FT-11-PUBLIC-PAGE-COMPLETE-001, Créer une page publique complète.
  • FT-11-PUBLIC-404-001, Tester une page inexistante.
  • FT-11-PHASE-REVIEW-001, Revue de phase layout public.

FT-12 : Tailwind

Objectif : vérifier l’usage visuel simple sans usine front opaque.

Tickets

  • FT-12-TAILWIND-SETUP-CHECK-001, Vérifier comment Tailwind est disponible.
  • FT-12-TAILWIND-CLASS-BASIC-001, Modifier l’apparence avec des classes.
  • FT-12-TAILWIND-BUTTONS-001, Créer boutons et liens stylés.
  • FT-12-TAILWIND-CARD-001, Créer une carte de contenu.
  • FT-12-TAILWIND-FORM-STYLE-001, Styliser un formulaire.
  • FT-12-TAILWIND-RESPONSIVE-001, Tester une mise en page responsive.
  • FT-12-TAILWIND-CUSTOM-CSS-001, Ajouter un CSS complémentaire si nécessaire.
  • FT-12-TAILWIND-DOC-CHECK-001, Vérifier la documentation front.
  • FT-12-PHASE-REVIEW-001, Revue de phase Tailwind.

FT-13 : Formulaire public simple

Objectif : traiter une saisie utilisateur sans CRUD.

Tickets

  • FT-13-FORM-GET-001, Afficher un formulaire en GET.
  • FT-13-FORM-POST-001, Recevoir une soumission POST.
  • FT-13-FORM-REQUIRED-FIELD-001, Tester un champ obligatoire.
  • FT-13-FORM-ERROR-DISPLAY-001, Afficher les erreurs utilisateur.
  • FT-13-FORM-SUCCESS-001, Afficher un message de succès.
  • FT-13-FORM-INVALID-DATA-001, Tester des données invalides.
  • FT-13-FORM-REDIRECT-AFTER-POST-001, Tester un retour après POST si prévu.
  • FT-13-PHASE-REVIEW-001, Revue de phase formulaires.

FT-14 : CSRF et formulaires sensibles

Objectif : vérifier la protection CSRF.

Tickets

  • FT-14-CSRF-TOKEN-PRESENT-001, Vérifier la présence du token CSRF.
  • FT-14-CSRF-VALID-SUBMIT-001, Soumettre un formulaire valide.
  • FT-14-CSRF-MISSING-001, Soumettre sans token.
  • FT-14-CSRF-INVALID-001, Soumettre avec token invalide.
  • FT-14-CSRF-GET-SENSITIVE-001, Vérifier qu’une action sensible n’est pas en GET.
  • FT-14-CSRF-ERROR-MESSAGE-001, Évaluer le message d’erreur CSRF.
  • FT-14-PHASE-REVIEW-001, Revue de phase CSRF.

FT-15 : HTMX progressif

Objectif : tester les interactions HTML partielles.

Tickets

  • FT-15-HTMX-SETUP-CHECK-001, Vérifier la disponibilité de HTMX.
  • FT-15-HTMX-PARTIAL-GET-001, Charger un fragment HTML en GET.
  • FT-15-HTMX-TARGET-SWAP-001, Tester hx-target et hx-swap.
  • FT-15-HTMX-FORM-POST-001, Soumettre un formulaire avec HTMX.
  • FT-15-HTMX-VALIDATION-ERRORS-001, Afficher des erreurs sans rechargement complet.
  • FT-15-HTMX-FALLBACK-001, Vérifier le comportement sans HTMX si prévu.
  • FT-15-HTMX-DOC-CHECK-001, Vérifier la documentation HTMX.
  • FT-15-PHASE-REVIEW-001, Revue de phase HTMX.

FT-16 : Alpine.js optionnel

Objectif : vérifier qu’Alpine peut aider sans devenir obligatoire.

Tickets

  • FT-16-ALPINE-SETUP-CHECK-001, Vérifier la disponibilité d’Alpine.
  • FT-16-ALPINE-TOGGLE-001, Créer un affichage masqué/visible.
  • FT-16-ALPINE-DROPDOWN-001, Tester un menu déroulant.
  • FT-16-ALPINE-MODAL-001, Tester une modale simple.
  • FT-16-ALPINE-FORM-STATE-001, Tester un état local de formulaire.
  • FT-16-ALPINE-NO-DEPENDENCY-001, Vérifier qu’Alpine reste optionnel.
  • FT-16-PHASE-REVIEW-001, Revue de phase Alpine.

FT-17 : Mail en développement

Objectif : tester le mail sans envoi réel involontaire.

Tickets

  • FT-17-MAIL-CONFIG-FAKE-001, Configurer le transport fake.
  • FT-17-MAIL-CONFIG-LOG-001, Configurer le transport log.
  • FT-17-MAIL-CONTACT-FORM-001, Relier un formulaire de contact au mail.
  • FT-17-MAIL-TEMPLATE-001, Utiliser un template de mail.
  • FT-17-MAIL-CONFIG-ERROR-001, Tester une mauvaise configuration mail.
  • FT-17-MAIL-NO-REAL-SEND-DEV-001, Vérifier l’absence d’envoi réel en dev.
  • FT-17-PHASE-REVIEW-001, Revue de phase mail.

FT-18 : Découverte de la CLI

Objectif : comprendre la CLI avant génération.

Tickets

  • FT-18-CLI-HELP-GLOBAL-001, Lire l’aide globale.
  • FT-18-CLI-HELP-COMMAND-001, Lire l’aide d’une commande.
  • FT-18-CLI-UNKNOWN-COMMAND-001, Lancer une commande inconnue.
  • FT-18-CLI-MISSING-ARGUMENT-001, Omettre un argument obligatoire.
  • FT-18-CLI-VERSION-001, Vérifier la version via CLI.
  • FT-18-CLI-LIST-FAMILIES-001, Identifier les familles de commandes.
  • FT-18-PHASE-REVIEW-001, Revue de phase CLI.

FT-19 : Diagnostics CLI

Objectif : vérifier que Forge aide à trouver les problèmes.

Tickets

  • FT-19-DOCTOR-CLEAN-PROJECT-001, Lancer doctor sur projet sain.
  • FT-19-DOCTOR-MISSING-FILE-001, Supprimer un fichier attendu.
  • FT-19-DOCTOR-BAD-CONFIG-001, Casser une configuration.
  • FT-19-DOCTOR-BAD-ENTITY-001, Casser une entité JSON.
  • FT-19-DOCTOR-BAD-ROUTE-001, Casser une route.
  • FT-19-PROJECT-CHECK-STRICT-001, Lancer le contrôle strict si disponible.
  • FT-19-PHASE-REVIEW-001, Revue de phase diagnostics.

FT-20 : Routes via CLI

Objectif : vérifier que la CLI aide à comprendre le routage.

Tickets

  • FT-20-ROUTES-LIST-001, Lister les routes.
  • FT-20-ROUTES-LIST-NAMED-001, Vérifier les routes nommées.
  • FT-20-ROUTES-LIST-METHODS-001, Vérifier les méthodes HTTP.
  • FT-20-ROUTES-LIST-BROKEN-001, Lister avec route cassée.
  • FT-20-ROUTES-DOC-CHECK-001, Comparer CLI et documentation routes.
  • FT-20-PHASE-REVIEW-001, Revue de phase routes CLI.

FT-21 : Entités JSON

Objectif : introduire le modèle de données Forge.

Tickets

  • FT-21-ENTITY-FOLDER-001, Identifier le dossier des entités.
  • FT-21-ENTITY-CREATE-MINIMAL-001, Créer une entité minimale.
  • FT-21-ENTITY-STRING-FIELD-001, Ajouter un champ texte.
  • FT-21-ENTITY-NUMBER-FIELD-001, Ajouter un champ numérique.
  • FT-21-ENTITY-DATE-FIELD-001, Ajouter un champ date.
  • FT-21-ENTITY-BOOLEAN-FIELD-001, Ajouter un champ booléen.
  • FT-21-ENTITY-INVALID-JSON-001, Casser le JSON.
  • FT-21-ENTITY-UNKNOWN-TYPE-001, Utiliser un type inconnu.
  • FT-21-PHASE-REVIEW-001, Revue de phase entités.

FT-22 : Modèles générés et fichiers manuels

Objectif : vérifier la séparation généré/manuel.

Tickets

  • FT-22-BUILD-MODEL-001, Générer un modèle depuis l’entité.
  • FT-22-MODEL-BASE-FILE-001, Identifier le fichier _base.py.
  • FT-22-MODEL-MANUAL-FILE-001, Identifier le fichier manuel.
  • FT-22-MODEL-MANUAL-CUSTOM-001, Ajouter une méthode manuelle.
  • FT-22-MODEL-REGENERATE-001, Régénérer après modification d’entité.
  • FT-22-MODEL-DO-NOT-EDIT-BASE-001, Vérifier le risque de modifier _base.py.
  • FT-22-PHASE-REVIEW-001, Revue de phase modèles.

FT-23 : SQL visible

Objectif : vérifier que Forge ne cache pas la base.

Tickets

  • FT-23-SQL-GENERATE-001, Générer le SQL d’une entité.
  • FT-23-SQL-FIELD-TYPES-001, Vérifier les types SQL produits.
  • FT-23-SQL-PRIMARY-KEY-001, Vérifier la clé primaire.
  • FT-23-SQL-NOT-NULL-001, Vérifier les contraintes simples.
  • FT-23-SQL-RELATION-PREP-001, Observer la préparation SQL d’une relation simple.
  • FT-23-SQL-REVIEW-BY-TESTER-001, Lire le SQL avant application.
  • FT-23-PHASE-REVIEW-001, Revue de phase SQL.

FT-24 : Migrations

Objectif : tester l’évolution de la base.

Tickets

  • FT-24-MIGRATION-MAKE-FIRST-001, Créer une première migration.
  • FT-24-MIGRATION-FILE-READ-001, Lire le fichier de migration.
  • FT-24-MIGRATION-APPLY-001, Appliquer une migration.
  • FT-24-MIGRATION-STATUS-001, Lire l’état des migrations.
  • FT-24-MIGRATION-REAPPLY-001, Relancer une migration appliquée.
  • FT-24-MIGRATION-ADD-FIELD-001, Ajouter un champ et migrer.
  • FT-24-MIGRATION-BROKEN-SQL-001, Tester une migration cassée.
  • FT-24-PHASE-REVIEW-001, Revue de phase migrations.

FT-25 : CRUD : génération

Objectif : générer un CRUD simple.

Tickets

  • FT-25-CRUD-PREPARE-ENTITY-001, Préparer une entité CRUD simple.
  • FT-25-CRUD-GENERATE-001, Générer le CRUD.
  • FT-25-CRUD-FILES-CREATED-001, Vérifier les fichiers créés.
  • FT-25-CRUD-ROUTES-CHECK-001, Vérifier les routes CRUD.
  • FT-25-CRUD-TEMPLATES-CHECK-001, Vérifier les templates CRUD.
  • FT-25-CRUD-DO-NOT-TOUCH-CORE-001, Vérifier qu’aucun core n’est modifié.
  • FT-25-PHASE-REVIEW-001, Revue de phase génération CRUD.

FT-26 : CRUD : utilisation

Objectif : tester les opérations CRUD de base.

Tickets

  • FT-26-CRUD-INDEX-001, Afficher la liste.
  • FT-26-CRUD-CREATE-FORM-001, Afficher le formulaire de création.
  • FT-26-CRUD-CREATE-SUBMIT-001, Créer un enregistrement.
  • FT-26-CRUD-EDIT-FORM-001, Afficher le formulaire d’édition.
  • FT-26-CRUD-EDIT-SUBMIT-001, Modifier un enregistrement.
  • FT-26-CRUD-DELETE-001, Supprimer un enregistrement.
  • FT-26-CRUD-DETAIL-001, Afficher le détail si disponible.
  • FT-26-PHASE-REVIEW-001, Revue de phase usage CRUD.

FT-27 : CRUD : validation et erreurs

Objectif : tester les mauvais usages du CRUD.

Tickets

  • FT-27-CRUD-REQUIRED-FIELD-001, Soumettre un champ obligatoire vide.
  • FT-27-CRUD-BAD-TYPE-001, Soumettre un mauvais type.
  • FT-27-CRUD-UNKNOWN-ID-001, Accéder à un ID inexistant.
  • FT-27-CRUD-DELETE-UNKNOWN-ID-001, Supprimer un ID inexistant.
  • FT-27-CRUD-CSRF-001, Tester CSRF sur actions sensibles.
  • FT-27-CRUD-ERROR-MESSAGES-001, Évaluer les messages utilisateur.
  • FT-27-PHASE-REVIEW-001, Revue de phase erreurs CRUD.

FT-28 : CRUD enrichi : recherche, tri, pagination

Objectif : tester l’usage quotidien d’un back-office.

Tickets

  • FT-28-CRUD-SEED-DATA-001, Créer un jeu de données de test.
  • FT-28-CRUD-SEARCH-001, Tester la recherche texte.
  • FT-28-CRUD-SEARCH-EMPTY-001, Tester une recherche sans résultat.
  • FT-28-CRUD-SORT-VALID-001, Tester un tri autorisé.
  • FT-28-CRUD-SORT-INVALID-001, Tester un tri invalide.
  • FT-28-CRUD-PAGINATION-001, Tester la pagination.
  • FT-28-CRUD-QUERY-PARAMS-001, Vérifier la conservation des paramètres.
  • FT-28-PHASE-REVIEW-001, Revue de phase recherche/tri/pagination.

FT-29 : CRUD enrichi : filtres et export

Objectif : tester filtres et export CSV.

Tickets

  • FT-29-CRUD-FILTER-SIMPLE-001, Tester un filtre simple.
  • FT-29-CRUD-FILTER-INVALID-001, Tester un filtre invalide.
  • FT-29-CRUD-FILTER-EMPTY-001, Tester filtre sans résultat.
  • FT-29-CRUD-EXPORT-CSV-001, Exporter les données.
  • FT-29-CRUD-EXPORT-SPECIAL-CHARS-001, Exporter des caractères spéciaux.
  • FT-29-CRUD-EXPORT-FORMULA-INJECTION-001, Tester injection CSV potentielle.
  • FT-29-CRUD-EXPORT-WITH-FILTERS-001, Exporter avec filtres actifs.
  • FT-29-PHASE-REVIEW-001, Revue de phase filtres/export.

FT-30 : Relations simples

Objectif : tester les relations entre deux entités.

Tickets

  • FT-30-RELATION-PREPARE-ENTITIES-001, Préparer deux entités liées.
  • FT-30-RELATION-MANY-TO-ONE-001, Déclarer une relation many-to-one.
  • FT-30-RELATION-MIGRATION-001, Migrer une relation.
  • FT-30-RELATION-FORM-001, Saisir une relation dans un formulaire.
  • FT-30-RELATION-LIST-LABEL-001, Afficher le libellé lié en liste.
  • FT-30-RELATION-EDIT-001, Modifier une relation.
  • FT-30-RELATION-DELETE-LINKED-001, Supprimer une donnée liée.
  • FT-30-PHASE-REVIEW-001, Revue de phase relations simples.

FT-31 : Relations avancées

Objectif : tester les relations complexes si supportées.

Tickets

  • FT-31-RELATION-MANY-TO-MANY-001, Déclarer une relation many-to-many.
  • FT-31-RELATION-PIVOT-SQL-001, Vérifier le SQL pivot.
  • FT-31-RELATION-MANY-FORM-001, Saisir plusieurs relations.
  • FT-31-RELATION-MANY-LIST-001, Afficher plusieurs relations.
  • FT-31-RELATION-MANY-UPDATE-001, Modifier les relations.
  • FT-31-RELATION-MANY-DELETE-001, Tester suppression et intégrité.
  • FT-31-PHASE-REVIEW-001, Revue de phase relations avancées.

FT-32 : Médias et uploads

Objectif : tester les fichiers utilisateurs.

Tickets

  • FT-32-UPLOAD-CONFIG-001, Vérifier la configuration upload.
  • FT-32-UPLOAD-FORM-001, Ajouter un champ fichier.
  • FT-32-UPLOAD-SIMPLE-FILE-001, Envoyer un fichier simple.
  • FT-32-UPLOAD-IMAGE-001, Envoyer une image.
  • FT-32-UPLOAD-STORAGE-PATH-001, Vérifier le chemin stocké.
  • FT-32-UPLOAD-DISPLAY-001, Afficher le média.
  • FT-32-UPLOAD-DELETE-001, Supprimer le média.
  • FT-32-PHASE-REVIEW-001, Revue de phase médias.

FT-33 : Sécurité uploads

Objectif : tester les garde-fous des fichiers.

Tickets

  • FT-33-UPLOAD-PATH-TRAVERSAL-001, Tester ../.
  • FT-33-UPLOAD-WINDOWS-ABSOLUTE-001, Tester chemin Windows absolu.
  • FT-33-UPLOAD-URL-EXTERNAL-001, Tester une URL externe comme chemin.
  • FT-33-UPLOAD-BAD-EXTENSION-001, Tester une extension interdite.
  • FT-33-UPLOAD-DOUBLE-EXTENSION-001, Tester une double extension.
  • FT-33-UPLOAD-LARGE-FILE-001, Tester un fichier trop gros.
  • FT-33-UPLOAD-UNICODE-NAME-001, Tester un nom étrange.
  • FT-33-PHASE-REVIEW-001, Revue de phase sécurité uploads.

FT-34 : Authentification

Objectif : tester le flux utilisateur connecté.

Tickets

  • FT-34-AUTH-PREPARE-001, Préparer l’authentification.
  • FT-34-AUTH-USER-CREATE-001, Créer un utilisateur.
  • FT-34-AUTH-LOGIN-FORM-001, Afficher le formulaire login.
  • FT-34-AUTH-LOGIN-SUCCESS-001, Connexion réussie.
  • FT-34-AUTH-LOGIN-BAD-PASSWORD-001, Mot de passe incorrect.
  • FT-34-AUTH-LOGIN-UNKNOWN-USER-001, Utilisateur inconnu.
  • FT-34-AUTH-LOGOUT-001, Déconnexion.
  • FT-34-AUTH-SESSION-AFTER-LOGOUT-001, Accès après logout.
  • FT-34-PHASE-REVIEW-001, Revue de phase auth.

FT-35 : Pages protégées

Objectif : vérifier l’accès privé.

Tickets

  • FT-35-PROTECTED-PAGE-CREATE-001, Créer une page privée.
  • FT-35-PROTECTED-ANONYMOUS-001, Accès anonyme refusé.
  • FT-35-PROTECTED-LOGIN-REDIRECT-001, Redirection vers login.
  • FT-35-PROTECTED-CONNECTED-001, Accès connecté autorisé.
  • FT-35-PROTECTED-DIRECT-URL-001, Accès direct par URL.
  • FT-35-PROTECTED-TEMPLATE-LINKS-001, Liens visibles selon connexion.
  • FT-35-PHASE-REVIEW-001, Revue de phase pages protégées.

FT-36 : RBAC

Objectif : tester rôles, permissions et autorisation serveur.

Tickets

  • FT-36-RBAC-ROLE-CREATE-001, Créer un rôle.
  • FT-36-RBAC-PERMISSION-CREATE-001, Créer une permission.
  • FT-36-RBAC-ASSIGN-USER-001, Assigner un rôle à un utilisateur.
  • FT-36-RBAC-PROTECT-ROUTE-001, Protéger une route.
  • FT-36-RBAC-PROTECT-CRUD-001, Protéger un CRUD.
  • FT-36-RBAC-FORBIDDEN-001, Accès sans permission.
  • FT-36-RBAC-BYPASS-POST-001, POST manuel sans permission.
  • FT-36-PHASE-REVIEW-001, Revue de phase RBAC.

FT-37 : Diagnostics d’erreurs applicatives

Objectif : vérifier que les erreurs sont compréhensibles.

Tickets

  • FT-37-ERROR-404-001, Tester une page absente.
  • FT-37-ERROR-CONTROLLER-001, Casser un contrôleur.
  • FT-37-ERROR-TEMPLATE-001, Casser un template.
  • FT-37-ERROR-SQL-001, Provoquer une erreur SQL.
  • FT-37-ERROR-ENTITY-001, Casser une entité.
  • FT-37-ERROR-LOG-FILE-001, Retrouver l’erreur dans les logs.
  • FT-37-ERROR-NO-SECRETS-001, Vérifier l’absence de secrets dans l’erreur.
  • FT-37-PHASE-REVIEW-001, Revue de phase diagnostics erreurs.

FT-38 : Mode production local

Objectif : préparer le passage hors développement.

Tickets

  • FT-38-PROD-CONFIG-001, Configurer un mode production local.
  • FT-38-PROD-DEBUG-OFF-001, Désactiver le debug.
  • FT-38-PROD-SECRET-KEY-001, Vérifier la clé secrète.
  • FT-38-PROD-STATIC-001, Tester les fichiers statiques.
  • FT-38-PROD-MEDIA-001, Tester les médias.
  • FT-38-PROD-HEADERS-001, Vérifier les headers de sécurité.
  • FT-38-PHASE-REVIEW-001, Revue de phase production locale.

FT-39 : Déploiement serveur

Objectif : vérifier qu’une application Forge peut être déployée.

Tickets

  • FT-39-DEPLOY-DEBIAN-PREP-001, Préparer une VM Debian.
  • FT-39-DEPLOY-APP-INSTALL-001, Installer l’application Forge.
  • FT-39-DEPLOY-VENV-001, Créer l’environnement Python serveur.
  • FT-39-DEPLOY-ENV-001, Configurer l’environnement serveur.
  • FT-39-DEPLOY-MARIADB-001, Connecter MariaDB serveur.
  • FT-39-DEPLOY-RUN-001, Lancer l’application.
  • FT-39-DEPLOY-LOGS-001, Lire les logs serveur.
  • FT-39-DEPLOY-RESTART-001, Redémarrer l’application.
  • FT-39-PHASE-REVIEW-001, Revue de phase déploiement.

FT-40 : Mise à jour et maintenance

Objectif : tester l’évolution d’un projet Forge.

Tickets

  • FT-40-MAINTAIN-ADD-PAGE-001, Ajouter une page après coup.
  • FT-40-MAINTAIN-ADD-FIELD-001, Ajouter un champ à une entité.
  • FT-40-MAINTAIN-REGENERATE-001, Régénérer sans perdre le code manuel.
  • FT-40-MAINTAIN-UPDATE-FORGE-001, Mettre à jour Forge.
  • FT-40-MAINTAIN-ROLLBACK-001, Tester un retour arrière simple.
  • FT-40-MAINTAIN-DOC-GAPS-001, Identifier les manques de documentation maintenance.
  • FT-40-PHASE-REVIEW-001, Revue de phase maintenance.

FT-41 : Mini-projet guidé complet

Objectif : assembler les briques dans une application cohérente.

Tickets

  • FT-41-MINIAPP-SCOPE-001, Définir le mini-projet.
  • FT-41-MINIAPP-INSTALL-001, Préparer l’environnement.
  • FT-41-MINIAPP-PUBLIC-001, Créer la partie publique.
  • FT-41-MINIAPP-FORM-001, Ajouter un formulaire public.
  • FT-41-MINIAPP-ENTITIES-001, Créer les entités.
  • FT-41-MINIAPP-MIGRATIONS-001, Appliquer les migrations.
  • FT-41-MINIAPP-CRUD-001, Générer le back-office.
  • FT-41-MINIAPP-RELATIONS-001, Ajouter des relations.
  • FT-41-MINIAPP-MEDIA-001, Ajouter des médias.
  • FT-41-MINIAPP-AUTH-001, Ajouter une zone protégée.
  • FT-41-MINIAPP-REVIEW-001, Faire le bilan guidé.

FT-42 : Projet autonome

Objectif : vérifier que le testeur peut utiliser Forge sans procédure détaillée.

Tickets

  • FT-42-AUTONOMOUS-BRIEF-001, Donner un objectif applicatif simple.
  • FT-42-AUTONOMOUS-CREATE-001, Créer le projet.
  • FT-42-AUTONOMOUS-CONFIG-001, Configurer l’environnement.
  • FT-42-AUTONOMOUS-DATA-001, Créer le modèle de données.
  • FT-42-AUTONOMOUS-PAGES-001, Créer les pages nécessaires.
  • FT-42-AUTONOMOUS-CRUD-001, Générer et adapter le CRUD.
  • FT-42-AUTONOMOUS-DEBUG-001, Résoudre une erreur rencontrée.
  • FT-42-AUTONOMOUS-FINAL-REPORT-001, Produire le retour final.

FT-43 : Consolidation des retours terrain

Objectif : transformer les retours en décisions exploitables.

Tickets

  • FT-43-FEEDBACK-COLLECT-001, Centraliser tous les retours.
  • FT-43-FEEDBACK-NORMALIZE-001, Normaliser les retours.
  • FT-43-FEEDBACK-SEVERITY-001, Classer par gravité.
  • FT-43-FEEDBACK-DUPLICATES-001, Fusionner les doublons.
  • FT-43-FEEDBACK-BLOCKERS-001, Identifier les bloquants.
  • FT-43-FEEDBACK-DOC-ISSUES-001, Identifier les problèmes documentaires.
  • FT-43-FEEDBACK-OFFICIAL-DOC-ERRORS-001, Isoler les erreurs de documentation officielle bloquantes ou trompeuses.
  • FT-43-FEEDBACK-CORRECTIVE-TICKETS-001, Créer les tickets correctifs.
  • FT-43-PHASE-REVIEW-001, Revue de phase consolidation.

FT-44 : Conversion des tickets validés en tutoriels

Objectif : transformer les tickets FT validés en pages tutoriels utilisables dans la documentation Forge.

Tickets

  • FT-44-TUTORIAL-SELECTION-001, Identifier les tickets FT validés pouvant devenir tutoriels.
  • FT-44-TUTORIAL-CONVERSION-RULES-001, Définir la transformation ticket FT vers page tutoriel.
  • FT-44-TUTORIAL-DOC-ERROR-CHECK-001, Vérifier qu’aucune erreur documentaire connue ne passe dans les tutoriels.
  • FT-44-TUTORIAL-INSTALLATION-001, Créer les tutoriels issus des tickets d’installation validés.
  • FT-44-TUTORIAL-CONFIG-DB-001, Créer les tutoriels environnement et MariaDB.
  • FT-44-TUTORIAL-FIRST-PAGES-001, Créer les tutoriels route, contrôleur et template.
  • FT-44-TUTORIAL-FRONT-001, Créer les tutoriels Jinja, Tailwind, HTMX et Alpine.
  • FT-44-TUTORIAL-DATA-CRUD-001, Créer les tutoriels entités, SQL, migrations et CRUD.
  • FT-44-TUTORIAL-AUTH-SECURITY-001, Créer les tutoriels auth, RBAC et sécurité.
  • FT-44-TUTORIAL-DEPLOY-MAINTAIN-001, Créer les tutoriels déploiement et maintenance.
  • FT-44-TUTORIAL-MKDOCS-NAV-001, Ajouter le menu Tutoriels dans MkDocs.
  • FT-44-TUTORIAL-STRICT-BUILD-001, Valider la documentation avec mkdocs build --strict.
  • FT-44-PHASE-REVIEW-001, Revue de phase conversion documentation.

FT-45 : Décision bêta ou stable

Objectif : décider objectivement si Forge peut sortir de bêta.

Tickets

  • FT-45-STABLE-CRITERIA-001, Définir les critères de stabilité.
  • FT-45-INSTALL-READINESS-001, Vérifier la maturité installation.
  • FT-45-DOC-READINESS-001, Vérifier la maturité documentation.
  • FT-45-USAGE-READINESS-001, Vérifier la maturité usage réel.
  • FT-45-BLOCKERS-REVIEW-001, Vérifier les bloquants restants.
  • FT-45-BETA-EXTEND-DECISION-001, Décider si la bêta continue.
  • FT-45-STABLE-GO-NOGO-001, Décider stable ou non.

Résumé synthétique

FT-00  Cadre de campagne
FT-01  Installation
FT-02  Configuration environnement
FT-03  MariaDB système
FT-04  Connexion Forge à MariaDB
FT-05  Premier projet
FT-06  Architecture projet
FT-07  Routes
FT-08  Contrôleurs
FT-09  Premier template
FT-10  Templates Jinja
FT-11  Layout public
FT-12  Tailwind
FT-13  Formulaires publics
FT-14  CSRF
FT-15  HTMX
FT-16  Alpine.js
FT-17  Mail développement
FT-18  CLI
FT-19  Diagnostics CLI
FT-20  Routes via CLI
FT-21  Entités JSON
FT-22  Modèles générés/manuels
FT-23  SQL visible
FT-24  Migrations
FT-25  CRUD génération
FT-26  CRUD utilisation
FT-27  CRUD validation/erreurs
FT-28  CRUD recherche/tri/pagination
FT-29  CRUD filtres/export
FT-30  Relations simples
FT-31  Relations avancées
FT-32  Médias/uploads
FT-33  Sécurité uploads
FT-34  Authentification
FT-35  Pages protégées
FT-36  RBAC
FT-37  Diagnostics erreurs applicatives
FT-38  Production locale
FT-39  Déploiement serveur
FT-40  Maintenance
FT-41  Mini-projet guidé
FT-42  Projet autonome
FT-43  Consolidation retours
FT-44  Conversion tickets validés en tutoriels
FT-45  Décision bêta/stable