0% ont trouvé ce document utile (0 vote)
1 vues122 pages

wQgo4d6Zf2i3yRcBE7moGKZwbkorrceyl2jXhXE8

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1/ 122

Ministère de l’Enseignement Supérieur et de la Recherche Scientifique

Direction Générale des Etudes Technologiques


Institut Supérieur des Etudes Technologiques de Bizerte
Département Technologies de l'Informatique

Référence Dép. TI
AN 2023
N° DSI2305

Rapport de
PROJET DE FIN D’ETUDES
En vue de l’obtention de :
Licence Appliquée en Développement des Systèmes d’Information
« DSI »

Développement d’une application web et desktop de scanne et de


classement des factures avec la reconnaissance optique des caractères

Elaboré par :

Mossab Weda
&
Mohamed Nour Bensalah

Encadré par :

Mme Anissa Chalouah (ISET)


Mr Ridha Ghouli (ENTREPRISE)

Effectué à :

Entreprise : METAM TECH TUNISIE

• Adresse: Blvd de l’Union du Maghreb Arabe, 7080 Menzel Jemil, Bizerte,


• Menzel Abderrahmane 7080
• Tel : +1 514-458-7787
• Mail : info@metam.tech

Année universitaire: 2022/202


Dédicaces

Ce petit exploit est la conséquence de tous les sacrifices que tu as faits pour mon éducation
et mon développement, mon père Ezzedine Bensalah. Je tiens à vous exprimer ma gratitude
pour ton amour, ta générosité et ta compréhension.

Mounira, ma mère bien-aimée, tes encouragements ont été une lumière qui m'a guidé tout au
long de mon parcours. Aucun travail ne pourra jamais refléter l'amour, l'estime et le respect que
j'ai pour toi.

J'espère que ce travail sera un cadeau de gratitude à mes merveilleux frères et sœurs,
Moetez, Manel et Mariem, pour tous nos souvenirs d'enfance que nous avons eus. Vous avez
toujours été là pour moi, me réconfortant et m'encourageant. Que Dieu vous garde en sécurité.

Aucun mot ne peut exprimer pleinement ma gratitude envers toute la famille Bensalah pour
son soutien et ses encouragements. Je vous dédie ce travail en remerciement de l'amour et de
l'attention que vous me témoignez régulièrement. Que Dieu Tout-puissant vous protège et vous
accorde santé et bonheur.

À mes chers amis, les mots me manquent pour décrire mes sentiments et mes pensées à votre
égard. Vous êtes les plus proches et les plus mignons de moi. Je vous souhaite santé et bonheur
dans votre vie.

Mohamed Nour Ben Salah


Dédicaces

Ce petit exploit est la conséquence de tous les sacrifices que tu as faits pour mon éducation
et mon développement, Adnen Weda. Je tiens à t'exprimer ma gratitude pour ton amour, ta
générosité et ta compréhension.

Rim, ma mère bien-aimée, tes encouragements ont été une lumière qui m'a guidé tout au
long de mon parcours. Aucun travail ne pourra jamais refléter l'amour, l'estime et le respect que
j'ai pour toi.

J'espère que ce travail sera un cadeau de gratitude à mon merveilleux frère Souhaib pour
tous nos souvenirs d'enfance que nous avons eus. Tu as toujours été là pour moi, me réconfortant
et m'encourageant. Que Dieu vous garde en sécurité.

Aucun mot ne peut exprimer pleinement ma gratitude envers toute la famille Weda pour son
soutien et ses encouragements. Je vous dédie ce travail en remerciement de l’amour et de
l’attention que vous me témoignez régulièrement. Que Dieu tout-puissant vous protège et vous
accorde santé et bonheur.

À mes chers amis, les mots me manquent pour décrire mes sentiments et mes pensées à votre
égard. Vous êtes les plus proches et les plus mignons de moi. Je vous souhaite santé et bonheur
dans votre vie.

Mossab Weda
Remerciements

C'est avec grand plaisir que nous exprimons notre profonde gratitude et notre
appréciation à tous ceux qui ont contribué directement ou indirectement à l'élaboration de ce
travail.

Nous avons eu le privilège de travailler sous la supervision de Mme Anissa Chalouah,


une enseignante dévouée de l'Institut supérieur des études technologiques de Bizerte. Nous
tenons à la remercier chaleureusement pour son engagement indéfectible et ses précieux
commentaires durant notre stage, qui ont joué un rôle essentiel dans la réussite de ce travail.
Nous espérons être à la hauteur de la confiance qu'elle nous a accordée.

Nous sommes également reconnaissants envers Mr Ridha Ghouili, notre superviseur


industriel de Metam Tech Tunisie, pour son investissement généreux en temps, ses conseils et
ses précieuses informations au cours de notre stage, qui ont été déterminants pour notre
croissance et notre développement.

De plus, nous aimerions exprimer notre reconnaissance envers Mr Jason Li pour son
soutien et ses conseils inestimables tout au long de notre stage.

Enfin, nous tenons à remercier les membres du jury pour leur intérêt envers notre travail
et leur engagement à l'évaluer, ainsi que tous les enseignants de l'Institut supérieur des études
technologiques de Bizerte pour leur dévouement tout au long de nos années universitaires.
Table des matières
Introduction Générale ............................................................................................................ 1

Chapitre 1 : Présentation du cadre du projet .......................................................................... 3

INTRODUCTION .............................................................................................................................................. 4
I. PRÉSENTATION DE L’ORGANISME D’ACCUEIL........................................................................................ 4
II. PRÉSENTATION DU PROJET .................................................................................................................... 5
II.1. Étude de l’existant ...................................................................................................................... 5
II.2. Analyse de l’existant.................................................................................................................... 5
II.3. Solution proposée ....................................................................................................................... 5
III. MÉTHODOLOGIES ET FORMALISME ADOPTÉ .......................................................................................... 6
III.1. Le langage de modélisation (UML) ............................................................................................ 6
III.2. Méthodologie de travail ............................................................................................................ 7
III.2.1. Pourquoi Scrum ? ..................................................................................................................................7
III.2.2. L’équipe Scrum ...................................................................................................................................8
IV. TECHNOLOGIES ET OUTILS DE TRAVAIL .............................................................................................. 9
IV.1. Environnement matériel .............................................................................................................. 9
IV.2. Environnement logiciel ............................................................................................................. 11
IV.2.1. Choix techniques .................................................................................................................. 16
V. ARCHITECTURE DE L’APPLICATION ..................................................................................................... 17
CONCLUSION .............................................................................................................................................. 18

Chapitre 2 : Etat de l’art ....................................................................................................... 19

INTRODUCTION ............................................................................................................................................ 20
I. MICROSOFT AZURE COGNITIVE SERVICE ........................................................................................... 20
II. LA RECONNAISSANCE OPTIQUE DE CARACTÈRES (OCR) ..................................................................... 20
ETUDE COMPARATIVE ENTRE LES OUTILS OCR AZURE........................................................................... 21
III.1. Test et Analyse des outils (les solutions) .................................................................................. 21
III.2. Pourquoi Azure Form Recognizer ?.......................................................................................... 21
III. CONSOMMATION D’API FROM RECOGNIZER ................................................................................... 22
IV. C’EST QUE NEURAL NETWORK ? ................................................................................................. 24
V. NEURAL NETWORK MICROSOFT AZURE ............................................................................................. 24
CONCLUSION ............................................................................................................................................... 25

Chapitre 3 : Planification du Backlog Produit ..................................................................... 26

INTRODUCTION ............................................................................................................................................ 27
I. IDENTIFICATION DES PROFILS UTILISATEURS....................................................................................... 27
II. LES BESOINS NON FONCTIONNELS ....................................................................................................... 28
III. LES USER STORIES .............................................................................................................................. 28
IV. PRODUCT BACKLOG ............................................................................................................................ 31
CONCLUSION ............................................................................................................................................... 34

Chapitre 4 : Release 1 .......................................................................................................... 35

INTRODUCTION ............................................................................................................................................ 36
I. ORGANISATION DES SPRINTS ............................................................................................................... 36
II. SPRINT 1 « ETUDE DE L’ENVIRONNEMENT » ....................................................................................... 36
II.1. Sprint Goal ................................................................................................................................ 36
II.2. Sprint Backlog .......................................................................................................................... 37
II.3. Implémentation du sprint .......................................................................................................... 37
III.4. Sprint Review ........................................................................................................................... 40
III.5. Sprint Rétrospective .................................................................................................................. 41
III. SPRINT 2 « CHOIX DE LA SOLUTION OPTIMALE » ................................................................................. 41
III.1. Sprint Goal ................................................................................................................................ 41
III.2. Sprint Backlog .......................................................................................................................... 41
III.3. Implémentation du sprint .......................................................................................................... 41
Pourquoi Azure Form Recognizer ? ....................................................................................................... 48
III.4. Sprint Review ......................................................................................................................... 48
III.5. Sprint Rétrospective ................................................................................................................ 48
IV. SPRINT 3 « GESTION ET NUMÉRISATION DES FACTURES » ................................................................... 49
IV.1. Sprint Goal ................................................................................................................................ 49
IV.2. Sprint Backlog .......................................................................................................................... 49
IV.3. Implémentation du sprint .......................................................................................................... 50
IV.3.1. Expression des besoins ..................................................................................................................50
IV.3.2. Analyse de sprint 3.........................................................................................................................51
IV.3.3. Conception du sprint 3 ...................................................................................................................52
IV.3.4. Implémentation ...............................................................................................................................55
IV.3.5. Test ................................................................................................................................................56
IV.7. Sprint Review ........................................................................................................................... 57
IV.8. Sprint Rétrospective .................................................................................................................. 59
CONCLUSION ............................................................................................................................................... 59

Chapitre 5 : Release 2 .......................................................................................................... 60

INTRODUCTION ............................................................................................................................................ 61
I. ORGANISATION DES SPRINTS .................................................................................................................. 61
II. SPRINT 4 « INTERFAÇAGE DE L’APPLICATION DE LABELLING » ........................................................... 61
II.1. Sprint Goal ................................................................................................................................ 61
II.2. Sprint Backlog .......................................................................................................................... 62
II.3. Implémentation du sprint 4 ....................................................................................................... 62
II.4. Sprint Review ........................................................................................................................... 64
II.5. Sprint Rétrospective .................................................................................................................. 64
III. SPRINT 5 « ANALYSE ET ENTRAÎNEMENT DE MODÈLES DE FACTURES »............................................. 64
III.1. Sprint Goal ................................................................................................................................ 64
III.2. Sprint Backlog .......................................................................................................................... 65
III.3. Implémentation du sprint 5 ....................................................................................................... 65
Expression des besoins........................................................................................................................................65
II.3.2. Analyse du sprint 5..............................................................................................................................67
III.3.3. Conception du sprint 5 ........................................................................................................................68
III.3.4. Implémentation ...................................................................................................................................71
III.3.5. Test......................................................................................................................................................71
III.4. Sprint Review ........................................................................................................................... 72
III.5. Sprint Rétrospective .................................................................................................................. 74
CONCLUSION ............................................................................................................................................... 74

Chapitre 6 : Release 3 .......................................................................................................... 75

INTRODUCTION ............................................................................................................................................ 76
I. ORGANISATION DES SPRINTS ............................................................................................................... 76
II. SPRINT 6 « GESTION DES MODÈLES ET DES DONNÉES D'ENTRAÎNEMENT. ».......................................... 76
II.1. Sprint Goal ............................................................................................................................... 76
II.2. Sprint Backlog ......................................................................................................................... 77
II.3. Implémentation du sprint 6 ...................................................................................................... 77
II.3.1. Expression des besoins ........................................................................................................................78
II.3.2. Analyse de sprint 6 ..............................................................................................................................80
II.3.3. Conception du sprint 6 ........................................................................................................................81
II.3.4. Implémentation ...................................................................................................................................86
II.3.5. Test......................................................................................................................................................87
II.4. Sprint Review ........................................................................................................................... 88
II.5. Sprint Rétrospective .................................................................................................................. 90
III. SPRINT 7 « MODULE DE GESTION DU RÉFÉRENTIEL ET DES FICHIERS DANS AZURE BLOB STORAGE » . 90
III.1. Sprint Goal ............................................................................................................................... 90
III.2. Sprint Backlog ......................................................................................................................... 90
II.3. Implémentation du sprint 7 ...................................................................................................... 91
III.3.1. Expression des besoins ........................................................................................................................91
III.3.2. Analyse de sprint 7 ..............................................................................................................................93
III.3.3. Conception du sprint 7 ........................................................................................................................94
III.3.4. Implémentation ...................................................................................................................................95
III.4. Sprint Review ........................................................................................................................... 96
III.5. Sprint Rétrospective ................................................................................................................ 100
CONCLUSION ............................................................................................................................................. 100

Conclusion Générale .......................................................................................................... 103


