Project

General

Profile

Actions

Feature #83

closed
CD

Corriger la reconnaissance automatique des champs lors du scan d'étiquettes

Feature #83: Corriger la reconnaissance automatique des champs lors du scan d'étiquettes

Added by Client Dashboard about 2 months ago. Updated about 1 month ago.

Status:
Shipped
Priority:
Normal
Assignee:
-
Start date:
06/12/2026
Due date:
% Done:

100%

Estimated time:
spec_ref:

## Bug — Reconnaissance automatique des champs lors du scan d'étiquettes

### Problème
La fenêtre « Enregistrer une étiquette » (composant scan HACCP/catering sous src/components/) ne pré-remplit pas les champs depuis l'image scannée. 3 champs attendus : Nom du produit, Date de péremption (JJ/MM/AAAA), Numéro de lot.

### Cause probable
Parcours : modal scan (front) → upload image → base44.functions.invoke(fonction d'extraction) → LlmPort / adaptateur OpenAI (gpt-4o vision) dans server/src/infrastructure/llm/. Bug à l'une/les deux jointures :
1. Backend : la fonction ne renvoie pas les 3 champs en JSON structuré stable, ou la date n'est pas normalisée JJ/MM/AAAA.
2. Frontend : le résultat n'est pas mappé dans l'état du formulaire (setState/setValue non appelés ou mauvais mapping de clés).

### Approche
1. Backend : passer l'image au LlmPort (gpt-4o vision) avec un prompt demandant un JSON structuré { nomProduit, datePeremption, numeroLot } en français ; normaliser la date en JJ/MM/AAAA côté serveur ; renvoyer null/vide pour tout champ non reconnu (jamais d'invention).
2. Frontend : après réception, mapper chaque champ reconnu dans l'état (champs éditables) ; champ non reconnu → vide + message discret « Non reconnu – merci de compléter. » sous le champ.
3. NE PAS toucher aux permissions (aucun rls/auth modifié).
4. Le flux de submit existant ne change pas.

### Critères d'acceptation
- Pré-remplissage auto d'au moins un des 3 champs dans 90% des cas (étiquettes lisibles) ; champs éditables ; non reconnu → vide + message discret ; date JJ/MM/AAAA ; enregistrement possible après correction ; aucun changement de permissions.
- Tests : parsing/normalisation côté server (date, champs manquants) ; lint + typecheck verts.

### Portée : un seul flux cohérent (extraction → mapping). Pas de découpage.

build_status:
build_number:
ci_run_url:
scan_status:
scan_report_url:
deploy_status:
deployed
preprod_url:
deployed_at:
06/23/2026
branch:
fix/83-label-scan
pr_url:
https://github.com/Scobby-organisation/scobby/pull/5
security_key:
severity:
paused:

Description

### Problème
Actuellement, l'outil de scan d'étiquettes dans la fenêtre *"Enregistrer une étiquette"* ne remplit **pas automatiquement** les champs attendus à partir de l'image scannée. Les utilisateurs doivent saisir manuellement les informations, ce qui annule l'utilité de la fonctionnalité de reconnaissance.

### Contexte
L'outil doit extraire et remplir automatiquement trois champs spécifiques à partir d'une étiquette scannée :
- **Nom du produit** (ex. : "Filet de bœuf 200g")
- **Date de péremption** (format JJ/MM/AAAA)
- **Numéro de lot** (ex. : "LOT-2026-4567")

Les permissions d'accès à cette fonctionnalité sont déjà gérées et ne nécessitent pas de modification.

### Comportement proposé
1. **Remplissage automatique** : Le scan doit pré-remplir les trois champs avec les données reconnues dans l'image.
2. **Édition manuelle** : Les champs doivent rester éditables pour permettre à l'utilisateur de corriger ou compléter les informations.
3. **Gestion des erreurs** : Si une information n'est pas reconnue (ex. : numéro de lot illisible), le champ reste vide et un message discret apparaît en dessous : *"Non reconnu – merci de compléter."* (en gris clair).
4. **Format de date** : La date doit être affichée au format **JJ/MM/AAAA** (ex. : 15/06/2026).
5. **Validation** : L'utilisateur peut enregistrer l'étiquette après vérification ou correction des champs.

## Acceptance criteria
- [ ] Le scan remplit automatiquement au moins un des trois champs (Nom du produit, Date de péremption, Numéro de lot) dans 90% des cas pour des étiquettes lisibles.
- [ ] Les champs pré-remplis sont éditables et peuvent être corrigés manuellement par l'utilisateur.
- [ ] Si une information n'est pas reconnue, le champ reste vide et un message discret apparaît en dessous : *"Non reconnu – merci de compléter."*
- [ ] La date de péremption est affichée au format **JJ/MM/AAAA** (ex. : 15/06/2026).
- [ ] L'utilisateur peut enregistrer l'étiquette après avoir vérifié ou corrigé les champs.
- [ ] Aucun changement n'est requis sur les permissions d'accès à la fonctionnalité.

## Classification
- bug

## Complexity
- 6/10 — La correction implique des ajustements dans la logique de reconnaissance d'image et l'intégration avec le formulaire, ainsi que des tests pour valider la précision de la reconnaissance.


Files

Actions

Also available in: PDF Atom