mercredi 14 août 2019

Rapport De Stage Uvci

Thème: Conception d'une application mobile pour la gestion des mesures, des modèles et livraison aux clients pour atelier de couture.


IDENTIFICATION
Nom : Soro

Prénom : Ninnougue Daouda

E-mail : ninnougue.soro@uvci.edu.ci

Spécialité : Développeur d'Application et E-service

Curriculum Vitae : veuillez cliquer sur ce lien pour voir le CV https://drive.google.com/open?id=1HeQcoF9tHBp3XZwSyTtNLpjb5vG32yoI



INTRODUCTION
        Dans notre pays, il n’est pas rare de voir un bon nombre d’atelier de couture prendre des notes telles que les mesures, les modèles sur des registres ou encore dans  des cahiers ; aussi il arrive parfois que le couturier égare, se trompe ou confond des mesures clients. C’est dans ce sens que j’ai décidé de mettre en place un système de numérisation des dits donnés.
Dans le cadre de ma licence en Développeur d’Application et E-service à l’Université Virtuelle de Cote d’Ivoire, j’ai eu l’opportunité de réaliser un stage au sein de l’école NaN Not A Number, spécialisée dans la formation gratuite en informatique des jeunes âgés de 18 à 25 ans.
En effet, l’objectif de ce stage était de mettre en place une application mobile pour la gestion des mesures, des modèles et livraison aux clients pour atelier de couture. Cette application devrait être réalisée avec le langage de programmation DART et son Framework FLUTTER sous android studio.
Ainsi quels sont les différentes étapes à franchir pour aboutir à la numérisation de ces donnés ?
Dans le but de répondre à cette question, dans un premier temps nous décrirons l’entreprise et son activité. Ensuite nos aborderons la conception et la réalisation. Enfin, nous dresserons un bilan global de ce stage, en mettant en avant les compétences que j’ai pu développer, et en faisant le lien avec mon projet personnel.



Chapitre I : CONTEXTE DE TRAVAIL


        I-  ENTREPRISE D'ACCUEIL

                                           
 1-Historique

NaN Not a Number
       Créé en 2018,  Not a Number (NaN) est une entreprise de programmation  informatique atypique, open source et gratuit en Côte d’Ivoire. NaN vient de « Not a Number », c’est une valeur indéfinie en informatique. NaN, c’est le retour d’une opération impossible, indéfinie qui symbolise notre recherche dans la définition du devenir de l’éducation sans toutefois avoir la réponse finale.
NaN a été fondé par EVOX TRADING & KALIMATEC DMCC; deux entreprises de télécommunication qui ont décidé d’unir leur forces pour faire face aux changements de l’industrie des télécommunications en cherchant et formant des talents. Sa forme juridique est de type SARL avec un capital de 1 000 000 FCFA  divisé en Cent (100) Parts Sociales de Dix Mille (10.000) F CFA chacune en numéraires, numérotées de 1 à 100
intégralement souscrites et entièrement libérées par les associés avec à sa tête Mr Keffa Yebe Diomandé.

                               deux entreprises de télécommunication qui ont décidé d’unir leur forces pour faire face aux changements de l’industrie des télécommunications en cherchant et formant des talents. Sa forme juridique est de type SARL avec un capital de 1 000 000 FCFA  divisé en Cent (100) Parts Sociales de Dix Mille (10.000) F CFA chacune en numéraires, numérotées de 1 à 100 intégralement souscrites et entièrement libérées par les associés avec à sa tête Mr Keffa Yebe Diomandé



2- Evolution
Etant une entreprise qui forme gratuitement dans le domaine de l’informatique, NaN repose sur un système de parrainage dont la durée de formation s’étant sur 2ans. Ainsi la tache d’un parrain  est de suivre un groupe de nouveau étudiant dans leur évolution. Les nouveaux étudiants à leur tour vont parrainer les nouveaux venus ainsi de suite.

Si joint le diagramme d’évolution de l’entreprise NaN. 