Liste des figures
Figure 1 : Logo de l’entreprise Metam Tech ......................................................................... 4
Figure 2: Organigramme de Metam....................................................................................... 4
Figure 3: Modèle UML .......................................................................................................... 7
Figure 4: Méthode SCRUM ................................................................................................... 7
Figure 5 : L'équipe Scrum...................................................................................................... 8
Figure 6: Caractéristiques du PC de Mohamed Nour .......................................................... 10
Figure 7: Caractéristiques du PC de Mossab ....................................................................... 10
Figure 8: Visual Studio logo ................................................................................................ 11
Figure 9: Visual Studio Code logo ...................................................................................... 11
Figure 10: GitHub logo ........................................................................................................ 12
Figure 11: Draw io logo ....................................................................................................... 12
Figure 12: Jira logo .............................................................................................................. 13
Figure 13: ASP.NET logo .................................................................................................... 13
Figure 14: C# logo ............................................................................................................... 13
Figure 15: PWA Logo.......................................................................................................... 14
Figure 16: Blazor logo ......................................................................................................... 14
Figure 17 : JavaScript logo .................................................................................................. 14
Figure 18: Microsoft Azure logo ......................................................................................... 15
Figure 19: React JS Logo..................................................................................................... 15
Figure 20: Python logo ........................................................................................................ 15
Figure 21: SQL Server logo ................................................................................................. 16
Figure 22: Architecture MVC .............................................................................................. 17
Figure 23: Diagramme de déploiement ............................................................................... 18
Figure 24: Diagramme de reconnaissance optique des caractères ....................................... 21
Figure 25: Les étapes de consommation de l'API Form Recognizer ................................... 23
Figure 26: Architecture Microsoft Azure Form Recognizer ............................................... 23
Figure 27: Neural Network Sample example ...................................................................... 24
Figure 28: Organisation des releases ................................................................................... 34
Figure 29: Release 1 ............................................................................................................ 36
Figure 30: Installation.NET ................................................................................................ 37
Figure 31 : Installation Visual Studio 2022 ......................................................................... 38
Figure 32 : Microsoft SQL Server Management Studio 18 ................................................. 38
Figure 33: Les recherches demandées ................................................................................. 39
Figure 34 : Présentation sur les outils OCR Microsoft Azure 1 .......................................... 39
Figure 35 : l'application "Render-Fragment" ....................................................................... 40
Figure 36 : Entrainement des factures ................................................................................. 40
Figure 37: Création du service computer vision .................................................................. 42
Figure 38: Génération de la clé d'API.................................................................................. 43
Figure 39: Extraction des données d'un document .............................................................. 43
Figure 40: Extraction des données d'une image 1................................................................ 44
Figure 41: Extraction des données d'une image 2................................................................ 44
Figure 42: Création d’un Storage Account .......................................................................... 45
Figure 43: Création d’un conteneur de stockage* ............................................................... 46
Figure 44: Importer les factures ........................................................................................... 46
Figure 45: Indication des champs ........................................................................................ 47
Figure 46: Test avec Form Recognizer ................................................................................ 47
Figure 47: Diagramme de cas d’utilisation de « Gestion et numérisation des factures » .... 50
Figure 48 : Diagramme de classe de la « Gestion et numérisation des factures » ............... 51
Figure 49 : Diagramme de classes participante de « Upload document » ........................... 52
Figure 50 : Diagramme de classe participante de « Extraire les données des factures »..... 52
Figure 51: Diagramme de séquence de conception "Scanner une facture" ......................... 53
Figure 52: Diagrammes de séquence de conception de « suppression d’un document
téléchargé » .......................................................................................................................... 53
Figure 53: Diagramme de classe de conception de « Scanner une facture » ....................... 54
Figure 54: Diagramme de classe de conception de « Consultation et suppression des
documents téléchargées » .................................................................................................... 55
Figure 55: Diagramme de composant de « Gestion et numérisation des factures » ............ 55
Figure 56 : Test postman de "Chercher un document" ........................................................ 56
Figure 57: Test Postman de "Visualiser les documents" ..................................................... 56
Figure 58 : Page Scan Facture ............................................................................................. 57
Figure 59 : Page ModelAnalysis .......................................................................................... 58
Figure 60 : Visualisation des fichiers importées .................................................................. 58
Figure 61: Release 2 ............................................................................................................ 61
Figure 62: Les modifications de l’application de labelling desktop .................................... 62
Figure 63: Les modifications de l’application de labelling web .......................................... 63
Figure 64 : Modifications front-end de la page d'entrainement ........................................... 63
Figure 65 : Modifications front-end de la page d'entrainement ........................................... 64
Figure 66: Diagramme de cas d’utilisation du sprint 5 ........................................................ 65
Figure 67: Diagramme de séquence de « Créer un modèle » .............................................. 67
Figure 68: Diagramme de classe « Analyse et Entraînement de Modèles de Factures » .... 67
Figure 69: Diagrammes de classe participante de « Visualiser les résultats d’analyse » .... 68
Figure 70: Diagrammes de classe participante de « Créer un modèle » .............................. 68
Figure 71 : Diagramme de séquence de conception de « Visualiser les résultats d'analyse »
.................................................................................................................................................. 69
Figure 72 : Diagrammes de classe de conception de « Créer un modèle » ......................... 70
Figure 73 : Diagrammes de classe de conception de « Visualiser les résultats d’analyse » 70
Figure 74: Diagramme de composant de sprint 5 ................................................................ 71
Figure 75 : Test de création du modèle................................................................................ 71
Figure 76 : La recherche d'un modèle .................................................................................. 72
Figure 77 : La création d'un modèle .................................................................................... 73
Figure 78 : L'entrainement d'un modèle .............................................................................. 73
Figure 79 : La visualisation des résultats d'analyse ............................................................. 74
Figure 80: Release 3 ............................................................................................................ 76
Figure 81: Diagramme de cas d’utilisation du Sprint 6 ....................................................... 78
Figure 82: Diagramme de classe de sprint 6 ........................................................................ 80
Figure 83 : Diagramme de classe participante de « Test des modèles de factures » ........... 80
Figure 84 : Diagramme de classe participante de « Suppression sélective des modèles » .. 81
Figure 85: Diagramme de cas d’utilisation de « Suppression sélective des modèles » ....... 81
Figure 86: Diagramme de cas d’utilisation de « Test des modèles de factures » ................ 82
Figure 87: Diagramme de cas d’utilisation de « Fusion des modèles existants » ............... 82
Figure 88: Diagramme de séquence de conception de « Suppression sélective des
modèles»………………………………………………………………………………….. 83
Figure 89: Diagramme séquence de conception de « Fusion des modèles existants » ........ 84
Figure 90: Diagramme de classe de conception de « Test des modèles de factures » ......... 85
Figure 91 : Diagramme de classe de conception de « Suppression sélective des modèles »..85
Figure 92 : Diagramme de composant de « Gestion des modèles et des données
d'entraînement » ................................................................................................................... 86
Figure 93 : Test de la récupération d’un modèle avec id ..................................................... 87
Figure 94 : Test de la visualisation des modèles ................................................................. 87
Figure 95: Test la suppression du modèle ........................................................................... 88
Figure 96 : Fusionnement des modèles................................................................................ 88
Figure 97 : L'affichage des modèles .................................................................................... 89
Figure 98 : Supprimer un modèle ........................................................................................ 89
Figure 99 : Diagramme de cas d’utilisation du sprint 7 ....................................................... 91
Figure 100 : diagramme de classe du sprint 7 ..................................................................... 93
Figure 101 : Diagramme de classe participante de « Upload Document dans le Blob Storage
» ........................................................................................................................................... 94
Figure 102 : Diagramme de séquence « Importer un fichier dans le Blob Storage » .......... 94
Figure 103 : Diagramme de classe conception « Visualiser les fichiers importés dans le Blob
Storage ................................................................................................................................. 95
Figure 104 : Diagramme de composant du sprint 7 ............................................................. 95
Figure 105 : la création du Blob Storage ............................................................................. 96
Figure 106 : la configuration du Blob Storage .................................................................... 97
Figure 107 : chargement des fichiers du projet.................................................................... 97
Figure 108 : hébergement de l'application ........................................................................... 98
Figure 109 : Affichage d'un fichier dans le Blob Storage.................................................... 98
Figure 110 : importer un fichier dans le Blob Storage ........................................................ 99
Figure 111 : Affichage de la liste des fichiers Blob Storage ............................................... 99
Figure 112 : Diagramme de cas d’utilisation générale ...................................................... 101
Figure 113 : Diagramme de classe métier complet ............................................................ 102
Liste des Tableaux
Tableau 1: Comparaison entre les outils OCR..................................................................... 22
Tableau 2: Product Backlog ................................................................................................. 33
Tableau 3 : Sprint Backlog du sprint 1 ................................................................................ 37
Tableau 4:Plan d'amélioration du sprint 1 ........................................................................... 41
Tableau 5: Sprint Backlog du sprint 2 ................................................................................. 41
Tableau 6: Comparaison entre les outils OCR..................................................................... 48
Tableau 7:Plan d'amélioration du sprint 2 ........................................................................... 48
Tableau 8: Sprint Backlog du sprint 3 ................................................................................. 49
Tableau 9 : Description textuelle « Scanner une facture » .................................................. 50
Tableau 10 : Description textuelle « Enregistrer les données des factures » ....................... 51
Tableau 11:Plan d'amélioration du sprint 3 ......................................................................... 59
Tableau 12: Sprint Backlog de sprint 4 ............................................................................... 62
Tableau 13: Plan d'amélioration du sprint 4 ........................................................................ 64
Tableau 14: Sprint Backlog de sprint 5 ............................................................................... 65
Tableau 15: Description textuelle « Créer un modèle » ...................................................... 66
Tableau 16: Description textuelle « Modifier les résultats d’analyse » ............................... 66
Tableau 17 : Plan d'amélioration du sprint 5 ....................................................................... 74
Tableau 18: Sprint Backlog de sprint 6 ............................................................................... 77
Tableau 20: Description textuelle « Suppression sélective des modèles » .......................... 78
Tableau 21: Description textuelle « Fusion des modèles existants » .................................. 79
Tableau 19: Description textuelle « Test des modèles de factures » ................................... 79
Tableau 22: Plan d'amélioration du sprint 6 ........................................................................ 90
Tableau 23: Sprint Backlog de sprint 7 ............................................................................... 90
Tableau 24 : Description textuelle « Télécharger un fichier du Blob Storage » ................. 92
Tableau 25 : Description textuelle « Visualiser les fichiers importés dans le stockage Blob »
.................................................................................................................................................. 92
Tableau 26 : Description textuelle « Supprimer un fichier téléchargé » ............................. 93
Tableau 27 : Plan d'amélioration du sprint 7 ..................................................................... 100
Introduction Générale

La bonne gestion administrative et financière d'une entreprise repose principalement sur


une gestion efficace des factures. De nos jours, la digitalisation des factures joue un rôle
crucial pour assurer une gestion optimale.

Dans le cadre du processus traditionnel, la gestion des factures dans une entreprise se
fait généralement manuellement en commençant par la recherche des factures puis la saisie
des informations de la facture dans des champs dédiés dans des formulaires, ce qui entraîne
une perte de temps, un risque d'erreurs et rend l’activité monotone pour le gestionnaire.

Afin d’améliorer et d'optimiser le processus de la gestion des factures au sein de


l'entreprise, nous avons travaillé durant notre stage sur une solution qui permet de
moderniser et simplifier ces activités traditionnelles.

La solution que nous avons développée est une application desktop web qui permet le
classement et la comptabilisation automatique des factures, en utilisant des techniques de
reconnaissance des caractères (OCR) et de l’intelligence artificielle.

La reconnaissance des caractères (OCR) est une technologie clé pour l'informatisation
des factures et l'automatisation du processus de traitement des factures. Elle permet de
scanner les factures ou les documents numériques contenant du texte, et d'extraire
automatiquement les données pertinentes à partir de ces documents en se basant sur
l'intelligence artificielle.

Pour proposer une solution complète plus pratique pour tous les utilisateurs, nous avons
développé une application web et desktop qui permet de scanner, d’enregistrer les factures
dans la base de données de l'entreprise, ainsi que de consulter la liste des factures
téléchargées.

Cette approche innovante permet d'améliorer l'efficacité et la précision du processus de


gestion des factures.

1
Le présent rapport constitue un récapitulatif de notre activité au sein de l'entreprise pendant
la période de stage. Grâce à ce rapport nous souhaitons vous fournir une vue d'ensemble claire
et professionnelle de notre travail, les activités que nous avons réalisées, les défis que nous
avons pu relever et les solutions que nous avons pu mettre en place.

Pour ce faire, dans le premier chapitre, nous commençons par une présentation de
l’organisme d’accueil et le projet ainsi que le choix de la méthodologie adoptée et les différents
outils de travail.

Le deuxième chapitre présente une étude comparative des différentes solutions OCR qui ont
été testées dans le but de déterminer la meilleure approche.

Nous enchaînons par un troisième chapitre intitulé la « planification du backlog produit »,


suivi de trois chapitres techniques réservés aux trois releases, enfin nous clôturons par une
conclusion générale dont laquelle nous mentionnons les différents atouts de ce projet.

2
Chapitre 1 : Présentation du cadre du projet

3
Chapitre 1 : Présentation du cadre du projet

Introduction
Ce chapitre introductif est consacré à la présentation du contexte général du projet. Nous
présenterons en premier lieu l’organisme d’accueil de notre projet. Ensuite, nous donnerons une
vue d’ensemble de notre projet en expliquant les problématiques à résoudre ainsi que la solution
proposée. Enfin, nous détaillerons la méthodologie que nous adoptons pour la réalisation du
projet.

I. Présentation de l’organisme d’accueil


Metam Tunisie est une entreprise passionnée par Ia technologie. Une organisation
dynamique résolument ouverte sur le monde avec des bureaux au Canada France et en Tunisie.
Spécialisée dans Ia digitalisation des entreprises, implémentation des ERP, intégration ses
systèmes d'information et le développement sur mesure.

00

Figure 1 : Logo de l’entreprise Metam Tech

L'organigramme ci-dessous permet de visualiser la structure hiérarchique et les différents


départements qui composent Metam :

Notre équipe

Figure 2: Organigramme de Metam

4
Chapitre 1 : Présentation du cadre du projet

II. Présentation du projet

II.1. Étude de l’existant

