Système d'enregistrements dynamiques
API Laravel permettant de définir des modèles de saisie à l'exécution, puis de collecter et valider des enregistrements sans écrire de code.
Aperçu de l'architecture
erDiagram
TEMPLATE ||--o{ FIELD : definit
FIELD ||--o{ OPTION : propose
TEMPLATE ||--o{ RECORD : produit
RECORD ||--o{ VALUE : contient
FIELD ||--o{ VALUE : type
OPTION ||--o{ VALUE : contraint
USER ||--o{ RECORD : cree
Un moteur de saisie générique. Plutôt que de modéliser un domaine, il modélise l'acte de modéliser : un administrateur définit un modèle, lui donne des champs d'un type choisi, et le système accepte, valide puis stocke les enregistrements correspondants. Ajouter un nouveau formulaire ne demande ni migration ni déploiement.
Le schéma sépare modèles, champs, options, enregistrements et valeurs : un champ de type liste, radio ou case à cocher tire ses réponses possibles d'un jeu d'options prédéfini, et chaque valeur stockée est contrôlée par rapport à ce jeu. Conçu à l'origine pour des dossiers médicaux, le modèle reste indépendant du domaine.
Fonctionnalités clés :
- Création de modèles à l'exécution, champs nommés, ordonnés, requis ou non
- Sept types de champ : texte, liste, radio, case à cocher, date, nombre, booléen
- Jeux d'options adossés à chaque champ de choix, contrôlés à l'écriture
- Validation automatique des champs requis et des valeurs autorisées
- Enregistrements regroupés et interrogés par modèle
- Rôles administrateur et utilisateur aux permissions distinctes
- Conception API-first avec authentification par jeton via Laravel Sanctum
Stack technique :
- Backend : Laravel, PHP, Sanctum
- Vues : Blade
- Base de données : MySQL