3- Nature de l’activité
Situé à Cocody Angré plus précisément au carrefour Gestoci, cette entreprise offre des formations en informatique dans le domaine de la programmation et  la formation de ses étudiants, Not a Number (NaN)  ne lésine pas sur les moyens. Mieux c’est un projet totalement gratuit, et accessible aux jeunes de tous les horizons qui ont entre 18 et 25 ans. Ainsi pour toutes personnes désirant suivre cette formation et qui n’est pas compris dans cet intervalle d’âge doit payer le prix de la formation fixé par l’entreprise. Aussi il convient de noter que l’entrée dans cette entreprise pour bénéficier de ces formations se fait par voix de concours qui est lancé chaque fin d’année.



II-SERVICE D'AFFECTATION

Une nouvelle performance qui vient donc, nul doute, booster le dynamisme de cette école (NaN), qui souhaite prendre une part active dans l’éclosion de nouveaux experts en informatique  et en programmation en Côte d’Ivoire. C’est dans cette vision que NaN met à la disposition ces étudiants un cadre entièrement équipé de matériels informatiques ultra sophistiqués ; 50 ordinateurs de marque Mac core 15,  1 terra de disque Dur et 8 giga de RAM ; des appareils photos ; des imprimantes ;  internet haut débit, le tous dans une salle équipée de climatiseur et de chaise de bureau.
Je ne saurai débuter ce stage sans avoir une idée claire et précise sur l’existant quel qu’il soit. La première tâche a été de rencontrer différentes personnes qui entretiennent directement ou indirectement une relation avec le service informatique de NaN. Il s’agit principalement de Mr. Keffe Yebe Diomandé Maitre de stage ; Mme. La secrétaire  et 18 autres élèves informaticiens de l’entreprise.
Après quoi, j’ai réellement débuté le travail en menant différentes recherches. Cette méthodologie de travail m’a permis d’avoir une connaissance large de l’existant.


III- ETUDE DE L’EXISTANT

Certes de telles applications existes mais celles-ci sont limitées ; elles prennent en compte les modèles de couture seulement. Ainsi mon application vient ajouter un plus en dehors des modèles en permettant au couturier d’enregistrer les mesures, enregistrer les personnes ayant retiré leur vêtements tout ça à l’aide de son téléphone portable smartphone.


IV-       CAHIER DE CHARGE

        IV-1 Présentation du projet
            Conception d’une application mobile pour la gestion de mesures, des modèles et livraison aux clients pour atelier de couture.

       IV-2 Contexte
Le non respect des rendez-vous dans le domaine de la couture est source de  problème entre les couturiers et la clientèle qui est très souvent provoqué la perte et la confusion des mesures de ces clients. Ce parce que ces derniers prennent les mesures dans des registres ou encore dans des cahiers. C’est dans cette optique que j’ai pensé à mettre en place un système de numérisation des dits donnés.
Ainsi ce système de numérisation qui sera mis en place est une application  mobile pour la gestion des mesures, des modèles et livraison aux clients pour un atelier de couture.

        IV-3 Objectif
            L’objectif principal de ce projet est d’intégrer le numérique dans le domaine de la couture en facilitant au couturier la prise de note comme les mesures avec leur téléphones portables (Android, Smartphone et tablette), en montrant des modèles au clients  et en faisant des livraisons à l’aide de leur appareil téléphone.


        IV-4 Publique cible
            Au vu de ce qui précède, il faut dire que ce projet vise toutes les personnes exerçant dans le domaine de la couture que ça soit des petits ou grand atelier de couture.  En dehors des couturier le projet peut être utilisé par toutes personnes voulant se fait coudre des vêtements en faisant un choix de modèle via l’application.

      IV-5  Besoin
         Pour les besoins nous avons besoin, d’un designer pour le prototypage de l’interface de l’application, d’un développeur front end qui maitrise le langage de programmation Dart et son Framework Flutter et un développeur back end pour la gestion de la base de donnée.


       IV-6 Contraintes


 v Toute application de téléphone demande une mise à jour permanente (la maintenance de l’application) et pour cause, la concurrence des nombreuses applications disponibles sur les stores est plutôt rude.
 v  Aujourd’hui, les systèmes d’exploitation (AndroidiOS) imposent certaines règles à respecter (les mesures relatives au traitement de données dans le cas d’une géolocalisation, demander les permissions pour exploiter telle ou telle ressource du système etc.). Ces règles peuvent se révéler contraignantes pour un développeur surtout qu’il est obligatoire de les respecter pour pouvoir publier une application sur une plateforme, même si les vérifications d’Android sont plus laxistes que celles d’Apple.
 v Créer une application pour smartphone nécessite un budget pouvant être bien plus élevé que prévu surtout, si l’application doit être disponible sur tous les systèmes d’exploitation.

       IV-7 Fonctionnalité