Suite aux différentes discussions avec notre superviseur au sein de la société, plusieurs
problématiques ont été identifiées dans le process actuel de gestion des factures et surtout lors
du traitement et de la classification des factures. Ce processus est complexe et prend beaucoup
de temps, ce qui peut impacter l'efficacité globale de l'entreprise.

Un des problèmes est la comptabilisation manuelle des montants des factures, qui est
effectuée par un gestionnaire dédié qui lui prend beaucoup de temps avec un risque d’erreur
élevé.
Afin de remédier à ce problème, et de rendre ce process plus efficace et précis, il est
crucial de mettre en place un système de traitement automatisé des factures. Cela permettra de
minimiser les erreurs humaines et de libérer du temps pour d'autres tâches plus stratégiques.

II.2. Analyse de l’existant

Les problèmes constatés au niveau de la gestion des factures et leur comptabilisation de


l’entreprise se résument dans les points suivants :
• La perte du temps
• Un surcroît de travail et de stress pour la gestionnaire
• Des erreurs de saisie et de calcul ce qui peut entraver la précision financière de
l'entreprise

II.3. Solution proposée

Le développement d'une application web et desktop pour numériser les factures de la


société pourrait être une stratégie clé pour améliorer les opérations financières. En utilisant la
reconnaissance optique de caractères (OCR) ou des API OCR pour convertir les informations
sur les factures en données numériques, le processus de traitement des factures pourrait être
considérablement accéléré et automatisé.

De plus, en intégrant des algorithmes d'apprentissage automatique pour classer et


comptabiliser les factures, l'application pourrait non seulement rationaliser le processus, mais

5
Chapitre 1 : Présentation du cadre du projet

aussi améliorer la précision des informations financières de l'entreprise. Les algorithmes


pourraient apprendre à partir des données antérieures et les classer automatiquement en fonction
des catégories appropriées, éliminant ainsi les erreurs de saisie manuelle et les retards associés.
L'application serait également pratique pour les employés, qui pourraient scanner les factures
directement sans avoir à les envoyer manuellement à un gestionnaire dédié.

Cela permettrait non seulement d'améliorer la rapidité et l'efficacité du processus, mais


aussi de libérer du temps pour les employés pour se concentrer sur des tâches plus stratégiques.
En résumé, le développement d'une application web et desktop pour numériser et
automatiser le traitement des factures pourraient être un pas en avant significatif pour améliorer
et moderniser les opérations financières de la société.

III. Méthodologies et formalisme adopté


Une méthodologie de développement est un cadre de planification et de structuration du
développement des applications. Pour cela, il est nécessaire de traiter et de modéliser le système
avant sa mise en œuvre pour bien comprendre son fonctionnement et assurer sa cohérence.

III.1. Le langage de modélisation (UML)

Pour la réalisation d’un projet informatique, une méthodologie de modélisation et


de conception est un procédé qui a pour objectif de permettre de formaliser les étapes
préliminaires du développement d’un système afin de rendre ce développement plus fidèle
auxbesoins du client. C’est pour cela qu’on a choisi UML ou Unified Modeling Language
pour la conception de notre projet.

UML est un langage de modélisation graphique à base de pictogrammes conçus


comme une méthode normalisée de visualisation dans les domaines du développement
logiciel et en conception orientée objet.

6
Chapitre 1 : Présentation du cadre du projet

00

Figure 3: Modèle UML

III.2. Méthodologie de travail

En ce qui concerne la méthodologie de travail, nous avons été inspirés par SCRUM. Il
représente l’approche agile la plus utilisé parmi les autres approches existantes et il est simple à
comprendre.
Le principe de SCRUM est de diriger l'attention de l'équipe de développement vers un
objectif unique qui sera complété en plusieurs étapes, chacune se déroulant sur une période de
deux à quatre semaines, ces étapes sont appelées Sprints. Chaque sprint doit aboutir à la sortie
d'un produit partiel appelé "incrément".

Figure 4: Méthode SCRUM

III.2.1. Pourquoi Scrum ?


Nous avons choisi Scrum en raison de ses points forts :
• Plus de flexibilité et de réactivité.
• Forte capacité d'adaptation aux changements dus à des temps d'itération courts.
• La combinaison entre théorie et pratique, très proche de la réalité

7
Chapitre 1 : Présentation du cadre du projet

III.2.2. L’équipe Scrum


Comme pour toute méthode Agile, l’équipe Scrum est auto-organisée et
pluridisciplinaire. Elle choisit la meilleure façon d’accomplir son travail et possède
toutes les compétences nécessaires à l’accomplissement du projet. La flexibilité, la
créativité et la productivité de l’équipe sont ainsi optimisées.[1]

L’équipe Scrum se compose en outre de :


• Un Scrum Master : Le membre d’équipe qui occupe le rôle d’un coach pour les
équipes de développement. Le Scrum Master dans notre projet est notre encadrante
de l’ISET Mme Chalouah Anissa.
• Un Product Owner : C'est le membre de l'équipe qui porte la vision du produit à
réaliser, Il est aussi l’intermédiaire entre le client et l’équipe de travail, Il est la seule
personne responsable de gérer le Product Backlog. Le Product Owner de notre projet
est notre encadrant de la société Mr Ghouli Riadh
• L’équipe de développement : Il est composé de professionnels qui livrent à chaque
sprint un incrément terminé et potentiellement livrable du produit. Seuls les membres
de l’équipe de développement créent l’incrément. Ils sont auto-organisés
polyvalents. L’équipe de développement de notre projet est composée de Weda
Mossab et BenSalah Mohamed Nour.

Figure 5 : L'équipe Scrum

8
Chapitre 1 : Présentation du cadre du projet

L’organisation d’un projet Scrum est rythmée par un ensemble de réunions définies avec
précision et limitées dans le temps et on peut distinguer 4 types de réunions :

• Sprint Planning : C’est la première réunion de chaque sprint qui dure en général de
deux semaines à un mois, il consiste à déterminer un sprint goal puis à planifier les
fonctionnalités et des users stories jugées prioritaires parmi toutes celles répertoriées
dans le backlog produit. [2]

• Sprint Review : C’est la réunion destinée pour évaluer les résultats obtenus par
l’équipe scrum suite à chaque sprint. Il permet d’analyser les progrès réalisés par le
développement afin d’atteindre l’objectif fixé. [3]

• Daily Meeting : cette réunion est journalière de 15 minutes, elle est très
importante. Cette réunion a pour but de faire un point sur la progression
quotidienne du Sprint. Cette rencontre permet à l’équipe de synchroniser ses
activités et de faire un plan pour les prochaines 24 heures. [4]

• Rétrospective du Sprint : C’est une réunion qui a lieu à la fin de chaque sprint. La
rétrospective est interne à l’équipe Scrum. L’équipe se sert de la rétrospective pour
passer en revue le Sprint terminé et déterminer ce qui a bien fonctionné et ce
qu’il faut améliorer. [5]

IV. Technologies Et Outils De Travail


IV.1. Environnement matériel

Pour le développement de la solution, nous avons utilisé les ordinateurs suivants dont leurs
caractéristiques sont illustrées dans la figure ci-dessous :

9
Chapitre 1 : Présentation du cadre du projet

Figure 6: Caractéristiques du PC de Mohamed Nour

Figure 7: Caractéristiques du PC de Mossab

10
Chapitre 1 : Présentation du cadre du projet

IV.2. Environnement logiciel

Nous allons énumérer au cours de cette partie les différents outils utilisés tout au long de ce
projet pour l’étude et la mise en place de notre application.

Figure 8: Visual Studio logo

Visual Studio est un environnement de développement intégré (IDE) extensible,


complet et gratuit pour créer des applications modernes pour Android, iOS, Windows,
ainsi que des applications web et des services cloud. [6]

Figure 9: Visual Studio Code logo

Visual Studio Code est un éditeur de code open-source développé par Microsoft
supportant un très grand nombre de langages grâce à des extensions. Il supporte
l’autocomplétions, la coloration syntaxique, le débogage, et les commandes git. [7]

11
Chapitre 1 : Présentation du cadre du projet

Figure 10: GitHub logo

GitHub est un service web d'hébergement et de gestion de développement de logiciels,


utilisant le logiciel de gestion de versions Git qui permet de stocker le code source d'un projet
et de suivre l'historique complet de toutes les modifications apportées à ce code. GitHub est un
site de partage de code, sur lequel on peut publier des projets dont le code est géré avec le
système de gestion de version Git. [8]

Figure 11: Draw io logo

Draw.io est une application gratuite en ligne, accessible via son navigateur (protocole
https) qui permet de dessiner des diagrammes ou des organigrammes. Cet outil vous propose
de concevoir toutes sortes de diagrammes, de dessins vectoriels, de les enregistrer au format
XML puis de les exporter. [9]

12
Chapitre 1 : Présentation du cadre du projet

Figure 12: Jira logo

Azure DevOps est un logiciel créé par Microsoft, pour piloter des projets de
développement d’application ou de logiciels. Entre autres fonctionnalités, Azure
DevOps permet de planifier ses projets et suivre le travail de développement grâce à Git
(logiciel de gestion de versions) [10]

Figure 13: ASP.NET logo

ASP.NET est un framework web open source, côté serveur, créé par Microsoft, qui
fonctionne sous Windows. ASP.NET permet aux développeurs de créer des applications web,
des services web et des sites web dynamiques. [11]

Figure 14: C# logo

C# est un langage de programmation moderne, orienté objet et de type sécurisé. C#


permet aux développeurs de créer de nombreux types d'applications sécurisées et fiables qui
s'exécutent dans .NET [12]

13
Chapitre 1 : Présentation du cadre du projet

Figure 15: PWA Logo

PWA est l'initiale ou raccourci utilisé pour désigner une "Progressive Web App", c'est
à dire un environnement de type applicatif accessible à partir d'un navigateur mobile sans passer
par un magasin d'applications. [13]

Figure 16: Blazor logo

Blazor est un framework web open source développé par Microsoft et permettant de
créer des applications web d’interface utilisateur web côté client basé sur le langage de
programmation C# au lieu du commun JavaScript. [14]

Figure 17 : JavaScript logo

JavaScript est un langage de programmation qui permet de créer du contenu mis à jour
de façon dynamique, de contrôler le contenu multimédia, d'animer des images, et tout ce à quoi
on peut penser. [15]

14
Chapitre 1 : Présentation du cadre du projet

Figure 18: Microsoft Azure logo

Microsoft Azure est une plateforme applicative qui comprend un service


d’hébergement sur le cloud pour le stockage de données. Azure propose aussi des outils de
développement pour la programmation d’applications et de machines virtuelles. L’utilisateur a
la possibilité de concevoir des services web XML. [16]

Figure 19: React JS Logo

ReactJS est une bibliothèque JavaScript frontale à code source ouvert permettant de
créer des interfaces utilisateur ou des composants d'interface utilisateur. Elle est maintenue par
Facebook et une communauté de développeurs individuels et d'entreprises. [17]

Figure 20: Python logo

Python est un langage de programmation largement utilisé dans les applications Web,
le développement de logiciels, la science des données et le machine learning (ML). [18]

15
Chapitre 1 : Présentation du cadre du projet

Figure 21: SQL Server logo

Microsoft SQL Server est un système de gestion de base de données en langage SQL
incorporant entre autres un SGBDR développé et commercialisé par la société Microsoft. [19]

IV.2.1. Choix techniques

➢ Choix du Framework ASP.NET :


ASP.NET est un choix du premier plan en raison de son support solide de Microsoft et de
son intégration avec d'autres technologies Microsoft, de sa grande communauté, de sa haute
performance, de sa sécurité robuste et de sa compatibilité avec plusieurs langages de
programmation.

➢ Choix du langage C# :
C# est un choix populaire pour les solutions d'entreprise. Il s'intègre bien avec d'autres
technologies Microsoft telles que .NET Framework, Visual Studio, SQL Server et Azure. Les
développeurs peuvent créer des solutions d'entreprise puissantes et évolutives pour répondre
aux besoins complexes des organisations.

➢ Choix du SQL Server :


SQL Server est un choix judicieux pour une base de données en raison de sa facilité de
déploiement, de sa mise en œuvre et de son administration grâce à des interfaces graphiques
conviviales. Le système est également programmable, offrant une flexibilité qui permet aux
développeurs de personnaliser les fonctionnalités en fonction de leurs besoins.

➢ Choix du Blazor :
Blazor est une option intéressante pour les développeurs cherchant à créer des applications
web interactives et dynamiques rapidement, en utilisant des langages familiers et en bénéficiant
de performances et de mesures de sécurité avancées.

16
Chapitre 1 : Présentation du cadre du projet

V. Architecture de l’application
Le MVC est un modèle architectural utilisé pour créer des projets évolutifs. Il divise une
application en trois composants : le modèle, la vue et le contrôleur. C'est un framework de
développement Web couramment utilisé pour des applications Web extensibles.

o Modèle : Le modèle contient les données manipulées par le programme. Il assure la


gestion de ces données et garantit leur intégrité.
➢ Dans notre cas ça corresponde aux objets manipulant les tables de la base de
données SQL Server

o Vue : Composant graphique de l’interface qui permet de présenter les données du


modèle à l’utilisateur.
➢ Dans notre cas elles sont définies en fichiers razor

o Contrôleur : composant responsable des prises de décision, qui gère la logique du code
qui prend des décisions, il est l’intermédiaire entre le modèle et la vue.
➢ Dans notre cas, notre contrôleur et les traitements sont gérés par ASP.NET

Cette figure représente les 3 composants de notre projet:

Figure 22: Architecture MVC

17
Chapitre 1 : Présentation du cadre du projet

Cette figure représente le diagramme de déploiement de notre application :

Figure 23: Diagramme de déploiement

Conclusion
Ce chapitre constitue une présentation générale du cadre du travail. Nous avons
présenté en premier lieu la société par la suite nous nous sommes focalisés sur la
problématique et le projet pour finir par le Framework du travail utilisé qui est un
Framework agile « Scrum » et les outils du travail. Notre sujet sera expliqué plus en détail
dans le chapitre suivant, en exposant les besoins et les objectifs à atteindre.

18
Chapitre 2 : Etat de l’art

19
Chapitre 2 : Etat de l’art

Introduction
L'objectif de ce chapitre est de présenter une étude comparative des outils OCR disponibles
sur le marché, en vue d'identifier le meilleur choix pour notre projet. Nous commencerons par
une présentation générale de la reconnaissance optique de caractères (OCR).
Ensuite Nous nous concentrerons plus particulièrement sur Microsoft Azure OCR, en
effectuant des tests sur ses outils pour évaluer leurs précisions, leurs rapidités et leurs facilités
d'intégration.
Enfin, nous utiliserons les résultats de cette étude comparative pour justifier notre choix
d'outil OCR pour notre projet.

I. Microsoft Azure Cognitive Service


La solution Azure Cognitive Services correspond à des services d’intelligence artificielle
(IA) basés sur le cloud qui aident les développeurs à intégrer une intelligence cognitive dans
des applications sans connaissances ni compétences directes en IA ou en science des données.
Ils sont disponibles via les API REST et les Kits de développement logiciel (SDK) de
bibliothèque de client dans les langages de développement populaires. Azure Cognitive
Services permet aux développeurs d’ajouter facilement des fonctionnalités cognitives dans
leurs applications à l’aide de solutions cognitives capables de voir, entendre, parler et analyser.

II. La reconnaissance optique de caractères (OCR)


La reconnaissance optique de caractères (OCR) est une technologie qui permet aux
ordinateurs de traiter des images ou des documents numérisés et d'extraire le texte qu'ils
contiennent en utilisant des algorithmes avancés et des techniques d'apprentissage automatique.
En se basant sur les modèles de reconnaissance de caractères préalablement entraînés, l'OCR
identifie et convertit les caractères, les mots et les phrases présents sur l'image en texte éditable.

L'OCR est largement utilisé dans de nombreux secteurs, y compris les services
gouvernementaux, les entreprises, les bibliothèques et les archives, pour numériser et traiter des
documents tels que des factures, des formulaires de demande, des documents historiques, etc.
Cela peut améliorer l'efficacité, la productivité et l'expérience utilisateur, tout en réduisant les
coûts et les erreurs liées à la saisie manuelle de données.

20
Chapitre 2 : Etat de l’art

L'objectif de notre projet est l'extraction de données intelligente, qui reconnaît et traite le
texte extrait par OCR pour produire des données pertinentes ultérieures.
Nous avons procédé à essayer les outils OCR avant de choisir le meilleur outil qui répond à
nos besoins.

Cette figure illustre le processus de reconnaissance optique de caractères (OCR) :

Figure 24: Diagramme de reconnaissance optique des caractères

Etude Comparative entre les outils OCR Azure


III.1. Test et Analyse des outils (les solutions)

Le choix du tel type d’outil OCR nécessite le test de tous les outils pour avoir quel est
le meilleur choix pour répondre aux besoins de point de vue fiabilité, performance et
sécurité. C’est pour cela, on a pris en considération ces facteurs et on a testé ces services
(sauf le service Azure Cognitive Search car son rôle n’est pas compatible avec notre sujet)
en réalisant les deux applications (sprint2).

III.2. Pourquoi Azure Form Recognizer ?

Après la phase du test, on a choisi le Form Recognizer comme service car il est plus
adapté pour notre projet et plus avantageux par rapport au Computer Vision Service dans
les points suivants :

21
Chapitre 2 : Etat de l’art

Temps de Non-
Performance Précision Document
réponse document
Azure Form
X X X X
Recognizer
Azure Computer
X X
Vision

Tableau 1: Comparaison entre les outils OCR

• Performance : dans la phase test l’application celle de computer vision n’a pas pu
extraire toutes les données alors que l’application Form Recognizer a fait ça.
• Temps de réponse : les deux applications ont le même temps de réponse qui est 6s.
• Précision : d’après les figures 39,40 et les figures 45,46 en conclure qu’en terme de
précision l’outil Form Recognizer est plus mieux
• Document : Azure Form Recognizer est un service OCR spécialisé dans la
reconnaissance de caractères optiques pour les documents tels que les factures, les
reçus et les formulaires, en format PDF ou en image.
• Non-document : Azure Computer Vision OCR est un service de reconnaissance de
caractères optiques (OCR) qui est conçu pour extraire du texte à partir des images et
des documents en texte brut, de manière générale.

III. Consommation d’API From Recognizer


Pour établir une connexion et envoyer des requêtes à l’API Form Recognizer, nous
devons fournir une clé (subscription key) qui valide l’abonnement au service Azure Form
Recognizer et nous devons suivre les étapes suivantes :

En premier lieu, nous avons créé la ressource Azure Form Recognizer dans le portail Azure
et on a vérifié les valeurs de Key1 et d’Endpoint.
En deuxième lieu, nous avons collecté les factures dont nous allons l’entrainer (Dataset) et
les téléchargées dans le Blob container que nous avons déjà créé

La troisième étape, consiste à obtenir une signature d'accès partagé à partir du Blob
Container et la valeur de l'URI pour partager l'accès aux ressources avec l’application.

22
Chapitre 2 : Etat de l’art

Et enfin, nous avons créé un projet et nous avons installé le package


UiPath.AzureFormRecognizer.Activities pour l’utiliser dans la création des workflows
d'automatisation liés au Form Recognizer d'Azure. [20]

La figure ci-dessous offre une représentation visuelle sur les étapes de consommation de
l'API Form Recognizer :

Figure 25: Les étapes de consommation de l'API Form Recognizer

Pour architecture Microsoft Azure Form Recognizer on utilise la figure ci-dessous pour la
présenté :

Figure 26: Architecture Microsoft Azure Form Recognizer

23
Chapitre 2 : Etat de l’art

IV. C’est que Neural Network ?


Un réseau de neurones est une technique d'apprentissage automatique inspirée du
fonctionnement du cerveau humain. Il est utilisé pour analyser des données complexes et
trouver des modèles dans ces données.
Un exemple d'utilisation des réseaux de neurones est la reconnaissance d'images. Dans ce
cas, le réseau de neurones peut être formé sur un ensemble de données d'images avec des
étiquettes correspondantes. Le réseau ajuste ensuite les poids de ses connexions pour minimiser
l'erreur de prédiction sur les données d'apprentissage. Après la formation, le réseau peut être
utilisé pour prédire les étiquettes de nouvelles images qu'il n'a jamais vues auparavant. [21]

Figure 27: Neural Network Sample example

V. Neural Network Microsoft Azure


Azure Form Recognizer utilise un type de réseau neuronal récurrent (RNN) appelé réseau
de mémoire longue à court terme (LSTM). Les LSTM représentent un type de RNN conçu pour
résoudre le problème de gradient de fuite qui peut survenir lors de la formation de RNN
traditionnels sur de longues séquences de données.
Dans le contexte de l'analyse de documents et de la reconnaissance de formulaires, les LSTM
sont bien adaptés au traitement de données séquentielles telles que du texte. Ils peuvent
apprendre à capturer à distance les dépendances et les modèles dans le texte, ce qui est important
pour une identification et une extraction précises des champs et des valeurs des formulaires.

24
Chapitre 2 : Etat de l’art

Azure Form Recognizer combine les LSTM avec les réseaux de neurones convolutifs (CNN)
pour créer des architectures d'apprentissage en profondeur afin de gérer la complexité et la
variabilité des mises en page de formulaires et des modèles de texte. Microsoft n'a pas divulgué
publiquement l'architecture spécifique de la combinaison RNN/CNN utilisée par Form
Recognizer car elle est considérée comme une technologie propriétaire.
Dans l'ensemble, l'utilisation de LSTM dans Azure Form Recognizer permet à la plateforme
d'identifier et d'extraire avec précision des données structurées à partir de documents non
structurés, une tâche complexe qui nécessite un apprentissage en profondeur et un traitement
du langage naturel. [22]

Conclusion
En conclusion, cette étude comparative nous a permis d'identifier le meilleur outil OCR pour
notre projet, en fonction de critères tels que la précision, la performance et la rapidité. À travers
cette analyse, nous avons exploré différentes bibliothèques et APIs OCR, en examinant leurs
avantages et leurs limites.

25
Chapitre 3 : Planification du Backlog Produit

26
Chapitre 3 : Planification du Backlog Produit

Introduction
Ce chapitre est essentiel dans la réalisation de tout projet, car il permet de déterminer les
fonctionnalités de chaque utilisateur, ainsi que les différentes fonctionnalités qui peuvent
exister dans notre projet.

I. Identification des profils utilisateurs


Dans notre projet, les utilisateurs sont des entités externes au système de modélisation qui
interagissent directement avec des personnes ou des appareils. Chaque utilisateur a un ensemble
d'actions qui correspondent aux fonctions dont il a besoin. Notre projet a deux acteurs différents,
ayant chacun un rôle correspondant.

L’acteur Utilisateur : Désigne l’employé de la société. Il a comme fonctionnalités :


→ Scanner des factures, peu importe leur format (PDF ou image), afin de les traiter.
→ Extraire les données des factures.
→ Voir les documents déjà importés dans l'application et les supprimer.

→ Consulter les résultats de l'analyse.


→ Modifier les résultats s'ils sont erronés.
→ Sauvegarder les résultats de la prédiction dans la base de données.
→ Choisir les modèles d'analyse pour mieux répondre à ses besoins spécifiques.

L’acteur Admin : Il a comme fonctionnalités :


→ Créer un modèle.
→ Entraîner des modèles de factures.

→ Tester les modèles.


→ Modifier les modèles existants.
→ Supprimer des modèles.
→ Consulter les modèles existants.
→ Fusionner des modèles existants
→ Consulter les fichiers importés sur le cloud et les utiliser pour l'entraînement des
modèles.
→ Importer les fichiers dans Le Blob Storage
→ Supprimer sélectivement les fichiers du Blob Storage

27
Chapitre 3 : Planification du Backlog Produit

→ Chercher un fichier dans Le Blob Storage


→ Télécharger un fichier à partir du Blob Storage

II. Les besoins non fonctionnels


Notre application doit contenir certaines contraintes indispensables pour son bon
fonctionnement.
➢ Maintenabilité : le code de l’application développé doit être lisible et compréhensible
afin d’assurer son état extensible et évolutif par les autres développeurs de l’ERP.

➢ La convivialité : les interfaces de l’application doivent être simples faciles et


homogènes avec les interfaces de l’ERP de la société.

➢ Fiabilité : l’application doit être fonctionnelle en minimisant les erreurs d'extraction de


données, ce qui peut entraîner des retards et des pertes de temps.

➢ La performance : notre application doit être capable de lire rapidement les


informations des factures scannées et d'extraire avec précision les données.

III. Les User stories


Les user stories représentent les descriptions d’exigences pour toutes fonctionnalités ou
“tâches” nécessaires au fonctionnement du produit ou du service en développement. Ils ont été
écrits par le Product Owner (Mr Ridha Ghouli) pour nous faciliter l'exécution et la
compréhension des tâches.
Le Backlog du produit est constitué des US priorisés par rapport à leurs valeurs métier, il
permet de préciser essentiellement :
• Qui : la fonctionnalité est faite pour qui
• Quoi : qu’est-ce que l’utilisateur veut faire
• Pourquoi : pourquoi il veut faire ceci Elle est confirmée par des critères
d’acceptation rédigés au même moment que l’histoire. En tant que, je veux pour
atteindre
En tant que « Qui », je veux « Quoi », afin de « Pourquoi »

28
Chapitre 3 : Planification du Backlog Produit

Les User Stories de l’utilisateur

29
Chapitre 3 : Planification du Backlog Produit

Les User Stories de l’administrateur

30
Chapitre 3 : Planification du Backlog Produit

IV. Product Backlog

Nom du Sprint Num User Story Description Priorité DOD

L'équipe a installé et configuré les


En tant que Scrum team, nous voulons initialiser logiciels et outils nécessaires, y compris
Installer
l'environnement de développement, afin de pouvoir mais sans s'y limiter l'IDE, le système de
TS 1 l'environnement du Haut
commencer à travailler sur le projet et livrer contrôle de version, les outils de
travail
efficacement les histoires utilisateur. construction et les bibliothèques de
Sprint 1- Etude de développement.
l'environnement En tant qu'équipe Scrum, nous voulons maîtriser
Maitriser le
l'utilisation d'Azure Cognitive Services et
développement avec les L'équipe a acquis une connaissance
développer une application web Blazor qui s'y
TS 2 frameworks blazor, Haut approfondie d'Azure Cognitive Services
intègre. Notre équipe va acquérir les connaissances
ASP.NET et Microsoft et du cadre ASP.NET Blazor.
et les compétences nécessaires pour développer un
Azure
module à l'aide du framework ASP.NET Blazor .

L'équipe a mené des recherches et des


analyses approfondies sur diverses
En tant qu'équipe de scrum, je veux étudier les
Sprint 2 – Choix de Etude de la solution techniques de détection des sections d'une
TS 3 différentes techniques pour connaître la solution Haut
la solution optimale optimale facture, y compris, mais sans s'y limiter,
optimale pour détecter les articles d'une facture.
machine learning, rule-based systems,
and deep learning.

31
Chapitre 3 : Planification du Backlog Produit