L’application sera constituée des pages suivantes :
  Ø  Une page d’accueil qui comprend les différents liens tel que le menu de recherche, le menu           mesure, le menu modèle et le menu de livraison.
  Ø  Une page mesure pour noter la mesure du client.
  Ø  Une page modèle pour le choix du modèle par le client.
 Ø  Une page livraison pour permettre au couturier d’enregistrer les personnes ayant retiré leur vêtement.
  Ø  Une page recherche permettant de couturier de rechercher une personne enregistrée dans le page         mesure. 


     Chapitre II : CONCEPTION


I-   Description de la méthode


              I-1- Introduction
           Lors de ce chapitre, nous allons identifier les diagrammes de classes et de cas d’utilisation réalisés pour mettre en œuvre l’architecture de l’application proposée. La motivation fondamentale de la modélisation est de fournir une démarche antérieure afin de réduire la complexité du système étudié lors de la conception et d’organiser la réalisation du projet en définissant les modules et les étapes de la réalisation. Plusieurs démarches de modélisation sont utilisées. Nous adoptons dans notre travail une approche objet basée sur un outil de modélisation UML. En fait, UML (Unified Modeling Language) est un standard ouvert contrôlé par l’OMG, un consortium d’entreprises qui a été fondé pour construire des standards qui facilitent l’interopérabilité et plus spécifiquement, l’interopérabilité des systèmes orientés objet. UML est issu de l’unification de nombreux langages de modélisation graphique orientée objet. Il unifie à la fois les notations et les concepts orientés objets.


           I-2 Présentation de ArgoUML


logo ArgoUML
La modélisation de notre application sera réalisée avec ArgoUML. Alors qu’est-ce ArgoUML ? Et bien, ArgoUML est un logiciel de création de diagrammes UML  sous licence libre et programmé en Java (et donc multi-systèmes).



 

Mais qu’est-ce que l’UML? c’est un langage permettant de décrire des objets et leurs relations. 

L’emploi de l’UML facilite grandement le développement d’applications dans des langages dirigés par les objets en permettant d’en établir un modèle formel et facile à comprendre.

Ainsi ArgoUML permet :
  • La modélisation d’une application informatique.
  • La création des neuf types de diagrammes UML de manière simple et graphique :
    • le diagramme de cas d’utilisation,
    • le diagramme de classes,
    • le diagramme de séquence,
    • le diagramme de collaboration
    • le diagramme d’état
    • le diagramme d’activité
    • le diagramme de déploiement
Ci-joint le site officiel de ArgoUML et un extrait de la plateforme de ArgoUML.
Site officiel de ArgoUML : http://argouml.tigris.org/


Extrait de plateforme ArgoUML

II- Description et choix des outils techniques


           II-1- Conception Général


       II-1-1 Définition cycle de vie d’une application
Un logiciel ou une application ne se résume pas à un ou plusieurs programmes utilisés par des clients. Une application naît, vit et meurt. C’est pourquoi on parle de cycle de vie d’une application.  Le cycle de vie d’une application est constitué de toutes les étapes jalonnant son parcours, depuis l’idée de départ jusqu’à l’abandon de l’application par ses utilisateurs, en passant par la conception, la réalisation et la maintenance.

II-1-2 Les activités d’un cycle de vie
 La réalisation du logiciel va être décomposée en itérations reprenant chacune les phases suivantes :