En tant qu'utilisateur, j'aimerais pouvoir visualiser


Visualisation et
et modifier les résultats de l'analyse si je découvre L’administrateur peut voir et modifier
US 11 modifications des résultats Haut
des erreurs ou des incohérences dans les données les résultats de l'analyse
d'analyse
présentées.
Sprint 5 - Analyse
et Entraînement de En tant qu'admin, je souhaite avoir la capacité
L'administrateur a la capacité
Modèles de d'entraîner des modèles de factures
Création et entraînement d'entraîner des modèles de factures pour améliorer
Factures US 12 Haut personnalisés pour améliorer la
des modèles de factures la précision et la pertinence des résultats de
précision et la pertinence des résultats
l'analyse.
d'analyse
L'administrateur peut chercher un
US 13 Chercher un modèle En tant qu'admin, je souhaite chercher un modèle. Moyenne
modèle

En tant qu'admin, je souhaite pouvoir tester les L'administrateur peut tester les
Test des modèles de
US 14 modèles de factures pour évaluer leur précision et Haut modèles de factures pour évaluer leur
factures
leur fiabilité précision et leur fiabilité

Suppression sélective des En tant qu'administrateur, je souhaite pouvoir L'administrateur peut supprimer des
US 15 Haut
modèles supprimer des modèles de manière sélective. modèles de manière sélective
L'administrateur peut visualiser une
Sprint 6 – Gestion Visualisation des modèles
En tant qu'administrateur, je veux visualiser une
liste complète des modèles existants, y
des modèles et des US 16 liste des modèles existants pour avoir une vue Haut
existants compris leur nom, leur date de création
données d'ensemble de l'état de l'application.
et leur état (actif ou inactif)
d'entraînement.
Options d'analyse En tant qu'utilisateur, je veux pouvoir choisir des L'utilisateur est en mesure de
sélective pour une modèles d'analyse adaptés à mes besoins sélectionner et d'utiliser avec succès des
US 17 Haut
interprétation plus efficace spécifiques afin que mon analyse de données modèles d'analyse adaptés à ses besoins
des données produise des résultats plus précis et plus pertinents. spécifiques.

Fusion des modèles En tant qu'administrateur, je veux composer les L'administrateur est en mesure de
US 18 existants modèles existants pour faire la fusion entre eux.
Moyenne
fusionner les modèles existants

32
Chapitre 3 : Planification du Backlog Produit

En tant que Scrum team, nous souhaitons créer un


nouveau référentiel dans Azure DevOps et Création d'un référentiel avec
Création de référentiel avec
TS 19 configurer les politiques de branche, afin que Haut politiques de branche et accès aux
politiques de branche
l'équipe puisse collaborer sur le projet et garantir membres de l'équipe.
la qualité du code.

En tant que Scrum team, nous souhaitons


Configuration d'un pipeline de configurer un pipeline de compilation et de tests Configuration d'un pipeline de CI qui
TS 20 CI avec compilation et tests unitaires d'intégration continue (CI) dans Azure Haut compile le code et exécute les tests
unitaires DevOps, afin que l'équipe puisse identifier et unitaires avec succès.
corriger rapidement les problèmes.

Sprint 7 - Upload Document dans Azure En tant administrateur je souhaite pouvoir L’administrateur peut télécharger un
US 21 Moyenne
Intégration et de Blob Storage télécharger un document dans Azure Blob Storage document dans Azure Blob Storage.
déploiement
continus Suppression sélective des L’administrateur peut pouvoir
En tant qu'administrateur je souhaite pouvoir
US 22 fichiers importés dans le Blob Moyenne supprimer sélectivement les fichiers
supprimer sélectivement les fichiers importés.
Storage importés.
En tant qu'administrateur je souhaite pouvoir
Visualisation des fichiers L’administrateur peut visualiser les
US 23 visualiser les fichiers importés dans le Blob Moyenne
importées dans le Blob Storage fichiers importés dans le Blob Storage
Storage
L’administrateur peut pouvoir
Téléchargement des fichiers du En tant qu'administrateur je souhaite pouvoir
US 24 Moyenne télécharger les fichiers du Blob
Blob Storage télécharger les fichiers du Blob Storage
Storage
En tant qu'administrateur je souhaite pouvoir L’administrateur peut effectuer des
Chercher les fichiers importés
US 25 effectuer des recherches pour trouver les fichiers Moyenne recherches pour trouver les fichiers
dans le Blob Storage
importés importés

Tableau 2: Product Backlog

33
Chapitre 3 : Planification du Backlog Produit

Nous avons choisi de répartir les Sprints que nous avons identifiés en trois Release se
présentant comme suit :

Figure 28: Organisation des releases

Conclusion
En conclusion, après la spécification des différentes fonctionnalités qui existent dans notre
projet, nous pouvant commencer par la réalisation du Release l’objet du chapitre suivant.

34
Chapitre 4 : Release 1

35
Chapitre 4 : Release 1

Introduction
Ce chapitre présente en détail les sprints de première release commençant par le backlog,
suivi des différents diagrammes élaborés pour la réalisation du première release, incluant le
diagramme des cas d'utilisation, le diagramme d'analyse, le diagramme des classes et les
diagrammes des séquences. Enfin, les interfaces graphiques de chaque sprint.

I. Organisation des sprints

Figure 29: Release 1

II. Sprint 1 « Etude de l’environnement »


II.1. Sprint Goal

Ce sprint vise à faire une étude approfondie de l'environnement de travail et de tester les
différentes solutions envisageables afin de trouver l’outil le plus adapté pour garantir la réussite
de notre projet.

36
Chapitre 4 : Release 1

II.2. Sprint Backlog

Le tableau ci-dessous présente le Backlog de notre prier sprint :

User Stories Les taches Période

Installer Visual Studio 2022

Installer l'environnement du travail Installer le .NET Framework 1j

Microsoft SQL Server Management Studio 18

Recherche sur :
• la notion des composants
• render-fragment
Sprint • les call-back
1 • OCR - API Azure

Maitriser le développement avec les Préparer une présentation sur l’outil OCR
frameworks blazor, ASP.NET et Microsoft Azure et les comparer 13j
Microsoft Azure
Développer des mini-applications :
• Upload File
• Render Fragment
Faire l'entrainement des quelques factures avec
Microsoft Azure afin de comprendre mieux
comment fonctionne ce dernier

Tableau 3 : Sprint Backlog du sprint 1

II.3. Implémentation du sprint

Cette partie contient des captures écrans pour nos tâches réalisées dans ce sprint :

a. La première technical story :

Figure 30: Installation.NET

37
Chapitre 4 : Release 1

Figure 31 : Installation Visual Studio 2022

Figure 32 : Microsoft SQL Server Management Studio 18

b. La deuxième Technical Story

Cette partie renferme une carte mentale [23] élaborée pour notre projet, des recherches sur
les différentes notions requises, une présentation détaillée des outils OCR Azure, ainsi que des

38
Chapitre 4 : Release 1

captures d'écran des mini-applications réalisées au cours de cette phase et l'entraînement des
quelques factures.

Figure 33: Les recherches demandées

Figure 34 : Présentation sur les outils OCR Microsoft Azure 1

La capture d'écran de l'application "Upload File", qui illustre l'importation d'un fichier dans
le Blazor, est présentée à l'annexe A du rapport.

• Les fragments nous permettent de grouper une liste d'enfants sans ajouter de nœud
supplémentaire au DOM. [24]

39
Chapitre 4 : Release 1

Figure 35 : l'application "Render-Fragment"

Figure 36 : Entrainement des factures

III.4. Sprint Review

Après avoir terminé ce sprint notre environnement de travail devient prêt afin de pouvoir
réaliser les sprints suivants avec succès.

40
Chapitre 4 : Release 1

III.5. Sprint Rétrospective

Ce qui a bien fonctionné Ce qui n’est pas bien passé


- Nous avons installé l'’environnement avec - Difficulté au cours de l’entrainement du modèle
succès.
- Les taches des recherches, le développement des
mini-application et l’entraînement des modèles.

Tableau 4:Plan d'amélioration du sprint 1

III. Sprint 2 « Choix de la solution optimale »


III.1. Sprint Goal

L'objectif de ce sprint est d'identifier la meilleure solution possible pour notre projet en se
concentrant sur les besoins spécifiques et les contraintes qui y sont associées.
III.2. Sprint Backlog

User Stories Les taches Période

Azure From Recognizer (1ère solution) :


• Création une application en ligne qui contient un
model Form recognizer dans laquelle nous avons
faire l'entrainement des factures et leur labeling
Etude de la solution (l'étiquetage des données)
Sprint 2 optimale
14 j
Azure Computer Vision (2ème solution) :
• Développer une application qui consomme un API
Computer Vision de azure afin d'extraire les données
de la facture les en convertir en texte

Tableau 5: Sprint Backlog du sprint 2

III.3. Implémentation du sprint

La réalisation de ce sprint nécessite une comparaison entre les outils pour déterminer la
solution optimale :

1) Computer Vision App (Première Solution) :


C’est une application qui consomme l’API de computer vision et qui sert à entrer un
fichier et qui retourne une description de ce dernier. Cette méthode est plus générale en ce

41
Chapitre 4 : Release 1

sens qu’il ne fournit pas une contextualisation aussi robuste des paires clé/valeur que l’outil
de reconnaissance des formules. Le service offre également une fonctionnalité d’IA de
niveau supérieur pour le traitement des images et des vidéos afin d’identifier les
personnes/célébrités, les points de repère et les objets communs (entre autres)

• Les étapes :
➢ Créer une ressource de service de vision Azure
➢ Générer une clé d'API
➢ Créer un projet Blazor
➢ Ajouter le package NuGet Microsoft.Azure.CognitiveServices.Vision.ComputerVision
➢ Ajouter les clés d'API dans le fichier de configuration
➢ Consommer l'API Azure Computer Vision

Figure 37: Création du service computer vision

42
Chapitre 4 : Release 1

Figure 38: Génération de la clé d'API

Les capture d'écran qui illustrent l'importation du package Computer Vision et la


consommation de l’API Azure Form Recognizer, sont présentées à l'annexe B et C du rapport.

Figure 39: Extraction des données d'un document

43
Chapitre 4 : Release 1

Figure 40: Extraction des données d'une image 1

Figure 41: Extraction des données d'une image 2

2) Form Recognizer App (Deuxième Solution) :

C’est une méthode de test en ligne dans laquelle on a créé un modèle IA qui sert à détecter
les informations d’un type de facture (on a pris la facture Amazon comme exemple) et l’entrainé
avec 5 factures pour qu’il soit plus précis à la reconnaissance des caractères puis on a testé ce
modèle sur une facture de même type.

44
Chapitre 4 : Release 1

• Les étapes :

➢ Création d’un Storage Account pour stocker les fichiers à analyser


➢ Création d’un conteneur de stockage de fichiers utilisés « Blob Container »
➢ Importer les factures à analyser dans le container
➢ Indiquer les données à extraire
➢ Entrainer le modelé
➢ Analyser la facture

Figure 42: Création d’un Storage Account

45
Chapitre 4 : Release 1

Figure 43: Création d’un conteneur de stockage*

Figure 44: Importer les factures

46
Chapitre 4 : Release 1

Figure 45: Indication des champs

Figure 46: Test avec Form Recognizer

Azure Cognitive Search (Solution non compatible) :


À propos cet outil azure il se concentre sur la recherche du texte et qui est non compatible
avec le but de notre application pour cette raison-là on n’a pas testé cet outil.

47
Chapitre 4 : Release 1

Pourquoi Azure Form Recognizer ?

Sur la base des exigences de notre projet, Azure Form Recognizer semble être un choix plus
adapté et avantageux par rapport au service de Computer Vision. Lors des tests, Form
Recognizer a réussi à extraire toutes les données tandis que Computer Vision Service ne l'a pas
fait. Les deux applications ont un temps de réponse identique de 6 secondes, mais Form
Recognizer a montré une précision supérieure. De plus, Form Recognizer est spécialisé dans
l'OCR pour les documents tels que les factures, les reçus et les formulaires au format PDF ou
image, tandis que Computer Vision OCR est plus général et conçu pour extraire du texte à partir
d'images et de documents texte brut.

Temps de Non-
Performance Précision Document
réponse document
Azure Form
X X X X
Recognizer
Azure Computer
X X
Vision

Tableau 6: Comparaison entre les outils OCR.

III.4. Sprint Review

Nous avons tenu la réunion de Sprint Review à distance, au cours de laquelle nous avons
expliqué à notre encadrant pour quoi on a choisi la solution du Form Recognizer afin de
présenter les avantages et les inconvénients de chaque application.

III.5. Sprint Rétrospective

Ce qui a bien fonctionné Ce qui n’est pas bien passé


- La consommation de l’API Azure -La consommation de L’API Azure Form
Computer Vision Recognizer (on n’a pas trouver une API gratuite)

Tableau 7:Plan d'amélioration du sprint 2

48
Chapitre 4 : Release 1

IV. Sprint 3 « Gestion et numérisation des factures »


IV.1. Sprint Goal

L’objectif de ce sprint consiste à combiner entre la détection des factures, la numérisation,


l'extraction des données, la catégorisation et le stockage des informations financières dans
l'application.

IV.2. Sprint Backlog

User Stories Les taches Période


Collecte du dataset (factures)

Recherche dans les différentes techniques de détection


Etude de détection des factures et avec Form recognizer :
développement de solution intégrée • Prebuilt-Model
2j
• Template
• Neural Network

Création de l'interface du scannage Prebuilt et


ModelAnalysis

Implémenter la fonction upload file qui nous permettons


de télécharger un fichier de type image ou pdf et l'affiché
Numérisation et Extraction des
données à partir des factures Consommation de L'API Form Recognizer qui nous 6j
permet d'extraire les données nécessaires du facture

Afficher les données dans un formulaire

Développer la fonction RunAnalysis() qui nous


Sprint 3 permettons faire l'analyse des factures

Créer l'interface Uploaded Files

Création de la méthode GetAllDocs() et


Consultation et suppression des DeleteDocById() pour afficher et supprimer les factures
facturés téléchargées
4j
téléchargées par l'utilisateur

La consommation des méthodes dans


la front-end
Créer la méthode SearchDocsByName() dans le Coté
serveur
Chercher les facturés télécharges 1j
Implémenter et consommer la méthode dans la partie
front-end

Développer la méthode d'enregistrement des données


Modification et enregistrement des dans la base des données
1j
données d'analyses
Consommation de la méthode dans la front-end

Tableau 8: Sprint Backlog du sprint 3

49
Chapitre 4 : Release 1

IV.3. Implémentation du sprint

IV.3.1. Expression des besoins


Pour la mise en évidence des besoins de notre application nous avons utilisé les diagrammes
de cas d’utilisation.
Les diagrammes de cas d'utilisation sont des diagrammes UML utilisés pour une
représentation du comportement fonctionnel d'un système logiciel. Nous avons complété ce
diagramme par une description textuelle afin de détailler les interactions entre les acteurs et le
système.

Diagramme de cas d’utilisation détaillé de « Gestion et numérisation des factures »

Figure 47: Diagramme de cas d’utilisation de « Gestion et numérisation des factures »

Description textuelle « Scanner une facture »


Cas d’utilisation L'utilisateur demande de Scanner une facture
Acteur Utilisateur
Pré-condition L’utilisateur est authentifié
Post-condition La facture est scannée
Scénario Normal 1 - L’utilisateur accède à la page de scannage
2 - L’utilisateur clique sur le bouton "UploadFile" ou "Scan File"
3 - L’utilisateur sélectionne la facture qu'il va scanner
4 - Le system détecte la facture et l'afficher
Scénario Alternatif 4.1 - Le système n’affiche pas la facture téléchargée

Tableau 9 : Description textuelle « Scanner une facture »

50
Chapitre 4 : Release 1

Description textuelle « Enregistrer les données des factures »


Cas d’utilisation L'utilisateur demande d’Enregistrer les données des factures
Acteur Utilisateur
Pré-condition L’utilisateur est authentifié / Facture importé ou scanné
Post-condition Les données sont extraites et stockées dans la base des données
Scénario Normal 1 - L’utilisateur importe une facture
2- L’utilisateur clique sur le bouton "Run Analysis"

3 - Le système affiche les données de la facture

4 - L’utilisateur clique sur le bouton "Save"

Scénario Alternatif 3.1 - Le système n’affiche pas les données de la facture

Tableau 10 : Description textuelle « Enregistrer les données des factures »

IV.3.2. Analyse de sprint 3

Modèle du domaine :
Dans cette partie nous avons présenté la structure interne de l’application via le modèle
du domaine de la partie gérer les factures.

Figure 48 : Diagramme de classe de la « Gestion et numérisation des factures »

51
Chapitre 4 : Release 1

Diagramme de classe participante :


Une classe d’analyse définit ou fournit rarement une interface en termes d’opérations et de
signature. Son comportement est défini par des responsabilités à un niveau plus élevé, moins
formel.
• Diagramme de classes participante de « Upload document » :

Figure 49 : Diagramme de classes participante de « Upload document »

• Diagramme de classe participante de « Extraire les données des factures » :

Figure 50 : Diagramme de classe participante de « Extraire les données des factures »

IV.3.3. Conception du sprint 3


Le diagramme de séquence permet de montrer les interactions d'objets dans le cadre d'un
scénario d'un Diagramme des cas d’utilisation.

Diagrammes de séquence de conception de « Scanner une facture » :

52
Chapitre 4 : Release 1

Figure 51: Diagramme de séquence de conception "Scanner une facture"

Diagrammes de séquence de conception de « suppression d’un document téléchargé »

Figure 52: Diagrammes de séquence de conception de « suppression d’un document


téléchargé »

53
Chapitre 4 : Release 1

• Diagramme de classe de conception de « Scanner une facture »

Figure 53: Diagramme de classe de conception de « Scanner une facture »

54
Chapitre 4 : Release 1

• Diagramme de classe de conception de « Consultation et suppression des documents


téléchargées »

Figure 54: Diagramme de classe de conception de « Consultation et suppression des


documents téléchargées »

IV.3.4. Implémentation
• Diagramme de composant de « Gestion et numérisation des factures »

Figure 55: Diagramme de composant de « Gestion et numérisation des factures »

55
Chapitre 4 : Release 1

IV.3.5. Test
Ces captures mettent l'accent sur les tests réalisés sur les méthodes SearchDocByName et
GetAllDocs qui permettent de chercher et récupérer les documents importés.

Figure 56 : Test postman de "Chercher un document"

Figure 57: Test Postman de "Visualiser les documents"

56
Chapitre 4 : Release 1

IV.7. Sprint Review

Nous avons tenu la réunion de Sprint Review à distance avec notre encadrant de la société,
au cours de laquelle nous avons effectué :

• Création de l'interface du scan facture Prebuilt et ModelAnalysis.

• Implémenter la fonction upload file qui nous permettons de télécharger un fichier de


type image ou pdf et l’afficher.

• Consommation de L'API Form Recognizer qui nous permet d'extraire les données
nécessaires de la facture.

• Afficher les données dans un tableau.

• Création de l'interface du Uploaded Files.

• Implémenter les méthodes de suppression et du consultation des factures


téléchargées.

• Création et implémentation du méthode SearchDocsByName() qui permet de


chercher un document

• Enregistrer les données d’analyse dans la base des données

Figure 58 : Page Scanner Facture

57
Chapitre 4 : Release 1

Cette capture d’écran présente la page de d’analyse avec un modèle spécifié :

Figure 59 : Page ModelAnalysis

Figure 60 : Visualisation des fichiers importées

58
Chapitre 4 : Release 1

IV.8. Sprint Rétrospective


Ce qui a bien fonctionné Ce qui n’est pas bien passé
- Consommation Api.
- Manque de ressource et documentation
- L’interface compatible avec l’ERP Noeuron.
Tableau 11:Plan d'amélioration du sprint 3

Conclusion
Cette release a été dédié à l'acquisition de compétences sur les nouveaux outils et
frameworks de travail, ainsi qu'à l'étude approfondie de la solution qui sera mise en œuvre dans
notre projet.

59
Chapitre 5 : Release 2

60
Chapitre 5 : Release 2

Introduction
Une fois que nous avons achevé la première release de notre application, nous sommes prêts
à entreprendre les tâches nécessaires pour créer la deuxième release, qui comportera le Product
backlog, les différents diagrammes et les interfaces graphiques.

I. Organisation des sprints

Figure 61: Release 2

II. Sprint 4 « Interfaçage de l’application de labelling »


II.1. Sprint Goal

Le but de ce Sprint est d'effectuer les modifications nécessaires dans l'application de


labelling fournie par la société, ainsi que de mettre en place toutes les fonctionnalités permettant
à l'utilisateur de visualiser et de modifier les résultats d'analyse. De plus, il vise à permettre à
l'administrateur de créer et d'entraîner le modèle.

61
Chapitre 5 : Release 2

II.2. Sprint Backlog

User Stories Les taches Période

Modifier les styles des composants existants pour s'aligner sur


2j
la nouvelle identité visuelle de l'application.
Ajouter des icônes pour améliorer la convivialité de
Redésigne de l'application l'application. 1j
d'étiquetage des factures
Ajouter la navigation entre les deux applications. 1j

Mettre à jour les fichiers SCSS pour refléter la nouvelle identité


Sprint 4 4j
visuelle de l'application
Mettre à jour le code de l'application React pour l'adapter à
l'environnement PWA en modifiant le fichier manifest.json
3j
Optimisation du pour inclure les informations de l'application et les icônes
l'application d'étiquetage nécessaires.
des factures
Tester l'application en mode PWA pour vérifier son
3j
fonctionnement et son rendu.

Tableau 12: Sprint Backlog de sprint 4

II.3. Implémentation du sprint 4

Pour réaliser ce sprint on a essayé de comprendre la logique du code ainsi que les
components de chaque interface

Figure 62: Les modifications de l’application de labelling desktop

62
Chapitre 5 : Release 2

Figure 63: Les modifications de l’application de labelling web

Figure 64 : Modifications front-end de la page d'entrainement

63
Chapitre 5 : Release 2

Figure 65 : Modifications front-end de la page d'entrainement

II.4. Sprint Review

Nous avons effectué la réunion de ce sprint review à distance avec et notre encadrant
Mr Ridha. A la fin de ce sprint, nous avons montré les taches demandées :
• Re-design de l’application
• Optimisation de l'application
II.5. Sprint Rétrospective

Ce qui a bien fonctionné Ce qui n’est pas bien passé


- Intégration de l’Api
- Apprentissage du code
- Re-design de l’application

Tableau 13: Plan d'amélioration du sprint 4

III. Sprint 5 « Analyse et Entraînement de Modèles de


Factures »
III.1. Sprint Goal

64
Chapitre 5 : Release 2

Ce sprint se concentre sur le développement des fonctionnalités qui permettent aux


utilisateurs de visualiser les résultats d'analyse des factures, de les modifier si nécessaire, et à
l’admin de créer et entraîner des modèles de factures personnalisés.

III.2. Sprint Backlog

User Stories Les taches Période


Création du formulaire dans laquelle nous allons afficher les
données
Visualisation des résultats
d'analyse Création de la méthode de récupération des données analysées 3j
Consommation de la méthode dans l'interface d'analyse
Consommation de l'API pour la création des nouvelles
modèles
Modification de l'interface de la création des modèles
Sprint 5 Création et entraînement des (application de labelling)
9j
modèles de factures
Consommation de l'API pour l'entrainement des modèles

Changement du front-end de 'l'interface "Train Model"

Ajouter le Search bar dans la partie front-end


Chercher un modèle 2j
Implémenter la méthode FilteredModels() qui permet de
chercher nos modèles existants

Tableau 14: Sprint Backlog de sprint 5

III.3. Implémentation du sprint 5

Expression des besoins


Diagramme de cas d’utilisation détaillé « Analyse et Entraînement de Modèles de
Factures »

Figure 66: Diagramme de cas d’utilisation du sprint 5

65
Chapitre 5 : Release 2

Description textuelle « Créer un modèle »

Cas d’utilisation L’administrateur demande de créer un modèle


Acteur Administrateur
Pré-condition L’administrateur est authentifié
Post-condition Le modèle est créé
Scénario Normal 1 - L’administrateur clique sur le button de création
2 - Le système redirige l'admin vers un formulaire
3 - L’administrateur introduit les informations
4 - L’administrateur clique "Save Project"

Tableau 15: Description textuelle « Créer un modèle »

Description textuelle « Modifier les résultats d’analyse »

Cas d’utilisation L’utilisateur demande de modifier les résultats d'analyse


Acteur Utilisateur
Pré-condition L’utilisateur doit scanner une facture
L’utilisateur doit être authentifié
Post-condition Les résultats sont modifiés
Scénario Normal 1 - L’utilisateur change les valeurs du formulaire de résultats
2 - L’utilisateur clique sur le button "save"

Tableau 16: Description textuelle « Modifier les résultats d’analyse »

66
Chapitre 5 : Release 2

Diagramme de séquence de « Créer un modèle »

Figure 67: Diagramme de séquence de « Créer un modèle »

II.3.2. Analyse du sprint 5


Diagramme de classe :

Figure 68: Diagramme de classe « Analyse et Entraînement de Modèles de Factures »

67
Chapitre 5 : Release 2

Diagrammes de classe participante de « Visualiser les résultats d’analyse »

Figure 69: Diagrammes de classe participante de « Visualiser les résultats d’analyse »

Diagrammes de classe participante de « Créer un modèle »

Figure 70: Diagrammes de classe participante de « Créer un modèle »

III.3.3. Conception du sprint 5


Dans cette partie nous aurons l'occasion de mettre en lumière les diagrammes de conception
associés à ce sprint.

68
Chapitre 5 : Release 2

Diagramme de séquence de conception de « Visualiser les résultats d'analyse »

Figure 71 : Diagramme de séquence de conception de « Visualiser les résultats d'analyse »

69
Chapitre 5 : Release 2

Diagrammes de classe de conception de « Créer un modèle »

Figure 72 : Diagrammes de classe de conception de « Créer un modèle »

Diagrammes de classe de conception de « Visualiser les résultats d’analyse »

Figure 73 : Diagrammes de classe de conception de « Visualiser les résultats d’analyse »

70
Chapitre 5 : Release 2

III.3.4. Implémentation
• Diagramme de composant de « Analyse et Entraînement de Modèles de Factures »

Figure 74: Diagramme de composant de sprint 5

III.3.5. Test
Cette capture représente le test de la création d’un modèle :

Figure 75 : Test de création du modèle

71
Chapitre 5 : Release 2

III.4. Sprint Review

À la clôture de ce sprint, nous avons tenu une réunion à distance avec le superviseur de notre
entreprise basée au Canada Mr. Jason Li, ainsi qu'avec notre encadrant Mr. Ridha. Au cours de
cette réunion, nous avons présenté les tâches qui nous ont été assignées. Ces tâches
comprenaient :
• La visualisation des résultats d'analyse
• La création et l'entraînement de modèles de factures
• La recherche de modèles existants

La recherche d'un modèle est effectuée immédiatement dès la saisie dans la barre de
recherche comme indique la capture suivante :