Ø  Analyse des besoins : recueil et expression des besoins et des contraintes avec le client, rédaction d’un document de synthèse.
Ø  Conception ou spécification générale : architecture globale et description des fonctionnalités de l’application.
Ø  Conception ou spécification détaillée : définition du détail des fonctionnalités en créant des lots, ou des sous-ensembles de l’application qui regrouperont des fonctionnalités apparentées ou liées.
Ø  Conception ou spécification technique : les fonctionnalités étant définies, il faut maintenant déterminer de quelles manières elles seront réalisées concrètement.
Ø  Réalisation : il s’agit de la phase de développement. Les développeurs vont traduire en code les fonctionnalités décrites dans les étapes précédentes.
Ø  Tests unitaires : les tests unitaires permettent de vérifier unitairement que chaque unité de code lorsqu’elle est exécutée, se comporte de façon conforme par rapport aux spécifications. Idéalement, le développement est piloté par les tests (TDD ou Test Driven Development) et par conséquent, les tests sont écrits par les développeurs durant la phase de réalisation.
Ø  Intégration : l’ensemble des éléments développés séparément sont regroupés afin de vérifier qu’ils communiquent correctement et qu’ils fonctionnent ensembles. Ces vérifications sont effectuées à l’aide des tests d’intégration. Ils peuvent être réalisés conjointement avec l’équipe projet et le client.
Ø  Qualification : le client vérifie la conformité de l’application développée aux spécifications établies.

II-2 Modélisation de l’application
   
    II-2-1  Diagramme de cas d’utilisation
La connaissance des fonctionnalités à implémenter est essentielle pour établir le diagramme de cas d’utilisations de l’application. Une fois encore, l’étude réalisée pour la compréhension de l’application et l’écriture du cahier des charges ont permis d’avoir des éléments solides pour lister les fonctionnalités à implémenter et faciliter la réalisation de ce diagramme de cas d’utilisation. Dans cette section, nous allons détailler les différents diagrammes de cas d’utilisation réalisés.
Le diagramme de cas est composé de trois principaux éléments qui sont :
  •     Un Acteur : c’est l’idéalisation d’un rôle joué par une personne externe, un processus ou une chose qui interagit avec un système. Il se représente par un petit bonhomme avec son nom inscrire dessus.



  •       Un cas d’utilisation : c’est une unité cohérente représentant une fonctionnalité visible de l’extérieur. Il réalise un service de bout en bout, avec un déclenchement et une fin, pour l’acteur qui l’initie.




  •          Les relations : trois types de relations sont pris en charge par la norme UML et sont graphiquement représentées par des types particuliers de ces relations. Les relations indiquent que le cas d’utilisation source présente les mêmes conditions d’exécution que le cas issu. Une relation simple entre un acteur et une utilisation est un trait simple.





Diagramme de cas d’utilisation de notre application

Figure : Diagramme de cas d’utilisation de l’application
La figure ci-dessus représente le diagramme de cas d’utilisation principal, à savoir celui concernant le fonctionnement de l’application. Comme nous pouvons le constater, les acteurs principaux de ce diagramme sont le couturier et le client. L’application doit pouvoir leurs permettre de gérer des tâches, et pour cela implémenter des fonctionnalités comme l’enregistrement des mesures d’un client, le choix des modèles …
         D’autres personnes sont également des acteurs de ce diagramme, bien que secondaire. Leur rôle ici se résume uniquement à la consultation des modèles.


Diagramme de cas d’utilisation détaillé

Figure: Diagramme de cas couturier-mesure


   Ce diagramme ci-contre met en évidence l’acteur couturier et l’utilisation client passant par l’utilisation accueil. Ainsi le couturier sera capable d’enregistrer les mesure du client dans l’utilisation mesure qui représente.




Figure: Diagramme de cas couturier-recherche

    Après l’enregistrement des données d’un client, l’acteur couturier pourra consulter ces données au moment voulu            en entrant soit le nom soit  le numéro du client dans le champ de saisir de l’utilisation recherche.




Figure: Diagramme de cas couturier-Livraison

    
   Dans cette partie,  l’acteur couturier peut l’aide de l’utilisation Livraison lister tous les clients ayant retirés leur vêtement.






Figure: Diagramme de cas couturier-modèles-client
    
      L’utilisation modèle comprend ici un ensemble de modèles de couture au choix. Ainsi l’acteur couturier va permettre à l’acteur client après la prise de mesure de choisir un modèles selon lequel son pagne sera coudre.




   II-2-2  Diagramme d’activité

        Le diagramme d’activité est un diagramme comportemental d’UML, permettant de représenter le déclenchement d’événement en fonction des états du système et de modéliser des comportements parallélisables (multi-threads ou multi-processus). Le diagramme d’activité est utilisé pour décrire un flux de travail (workflow). C’est une représentation proche de l’organigramme ; la description d’un cas d’utilisation par un diagramme d’activité correspond à sa traduction algorithmique.

  •  diagramme d’activité de mon application