Figure 76 : La recherche d'un modèle

72
Chapitre 5 : Release 2

Les deux captures d'écran ci-dessous illustrent le processus de création et d'entraînement


d'un modèle :

Figure 77 : La création d'un modèle

Figure 78 : L'entrainement d'un modèle

73
Chapitre 5 : Release 2

Cette capture d'écran présente la visualisation des résultats d'analyse.

Figure 79 : La visualisation des résultats d'analyse

III.5. Sprint Rétrospective

Ce qui a bien fonctionné Ce qui n’est pas bien passé


- La consommation de l’API de création et
d'entrainement. - L'affichage des résultats d'analyse été un
peu difficile
- Création de la méthode de recherche

Tableau 17 : Plan d'amélioration du sprint 5

Conclusion
Au cours de ce chapitre nous avons effectué l’interfaçage de l’application de labelling et des
changements dans la logique ainsi qu’amélioré l'application en permettant aux utilisateurs de
visualiser et modifier les résultats d'analyse des factures, tandis que l'administration peut créer
et entraîner des modèles personnalisés.

74
Chapitre 6 : Release 3

75
Chapitre 6 : release 3

Introduction
Une fois que nous avons achevé la deuxième Release de notre application, nous sommes
prêts à entreprendre les tâches nécessaires pour créer la troisième release, qui comportera le
Product Backlog, les différents diagrammes et ses interfaces graphiques.

I. Organisation des sprints

Figure 80: Release 3

II. Sprint 6 « Gestion des modèles et des données


d'entraînement. »
II.1. Sprint Goal

Le but de ce sprint est de développer et améliorer le système de gestion des modèles en


permettant aux administrateurs de tester et de supprimer des modèles, d'afficher une liste
complète des modèles existants, de gérer les fichiers importés sur le nuage, de fusionner des

76
Chapitre 6 : release 3

modèles et de fournir des options d'analyse sélective, tout en offrant aux utilisateurs la
possibilité de sélectionner et d'utiliser les modèles les mieux adaptés à leurs besoins.

II.2. Sprint Backlog

User Stories Les taches Période

Identifier les modèles de factures existants


Test des modèles de Concevoir des tests pour chaque modèle de 3j
factures facture
Exécuter les tests et documenter les résultats

Concevoir l'interface utilisateur pour la


suppression sélective des modèles

Suppression sélective des Implémenter la logique pour récupérer et afficher 2j


modèles les modèles de factures existants

Implémenter la logique pour supprimer les


modèles sélectionnés

Concevoir l'interface utilisateur pour visualiser


Sprint 6 les modèles de factures existants
Visualisation des modèles
2j
existants
Implémenter la logique pour récupérer et afficher
les modèles de factures existants

Implémenter des changements sur l'interface


Options d'analyse sélective d'analyse des facture
pour une interprétation 5j
plus efficace des données Implémenter la logique pour récupérer et afficher
les modèles de factures existants
Concevoir l'interface utilisateur pour la fusion des
modèles de factures existants dans le labelling
Fusion des modèles tools 2j
existants
Consommation d'API

Tableau 18: Sprint Backlog de sprint 6

II.3. Implémentation du sprint 6

77
Chapitre 6 : release 3

II.3.1. Expression des besoins


Diagramme de cas d’utilisation détaillé de « Gestion des modèles et des données
d'entraînement »

Figure 81: Diagramme de cas d’utilisation du Sprint 6

Description textuelle « Suppression sélective des modèles »

Cas d’utilisation Suppression sélective des modèles

Acteur Administrateur
Pré-condition L'administrateur est authentifié et a accès aux modèles existants.

Post-condition L'administrateur est en mesure de supprimer sélectivement les modèles de son choix.

1 - L'administrateur appuie sur le menu "Modèles".

2 - Le système affiche une liste des modèles existants.

Scénario Normal 3 - L'administrateur sélectionne les modèles à supprimer.


4 - Le système demande une confirmation de la suppression.
5 - L'administrateur confirme la suppression.
6 - Le système supprime les modèles sélectionnés.
5.1 - L'administrateur annule la suppression.
Scénario Alternative
6.1 - Le système annule la suppression et retourne à la liste des modèles existants.

Tableau 19: Description textuelle « Suppression sélective des modèles »

78
Chapitre 6 : release 3

Description textuelle « Fusion des modèles existants »

Cas d’utilisation Fusion des modèles existants

Acteur Administrateur

Pré-condition L'administrateur est authentifié et a accès aux modèles existants.

Post-condition Les modèles existants sont fusionnés avec succès.

1 - L'administrateur appuie sur le menu "Modèles" dans l'interface de l'application.

2 - Le système affiche une liste de tous les modèles existants.

Scénario Normal 3 - L'administrateur sélectionne les modèles à fusionner.

4 - L'administrateur appuie sur le bouton "Compose".

5 - Le système affiche un message de confirmation et les modèles fusionnés sont


disponibles pour être utilisés dans l'application.

Tableau 20: Description textuelle « Fusion des modèles existants »

Description textuelle « Test des modèles de factures »

Cas d’utilisation Test des modèles de factures

Acteur Administrateur

Pré-condition L'administrateur est authentifié et a accès aux modèles de factures.


L'administrateur est en mesure d'évaluer la précision et la fiabilité des modèles de
Post-condition
factures.
1 - L'administrateur appuie sur le menu "Modèles de factures".

2 - Le système affiche une liste des modèles de factures disponibles.


Scénario Normal
3 - L'administrateur sélectionne le modèle de facture à tester.

4 - L'administrateur examine la facture évalue la précision et la fiabilité du modèle.

Tableau 21: Description textuelle « Test des modèles de factures »

79
Chapitre 6 : release 3

II.3.2. Analyse de sprint 6


Diagramme de classe

Figure 82: Diagramme de classe de sprint 6

Diagramme de classe participante de « Test des modèles de factures »

Figure 83 : Diagramme de classe participante de « Test des modèles de factures »

80
Chapitre 6 : release 3

Diagramme de classe participante de « Suppression sélective des modèles »

Figure 84 : Diagramme de classe participante de « Suppression sélective des modèles »

II.3.3. Conception du sprint 6

Diagramme de séquence de « Suppression sélective des modèles »

Figure 85: Diagramme de cas d’utilisation de « Suppression sélective des modèles »

81
Chapitre 6 : release 3

Diagramme de séquence de « Test des modèles de factures »

Figure 86: Diagramme de cas d’utilisation de « Test des modèles de factures »

Diagramme de séquence de « Fusion des modèles existants »

Figure 87: Diagramme de cas d’utilisation de « Fusion des modèles existants »

Diagramme de séquence de conception de « Suppression sélective des modèles »

82
Chapitre 6 : release 3

Figure 88: Diagramme de séquence de conception de « Suppression sélective des modèles »

83
Chapitre 6 : release 3

Diagrammes de séquence de conception de « Fusion des modèles existants »

Figure 89: Diagramme séquence de conception de « Fusion des modèles existants »

84
Chapitre 6 : release 3

Diagramme de classe de conception de « Test des modèles de factures »

Figure 90: Diagramme de classe de conception de « Test des modèles de factures »

Diagramme de classe de conception de « Suppression sélective des modèles »

Figure 91 : Diagramme de classe de conception de « Suppression sélective des modèles »

85
Chapitre 6 : release 3

II.3.4. Implémentation
Diagramme de composant de « Gestion des modèles et des données d'entraînement »

Figure 92 : Diagramme de composant de « Gestion des modèles et des données d'entraînement »

86
Chapitre 6 : release 3

II.3.5. Test
Cette section présente les tests effectués sur les modèles d'analyse, en mettant en évidence
les méthodes "GetModelById", "GetAllModels" et "DeleteModel".

Figure 93 : Test de la récupération d’un modèle avec id

Figure 94 : Test de la visualisation des modèles

87
Chapitre 6 : release 3

Figure 95: Test la suppression du modèle

II.4. Sprint Review

Au terme de ce sprint, nous avons tenu une réunion à distance avec notre encadrant, M.
Ridha. Au cours de cette réunion, nous avons présenté les différentes tâches qui nous avaient
été assignées, à savoir : le test des modèles de factures, la suppression sélective des modèles, la
visualisation des modèles existants, l'enregistrement des fichiers sur le cloud, les options
d'analyse sélective ainsi que la fusion des modèles existants.

Figure 96 : Fusionnement des modèles

88
Chapitre 6 : release 3

Figure 97 : L'affichage des modèles

Avant de procéder à la suppression d'un modèle, il est nécessaire de confirmer cette action
en utilisant un modal :

Figure 98 : Supprimer un modèle

89
Chapitre 6 : release 3

II.5. Sprint Rétrospective

Ce qui a bien fonctionné Ce qui n’est pas bien passé


- La configuration avec Azure Blob Storage
- Les taches sont bien déroulées
pour enregistrer les fichiers

Tableau 22: Plan d'amélioration du sprint 6

III. Sprint 7 « Module de gestion du référentiel et des fichiers


dans Azure Blob Storage »
III.1. Sprint Goal

L'objectif de ce sprint est de créer un référentiel avec des politiques de branche, configurer
un pipeline de CI, réaliser l'importation, la suppression sélective, la visualisation, le
téléchargement et la recherche des fichiers dans Azure Blob Storage.
III.2. Sprint Backlog

User Stories Les taches Période


Configurer le compte Azure Blob Storage
Upload Document dans Mise en place d'une fonctionnalité de téléchargement de
2j
Azure Blob Storage fichiers
Intégrer la fonction de téléchargement à l'application frontale
Mise en œuvre de la logique de backend pour la suppression
sélective des fichiers
Suppression séléctive des
Concevoir et mettre en œuvre une interface utilisateur pour
fichiers importés dans le 2j
la suppression de fichiers
Blob Storage
Intégrer la fonction de suppression de fichiers à l'application
frontale
Sprint Mettre en œuvre la logique du backend pour récupérer et
afficher les fichiers importés
7 Visualisation des fichiers
importées dans le Blob Tester la logique avec Postman 1j
Storage
Intégrer la fonction de visualisation des fichiers à
l'application frontale
Implémenter la logique de backend pour permettre les
Téléchargement des fichiers téléchargements de fichiers
1j
du Blob Storage Intégrer la fonction de téléchargement de fichiers à
l'application frontale
Implémenter la logique de recherche des fichiers importés
Chercher les fichiers dans le backend
importés dans le Blob 1j
Storage Intégrer la fonction de recherche de fichiers à l'application
frontale

90
Chapitre 6 : release 3

User Stories Les taches Période


Concevoir la structure du référentiel et les politiques de
branche

Création de référentiel avec Créer le référentiel sur Azure DevOps


1j
politiques de branche
Configurer les politiques de branche pour s'assurer que les
modifications sont validées avant d'être fusionnées dans la
branche principale

Sprint Création de référentiel avec Tester les politiques de branche et corriger les erreurs
1j
7 politiques de branche éventuelles

Concevoir le pipeline de CI pour la compilation et les tests


unitaires
Configuration d'un pipeline
Configurer les variables et les déclencheurs du pipeline de
de CI avec compilation et
CI
5j
tests unitaires
Implémenter la logique de compilation et de test unitaire
dans le pipeline de CI et le test de pipeline

Tableau 23: Sprint Backlog de sprint 7

II.3. Implémentation du sprint 7

III.3.1. Expression des besoins

Diagramme de cas d’utilisation de « Module de gestion du référentiel et des fichiers dans


Azure Blob Storage »

Figure 99 : Diagramme de cas d’utilisation du sprint 7

91
Chapitre 6 : release 3

Description textuelle « Télécharger un fichier du Blob Storage »


Cas d’utilisation Télécharger des fichiers à partir de Blob Storage
Acteur Administrateur

Pré-condition L'administrateur est authentifié et a accès aux modèles de factures.

Post-condition L'administrateur est en mesure de télécharger un fichier.

1. L’administrateur sélectionne un document à télécharger.

2. L’administrateur déclenche le processus de téléchargement.

3. L'application envoie une demande au backend avec le document sélectionné.


Scénario
Normal 4. Le backend reçoit la demande et télécharge le document vers Azure Blob Storage.
5. Le backend envoie une réponse indiquant le succès ou l'échec du processus de
téléchargement.

6. L'application affiche l'état du téléchargement à L’administrateur.

Tableau 24 : Description textuelle « Télécharger un fichier du Blob Storage »

Description textuelle « Visualiser les fichiers importés dans le stockage Blob »

Cas
Visualiser les fichiers importés dans le stockage Blob
d’utilisation
Acteur Administrateur

Pré-condition L'administrateur est authentifié et a accès aux modèles de factures.


Post-condition L'administrateur est en mesure de consulter les fichiers du Blob Storage

1. L’administrateur ouvre l'interface utilisateur de l'application.

2. L'application envoie une requête au backend pour récupérer les fichiers importés.

Scénario 3. Le backend reçoit la demande et récupère les informations nécessaires sur les fichiers dans
Normal Azure Blob Storage.
4. Le backend envoie une réponse contenant les informations sur les fichiers à l'application.
5. Le backend envoie une réponse indiquant le succès ou l'échec du processus de
téléchargement.

Tableau 25 : Description textuelle « Visualiser les fichiers importés dans le stockage Blob »

92
Chapitre 6 : release 3

Description textuelle « Supprimer un fichier téléchargé »

Cas d’utilisation Suppression sélective des fichiers importés


Acteur Administrateur

Pré-condition L'administrateur est authentifié et a accès aux modèles de factures.

Post-condition L'administrateur est en mesure d'évaluer la précision et la fiabilité des modèles de factures.

1. L’administrateur sélectionne un fichier à supprimer dans l'interface utilisateur de


l'application.

2. l'administrateur confirme la suppression

3. L’administrateur déclenche le processus de suppression.

4. L'application envoie une demande au backend avec les informations sur le fichier
Scénario Normal sélectionné.

5. Le backend reçoit la demande et traite la logique de suppression.

6. Le backend supprime le fichier sélectionné d'Azure Blob Storage.

7. Le backend envoie une réponse indiquant le succès ou l'échec du processus de


suppression.

8. L'application met à jour l'interface utilisateur pour refléter l'état de la suppression.

Scénario 2.1 L'administrateur annule la suppression.


Alternatif
2.2 Le système annule la suppression et retourne à la liste des modèles existants.

Tableau 26 : Description textuelle « Supprimer un fichier téléchargé »

III.3.2. Analyse de sprint 7


Diagramme de classe du « Module de gestion du référentiel et des fichiers dans Azure
Blob Storage »

Figure 100 : diagramme de classe du sprint 7

93
Chapitre 6 : release 3

Diagramme de classe participante de « Upload Document dans le Blob Storage »

Figure 101 : Diagramme de classe participante de « Upload Document dans le Blob Storage »

III.3.3. Conception du sprint 7

Diagramme de séquence « Importer un fichier dans le Blob Storage »

Figure 102 : Diagramme de séquence « Importer un fichier dans le Blob Storage »

94
Chapitre 6 : release 3

Diagramme de classe conception « Visualiser les fichiers importés dans le Blob Storage »

Figure 103 : Diagramme de classe conception « Visualiser les fichiers importés dans le Blob
Storage

III.3.4. Implémentation
Diagramme de composant du « Module de gestion du référentiel et des fichiers dans
Azure Blob Storage »

Figure 104 : Diagramme de composant du sprint 7

95
Chapitre 6 : release 3

III.4. Sprint Review

Nous avons effectué la réunion de ce sprint review à distance avec Mr Ridha et Mr


Jason Li. À la fin de ce sprint, nous avons montré les tâches demandées :
• Création de référentiel avec politiques de branche
• Configuration d'un pipeline de CI avec compilation et tests unitaires
• Upload Document dans Azure Blob Storage
• Suppression sélective des fichiers importées dans le Blob Storage
• Visualisation des fichiers importées dans le Blob Storage
• Téléchargement des fichiers du Blob Storage
• Chercher les fichiers importés dans le Blob Storage

Cette capture montre la création du Blob Storage :

Figure 105 : la création du Blob Storage

96
Chapitre 6 : release 3

Dans cette capture nous avons fait la configuration du centenaire pour migrer et indiquer
les fichiers du projet :

Figure 106 : la configuration du Blob Storage

En utilisant Microsoft Azure Storage Explorer nous avons géré le côté client du projet en
chargeant les fichiers principaux du projet

Figure 107 : chargement des fichiers du projet

97
Chapitre 6 : release 3

Après avoir ajouté les fichiers de ressources nécessaires, nous obtenons un lien spécifique
vers notre application hébergée sur Internet

Figure 108 : hébergement de l'application

Le clic sur un fichier dans le stockage Blob entraîne automatiquement son affichage comme
indique cette capture d’écran

Figure 109 : Affichage d'un fichier dans le Blob Storage

98
Chapitre 6 : release 3

Figure 110 : importer un fichier dans le Blob Storage

Figure 111 : Affichage de la liste des fichiers Blob Storage

99
Chapitre 6 : release 3

III.5. Sprint Rétrospective

Ce qui a bien fonctionné Ce qui n’est pas bien passé


- Téléchargement, Visualisation, Suppression,
la recherche et l'importation des fichiers Blob - Configuration du pipeline
Storage

Tableau 27 : Plan d'amélioration du sprint 7

Conclusion
Au cours de ce chapitre, nous avons accordé à l'administrateur le droit de gérer les fichiers
du stockage de blobs, ainsi que l'intégration et l'hébergement de notre projet dans Microsoft
Azure.

100
Chapitre 6 : release 3

Diagramme de cas d’utilisation générale

Figure 112 : Diagramme de cas d’utilisation générale

101
Chapitre 6 : release 3

Diagramme de classe métier complet

Figure 113 : Diagramme de classe métier complet

102
Conclusion Générale

Durant notre stage chez Metam Tech Tunisie, nous avons pu travailler sur le développement
d'une application Web et Desktop qui a pour but la numérisation et la classification des factures
de différents formats et types. Le projet s'est déroulé en deux parties principales, et a nécessité
l'utilisation de différentes technologies.

Dans la première partie, nous avons créé une application robuste et efficace pour extraire les
données des factures. En utilisant des technologies telles que ASP.NET Blazor, Entity
Framework, SQL Server et les services cognitifs Microsoft Azure, notamment l'API Azure
Form Recognizer et l'API REST, ce qui nous a permis à obtenir d'excellents résultats en termes
de précision d'extraction des données. Nous sommes passés d'un niveau de confiance initial de
30% à un niveau de confiance considéré comme impressionnant de 80%.

La seconde partie du projet s'est concentrée sur l'entraînement du modèle d'apprentissage


automatique utilisé dans le processus d'extraction des données. Dans cette partie nous avons
utilisé ReactJs, Python et les services cognitifs Azure. Ces technologies nous ont permis
d'améliorer la précision et l'efficacité du modèle, qui a pu s'adapter et s'améliorer au fil du
temps.

Ce stage nous a offert une opportunité précieuse de travailler avec des technologies avancées
et les intégrer dans une application cohérente. En combinant ASP.NET Blazor, Entity
Framework, SQL Server, React, Python et les services cognitifs Azure, nous avons pu
développer une solution complète pour la numérisation et la classification des factures.

Atteindre un niveau de confiance de 80% dans l'extraction des données représentent une
étape significative de notre projet. Cela démontre notre capacité à exploiter la puissance de
l'apprentissage automatique et à l'intégrer d’une manière transparente dans notre application.

Ce stage nous a permis de renforcer nos compétences techniques et d’acquérir une


compréhension pratique et concrète du développement de logiciels, englobant plusieurs aspects
tels que l'architecture du système, la gestion des données et l'intégration de services externes.

103
En conclusion, notre stage chez Metam Tech Tunisie a renforcé nos compétences techniques,
et a approfondi notre compréhension de l'apprentissage automatique et du développement de
logiciels dans un environnement professionnel.

Nous sommes reconnaissants d'avoir eu cette opportunité et nous sommes impatients à mettre
en pratique les connaissances et les compétences acquises dans nos futurs projets.

Pour l'avenir, notre vision consiste à réduire l'intervention humaine dans notre application
de numérisation et de classification des factures. En renforçant l'intégration de l'apprentissage
automatique et de l'intelligence artificielle, nous visons à augmenter la précision de l'extraction
des données et à automatiser les tâches répétitives.

104
Bibliographie & Néographie

[1] https://www.planzone.fr/blog/quest-ce-que-la-methodologie-scrum : Gestion de projet :


Méthode agile : 20/07/2017 : consulté le 16/02/2023
[2] https://www.appvizer.fr/magazine/operations/gestion-de-projet/sprint-planning : Sprint
Planning: 26/02/2021: consulté le 16/02/2023
[3] https://www.appvizer.fr/magazine/operations/gestion-de-projet/sprint-review : Sprint
Review: 15/02/2021: consulté le 16/02/2023
[4] https://www.appvizer.fr/magazine/operations/gestion-de-projet/sprint-retrospective:
Sprint Rétrospective : 22/02/2021: consulté le 16/02/2023
[5] https://learn.microsoft.com/fr-fr/visualstudio/get-started/visual-studio-ide: Visual
Studio Code: 05/05/2023: consulté le 16/02/2023
[6] https://kinsta.com/fr/base-de-connaissances/base-de-connaissances-github: Github:
25/08/2020: consulté le 16/02/2023
[7] https://www.tice-education.fr/tous-les-articles-er-ressources/articles-internet/819-
Draw-io-un-outil-pour-dessiner-des-diagrammes-en-ligne: Drawio: 24/01/2014 consulté le
16/02/2023
[8] https://www.effidic.fr/glossaire/2799: Azure devops : consulté le 16/02/2023
[11] https://easypartner.fr/blog/asp-net-le-framework-web-de-microsoft : ASP.NET :
05/05/2020 : consulté le16/02/2023
[12] https://learn.microsoft.com/fr-fr/dotnet/csharp/tour-of-csharp: C# :25/05/2023
consulté le 16/02/2023
[13] https://www.definitions-marketing.com/definition/pwa: PWA : 02/02/2021 consulté le
16/02/2023
[14]https://learn.microsoft.com/fr-fr/dotnet/architecture/blazor-for-web-forms-
developers/introduction: Blazor: 25/02/2023: consulté le 16/02/2023
[15]https://developer.mozilla.org/fr/docs/Learn/JavaScript/First_steps/What_is_JavaScript
: Javascript : 13/04/2023 : consulté le 16/02/2023
[16] https://www.journaldunet.fr/web-tech/guide-de-l-entreprise-digitale/1511271-azure-
le-cloud-de-microsoft-en-un-coup-d-oeil: Microsoft Azure : 03/05/2022 : consulté le
18/02/2023
[17] https://www.50a.fr/0/react : React: consulté le 20/0 3/2023
[18] https://aws.amazon.com/fr/what-is/python/ :Python : consulté le 21/03/2023
[19] https://fr.wikipedia.org/wiki/Microsoft_SQL_Server : SQL Server : consulté le
25/03/2023
[20] https://learn.microsoft.com/fr-fr/azure/applied-ai-services/form-recognizer/how-to-
guides/use-sdk-rest-api?view=form-recog-3.0.0&pivots=programming-language-
csharp&tabs=windows : Form recognizer : 15/03/2023 : consulté le 25/03/2023
[21] https://datascientest.com/deep-neural-network: Neural Network : 06/04/2022 :
consulté le 25/03/2023
[22]https://datavalue-consulting.com/deep-learning-reseaux-neurones-recurrents-rnn :
RNN : 25/08/2021 : consulté le 27/03/2023
[23] https://miro.com/app/board/uXjVPpZYJi8=/#_=_ : Nimo pfe: consulté le 27/03/2023
[24] https://fr.reactjs.org/docs/fragments.html: Render Fragment : Fragment : consulté le
27/03/2023
Annexes

Annexe A : L'application "Upload File"

Annexe B : Importation du package Computer Vision


Annexe C : Consommation de l’API

Annexe C: les items du projet dans AzureDevops


Annexe D : Classement des taches

Annexe E : Capture d’écran de quelques commits dans Azure Devops


Résumé
Ce rapport documente le développement d'une application web et desktop utilisant
ASP.NET Blazor PWA pour Metam Tech Tunisie. Le projet se divise en deux parties :
l'analyse de données et l'outil d'étiquetage. L'analyse de données implique le téléchargement
de fichiers, qui sont ensuite traités par le service Azure Form Recognizer pour extraire le
texte requis. L'outil d'étiquetage facilite la création d'une application pour étiqueter des
paires de données clé-valeur, entraînant ainsi l'algorithme d'apprentissage automatique du
service Azure Form Recognizer. Les technologies utilisées incluent ASP.NET Blazor, SQL
Server, ReactJS, Python et Electron. Le système résultant est intégré à l'ERP existant,
Nœuron, pour améliorer le traitement des documents et l'extraction des données dans
l'environnement de Metam Tech Tunisie.

Keywords: ASP.NET Blazor, PWA, Azure Form Recognizer, ReactJS, Python, SQL Server,
Electron.

‫الملخص‬
Metam Tech ‫ لفائدة‬Blazor PWA ASP.NET ‫يوثق هذا التقرير تطوير تطبيق الويب وسطح المكتب باستخدام‬
Tunisia.
.‫ينقسم المشروع إلى مشروع تحليل البيانات وأداة وضع العالمات‬
. ‫ الستخراج النص المطلوب‬Azure Form Recognizer ‫تتضمن تحليل البيانات تحميل الملفات ومعالجتها بواسطة خدمة‬
Azure ‫أداة وضع العالمات تسهل إنشاء تطبيق لتسمية أزواج بيانات القيمة المفتاحية وتدريب خوارزمية التعلم اآللي لخدمة‬
Form Recognizer.
‫ يُظهر هذا التقرير التنفيذ الناجح لتقنيات‬. Neuron ‫سيتم دمج النظام الناتج مع نظام تخطيط موارد المؤسسة الحالي‬
‫ لتحسين معالجة المستندات واسترداد البيانات‬Electron ASP.NET ‫ و‬SQL ‫ و‬Python ‫ و‬React ‫و‬Blazor PWA
Metam Tech Tunisia.‫في بيئة‬

Blazor, ASP.NET, PWA, SQL Server, Azure Form Recognizer, ReactJs : ‫الكلمات الرئيسية‬
Python, Electron

Abstract
This report documents the development of a web and desktop application using
ASP.NET Blazor PWA for Metam Tech Tunisia. The project is divided into two parts: data
analysis and the labeling tool. Data analysis involves file uploads, which are then processed
by the Azure Form Recognizer service to extract the required text. The labeling tool
facilitates the creation of an application for labeling key-value data pairs by training the
machine learning algorithm of the Azure Form Recognizer service. The technologies used
include ASP.NET Blazor, SQL Server, ReactJS, Python, and Electron. The resulting system
is integrated with the existing ERP, Nœuron, to improve document processing and data
retrieval in the Metam Tech Tunisia environment.

Keywords: ASP.NET Blazor, PWA, Azure Form Recognizer, ReactJS, Python, SQL Server,
Electron.

Vous aimerez peut-être aussi