Figure : Diagramme d’activité de l’application
  •  Le couturier faire un enregistrement des mesure du client.
  • Après la prise de mesure il autorise aux clients de faire un choix de modèle.
  • Il valide par la suite les données prises qui seront enregistrées dans la base de données.
  • Le couturier peut rechercher dans la base de données les informations d’un client en entrant le nom du client dans le champ de recherche ; avec les informations du client, il commence les travaux.

Chapitre III: REALISATION

I- Les interfaces de l’application

     Dans cette partie nous allons présenter les interfaces de l’application tout en passant en premier lieu par la présentation de l’environnement de travail c’est les outils de travail et les logiciels utilisés.

      1- Environnement de travail

    Au niveau de cette dernière partie, nous allons énumérer les outils soft et hard que nous avons utilisés pour réaliser notre site ainsi que ses principales interfaces.

          1-1- Environnement Hard

Pour la réalisation de l’application, nous avons utilisé un ordinateur HP ProBook dont les caractéristiques sont les suivants :
      Ø  Hôte : DESKTOP-NJJ35UT
      Ø  Système d’exploitation : Windows 10 Professionnel
      Ø  Processeur : Intel(R)  Core(TM) i5-3210M CPU @ 2.50GHz 2.50GHz
      Ø  Mémoire RAM : 4,00 Go
      Ø  Type du Système : Système d’exploitation 64 bits, processeur x64


      1-2- Atelier de Génie Logiciel

          a-Langage de programmation
        Le langage de programmation utilisé pour la réalisation de notre application est le langage Dart avec son Framework Flutter. Vous ne savez pas ce que s’est Dart et flutter, alors, Dart (initialement appelé Dash) est un langage de programmation web développé par Google. Son but initial est de remplacer JavaScript pour devenir la nouvelle lingua franca du développement web, néanmoins la priorité actuelle des développeurs est que le code Dart puisse être converti en code JavaScript compatible avec tous les navigateurs modernes, ainsi que sur le développement d'application multiplateforme.
     Dart peut aussi être utilisé pour la programmation côté serveur, ainsi que le développement d'applications mobiles (via l'API Flutter). Et quant à Flutter, Flutter est un Framework de développement d'applications mobiles open source créé par Google . Il est utilisé pour développer des applications pour Android  et iOS et constitue également la méthode principale de création d'applications pour Google Fuchsia.

         b- logiciel de programmation
      Visual Studio Code est le logiciel de programmation que nous avons utilisé pour écrire notre ligne de code. En effet Visual Studio Code est un éditeur de code extensible développé par Microsoft pour WindowsLinux et macOS. Il est basé sur Electron, une structure utilisée pour déployer des applications Node.js pour le bureau exécuté sur le moteur Blink. Bien qu'il utilise le framework Electron, le logiciel n'utilise pas Atom mais utilise le même composant éditeur (nommé "Monaco") utilisé dans Azure DevOps (anciennement appelé Visual Studio Online et Visual Studio Team Services). En un mot Visual Studio Code est un éditeur de texte très puissant.

 2- Présentation des interfaces de l’application
    Cette partie dénombre la présentation des Scénarios applicatifs de l’application. Nous allons présenter dans ce qui suit, les imprimes-écran des principales interfaces réalisées dans notre application mobile. Pour rappel, le thème de notre application est : Conception d’une application mobile pour la gestion de mesures, des modèles et livraison aux clients pour atelier de couture. Voyons ensemble une vue global des interfaces de l’application avant de passer à la présentation détaillée de celui-ci.

Vue global des interfaces de l’application

     La fonction de l’application est d’intégrer le numérique dans le domaine de la couture. Cette application a pour but d’aider le couturier à numériser ces informations en utilisant son téléphone (Android, Smartphone, Tablette…) pour la prise de mesure, la présentation des modèles et  la livraison des vêtements.



      2-1-    Page d’accueil


         Nous avons ci-dessus la page accueil de notre application de couture dénommée Mémoire Couture. Ainsi cette page présente les différents menus de navigation tels que le Recherche, Mesure, Livraison et Modèle. C’est à l’aide de cette page d’accueil que l’utilisateur qui est le couturier va pouvoir naviguer à travers les différentes pages.

                           
          2-2- Page de Mesure
         Cette page ci-contre représente la page de mesure. Elle permettra à l’utilisateur d’enregistrer les mesures des clients afin de pouvoir les utiliser plus tard. Sur l’interface nous voyons bien qu’il y a un formulaire de mesure pour les hommes et les femmes. Donc l’utilisateur choisira le formulaire en fonction du client. Ce formulaire prendre en contre le nom et prénoms du client qui sera joint aux différentes mesures.


          2-3- Page de Recherche
      Nous avons là la page de recherche. Après avoir enregistré une mesure, l’utilisateur est invité à consulter ces mesures sur la page Recherche en entrant dans le champ de recherche le nom du client.


       2-4-    Page Modèle

         Cette page représente la page de Modèles. Elle met en évidence les différents modèles que l’utilisateur pourra présenter au client.


        2-5-    Page Détail Modèle

         La page ci-dessus donne les détails sur un modèle donné. Sur la page modèle lorsque l’utilisateur clique sur le bouton ‘détail’, il est redirigé vers cette page ici présente. Cette page donne les informations telles que le nom et les accessoires du modèle.


      2-6-   Page Livraison

           La page Livraison a pour but d’enregistrer les livraisons. Ainsi lorsqu’un client vient retirer ces vêtement, le couturier est appelé à enregistrer le nom de ce dernier dans la base de donnée de sorte à pouvoir listé les personnes ayant retiré leur vêtement.


III- Les difficultés et les enseignements tirés au cours du stage.

    1-Les difficultés

          Imaginez-vous dans un monde  où tout est à votre porté, un bureau, un ordinateur, la connexion internet et j’en passe, un monde ou vous devez passer à la pratique après avoir fait la théorie à l’école; et bien ce monde c’est mon lieu de stage. La première des difficultés s’est trouvé au niveau de l’installation de flutter, la deuxième s’est trouvée au niveau du premier test de ma toute première application mobile dont il n’y avait pas d’émulateur sur l’ordinateur. Pour remédier à la première difficulté, je me suis dirigé vers youtube pour suivre un tutoriel dans le but d’installer flutter sur la machine et j’ai pu l’installer. Pour la deuxième difficulté, j’ai utilisé mon Smartphone comme émulateur en le mettant mode développeur, ce qui m’a permit de tester mes applications.


      2-   Les enseignements

       Pensez-vous pouvoir apprendre un langage de programmation en un mois et à la suite de cela créer un projet que vous devez soumettre ? Et oui peu importe votre réponse, je vous dirai c’est bien et bel possible. Ce qui a été mon cas lors de ce stage. Il faut comprendre par là les techniques d’apprentissage d’un langage de programmation que j’ai appris lors de ce stage. En dehors de cela,  les enseignements suivants tirés sont la collaboration, la communication et le comportement dans le domaine professionnel.
En un mot ce stage a été très bénéfique pour moi.



CONCLUSION

Ce stage a été une expérience professionnelle très enrichissante que ce soit d'un point de vue approfondissement de mes connaissances en informatique plus précisément développeur d’application, que du point de vue relationnel et découverte d'un nouvel environnement de travail et une nouvelle mentalité.
J'ai eu le plaisir de contribuer au développement d’une application mobile qui m’a été soumis par mon maître de stage par le biais d’un cahier de charge.
Le contact avec les autres développeurs m'a permis d'établir un échange de connaissances et de nouvelles idées, qui m'ont permises de progresser dans mon travail et de surmonter les problèmes rencontrés tout au long de la phase de développement.
Ce domaine de programmation d’application mobile est un domaine fascinant et met en œuvre plusieurs autres domaines qui le rendent encore plus excitant et riche en recherches.
De nouvelles perspectives s'ouvrent suite à cette expérience, qui vise essentiellement à innover et à créer de nouvelles solutions. L'informatique couplée à la programmation d’application mobile me séduisent et me poussent à apprendre encore plus et surtout à essayer de contribuer à l'avancement technologique de la programmation.
Enfin, je tiens à exprimer ma satisfaction d'avoir pu travaillé dans de bonnes conditions matérielles et dans un environnement agréable.

Aucun commentaire:

Enregistrer un commentaire

Rapport De Stage Uvci

Thème: Conception d'une application mobile pour la gestion des mesures, des modèles et livraison aux clients pour atelier de couture...