Post on 10-Feb-2017
Ecole Nationale des Sciences Appliquées de Tétouan
1
Mémoire de fin d’étude
Conception et développement d’une plateforme Odoo et d’une application Android destinée à la gestion d’une société spécialisée
dans les métiers de l’offshoring ICT
Par :
ELOUASSINI Oumaima et KHATTABI Ghita
Soutenance le 20 Juin 2015
Membres du Jury :
- Pr. Youness Tabii Encadrant pédagogique (ENSATE)
- Pr. CHRAYAH Mohamed Professeur à l’ENSATE
- Pr. LAZAAR Mohamed Professeur à l’ENSATE
Année universitaire : 2014/2015
Pour l’obtention du diplôme
D’Ingénieur d’Etat
Génie Informatique
Ecole Nationale des Sciences Appliquées de Tétouan
2
Dédicace
A la plus belle perle du monde…ma tendre mère
Tout ce que je peux t'offrir ne pourra exprimer l'amour et la reconnaissance que je te
porte,
En témoignage, je t'offre ce modeste travail pour te remercier pour tes sacrifices et pour
l'affection dont tu m'as toujours entourée.
A mes chères sœurs Sajida et Soukaina, vous m'avez toujours soutenue durant toutes
mes études, je vous souhaite une vie pleine de joie, de bonheur et de réussite,
A mes grands-parents, mes proches et à ceux qui me donnent de l'amour et de la vivacité,
A ma chère binôme Ghita,
A tous mes amis,
A tous ceux que j'aime.
Merci !
Oumaima.
Ecole Nationale des Sciences Appliquées de Tétouan
3
Dédicace
À mes très chers parents,
Je ne pourrais exprimer l'étendue de ma gratitude en ces quelques lignes. Toutefois
je vous remercie pour votre soutien continuel, pour vos sacrifices et pour l'excellent
modèle que vous avez été pour moi le long de toutes ces années. Je vous dédie ce
travail.
À ma très chère sœur,
Je te remercie pour les encouragements sincères que tu n'as pas manqué de m'offrir
tout au long de mon parcours et pendant les moments où j'en avais le plus besoin.
À ma famille,
Pour leur soutien continuel, leur foi en mes capacités, et leur façon de m'insuffler
leur joie de vivre. Je remercie particulièrement Sara, pour son immanquable vitalité
et sa confiance en mes capacités.
À Oumaima,
Pour avoir été une coéquipière travailleuse, persévérante, mais qui s'est également
révélée être une grande amie.
À tous mes amis, et à tous mes proches,
Je vous remercie.
Ghita.
Ecole Nationale des Sciences Appliquées de Tétouan
4
Remerciements
Avant d'entamer ce rapport, nous tenions à exprimer nos remerciements à tous les acteurs du
projet qui, au long de tous ces mois, nous ont apporté une aide précieuse pour la réalisation de
celui-ci.
Ainsi, nous commencerons par manifester notre profonde gratitude à toute l'équipe d'OpenCorp
SA, plus précisément notre encadrant de stage M. Khalid BENTALEB, pour son soutien, sa
générosité et ses conseils prodigués tout au long de la période de notre stage au sein de
l'entreprise.
Ensuite, nous tenons à remercier sincèrement Dr. Youness TABII, notre encadrant à l'École
Nationale des Sciences Appliquées de Tétouan, pour ses directives, ses conseils et son soutien
tout au long du stage. Nous vous remercions pour votre suivi et votre encadrement durant ces
mois-ci.
Nous aimerions également remercier M. Jérémie VANDER MEUTER, pour son soutien, ses
conseils et son encouragement pendant toute la durée de notre stage dans OpenCorp.
Nous saisissons également l'occasion pour remercier le corps professoral de l'ENSATé dans
son intégralité, pour son enseignement le long de ces cinq années.
Enfin, nous remercions les membres du jury pour avoir eu l'amabilité d'accepter de juger notre
travail.
Ecole Nationale des Sciences Appliquées de Tétouan
5
Résumé
Le présent rapport est le fruit d'un travail effectué au sein de l'entreprise OpenCorp SA, dans le
cadre de notre projet de fin d'études en vue de l'obtention du diplôme d'ingénieur d'état en
informatique.
De nos jours, l'entreprise a besoin de faire sans cesse évoluer ses activités et ses processus. C'est
effectivement le cas de l'entreprise OpenCorp SA qui souhaite étendre ses activités vers
l'ensemble des pays francophones, et ainsi arrêter de se limiter au territoire belge. Pour réaliser
ce but, l'entreprise a besoin de faire évoluer son progiciel de gestion intégré, d'une nouvelle
interface pour son site web, mieux adaptée aux nouveaux objectifs de l'entreprise, et pour finir,
d'une application mobile, permettant une gestion flexible en tout temps et en toute heures de
différents services.
L'intitulé de notre projet est le suivant : « Conception, développement et mise en ligne d’une
plateforme Odoo destinée à la gestion d’une entreprise spécialisée dans les métiers de
l’offshoring ICT »
Notre projet consiste à mettre en place un nouveau module pour l'ERP, ainsi que le
développement d'une application mobile mettant en place les différentes fonctionnalités
ajoutées en back-end. Le projet s'articule autour de deux modules principaux : le module des
ressources humaines et le module des ventes.
Pour mettre au point ce projet, il a fallu passer par une étape d'analyse des besoins, et d'une
conception détaillée du projet, avant de passer à l'étape de développement. Celle-ci a été
effectuée en sprints, de manière à ce que les résultats du développement soient régulièrement
testés afin de garantir l'intégrité et l'efficacité du produit. Ensuite, une fois que le module à
développer était prêt, il a fallu passer au développement de l'application mobile permettant
l'accès aux fonctionnalités mêmes mises au point précédemment, cette étape a été, bien entendu,
également ponctuée de tests unitaires afin de garantir un produit final « zéro défaut ».
Ce rapport a donc pour but de détailler les étapes par lesquelles est passé le projet afin d'atteindre
la solution actuelle.
Mots-clés : Odoo, ERP, Android, Ressources Humaines, Ventes.
Ecole Nationale des Sciences Appliquées de Tétouan
6
Abstract
This report is the result of four months of work carried out within the company OpenCorp SA,
as part of our final project in order to obtain the engineering degree in computer science.
In the present day, the company needs to continually evolve its activities and processes. This is
the case of the company OpenCorp SA that wishes to extend its activities to all French-speaking
countries, and to stop being limited to Belgium only. To achieve this goal, the company needs
to upgrade its ERP system, a new interface for its website that will be more adapted to the new
objectives of the company, and finally, a mobile application, allowing flexible management at
all times and in all hours of different services.
The title of our project is: "Design, development and implementation of an Odoo online
platform for the management of a company specializing in the business of ICT offshoring"
Our project is to implement a new module for the ERP and to develop a mobile application by
implementing various features added in the back-end section. The project consists of two main
modules: the human resources module and the sales module.
To develop this project, we had to go through a stage of requirements analysis, and a detailed
project design, before moving on to the development stage. This was done in sprints, so that
development results are regularly tested to ensure the integrity and effectiveness of the product.
Then, once the module to be developed was ready, we had to move on to the development of
the mobile application which allows access to the same features developed earlier, this step
was, of course, also punctuated by unit tests to ensure a final product with "zero defects".
This report therefore aims to detail the steps that the project went through in order to achieve
the current solution.
Keywords: Odoo, ERP, Android, Human Resources, Sales.
Ecole Nationale des Sciences Appliquées de Tétouan
7
Liste des tableaux Tableau 1- Cahier de charges Back-end ................................................................................................ 19
Tableau 2- Cahier de charges mobile .................................................................................................... 21
Tableau 3- Acteurs du système ............................................................................................................. 29
Tableau 4- Description textuelle : Créer Timesheet ............................................................................. 44
Tableau 5- Description textuelle : Soumettre Timesheet .................................................................... 44
Tableau 6- Description textuelle : Approuver Timesheet .................................................................... 45
Tableau 7- Description textuelle : Rejeter Timesheet .......................................................................... 45
Tableau 8- Description textuelle : Créer employé ................................................................................ 46
Tableau 9- Description textuelle : Modifier les informations d'un employé ....................................... 46
Tableau 10- Description textuelle : Créer contrat ................................................................................ 47
Tableau 11- Description textuelle : Modifier contrat ........................................................................... 48
Tableau 12- Description textuelle : Créer Sales Order ......................................................................... 48
Tableau 13- Description textuelle : Modifier Sales Order .................................................................... 49
Tableau 14- Description textuelle : Générer rapports ......................................................................... 49
Tableau 15- Description textuelle : Split les contrats ........................................................................... 50
Tableau 16- Description textuelle : Créer facture ................................................................................ 51
Tableau 17- Tableau détaillé des classes, entités et méthodes ............................................................ 62
Liste des figures Figure 1- Logo d'OpenCorp SA ............................................................................................................... 14
Figure 2- Exemple du développement en Scrum .................................................................................. 22
Figure 3- Aperçu des tâches effectuées ................................................................................................ 23
Figure 4- Diagramme de Gantt équivalent ............................................................................................ 24
Figure 5- Diagramme des paquetages ................................................................................................... 28
Figure 6- Diagramme de contexte ........................................................................................................ 30
Figure 7- Logo d'Odoo ........................................................................................................................... 30
Figure 8- Structure modulaire d'Odoo .................................................................................................. 32
Figure 9- Logo d'Android ....................................................................................................................... 36
Figure 10- Cycle de vie d'une application Android ................................................................................ 37
Figure 11- Logo d'Ubuntu ...................................................................................................................... 38
Figure 12- Logo de PostgreSQL .............................................................................................................. 39
Figure 13- Diagramme de cas d'utilisation : Ressources Humaines ...................................................... 52
Figure 14- Diagramme de cas d'utilisation : Ventes ............................................................................. 52
Figure 15- Diagramme d'activité : Timesheets ...................................................................................... 53
Figure 16- Diagramme d'activité : Ventes ............................................................................................. 55
Figure 17- Diagramme de séquence : Authentification ........................................................................ 56
Figure 18- Diagramme de séquence : Création d'une timesheet.......................................................... 57
Figure 19- Diagramme de séquence : Modifier et/ou approuver une timesheet ................................. 58
Figure 20- Diagramme de séquence : Split un contrat .......................................................................... 59
Figure 21- Diagramme de classe du système ........................................................................................ 60
Figure 22- Diagramme des composants ................................................................................................ 63
Figure 23- Diagramme de déploiement ................................................................................................ 64
Figure 24- Cycle de vie d'un test ........................................................................................................... 66
Ecole Nationale des Sciences Appliquées de Tétouan
8
Figure 25- Architecture du système ...................................................................................................... 67
Figure 26- Timesheets : Vue d'ensemble .............................................................................................. 68
Figure 27- Timesheets : Création d'une nouvelle timesheet ................................................................ 69
Figure 28- Timesheets : Insertion des informations .............................................................................. 69
Figure 30- Timesheets : Timesheets à valider ....................................................................................... 70
Figure 31- Timesheets : Vue validation ................................................................................................. 70
Figure 29- Timesheets : Message d'erreur-Description ........................................................................ 70
Figure 32- Contrats : Vue d'ensemble ................................................................................................... 71
Figure 33- Contrats : Vue contrat .......................................................................................................... 71
Figure 34- Contrats : Vue sous-contrat ................................................................................................. 72
Figure 35- Contrats : Split ...................................................................................................................... 73
Figure 36- Contrats : Timesheet concernée par projet ......................................................................... 73
Figure 37- Contrats : Total to invoice avant fonction split .................................................................... 73
Figure 38- Contrats : Total to invoice après fonction split .................................................................... 74
Figure 39- Contrats : Timesheet modifiée après split ........................................................................... 74
Figure 40- Contrats : Aperçu des prix d'achat et de vente après split .................................................. 74
Figure 41- Contrats : Aperçu du sous-contrat à facturer ...................................................................... 75
Figure 42- Contrats : Timesheets à facturer .......................................................................................... 75
Figure 43- Contrats : Facture ................................................................................................................. 76
Figure 44- Emails : Aperçu d'email de rappel ........................................................................................ 76
Figure 45- Reporting : Aperçu de la page des rapports ......................................................................... 77
Figure 46- Reporting : Aperçu du rapport généré ................................................................................. 77
Figure 47- Page de connexion ............................................................................................................... 78
Figure 48- Menus : Employé ordinaire .................................................................................................. 79
Figure 49- Menus : Administrateur ....................................................................................................... 79
Figure 50- Employés : Détails d'un employé ......................................................................................... 79
Figure 51- Employés : Liste des employés ............................................................................................. 79
Figure 52- Timesheets : Nouvelle Timesheet et nouvelle ligne ............................................................ 80
Figure 53- Timesheets : Soumission de la feuille de temps .................................................................. 81
Figure 54- Timesheets : Vérification par le responsable ....................................................................... 81
Figure 55- Contrats : Détails d'un contrat ............................................................................................. 82
Figure 56- Rapports : Aperçu des rapports par projet .......................................................................... 83
Figure 57- Rapports : Aperçu d'un rapport ........................................................................................... 83
Figure 58- Notifications : Aperçu d'une notification de validation ....................................................... 84
Figure 59- Page d'accueil ....................................................................................................................... 92
Figure 60- Créer timesheet .................................................................................................................... 92
Figure 61- Validation de la création ...................................................................................................... 93
Figure 62- Liste et détails des timesheets ............................................................................................. 93
Figure 63- Modifier Saved timesheet .................................................................................................... 94
Figure 64- Liste et détails des contrats .................................................................................................. 95
Figure 65- Nouvelle activité ................................................................................................................... 95
Figure 66- Ajouter un Sous-contrat ....................................................................................................... 96
Figure 67- Liste et détails des factures .................................................................................................. 96
Figure 68- Reporting: Vue par utilisateur .............................................................................................. 97
Ecole Nationale des Sciences Appliquées de Tétouan
9
Table des matières
Dédicace .............................................................................................................................................. 2
Dédicace .............................................................................................................................................. 3
Remerciements ................................................................................................................................... 4
Résumé ................................................................................................................................................ 5
Abstract ............................................................................................................................................... 6
Liste des tableaux ................................................................................................................................ 7
Liste des figures ................................................................................................................................... 7
Table des matières .............................................................................................................................. 9
Introduction générale ........................................................................................................................ 12
Chapitre 1 .............................................................................................................................................. 13
1- Présentation de l’organisme d’accueil ....................................................................................... 14
1.1 Présentation d'OpenCorp .................................................................................................. 14
1.2 Prestations et services ....................................................................................................... 15
1.3 Clients ................................................................................................................................ 16
2- Présentation générale du projet ............................................................................................... 17
2.1 Étude de l'existant ............................................................................................................. 17
2.2 Problématique ................................................................................................................... 17
2.3 Présentation du projet OpenCorp Offshore ...................................................................... 18
3- Démarche et planification ......................................................................................................... 22
3.1 Méthodologie de travail : .................................................................................................. 22
3.2 Planification du projet : ..................................................................................................... 23
Conclusion ......................................................................................................................................... 26
Chapitre 2 .............................................................................................................................................. 27
1- Étude fonctionnelle ................................................................................................................... 28
1.1 Diagramme des paquetages .............................................................................................. 28
1.2 Diagramme de contexte .................................................................................................... 29
2- Étude technique ........................................................................................................................ 30
2.1 Odoo .................................................................................................................................. 30
2.2 Proxmox VE ........................................................................................................................ 33
2.3 SSH (Secure Shell) .............................................................................................................. 33
2.4 SSL (couche de sockets sécurisée) ..................................................................................... 33
2.5 Service Web ...................................................................................................................... 34
Ecole Nationale des Sciences Appliquées de Tétouan
10
2.6 Android .............................................................................................................................. 36
3- Outils et technologies utilisés.................................................................................................... 38
3.1 Système d'exploitation Ubuntu : ....................................................................................... 38
3.2 Environnements de développement ................................................................................. 38
3.3 Système de gestion de base de données PostgreSQL ....................................................... 39
3.4 Visual Paradigm ................................................................................................................. 40
3.5 Les langages de développement utilisés ........................................................................... 40
Conclusion ......................................................................................................................................... 41
Chapitre 3 .............................................................................................................................................. 42
1- Conception détaillée du projet .................................................................................................. 43
1.1 Cas d’utilisation ................................................................................................................. 43
1.2 Diagrammes d'activité ....................................................................................................... 53
1.2 Diagrammes de séquence ................................................................................................. 55
1.4 Diagramme de classe ......................................................................................................... 59
1.5 Diagramme de composants ............................................................................................... 62
1.6 Diagramme de déploiement .............................................................................................. 63
Conclusion ......................................................................................................................................... 64
Chapitre 4 .............................................................................................................................................. 65
1- Tests........................................................................................................................................... 66
2- Architecture du système ........................................................................................................... 67
3- Réalisation du module opencorp_timesheet : .......................................................................... 68
3.1 Gestion des timesheets ..................................................................................................... 68
3.2 Gestion des contrats .......................................................................................................... 71
3.3 Facturation sur la base des contrats clients ...................................................................... 75
3.4 Service email ...................................................................................................................... 76
3.5 Reporting ........................................................................................................................... 76
4- Réalisation de l'Application OpenCorp mobile pour Android: .................................................. 78
4.1 Présentation de l'application : ........................................................................................... 78
4.2 Gestion des timesheets : ................................................................................................... 80
4.3 Gestion des contrats et factures: ...................................................................................... 81
4.4 Reporting ........................................................................................................................... 82
....................................................................................................................................................... 83
Notifications .................................................................................................................................. 83
Conclusion ......................................................................................................................................... 84
Ecole Nationale des Sciences Appliquées de Tétouan
11
Conclusion générale .......................................................................................................................... 85
Webographie ..................................................................................................................................... 86
Annexe ............................................................................................................................................... 87
Installation du serveur sur Proxmox ............................................................................................. 87
Captures de l'application mobile (Android) .................................................................................. 92
Ecole Nationale des Sciences Appliquées de Tétouan
12
Introduction générale
Compte tenu de l'évolution rapide des besoins du marché ainsi que l'ascension fulgurante des
moyens technologiques, une entreprise se doit de gérer ses flux de manière à rester à jour avec
le monde qui l'entoure. Pour se faire, celle-ci est prête à déployer d'importants moyens pour
garantir sa compétitivité et son évolutivité. Cela se fait surtout à l'aide de l'implantation de
technologies logicielles, dont les plus répandues dernièrement ont connues sous le nom d'ERP
ou Progiciel de Gestion Intégré (PGI)
Les flux de la société OpenCorp sont gérés à travers le progiciel de gestion intégré Open Source
Odoo, cependant, vu les aspirations d'expansion de celle-ci, les fonctionnalités proposée par la
plateforme lambda ne sont plus suffisantes. La société souhaite cependant gérer l'ensemble de
ses activités sur cette même plateforme.
C'est dans ce cadre que s'inscrit notre projet, il vise à doter la société de l'ERP souhaité en
développant des modules supplémentaires, notamment pour la gestion des timesheets, des
contrats et de la facturation, ainsi que de mettre en place une application mobile (basée sur
Android) permettant l'accès à ces fonctionnalités par l'employé ou le manager afin d'élargir la
marge de manœuvre de ceux-ci, enfin, la mise en place d'une partie front-end destinée au
commerce Business-to-Business.
Ce rapport comporte donc plusieurs chapitres. Un premier chapitre destiné à cerner le contexte
du projet, contenant une présentation de l’organisme d’accueil, une présentation générale du
projet et la planification de celui-ci, afin de permettre une vision optimale de l’environnement
de celui-ci. Ensuite, un second chapitre est composé de l’étude fonctionnelle, suivie de l’étude
technique. Ce chapitre contient des diagrammes, des présentations des plateformes et
technologies utilisées. Un troisième chapitre est entièrement consacré à la conception du projet.
De ce fait, il contient l’ensemble des diagrammes nécessaires à la bonne compréhension et
cohésion du système, du diagramme de cas d’utilisation au diagramme de classe. Le tout
accompagné des scénarios et descriptions nécessaires. Un dernier chapitre, pour finir, détaille
la réalisation des applications, et propose des aperçus de celles-ci.
Ecole Nationale des Sciences Appliquées de Tétouan
13
Chapitre 1 Contexte général du projet
Dans ce chapitre, nous présenterons le contexte général du projet. Nous allons commencer
par présenter l’organisme d’accueil et ses prestations, pour passer ensuite à une
présentation générale du projet contenant une étude de l’existant, la problématique et la
présentation du projet, pour détailler la planification de celui-ci et sa méthode de
développement.
Ecole Nationale des Sciences Appliquées de Tétouan
14
1- Présentation de l’organisme d’accueil Nous procéderons à la présentation de l’organisme d’accueil, à savoir, OpenCorp SA, ainsi
que ses prestations, ses services et ses clients.
1.1 Présentation d'OpenCorp
Figure 1- Logo d'OpenCorp SA
OpenCorp est une société de services IT spécialisée dans l’intégration de solutions open source
hébergées dans le cloud à destination des PME, TPE, startups et des professions libérales.
Au vu des avancées technologiques qui ont modifié en profondeur les attentes des utilisateurs
et des pressions toujours plus importantes sur les budgets, OpenCorp a pour but d'atteindre le
niveau d'exigence de ses clients, qui n'a jamais été aussi élevé.
Fort de plus de 20 années d’expérience dans les systèmes d'informations, les fondateurs
d'OpenCorp se sont donné comme mission de bousculer le marché en s'appuyant sur un
catalogue de solutions efficaces, stables et abordables afin de permettre à ses clients de gagner
en compétitivité.
C'est dans cette optique qu'OpenCorp est aujourd'hui un des premiers revendeurs de la solution
OpenERP 7.0 en mode SaaS.
L'objectif d'OpenCorp est d'améliorer la vie des entreprises grâce à la mise en place d'un
système s'adaptant parfaitement à leur processus ou à la transformation de leur système existant.
L'entreprise travaille sur la solution Odoo afin d'améliorer les problématiques business de ses
clients.
Les services d'OpenCorp sont destinés aux sociétés souhaitant optimiser leurs performances.
L'entreprise a pour programme élargi d’assistance technologique aux PME qui a pour objectif
de faire évoluer l'entreprise en profitant des dernières révolutions technologiques en se basant
sur 3 axes :
- Diagnostic technologique de l'entreprise
- Implémentation sur mesure du projet
- Suivi et conseil
Ecole Nationale des Sciences Appliquées de Tétouan
15
1.2 Prestations et services
OPENCORP revendique son expertise dans trois secteurs d'activités: la Communication, la
Distribution et les Ressources Humaines.
- Communication :
OpenCorp propose à ses clients des outils afin de gérer leurs activités liées à la communication.
Grâce à un système totalement intégré, toutes les informations sont partagées d'une manière
efficace en interne. De plus, les personnes qui doivent se déplacer régulièrement pourront
profiter du fait que le système est web-based et accessible depuis n'importe quel support.
Toutes les informations sur les contacts, les évènements, les projets, les newsletters et les
enquêtes sont en ligne. Enfin, la sécurisation de la base de données est de mise.
- Distribution :
Pour les entreprises de distribution, une solution puissante regroupe les fonctionnalités
nécessaires à la gestion efficace des opérations, quel que soit la nature du produit ou sa zone
géographique de distribution.
Le but est de diminuer votre temps d’entrée de données. De nombreuses fonctions permettent
de simplifier la gestion des produits : les multi unités, l’achat en série, les seuils minimums et
maximums, l’inventaire matriciel, la gestion de la limite de crédit par client, etc.
- Ressources Humaines :
Grâce à l'ajout d'un module ressources humaines, les dirigeants d’une société ont une meilleure
visibilité sur le suivi de leurs salariés et des tâches qui leur sont affectées.
Le module RH propose un compte-rendu des notes de frais, en permettant à chaque salarié
d’accéder à un espace personnel qui lui permettra de transmettre rapidement ses factures à la
comptabilité tout en permettant aux ressources humaines de fixer des barèmes et des plafonds.
Il est possible par exemple de gérer les congés et les absences de chaque collaborateur avec des
fonctionnalités qui permettent à chacun de connaître son solde de congés. La direction peut,
quant à elle, valider rapidement une demande de congés ou gérer les heures supplémentaires ou
encore le nombre de tickets restaurants à commander, par exemple.
Enfin, dernier point à aborder, c’est le suivi RH, toutes les données des dossiers salariés peuvent
être très facilement dématérialisées pour être accessibles rapidement via le web : contrats de
travail, avenants, entretiens annuels, visites médicales… Toutes les données d’un salarié
peuvent se retrouver très rapidement pour un meilleur suivi par les équipes de ressources
humaines.
Ecole Nationale des Sciences Appliquées de Tétouan
16
1.3 Clients Parmi les clients de la société OpenCorp SA, on peut citer :
Ecole Nationale des Sciences Appliquées de Tétouan
17
2- Présentation générale du projet Nous procédons maintenant à une présentation générale du projet : elle contiendra une étude
de l’existant, qui nous permettra de cerner la problématique et de présenter le projet. Une
présentation de la planification suivra.
2.1 Étude de l'existant La société OpenCorp SA est basée sur Bruxelles, et propose donc la quasi-totalité de ses
services à des petites et moyennes entreprises sur tout le territoire belge. Cependant, OpenCorp
travaille régulièrement avec des développeurs de Tétouan au Maroc, vu la présence de son
centre de développement dans la ville.
L'entreprise OpenCorp SA a pour progiciel de gestion intégré une version standard de l'ERP
Odoo (anciennement OpenERP), celui-ci est utilisé pour gérer les fonctionnalités générales de
l'entreprise. On peut citer par exemple : l'utilisation d'un module de ressources humaines
permettant une gestion simplifiée des feuilles de temps, l'utilisation d'un module de ventes
permettant la gestion également simplifiée des projets et de la facturation.
D'un autre côté, l'insertion et l'utilisation des modules de l'ERP est limitée à celle disponible à
travers l'interface web du serveur, c'est-à-dire sur ordinateur à travers un explorateur web
quelconque.
Enfin, le site web dédié de l'entreprise ne permet pas une grande interaction entre le client
potentiel et OpenCorp SA.
On peut donc déduire que la marge d'activité de l'entreprise se trouve réduite à cause du manque
de réactivité de son système d'information, et que celui-ci est efficace mais insuffisant pour une
gestion optimale des processus métiers, notamment ceux reliés aux ressources humaines et aux
ventes. L'entreprise rencontrera également des difficultés à contacter ou intéresser des clients
potentiels étrangers.
2.2 Problématique
Comme nous l'avons spécifié précédemment, le domaine d'activité de la société OpenCorp SA
se limite au territoire belge. Ce qui nous amène à la problématique suivante :
La société OpenCorp SA souhaite élargir ses activités et sa clientèle en visant les marchés
francophones en général (c'est-à-dire : la France, le Canada francophone et certains pays
africains). Cependant, la structure du PGI et du site web actuels n'est pas propice à l'expansion
de ces activités.
Pour ce qui est du PGI (aussi connu sous le nom d'ERP), celui-ci n'est pas compatible, d'un
côté, avec les réalités économiques des autres pays visés. Il présente également quelques
lacunes au niveau du module ressources humaines, le remplissage des timesheets n'est pas
optimisé, et les tarifs selon le consultant travaillant sur le projet ne sont pas spécifiés.
Ecole Nationale des Sciences Appliquées de Tétouan
18
Il n'existe également aucune liaison entre le contrat et le bon de commande afin de permettre la
facturation de celui-ci.
D'un autre côté, le site web est essentiellement orienté vers une clientèle se situant sur le
territoire belge. De ce fait, un client potentiel visitant d'un autre pays peut négliger de faire
appel aux services d'OpenCorp SA.
Pour finir, l'employé ne pouvant accéder au système d'information que depuis un poste
ordinateur, et l'interface de celui-ci n'étant pas adaptée au mobile, il reste difficile, sinon très
peu pratique, la consultation ou gestion d'affaires sur mobile.
Ainsi, il s'avère important de trouver une solution pour le problème se présentant.
2.3 Présentation du projet OpenCorp Offshore
OpenCorp a décidé de créer un centre offshore dédié où les développeurs pourront se rassembler
et se former afin qu’OpenCorp utilise ses services ou les propose à d’autres entreprises.
Afin de mener cette mission à bien, l'entreprise aura besoin de mener à bien 3 projets semi-
indépendants :
- Une partie back-end,
- Une partie front-end,
- Une partie mobile.
La partie back-end permettra de remédier aux problèmes cités précédemment. On procédera à
l'optimisation du procédé des timesheets, de la facturation et des sale orders.
La partie front-end permettra de mettre au point un site B2B permettant de mettre à la
disposition des clients potentiels un site à la manière d'un site d'e-commerce leur laissant la
liberté de choisir le consultant à travailler sur leur projet, son tarif, sa disponibilité et ainsi de
suite.
Enfin, la partie mobile sera une implémentation des éléments de la partie back-end rectifiés en
première partie du projet. Elle permettra à un employé de consulter, modifier, confirmer ses
feuilles de temps, ainsi que d'afficher les contrats, etc.
Ecole Nationale des Sciences Appliquées de Tétouan
19
Cahier de charges : Back-end
Objectif Fonctionnalités
Gestion des ventes - Consulter la liste des clients,
- Gérer les projets,
- Gérer les sous-contrats,
- Gérer les bons de commande,
- Gérer les paiements,
- Gérer les produits,
- Gérer les devis,
- Gérer les opportunités,
- Gérer les activités,
- Suivre des prix des feuilles de temps validées.
Gestion des ressources
humaines
- Gérer les employés,
- Gérer les timesheets.
Gestion des factures - Gérer les factures.
Service de messagerie - Envoi des emails.
Reporting - Imprimer les rapports (factures),
- Imprimer les rapports (timesheets).
Tableau 1- Cahier de charges Back-end
Ensemble des tâches demandées :
Pour ce qui est de la gestion des timesheets (ou feuilles de temps), il est nécessaire de créer les
menus des éléments : Saved Timesheets, Submitted Timesheets, Approved Timesheets,
Rejected Timesheets. Par la suite, il faut bien évidemment créer les vues correspondantes à ces
menus. Pour ce qui est de l’encodage par semaine, lors du remplissage des timesheets, il faut
définir celui-ci de samedi à vendredi, et ce au lieu de lundi à dimanche. Il faut également mettre
au point plusieurs garde-fous, un employé ne doit pas travailler moi de huit heures par jour (sauf
samedi et dimanche), ne doit pas travailler moins de cinq jours par semaine également, enfin,
il doit nécessairement renseigner une description lors du remplissage des lignes. Il faut
Ecole Nationale des Sciences Appliquées de Tétouan
20
également ajouter un onglet « project activity », celui-ci permet de spécifier l’activité effectuée
lorsque l’employé a travaillé sur un contrat donné (par exemple : développement, conception,
etc.) celle-ci est également nécessairement liée au contrat sélectionné. Ensuite, lors de la
soumission de la feuille de temps, celle-ci doit être validée par le supérieur hiérarchique défini
dans la fiche de l’employé, ce supérieur peut également modifier ces timesheets s’il le juge
nécessaire.
Pour les ressources humaines, on doit pouvoir assigner un supérieur hiérarchique à un employé
donné.
Pour les contrats clients, il faut non seulement imputer les timesheets aux contrats parents
correspondants mais également pouvoir ajouter des sous-contrats non associés au timesheets. Il
faut également ajouter l’onglet « project activity » des activités correspondantes au contrat. La
facturation doit se faire à l'aide du Sales Order. Le Sales Order est relié au sous-contrat
correspondant. Le sous-contrat prend le nom du contrat parent suivi du numéro du Sale Order
correspondant. La modification du prix d’achat et du prix de vente à déduire des timesheets
selon la valeur Start Cost (qui spécifie la date de début de l'application du tarif du service)
disponibles dans le sous-contrat correspondant. Egalement, la mise en place d’une fonction split
: elle permet d'attribuer les timesheets imputés à un contrat parent à un sous-contrat donné selon
la disponibilité de la quantité à facturer. Elle permet également le passage du Sales Order depuis
un état de brouillon à un état de confirmé. Enfin, il faut ajouter un champ No Description, il
permet de spécifier si le contrat n'a pas de description par défaut. Si oui, l'employé n'est pas
tenu de remplir une description lors de la création de la feuille de temps.
Pour la facturation, il faut passer de l'état du Sales Order de confirmé à terminé lors de la
facturation. Et pour le reporting, il faut pouvoir afficher des rapports relatifs aux timesheets
selon la date, les employés et les contrats, et la mise au point de filtres permettant l'affichage
des contrats dont le montant à facturer est supérieur à zéro, les contrats à splitter, etc. Il faut
également pouvoir imprimer les rapports générés. Pour finir, le service e-mail doit se charger
de l'envoi d'un e-mail à chaque employé, afin de les rappeler à remplir la timesheets, de manière
hebdomadaire.
Cahier de charges : Mobile (Android)
Objectif Fonctionnalités
Gestion des ventes - Gérer les projets,
- Gérer les sous-contrats,
- Gérer les activités,
- Suivre les prix des timesheets approuvées.
Ecole Nationale des Sciences Appliquées de Tétouan
21
Gestion des ressources
humaines
- Gérer les timesheets,
- Consulter et contacter les employés.
Gestion des factures - Consulter les factures.
Service de notification - Envoyer notification lors de validation de timesheet.
Reporting - Générer les rapports (timesheets)
Tableau 2- Cahier de charges mobile
Le travail qui nous a été demandé a été de développer une application mobile sous Android,
permettant une gestion efficace des différents services.
La principale fonctionnalité étant de gérer les timesheets : l'affichage de l'ensemble des
timesheets de l'employé connecté, regroupées par état (timesheet enregistrée, soumise à
validation, approuvée, etc.), la création, l'enregistrement, la modification et la soumission de
timesheets également soumises aux contraintes spécifiées dans le cahier de charges de la partie
back-end. Pour le manager, permettre la validation, ou la modification suivie de validation des
timesheets soumises par les employés, ainsi de recevoir des notifications lors de la validation
de sa feuille de temps par le manager.
La gestion des employés : l'affichage de la liste des employés et la disponibilité des
informations de base, telle que le département, le titre, le manager et le supérieur hiérarchique,
aussi la possibilité de contacter un employé donné par téléphone ou par email, si ces
coordonnées sont présentes.
La gestion des ventes (pour l'administrateur/manager) : l'affichage des projets sous forme de
liste. Parmi les informations à afficher : le nom du projet, le client concerné, le responsable
chargé du contrat, et le montant à facturer. L'affichage des détails du projet : Contenant les
informations citées précédemment, en plus de la date de signature du contrat, la référence, le
temps restant. Également consultables : les sous-contrats et les activités de projet.
La création des sous contrats, et des activités reliées aux projets, l'ajout du prix pour chaque
utilisateur dans les sous-contrats, le manager doit avoir aussi la possibilité de la consultation
des rapports et leur génération sous format PDF à partir de l'application mobile.
La gestion des factures : La consultation des détails des factures.
Ecole Nationale des Sciences Appliquées de Tétouan
22
3- Démarche et planification
3.1 Méthodologie de travail : La nature du projet incite à suivre une méthode agile et plus précisément la méthode Scrum. En
effet les spécifications du projet n’ont pas cessé d’être modifiées tout au long du projet et les
outils et les technologies n’ont pas été explicitées depuis le départ. Scrum permet d’entamer le
projet avec un minimum d’informations sur les travaux à faire et qui seront ajustées
régulièrement au cours du projet. Le cycle de vie de la méthode Scrum se décompose en
plusieurs Sprint successifs :
- Product Backlog ou « Le carnet de commandes » Scrum est une liste des caractéristiques
jugées prioritaires, contenant de courtes descriptions de toutes les fonctions désirées dans le
produit. Lorsque l'on suit le processus Scrum, il n'est pas nécessaire de démarrer un projet avec
une longue liste de toutes les exigences. Typiquement, une équipe Scrum et son propriétaire
commencent par écrire tout ce qu'ils peuvent penser pour spécifier les priorités. Ce backlog de
produit agile est presque toujours plus que suffisant pour un premier sprint. Le backlog de
produit Scrum est alors autorisé à grandir et à changer plus on apprend sur le produit et ses
clients.
- Sprint Backlog est une liste des tâches identifiées par l'équipe Scrum devant être achevée à la
fin du sprint. Au cours de la réunion de planification de sprint, l'équipe sélectionne un certain
nombre d'éléments produits du carnet de commandes, et identifie les tâches nécessaires pour
compléter chacune. La plupart des équipes estiment également combien d'heures chaque tâche
aura chaque membre de l'équipe pour terminer.
- Le Sprint dure au maximum 4 semaines, et pendant ce cycle des réunions quotidiennes sont
menées pour faire le point sur le travail accompli et les obstacles rencontrés depuis la dernière
réunion. Des livraisons fréquentes sont attendues à la fin du Sprint.
Figure 2- Exemple du développement en Scrum
Ecole Nationale des Sciences Appliquées de Tétouan
23
- Working increment of the software : L'incrément (ou incrément potentiellement livrable,
potentially shippable increment, PSI) est la somme de tous les articles produits du carnet de
commandes réalisées au cours d'un sprint et tous les sprints précédents. À la fin d'un sprint, la
tâche doit être complète, et dans un état utilisable indépendamment du fait que le propriétaire
du produit décide de réellement la livrer.
3.2 Planification du projet :
Diagramme de Gantt :
Le diagramme de GANTT est un outil permettant de modéliser la planification de tâches
nécessaires à la réalisation du projet, il visualise dans le temps les diverses tâches liées
composant le projet en fournissant une représentation graphique de son avancement.
Figure 3- Aperçu des tâches effectuées
Ecole Nationale des Sciences Appliquées de Tétouan
24
Figure 4- Diagramme de Gantt équivalent
Ecole Nationale des Sciences Appliquées de Tétouan
25
- Formation Back-end : Le but de cette phase est de garantir un savoir optimal sur la
manière de développer des modules sur la plateforme Odoo. Elle permet ainsi de débuter
le projet sur un rythme soutenu.
- Conception et développement, Back-end : L'objectif de cette phase est d'obtenir le
service back-end cible, et les tâches associées à cette étape sont :
Mise au point de la gestion des Timesheets,
Mise au point de la gestion des contrats et des factures,
Gestion du reporting.
- Formation Android : Le but de cette phase est de se préparer au développement sur
Android, ainsi que de maitriser les outils concernés.
- Conception et développement, Android : L'objectif de cette phase est d'implémenter les
fonctionnalités développées et celles utiles disponibles dans la back-end, et de les rendre
disponibles sur mobile, les tâches qui y sont associées sont les suivantes :
Gestion des timesheets,
Gestion des contrats, des employés et des factures,
Reporting,
Différenciation entre application destinée à l'employé et celle destinée au
manager.
Ecole Nationale des Sciences Appliquées de Tétouan
26
Conclusion
Dans ce chapitre, nous avons présenté le contexte général du projet, en introduisant l’organisme
d’accueil : OpenCorp. Nous avons ensuite effectué une étude de l'existant, grâce à laquelle nous
avons pu cerner les problématiques se présentant. Par la suite, nous avons présenté les cahiers
de charge fonctionnels, et nous avons parlé de la méthode de développement suivie, qui est
Scrum. Pour finir, nous avons donné un aperçu de la planification du projet à l'aide d'un
diagramme de Gantt.
Ecole Nationale des Sciences Appliquées de Tétouan
27
Chapitre 2 Etude fonctionnelle et technique
Dans ce chapitre, nous présenterons l’étude fonctionnelle et technique du projet. Pour la
première, nous allons présenter un diagramme des paquetages du système, ainsi qu’un
diagramme de contexte. Pour la seconde, nous allons parler de la plateforme Odoo, de la
plateforme Android et des outils et techniques utilisés.
Ecole Nationale des Sciences Appliquées de Tétouan
28
1- Étude fonctionnelle L’étude fonctionnelle regroupera quelques diagrammes : un diagramme de paquetages et un
diagramme de contexte.
1.1 Diagramme des paquetages Les diagrammes de paquetages sont la représentation graphique des relations existant entre les
paquetages (ou espaces de noms) composant un système, dans le langage Unified Modeling
Language (UML).
Le diagramme suivant représente le diagramme de paquetage de notre système. Celui-ci est
constitué des paquets principaux suivants :
- Gestion des ventes,
- Gestion des achats,
- Gestion comptable,
- Gestion de la relation clientèle,
- Gestion des ressources humaines.
Figure 5- Diagramme des paquetages
Ecole Nationale des Sciences Appliquées de Tétouan
29
1.2 Diagramme de contexte
Le domaine étudié est le suivant :
Conception, développement et mise en ligne d’une plateforme Odoo destinée à la gestion d’une
entreprise spécialisée dans les métiers de l’offshoring ICT
Les activités internes de la plateforme :
- Gestion des employés,
- Gestion des feuilles de temps,
- Gestion des contrats,
- Gestion de la facturation.
Les acteurs du système
Acteur Description
Employé Peut créer et soumettre des timesheets ainsi que
visualiser celles le concernant. Peut également
consulter les employés.
Manager Peut effectuer les tâches citées précédemment, en
plus de la validation et de la modification des
timesheets soumises pour validation.
Administrateur Peut effectuer les tâches citées précédemment, en
plus de la création des contrats, des factures et des
bons de commandes.
Client Peut signer des contrats, peut choisir un employé
à associer au contrat.
Tableau 3- Acteurs du système
Ecole Nationale des Sciences Appliquées de Tétouan
30
Figure 6- Diagramme de contexte
2- Étude technique L’étude technique mettra en relief les principales plates-formes utilisées, et parlera également
des différentes techniques utilisées pour la sécurisation lors du déploiement.
2.1 Odoo
Fondé en 2005 en Belgique par Fabien Pinckaers, Odoo
(anciennement OpenERP) est un progiciel de gestion d'entreprise
(ERP) destiné à intégrer l'ensemble des données opérationnelles
et de gestion de l'entreprise dans une base de données unique,
accessible par une interface web.
Cette base de données centrale est associée à une couche fonctionnelle très innovante qui met
en relation des informations d'origines diverses et assure un déroulement efficace des processus
transversaux de création de valeur ajoutée de l'entreprise.
Des centaines de modules fonctionnels sont assis sur cette fondation technique robuste et
performante. Ils apportent les applications métier dont chacun a besoin dans l'entreprise.
Cette approche modulaire facilite l'intégration de nouvelles fonctionnalités sous la forme de
modules complémentaires.
L’ERP Odoo gère toutes les grandes fonctions de l’entreprise. Il propose aussi plus de 500
applications spécialisées qui facilitent la gestion et améliorent la productivité.
Gestion et création de site web: Odoo V8 est à ce jour le seul ERP qui propose un CMS
intégré. Cette solution est particulièrement efficace pour les projets d’e-boutique, de
portail clients, de site d’annonces spécialisées.
Gestion Commerciale : Odoo V8 couvre toutes les fonctions de la gestion commerciale
(CRM – Devis – Commande – Facturation - Comptabilité).
Figure 7- Logo d'Odoo
Ecole Nationale des Sciences Appliquées de Tétouan
31
Marketing : Permet la gestion des campagnes de prospection et le suivi de portefeuille
de sondage clients ...
Ressources Humaines : Odoo V8 assure la gestion du recrutement via le site web jusqu’à
la gestion administrative des employés. Il permet à chaque collaborateur de s’abonner à
un événement et d’être notifié. Le chat et le réseau social d’entreprise sont autant de
fonctionnalités qui facilitent le travail quotidien des utilisateurs.
Historique et notes de sorties :
Le 20 janvier 2011, OpenERP SA annonçait le lancement de la version 6.0 du logiciel. Son
approche modulaire permet aux utilisateurs de commencer avec une application, puis d'ajouter
d'autres modules selon leurs besoins.
En décembre 2012, la version 7.0 d'OpenERP est lancée et peut être testée en ligne, téléchargée
ou vue en version de démonstration. Mai 2014: OpenERP change de nom et devient Odoo.
Été 2014, Odoo lance la version 8. Cette version enrichit principalement le logiciel de nouvelles
applications qui font d’Odoo un logiciel allant au-delà d'un ERP. Ces applications sont:
Marketing (gestion d'événements, d'enquêtes de satisfactions, campagnes de mails auprès de la
CRM,...), CMS (construction d'un site internet - front-end lié au back-end - grâce au
déplacement rapide et simple de 'blocs" d'éditions), e-commerce (application pour vente en
ligne),...
Architecture modulaire :
Outre le fait que la solution est Open Source, la grande force d'Odoo (OpenERP) réside dans
son architecture modulaire permettant de s’adapter à l’évolution des besoins dans le temps.
Il s'agit de la faculté de construire des applications informatiques de manière modulaire
(modules indépendants entre eux) tout en partageant une base de données unique, ceci élimine
les saisies multiples et élimine l’ambiguïté des données de même nature
Ecole Nationale des Sciences Appliquées de Tétouan
32
Structure modulaire
Figure 8- Structure modulaire d'Odoo
Un module Odoo est composé des éléments principaux suivants :
- Les vues, sous forme de fichiers XML. Ces vues sont sous forme de formulaires, listes,
graphes, calendriers, ou de diagrammes. La partie vue inclut également ce qu'on appelle les
actions et les éléments de menus.
- Les objets, sous forme de code python pour la plupart, contiennent les business objects et se
chargent des traitements effectués par le module. Les objets peuvent également être sous la
forme de fichiers XML, pour les données par exemples mais aussi pour des besoins de
démonstration.
- Les workflows, sont des fichiers XML, permettant de modéliser les flux d'un état à l'autre.
(Par exemple : passage d'un contrat de l'état en cours à l'état terminé, etc.)
- Les wizards, permettent l'affichage de fenêtres de dialogues, elles-mêmes contenant des vues
ou des objets.
- Les rapports, quant à eux sont composés de fichiers XML pour la partie statique, de code
python pour la partie dynamique et la mise en page se fait, pour sa part, à l'aide d'OpenOffice.
Pour finir le module a un fichier nécessaire : __openerp__.py qui définit les dépendances du
module.
Modèle vue contrôleur :
Un système Odoo est basé sur une architecture 3 tiers:
1. Un serveur de base de données PostgreSQL (qui peut contenir plusieurs bases de
données),
Ecole Nationale des Sciences Appliquées de Tétouan
33
2. Un serveur d'applications (contenant les objets de gestion, le moteur de workflow, le
générateur d'édition, etc.), développées en langage Python, qui accède au SGBD via un
ORM (couche de mapping objet-relationnel)
3. Un serveur de présentation (appelé Odoo WEB), qui communique avec le serveur
d'applications grâce à une interface XML-RPC
Gestion électronique des processus métier(Workflow)
Un Workflow est la représentation sous forme de flux des opérations à réaliser pour accomplir
l'ensemble des tâches ou activités regroupées en un même processus métier. Le workflow
permet la modélisation des processus métier dans le cadre d'une démarche plus globale BPM
Business Process Management.
Buts :
Description de l’évolution du document dans le temps
Déclenchement automatique d'actions si certaines conditions sont remplies
Gestion des rôles de l'entreprise et les étapes de validation
Gestion des interactions entre les différents objets/modules
2.2 Proxmox VE
Proxmox VE (Virtual Environment) est un logiciel libre de gestion de la virtualisation de
serveur dédié.
L'outil Proxmox permet de virtualiser un serveur sans avoir besoin d'installer un système
d'exploitation auparavant. Cet outil gère les machines virtuelles, le stockage, et les réseaux
virtualisés.
Proxmox a été créé en 2008 par la société Proxmox Server Solutions Gmbh, il est disponible
pour Linux et Windows.
2.3 SSH (Secure Shell)
C'est un protocole qui permet de se connecter à une machine distante avec une liaison
sécurisée. Les données sont cryptées entre machines. Il permet d’exécuter des commandes sur
un serveur distant.
Nous avons utilisé le programme OpenSSH, qui est la version libre du client et du serveur
SSH.
2.4 SSL (couche de sockets sécurisée)
C'est un système qui permet d'échanger des informations entre 2 ordinateurs de façon sûre.
SSL assure 3 choses:
Ecole Nationale des Sciences Appliquées de Tétouan
34
Confidentialité: Il est impossible d'espionner les informations échangées. Intégrité: Il est impossible de truquer les informations échangées. Authentification: Il permet de s'assurer de l'identité du programme, de la personne ou
de l'entreprise avec laquelle on communique.
Il repose sur un procédé de cryptographie par clef publique afin de garantir la sécurité de la
transmission de données sur internet. Son principe consiste à établir un canal de communication
sécurisé (chiffré) entre deux machines (un client et un serveur) après une étape
d'authentification.
Une fois le certificat SSL installé sur un site, les visiteurs pourront accéder à celui-ci à travers
une connexion « https » où le "s" signifie bien évidemment secured (sécurisée).Qui indique au
serveur qu'il doit établir une connexion sécurisée avec le navigateur.
Pourquoi SSL ?
SSL est standardisé. Il existe une version libre OpenSSL que vous pouvez utiliser dans vos
programmes sans payer de droits d’auteur.
SSL a été cryptanalysé : SSL a été passé en revue par de nombreux spécialistes en
cryptographie. On peut donc le considérer comme sûr.
Il est répandu: on peut facilement créer des programmes qui dialogueront avec d'autres
programmes utilisant SSL.
2.5 Service Web
Un Web service est une interface d’échange de données entre deux applications (API) qui
s’effectue par le biais d’inter ou intra Net. Il transfère les données vers les applications clientes
via des fichiers XML. Le dialogue à distance entre ces applications se fait indépendamment des
plateformes et des langages sur lesquelles elles reposent. Pour ce faire, les services web
s’appuient sur un ensemble de protocoles internet très répandus (SOAP, REST), afin de
communiquer. Cette communication est basée sur le principe de demandes et réponses. Les
services web s’appuient sur un ensemble de protocoles standardisant les modes d’invocation
mutuels de composants applicatifs.
XML-RPC vs. SOAP
Présentons les deux API :
Informations générales :
XML-RPC :
XML-RPC est "... un ensemble d'implémentations qui permettent aux logiciels fonctionnant sur les
systèmes d'exploitation disparates, d’être exécuté dans des environnements différents pour faire les
appels de procédure sur Internet. C’est une procédure distante appelée en utilisant HTTP comme
transport et XML comme encodage. XML-RPC est conçu pour être aussi simple que possible, tout en
Ecole Nationale des Sciences Appliquées de Tétouan
35
permettant des structures de données complexes d'être transmises, traitées et renvoyées ". -
xmlrpc.com
Objectifs de XML-RPC :
« Nous voulions un format propre, extensible et très simple. Il devrait être possible pour un codeur de
HTML pour être en mesure de regarder un fichier contenant un appel de procédure XML-RPC, de
comprendre ce qu'il fait, et être en mesure de le modifier et de le faire travailler sur le premier ou le
deuxième essai ... Nous voulions aussi que le protocole soit facile à mettre en œuvre et rapide à
adapter pour fonctionner dans d'autres environnements ou sur d'autres systèmes d'exploitation. » -
xmlrpc.com
La spécification elle-même contient à peu près sept pages, y compris des exemples et une FAQ, et est
extrêmement facile à comprendre. Tout programmeur compétent ne devrait trouver aucune difficulté
dans l'application de XML-RPC dans leur logiciel après avoir lu ses spécifications.
SOAP :
"SOAP est un protocole léger d'échange d'informations dans un environnement décentralisé et
distribué. C'est un protocole basé sur XML qui se compose de trois parties: Une enveloppe qui définit
un cadre pour décrire ce qui est dans un message et comment le traiter, un ensemble des règles de
codage pour exprimer des instances de types de données définis par l'application, et une convention
pour représenter les appels et les réponses de procédure à distance ". - La spécification SOAP.
Objectifs de SOAP :
SOAP tente de reprendre là où XML-RPC est arrêté par la mise en œuvre des types de données définis
par l'utilisateur, la possibilité de spécifier le destinataire, un message de contrôle de traitement
spécifique, et d'autres caractéristiques.
À plus de 40 pages la spécification SOAP est complexe et rejette la caractéristique la plus
importante de XML-RPC, sa facilité d'utilisation.
Caractéristiques et avantages
XML-RPC :
Structures: XML-RPC permet de définir un ensemble anonyme de paires nom-valeur. "A
contient s et chacun contient a et a." La valeur (s) peut être de tout type de données
Tableaux: Tableaux dans XML-RPC définissent un groupe anonyme d'éléments sans limitation
de mélange des types de données comme les entiers et les chaînes dans le même tableau. "A
contient un seul élément, qui peut contenir un nombre quelconque de s"
Stabilité : Bien que XML-RPC ne soit pas maintenu par un comité de normalisation, il est stable
et ouvert à la participation de la communauté.
Simplicité : La simplicité de XML-RPC est sa plus grande caractéristique. Il est extrêmement
facile à comprendre, mettre en œuvre, et à déboguer. La syntaxe est si simple qu'il est très facile
de trouver, et d'éviter, des erreurs.
Ecole Nationale des Sciences Appliquées de Tétouan
36
SOAP :
Structures: SOAP définit un ensemble de paires nom-valeur. Les structures peuvent être
nommées.
Tableaux: les tableaux SOAP définissent un regroupement d'éléments sans limitation de
mélange des types de données comme les entiers et les chaînes dans le même tableau. Les
tableaux peuvent être nommés.
Tableau d'octets: Un tableau d'octets peut être codé comme une référence unique ou une valeur
multi-référence. Les règles pour un tableau d'octets sont semblables à ceux d'une chaîne de
caractères.
En particulier, l'élément contenant du tableau de la valeur des octets peut avoir un attribut "id".
Des éléments accesseurs supplémentaires peut alors avoir correspondant attributs "href" ".
Types de données définies par l'utilisateur : les développeurs peuvent définir leurs propres types
de données simples ou complexes.
2.6 Android
Android est un système d'exploitation mobile, développé par Google. Celui-ci
met à disposition un kit de développement (SDK) basé sur le langage Java.
C'est un gros programme qui gère le matériel sur lequel il s'exécute
(smartphone, tablette, ordinateur ou d'autres) de manière à pouvoir exécuter
des logiciels. Android a pris une place importante dans la vie quotidienne de
millions de personnes, au point qu'il s'agit du système d'exploitation mobile
avec le plus d'applications en circulation.
Figure 9- Logo
d'Android
Ecole Nationale des Sciences Appliquées de Tétouan
37
onCreate() : cette méthode est appelée à la création d’une activité. Elle permet de l’initialiser.
C’est ici que l’interface graphique est spécifiée.
onStart() : Cette méthode est appelée quand l’application est démarrée.
onResume() : Cette méthode est appelée quand l’application passe (ou repasse) en avant-
plan.
Figure 10- Cycle de vie d'une application Android
Ecole Nationale des Sciences Appliquées de Tétouan
38
onPause() : Appelée quand l’application passe en arrière-plan et qu’une autre application se
met devant.
onStop() : Appelée quand l’application n’est plus visible.
onRestart() : Appelée quand l’application redevient visible.
onDestroy() : Appelée quand l’application est fermée par le système à cause d’un manque de
ressources, ou par l’utilisateur à l’utilisation d’un finish().
3- Outils et technologies utilisés
Ce chapitre décrit les différentes technologies adoptées et utilisées pour la réalisation de ce
projet, à commencer par le système d’exploitation Linux, tout en passant le système de gestion
de bases de données PostgreSQL, les langages nécessaires pour le développement, à savoir le
langage Python et XML et Java Android pour la version mobile et enfin les environnements
de développement Eclipse et Android Studio.
3.1 Système d'exploitation Ubuntu :
Ubuntu est un système d’exploitation libre commandité par la société Canonical
et une marque déposée par cette même société. Fondé sur la distribution Linux
Debian et utilisant le bureau Unity, Ubuntu se veut « convivial, intuitif et sûr ».
Il est constitué de logiciels libres, est disponible gratuitement y compris pour
les entreprises, et bénéficie d'une nouvelle version (appelée « mise à niveau »)
tous les six mois. Avec une utilisation globale estimée à plus de 25 millions
d'utilisateurs, il est principalement conçu pour une utilisation sur des ordinateurs personnels
(portables et fixes), bien que d'autres versions consacrées aux netbooks et aux serveurs existent
aussi. Depuis Ubuntu 11.04, la version Netbook a fusionné avec la version Desktop. Cette
dernière étant passée à l'interface Unity, il n'y avait plus de raison de maintenir deux branches
distinctes.
3.2 Environnements de développement Nous avons utilisé les environnements de développement suivants :
Eclipse
Eclipse est un projet de la Fondation Eclipse visant à développer un environnement de
développement intégré libre, extensible, universel et polyvalent. Son objectif est de produire et
fournir des outils pour la réalisation de logiciels, englobant les activités de programmation
(notamment au moyen d’un environnement de développement intégré) mais aussi de
modélisation, de conception, de test et de reporting. Son environnement de développement
intégré vise à supporter tout langage de programmation. Dans notre projet l’utilité d’Eclipse
Figure 11- Logo
d'Ubuntu
Ecole Nationale des Sciences Appliquées de Tétouan
39
consiste à développer certaines tâches en utilisant le plugin python développement (pydev) et
XML.
Android Studio
Android Studio est l'environnement de développement que Google propose à ses développeurs
pour créer des applications Android.
Android Studio permet principalement d'éditer les fichiers Java et les fichiers de configuration
d'une application Android.
Il propose entre autres des outils pour gérer le développement d'applications multilingues et
permet de visualiser la mise en page des écrans sur des écrans de résolutions variées
simultanément
3.3 Système de gestion de base de données PostgreSQL
PostgreSQL est un système de gestion de base de données relationnelle et
objet (SGBDRO). C'est un outil libre disponible selon les termes d'une
licence de type BSD. Ce système est concurrent d'autres systèmes de
gestion de base de données, qu'ils soient libres (comme MySQL et
Firebird), ou propriétaires (comme Oracle, Sybase, DB2, Informix et
Microsoft SQL Server). Comme les projets libres Apache et Linux,
PostgreSQL n'est pas contrôlé par une seule entreprise, mais est fondé sur
une communauté mondiale de développeurs et d'entreprises.
PostgreSQL peut stocker plus de types de données que les types
traditionnels entiers, caractères, etc. L'utilisateur peut créer des types, des fonctions, utiliser
l'héritage de type etc.
PostgreSQL est pratiquement conforme (de plus en plus conforme) aux normes ANSI SQL 89,
SQL 92 (SQL 2), SQL 99 (SQL 3), SQL:2003 et SQL:2008. Il fonctionne sur diverses plates-
formes matérielles et sous différents systèmes d'exploitation.
PostgreSQL fonctionne sur Solaris, SunOS, Mac OS X, HP-UX, AIX, Linux, IRIX, Digital
Unix, BSD, NetBSD, FreeBSD, OpenBSD, SCO unix, NeXTSTEP, UnixWare et toutes sortes
d'Unix. Depuis la version 8.0, PostgreSQL fonctionne également nativement sur Windows.
Avant la version 8, il fallait un émulateur de type cygwin pour faire fonctionner PostgreSQL
sur ce système d'exploitation.
PostgreSQL est largement reconnu pour son comportement stable, proche d’Oracle. Mais
aussi pour ses possibilités de programmation étendues, directement dans le moteur de la base
de données, via PL/SQL. Le traitement interne des données peut aussi être couplé à d'autres
modules externes compilés dans d'autres langages.
Figure 12- Logo de
PostgreSQL
Ecole Nationale des Sciences Appliquées de Tétouan
40
3.4 Visual Paradigm Visual Paradigm pour UML (VP-UML) est un outil de support UML 2, SysML et Business
Process Modeling Notation (BPMN) à partir de l'Object Management Group (OMG). En plus
du support de la modélisation, il permet la génération de rapports et des capacités d'ingénierie
de code, y compris la génération de code. Il peut inverser les schémas de code, et de fournir des
générations de code pour différents langages de programmation.
3.5 Les langages de développement utilisés Pour ce qui est des langages, nous avons utilisé les langages suivants :
Python
Python est un langage de programmation multi-paradigme. Il favorise la programmation
impérative structurée, et orientée objet. Il est doté d'un typage dynamique fort, d'une gestion
automatique de la mémoire par ramasse-miettes et d'un système de gestion d'exceptions ; il est
ainsi similaire à Perl, Ruby, Scheme, Smalltalk et Tcl. Le langage Python est placé sous une
licence libre proche de la licence BSD et fonctionne sur la plupart des plates-formes
informatiques, des supercalculateurs aux ordinateurs centraux, de Windows à Unix en passant
par Linux et Mac OS, avec Java ou encore .NET. Il est conçu pour optimiser la productivité des
programmeurs en offrant des outils de haut niveau et une syntaxe simple à utiliser. Il est
également apprécié par les pédagogues qui y trouvent un langage où la syntaxe, clairement
séparée des mécanismes de bas niveau, permet une initiation plus aisée aux concepts de base
de la programmation. Python est un langage conçu pour produire du code de qualité, portable
et facile à intégrer : grâce à sa syntaxe claire, cohérente et concise, Python permet aux
développeurs de produire du code de qualité, lisible et maintenable.
Fourni dès le départ avec des modules de tests, Python est un langage agile. Le terme agile est
originellement issu de la méthodologie de programmation agile, très proche de la
programmation itérative. Cette méthodologie, qui réduit les risques liés à la conception de
logiciels, introduit entre autres des principes de tests continus du code. · De haut niveau, orienté
objet et totalement libre : même si elle n’est pas imposée, Python permet la programmation
orientée objet. Tous les mécanismes objet essentiels sont implémentés et toutes les données
manipulées sont des instances de classes, comme pour les langages SmallTalk ou Ruby. Python
est également dynamique : dans la plupart des implémentations, le code source n’est pas
compilé contrairement à des langages comme C ou Pascal, mais exécuté à la volée. On parle
alors de langage interprété. Ce mode de fonctionnement rend la programmation beaucoup plus
souple puisqu’il est possible de changer un programme en cours d’exécution.
XML (eXtensibleMarkupLanguage)
XML est en quelque sorte un langage HTML amélioré permettant de définir de nouvelles
balises. Il s'agit effectivement d'un langage permettant de mettre en forme des documents grâce
à des balises (markup). Contrairement à HTML, qui est considéré comme un langage défini et
figé (avec un nombre de balises limité), XML peut être considéré comme un métalangage
permettant de définir d'autres langages, c'est-à-dire définir de nouvelles balises permettant de
Ecole Nationale des Sciences Appliquées de Tétouan
41
décrire la présentation d'un texte. La force de XML réside dans sa capacité à pouvoir décrire
n'importe quel domaine de données grâce à son extensibilité. Il va permettre de structurer, poser
le vocabulaire et la syntaxe des données qu'il va contenir. En réalité les balises XML décrivent
le contenu plutôt que la présentation (contrairement à HTML). Ainsi, XML permet de séparer
le contenu de la présentation, ce qui permet par exemple d'afficher un même document sur des
applications ou des périphériques différents sans pour autant nécessiter de créer autant de
versions du document que l'on nécessite de représentations. XML a été mis au point par le XML
Working Group sous l'égide du World Wide Web Consortium (W3C) dès 1996. Depuis le 10
février 1998, les spécifications XML 1.0 ont été reconnues comme recommandations par le
W3C, ce qui en fait un langage reconnu. XML est un sous ensemble de SGML (Standard
Generalized Markup Language), défini par le standard ISO8879 en 1986, utilisé dans le milieu
de la Gestion Electronique Documentaire (GED). XML reprend la majeure partie des
fonctionnalités de SGML, il s'agit donc d'une simplification de SGML afin de le rendre
utilisable sur le web, XML fait partie du code des modules composants OpenERP, les vues par
lesquelles sont représentés les différents objets sont écrites en XML, ainsi nous y trouvons la
description détaillée de l’affichage des arbres, formulaires, menus et autres actions.
Java Android
Le langage Java est un langage de programmation informatique orienté objet, créé par James
Gosling et Patrick Naughton.
Le langage reprend en grande partie la syntaxe du langage C++, très utilisé par les
informaticiens. Néanmoins, Java a été épurée des concepts les plus subtils du C++ et à la fois
les plus déroutants, tels que l'héritage multiple remplacé par l'implémentation des interfaces.
Les concepteurs ont privilégié l'approche orientée objet de sorte qu'en Java, tout est objet à
l'exception des types primitifs (nombres entiers, nombres à virgule flottante, etc.).
Conclusion Au cours de ce chapitre, nous avons pu nous familiariser d’un côté avec le système est ses
paquets, mais également d’avoir plus d’informations sur les technologies utilisées (ici, Odoo et
Android) en plus de l’ensemble des environnements de développement utilisés, et des langages
à maîtriser.
Ecole Nationale des Sciences Appliquées de Tétouan
42
Chapitre 3 Conception détaillée du projet
Dans ce chapitre, nous présenterons la conception détaillée du projet. Nous commencerons
par spécifier les cas d’utilisation, ensuite les diagrammes d’activité et de séquence, et
enfin, un diagramme de composants et un diagramme de déploiement.
Ecole Nationale des Sciences Appliquées de Tétouan
43
1- Conception détaillée du projet Nous procéderons maintenant à une conception détaillée du projet.
1.1 Cas d’utilisation Commençons par les cas d’utilisation. Nous allons d’abord identifier les acteurs, puis les cas
d’utilisation pour finir avec des diagrammes.
Identification des acteurs
Un acteur représente une entité externe qui interagit avec le système (fournir, recevoir, échanger
de l’information). En observant les utilisateurs directs du système ainsi que les autres systèmes
qui interagissent avec le système que nous tentons de définir, nous trouvons ces acteurs qui
opèrent avec le système : Employé, Manager, Administrateur.
- Employé : Utilisateur aux rôles et permissions restreints, n’a pas beaucoup de privilèges
au sein de l’application,
- Manager : Utilisateur également, ayant plus de privilèges et une plus grande marge
d’action,
- Administrateur : Utilisateur ayant tous les privilèges, pouvant se charger du paramétrage
et de l’ensemble de la gestion de l’application.
Identification des cas d’utilisation
Un cas d’utilisation définit une manière d’utiliser le système et permet d’en décrire les
exigences fonctionnelles. Chaque cas d’utilisation contient un ou plusieurs scénarios qui
définissent comment le système devrait interagir avec les utilisateurs (appelés acteurs) pour
atteindre un but ou une fonction spécifique d’un travail. Un acteur d’un cas d’utilisation peut
être un humain ou un autre système externe à celui que l’on tente de définir. Les cas d’utilisation
tentent d’éviter tout jargon technique et essayent au contraire d’adopter le langage de
l’utilisateur final ou de l’expert du domaine.
Cas d’utilisation « Créer Timesheet »
Acteurs Administrateur, Manager, Employé
Pré-conditions L’utilisateur doit avoir accès au serveur,
L’utilisateur doit s’authentifier.
Scénarios Étapes Règles de Gestion
1. Choisir la date de début et la
date de fin
1. La date de début et la date de fin
de chaque timesheet reliée à un
utilisateur ne doivent pas
chevaucher celle d’une timesheet
précédente.
Ecole Nationale des Sciences Appliquées de Tétouan
44
2. Choisir le/les projet(s)
concernés
3. Choisir la date et le nombre
d’heures passés sur le projet
4. Insérer la description du
projet ainsi que l’activité
concernée
5. Enregistrer la feuille de
temps
Post-conditions Une fois que l’utilisateur a ajouté sa feuille de temps, il peut y
accéder à nouveau, la modifier ou la soumettre au manager pour la
valider.
Tableau 4- Description textuelle : Créer Timesheet
Cas d’utilisation « Soumettre Timesheet »
Acteurs Administrateur, Manager, Employé
Pré-conditions L’utilisateur doit avoir accès au serveur,
L’utilisateur doit s’authentifier,
L’utilisateur doit avoir préalablement enregistré une timesheet sur le
serveur.
Scénarios Étapes Règles de Gestion
1. Effectuer des modifications
si nécessaire
2. Soumettre la feuille de temps 1. Le nombre d’heures où
l’employé a travaillé par jour doit
être supérieur ou égal à 8,
2. La description du projet est
nécessaire,
3. L’activité du projet doit être
renseignée.
Post-conditions Une fois que l’utilisateur a soumis sa feuille de temps, il peut la
consulter sans la modifier.
Tableau 5- Description textuelle : Soumettre Timesheet
Ecole Nationale des Sciences Appliquées de Tétouan
45
Cas d’utilisation « Approuver Timesheet »
Acteurs Administrateur, Manager
Pré-conditions L’utilisateur doit avoir accès au serveur,
L’utilisateur doit s’authentifier,
L’utilisateur doit consulter les timesheets à valider
Scénarios Étapes Règles de Gestion
1. Vérifier les informations de
la feuille de temps
2. Effectuer des modifications
si nécessaire
3. Approuver la feuille de
temps
Post-conditions Une fois que l'utilisateur a approuvé la feuille de temps, il peut
approuver d'autres feuilles de temps et l'employé concerné par la
validation peut consulter sa feuille dans le menu des timesheets
approuvées.
Tableau 6- Description textuelle : Approuver Timesheet
Cas d'utilisation « Rejeter Timesheet »
Acteurs Administrateur, Manager
Pré-conditions L'utilisateur doit avoir accès au serveur,
L'utilisateur doit s'authentifier,
L'utilisateur doit consulter les timesheets à valider
Scénarios Étapes Règles de Gestion
1. Vérifier les informations de
la feuille de temps
2. Rejeter
Post-conditions Une fois que le manager a rejeté la feuille de temps, il peut approuver
ou rejeter d'autres feuilles de temps
Tableau 7- Description textuelle : Rejeter Timesheet
Ecole Nationale des Sciences Appliquées de Tétouan
46
Cas d'utilisation « Créer employé »
Acteurs Administrateur, Manager
Pré-conditions L'utilisateur doit avoir accès au serveur,
L'utilisateur doit s'authentifier,
L'utilisateur doit consulter la liste des employés
Scénarios Étapes Règles de Gestion
1. Remplir les informations sur
l'employé
1. L'utilisateur doit obligatoirement
renseigner le nom de l'employé
modifié
2. Valider les informations
Post-conditions L'employé peut créer des feuilles de temps
Tableau 8- Description textuelle : Créer employé
Cas d'utilisation « Modifier les informations d'un employé »
Acteurs Administrateur, Manager
Pré-conditions L'utilisateur doit avoir accès au serveur,
L'utilisateur doit s'authentifier,
L'utilisateur doit consulter la liste des employés
Scénarios Étapes Règles de Gestion
1. Choisir un employé parmi
ceux de la liste
2. Effectuer les modifications
sur les informations souhaitées
1. L'utilisateur doit
obligatoirement renseigner le nom
de l'employé modifié
3. Enregistrer les
modifications
Post-conditions Les nouveaux rôles sont appliqués à l'employé.
Tableau 9- Description textuelle : Modifier les informations d'un employé
Ecole Nationale des Sciences Appliquées de Tétouan
47
Cas d'utilisation « Créer contrat »
Acteurs Administrateur
Pré-conditions L'utilisateur doit avoir accès au serveur,
L'utilisateur doit s'authentifier,
L'utilisateur doit avoir les privilèges nécessaires pour la gestion des
contrats
Scénarios Étapes Règles de Gestion
1. Renseigner les informations
nécessaires
1. L'utilisateur doit obligatoirement
renseigner le nom du contrat
2. Ajouter les sous-contrats 2. L'utilisateur doit obligatoirement
renseigner le nom du sous-contrat,
3. L'utilisateur doit obligatoirement
renseigner le numéro du SO relatif
à la facturation
3. Ajouter les activités du
projet
4. Enregistrer le nouveau
contrat
Post-conditions Une fois que le contrat est créé, il est possible de commencer à créer
des feuilles de temps relatives à celui-ci.
Tableau 10- Description textuelle : Créer contrat
Cas d'utilisation « Modifier contrat »
Acteurs Administrateur
Pré-conditions L'utilisateur doit avoir accès au serveur,
L'utilisateur doit s'authentifier,
L'utilisateur doit avoir les privilèges nécessaires pour la gestion des
contrats
Scénarios Étapes Règles de Gestion
1. Consulter les contrats
Ecole Nationale des Sciences Appliquées de Tétouan
48
2. Effectuer les modifications
nécessaires
1. L'utilisateur doit
obligatoirement renseigner le nom
du contrat
3. Valider les modifications
Post-conditions Une fois que le contrat est modifié, les informations altérées
impactant les feuilles de temps sont validées.
Tableau 11- Description textuelle : Modifier contrat
Cas d'utilisation « Créer sales order »
Acteurs Administrateur
Pré-conditions L'utilisateur doit avoir accès au serveur,
L'utilisateur doit s'authentifier,
L'utilisateur doit avoir les privilèges nécessaires pour la gestion des
SO
Scénarios Étapes Règles de Gestion
1. Renseigner les informations
nécessaires
1. L'utilisateur doit obligatoirement
spécifier le client,
2. L'utilisateur doit obligatoirement
renseigner la date
3. L'utilisateur doit obligatoirement
renseigner les lignes du SO
2. Enregistrer le sale order
Post-conditions Une fois que le sale order est créé, il est possible de le relier à un
sous-contrat.
Tableau 12- Description textuelle : Créer Sales Order
Cas d'utilisation « Modifier sales order »
Acteurs Administrateur
Pré-conditions L'utilisateur doit avoir accès au serveur,
L'utilisateur doit s'authentifier,
L'utilisateur doit avoir les privilèges nécessaires pour la gestion des
SO
Ecole Nationale des Sciences Appliquées de Tétouan
49
Scénarios Étapes Règles de Gestion
1. Choisir un SO parmi les SO
disponibles
1. Le SO ne doit pas être relié à un
sous-contrat.
2. Effectuer les modifications
nécessaires
2. L'utilisateur doit
obligatoirement spécifier le client,
3. L'utilisateur doit
obligatoirement renseigner la date
4. L'utilisateur doit
obligatoirement renseigner les
lignes du SO
3. Enregistrer les
modifications
Post-conditions Une fois que le sale order est modifié, il reste possible de le relier au
sous-contrat
Tableau 13- Description textuelle : Modifier Sales Order
Cas d'utilisation « Générer rapports »
Acteurs Administrateur
Pré-conditions L'utilisateur doit avoir accès au serveur,
L'utilisateur doit s'authentifier,
L'utilisateur doit avoir les privilèges nécessaires pour la gestion des
SO
Scénarios Étapes Règles de Gestion
1. Consulter le menu
timesheets approuvées
2. Choisir la/les feuille(s) de
temps souhaitée
3. Générer le rapport
Post-conditions Une fois que le rapport est généré, il est possible d'imprimer ce
dernier.
Tableau 14- Description textuelle : Générer rapports
Ecole Nationale des Sciences Appliquées de Tétouan
50
Cas d'utilisation «Diviser (split) les contrats »
Acteurs Administrateur
Pré-conditions L'utilisateur doit avoir accès au serveur,
L'utilisateur doit s'authentifier,
L'utilisateur doit avoir les privilèges nécessaires pour la gestion des
contrats
Scénarios Étapes Règles de Gestion
1. Consulter les contrats
2. Choisir le contrat à diviser 1. Le contrat doit obligatoirement
avoir un/des sous-contrat(s)
2. Le contrat doit être relié à au
moins une feuille de temps validée,
3. Choisir le sous-contrat 3. La valeur du champ 'Expected'
doit être supérieure à la valeur du
champ 'To Invoice'
4. Diviser le contrat 4. La division se fait de la date la
plus ancienne à la plus récente.
Post-conditions Une fois que le contrat est divisé, la valeur du projet des feuilles de
temps concernées par le split prennent le nom du sous-contrat choisi.
Tableau 15- Description textuelle : Split les contrats
Cas d'utilisation « Créer Facture »
Acteurs Administrateur
Pré-conditions L'utilisateur doit avoir accès au serveur,
L'utilisateur doit s'authentifier,
L'utilisateur doit avoir les privilèges nécessaires pour la gestion des
contrats
Scénarios Étapes Règles de Gestion
1. Consulter les contrats
Ecole Nationale des Sciences Appliquées de Tétouan
51
2. Choisir le contrat à facturer 1. Le contrat doit obligatoirement
avoir un/des sous-contrat(s)
2. Le contrat doit être relié à au
moins une feuille de temps validée,
3. Le contrat doit être relié à un SO
3. Choisir 'Invoice'
4. Choisir les feuilles de temps
à facturer
4. Il faut choisir au moins une
feuille de temps
5. Renseigner les informations
de la facture
5. Il faut absolument renseigner la
description,
6. Il faut absolument renseigner le
contrat concerné,
7. Il faut absolument renseigner la
date.
Post-conditions Une fois que la facture est créée, il est possible de l'imprimer.
Tableau 16- Description textuelle : Créer facture
Diagramme de cas d’utilisation : Ressources Humaines
Pour ce qui est du diagramme suivant : il présente les cas d’utilisation du module ressources
humaines, les deux acteurs principaux sont l’employé et le manager. Un employé peut consulter
les employés, créer une feuille de temps, la soumettre, et consulter celles déjà enregistrées. Pour
un manager, celui-ci consulte les timesheets à valider, les approuve ou les rejette, et il peut
également modifier les informations des employés. Toutes ces activités nécessitent
l’authentification de l’utilisateur.
Ecole Nationale des Sciences Appliquées de Tétouan
52
Figure 13- Diagramme de cas d'utilisation : Ressources Humaines
Diagramme de cas d’utilisation : Ventes
Pour ce qui est du module de ventes, l’administrateur est l’acteur principal.
Il peut créer un contrat, avec ses sous-contrats, ses activités etc. Il peut également modifier
ceux-ci, les consulter, et les splitter.
Il peut également créer des factures, consulter les bons de commande, les créer et les modifier.
Enfin, il peut consulter les rapports (Approved Timesheets). Toutes les activités citées
nécessitent l’authentification de l’administrateur.
Figure 14- Diagramme de cas d'utilisation : Ventes
Ecole Nationale des Sciences Appliquées de Tétouan
53
1.2 Diagrammes d'activité
Le diagramme d’activité est un moyen graphique pour donner cette vision d’ensemble des cas
d’utilisation de l’application, voici deux diagrammes d’activité du déroulement des différentes
utilisations de l’application, le premier dans le module timesheets, le second dans le module
ventes.
Diagramme d'activité du module des Timesheets
Le diagramme suivant est représentatif de ce qui se passe au sein du module des timesheets :
L'employé remplit un timesheet avec les informations qui lui paraissent pertinentes. Ensuite, si
les informations sont correctes (c'est-à-dire qu'elles ne se heurtent à aucune des contraintes
mentionnées précédemment), il peut par la suite modifier le brouillon obtenu ou le soumettre
au responsable.
Une fois que le responsable consulte la feuille de temps, il se trouve face à deux possibilités :
les informations insérées sont correctes, il peut donc valider la feuille de temps. Si elles sont
incorrectes, le responsable peut rejeter ou modifier et ensuite valider la timesheet.
Si la timesheet est rejetée, elle est renvoyée à l'employé qui doit effectuer les modifications
nécessaires, et la soumettre à nouveau.
Figure 15- Diagramme d'activité : Timesheets
Diagramme d'activité du module des ventes
Le diagramme suivant est représentatif d'un scénario lambda au sein du module des ventes :
On commence par la création d'un contrat. Par la suite, il faut non seulement créer un ou
plusieurs sous contrats, mais également approuver les feuilles de temps relatives à celui-ci afin
de pouvoir accéder à la fonctionnalité split.
Ecole Nationale des Sciences Appliquées de Tétouan
54
Si les deux conditions sont avérées, la fonction split confie au système la mission de vérifier le
montant attendu des sous-contrats, spécifié lors de la création de ceux-ci, il affiche ensuite les
sous-contrats dont le montant attendu est supérieur à zéro.
Le manager choisit ensuite un contrat parmi ceux que le système retourne. Ce dernier compare
la date des timesheets avec celles les lignes spécifiant le prix d'achat et de vente des services
(également insérés lors de la création des sous-contrats.), le système calcule ensuite le prix
d'achat et de vente des heures insérées dans les feuilles de temps et calcule le montant attendu
dans le sous-contrat à celui à facturer depuis la feuille de temps.
Si la soustraction de ceux-ci est nulle, l'on procède directement à la modification des feuilles
de temps concernant le contrat à splitter, en replaçant le contrat en cours au sous-contrat
sélectionné, ainsi qu'en remplaçant les valeurs de prix d'achat et de vente par celles calculées.
Si elle est, par contre, supérieur à 0, la boucle recommence et effectue les calculs pour la ligne
de la timesheet suivante.
Enfin, si elle est inférieure à zéro, le système calcule le reste obtenu ainsi que le prix d'achat et
de vente. Il modifie ensuite la timesheet, en remplaçant la ligne concernée par deux lignes, l'une
contenant l'activité reliée au contrat courant, l'autre reliée au sous-contrat choisi, le nombre
d'heures travaillées coïncidant avec le montant nécessaire pour faire coïncider le montant
attendu et facturé.
Après modification des timesheets, le bon de commande concerné par le sous-contrat choisi
passe de l'état brouillon à l'état « Sales Order »
Pour finir, l'on procède à la création de la facture, si le montant est le même que le sale order
relié au sous contrat, ce dernier passe à l'état « done ».
Ecole Nationale des Sciences Appliquées de Tétouan
55
1.2 Diagrammes de séquence Les diagrammes de séquence suivant détailleront quatre scénarios principaux :
L’authentification, la création d’une feuille de temps, la modification et/ou l’approbation d’une
feuille de temps, et le split d’un contrat.
Figure 16- Diagramme d'activité : Ventes
Ecole Nationale des Sciences Appliquées de Tétouan
56
Diagramme de séquence du scénario « Authentification »
Le diagramme qui suit présente le scénario d'authentification de l'utilisateur à l'application.
Figure 17- Diagramme de séquence : Authentification
Détails du scénario :
1- L'utilisateur insère son login ainsi que son mot de passe,
1.1- Le système procède à la comparaison des identifiant et mot de passe soumis à ceux
stockés dans la base de données.
1.1.1, 1.1.1.1- Si les identifiants sont équivalents à ceux présents dans la base de
données, l'utilisateur accède à la page d'accueil.
1.1.2, 2- Sinon, l'utilisateur reçoit un message d'erreur.
Ecole Nationale des Sciences Appliquées de Tétouan
57
Diagramme de séquence du scénario « Création d'une feuille de temps »
Le diagramme qui suit présente le scénario de création d'une feuille de temps (ou timesheet.)
Figure 18- Diagramme de séquence : Création d'une timesheet
Détails du scénario :
1- L'utilisateur insère les données dans la feuille de temps,
1.1- Le système procède à la vérification de l'existence de chevauchement de la date de
début et de la date de fin,
1.1.1- Si les dates ne se chevauchent pas, les données sont enregistrées dans la base de
données,
2- L'utilisateur soumet les données pour leur vérification et leur validation par le
supérieur hiérarchique,
2.1, 2.2, 2.3- Le système vérifie que les descriptions du projet sont bien présentes, que
l'employé travaille au moins huit heures par jour (sauf samedi et dimanche) et que les
activités du projet sont renseignées,
2.3.1- Si toutes les conditions sont vérifiées, la modification se fait dans la base de
données, et la feuille de temps passe de l'état de brouillon à l'état de soumis.
2.3.2- Si au moins une des conditions n'est pas vérifiée, l'utilisateur reçoit un message
d'erreur et es invité à rectifier ses données.
2.3.3- Si les date de début et date de fin se chevauchent, l'utilisateur reçoit un message
d'erreur et est invité à les modifier.
Ecole Nationale des Sciences Appliquées de Tétouan
58
Diagramme de séquence du scénario « Modifier et/ou approuver une timesheet »
Le diagramme qui suit présente le scénario de modification et/ou d'approbation d'une feuille de
temps (ou timesheet)
Figure 19- Diagramme de séquence : Modifier et/ou approuver une timesheet
Détails du scénario :
1- Le manager choisit une timesheet à valider parmi les feuilles de temps présentes dans
la vue « Timesheets to Validate »
2- Si besoin est, le manager effectue des modifications sur la timesheet,
2.1- Le manager enregistre ensuite les modifications,
3- Le manager valide ensuite la feuille de temps,
3.1- La modification se fait ensuite dans la base de données, où elle passe de l'état de
« Submitted » à l'état « Approved »
Ecole Nationale des Sciences Appliquées de Tétouan
59
Diagramme de séquence du scénario « Split un contrat »
Le diagramme qui suit présente le scénario de « division » d'un contrat.
Figure 20- Diagramme de séquence : Split un contrat
Détails du scénario :
1- L'administrateur choisit un contrat à diviser parmi les contrats présents dans la vue
Contrats, ce contrat doit être relié à au moins une feuille de temps validée,
1.1- L'administrateur choisit la fonction split du contrat,
1.1.1- Le système cherche les sous-contrats existant, dont la valeur « Expected » est
supérieur à zéro et contenant un prix d'achat et de vente pour les services à effectuer,
1.1.1.1- Le système retourne la liste des sous-contrats remplissant ces conditions.
1.1.1.2- Si aucun sous-contrat ne remplit ces conditions, le système retourne une liste
vide,
2- Si la liste n'est pas vide, l'administrateur choisir le sous-contrat souhaité,
2.1- Le système procède à la modification des timesheets reliées au contrat concerné :
passage du titre du contrat au titre du sous-contrat choisi, calcul des nouveaux prix selon
les valeurs spécifiées dans le sous-contrat,
2.1.1- L'enregistrement des modifications se fait dans la base de données.
1.4 Diagramme de classe Le diagramme de classes permet d’appréhender la structure statique du système en indiquant la
structure des objets composant le système et les liens structurels entre ces objets. A partir de
l’analyse lors de la partie analyse du projet et des diagrammes de séquence présentés, nous
avons extrait un ensemble d'entités et de dépendances, cela a été traduit par UML en un
diagramme de classes qui sera ensuite décrit par un tableau détaillant le rôle de chaque entité et
ainsi de suite.
Ecole Nationale des Sciences Appliquées de Tétouan
60
Figure 21- Diagramme de classe du systèm
Ecole Nationale des Sciences Appliquées de Tétouan
61
Classe Description
Utilisateur Classe contenant les informations sur l'utilisateur
Elle contient notamment les attributs suivants : l'adresse email (email),
et si l'utilisateur est actif (active)
Elle contient notamment les méthodes suivantes : seConnecter(),
creerUtilisateur(), seDeconnecter().
Employe Classe contenant les informations sur l'employé
Elle contient notamment les attributs suivants : le nom (name)
Elle contient notamment les méthodes suivantes : creerEmploye()
Timesheet Classe contenant les informations sur la feuille de temps (timesheet)
Elle contient notamment les attributs suivants : la date de début
(dateFrom), la date de fin (dateTo) et l'état de la timesheet, c'est à dire
brouillon, approuvée, etc. (state)
Elle contient notamment les méthodes suivantes : creerTimesheet(),
soumettreTimesheet(), validerTimesheet()
ligneTimesheet Classe contenant les informations sur les lignes d'une feuille de temps
donnée
Elle contient notamment les attributs suivants : la date (date), le nombre
d'heures travaillées (amount), et la description de la tâche effectuée
(description)
Projet Classe contenant les informations sur un projet
Elle contient notamment les attributs suivants : le nom du projet
(name), sa date de début (date) et le montant à facturer (totalToInvoice)
Activity Classe contenant les informations sur les activités d'un projet
Elle contient notamment les attributs suivants : le nom de l'activité
(name) et une brève description (description)
sousContrat Classe contenant les informations sur un sous-contrat
Elle contient notamment les attributs suivants : le montant attendu
(expected) et le montant à facturer (toInvoice)
Ecole Nationale des Sciences Appliquées de Tétouan
62
client Classe contenant les informations sur le client
Elle contient notamment les attributs suivants : le nom du client
(name), son adresse (address) et son email (email)
saleOrder Classe contenant les informations sur les sale orders
Elle contient notamment les attributs suivants : son nom (name) et son
montant (montant)
facture Classe contenant les informations sur les factures
Elle contient notamment les attributs suivants : le numéro de la facture
(number), le total à payer (total), et la date d'émission de la facture
(dateInvoice)
pricePerUser Classe contenant les informations sur les prix d'achat et de vente d'un
utilisateur/employé donné
Elle contient notamment les attributs suivants : le prix d'achat (price),
le prix de vente (cost), et la date de début de tarification (startDate)
produit Classe contenant les informations sur les produits
Elle contient notamment les attributs suivants : le nom (name), le prix
d'achat (price), le prix de vente (cost) et s'il est à vendre (toSell)
Tableau 17- Tableau détaillé des classes, entités et méthodes
1.5 Diagramme de composants
Le diagramme de composants décrit l'organisation du système du point de vue des éléments
logiciels comme les modules (paquetages, fichiers sources, bibliothèques, exécutables), des
données (fichiers, bases de données) ou encore d'éléments de configuration (paramètres, scripts,
fichiers de commandes). Ce diagramme permet de mettre en évidence les dépendances entre les
composants (qui utilise quoi).
Le diagramme de composants de notre système est composé de :
-La couche présentation : joue le rôle de la vue dans le model MVC, il décrit tous ce qui est
interface, fenêtres et les actions. Dans notre cas les vues sont développées en XML
- La couche logique métier : joue le rôle de contrôleur de model MVC il permet de décrire les
objets les classes du projet via le Framework open Object qui assure la persistance des objets,
via le langage de programmation python.
- La couche persistance : concerne la persistance des donnes (ORM) dans un serveur
PostgreSQL.
Le diagramme est le suivant :
Ecole Nationale des Sciences Appliquées de Tétouan
63
Figure 22- Diagramme des composants
1.6 Diagramme de déploiement
En UML, un diagramme de déploiement est une vue statique qui sert à représenter l'utilisation
de l'infrastructure physique par le système et la manière dont les composants du système sont
répartis ainsi que leurs relations entre eux. Les éléments utilisés par un diagramme de
déploiement sont principalement les nœuds, les composants, les associations et les artefacts.
Les caractéristiques des ressources matérielles physiques et des supports de communication
peuvent être précisées par stéréotype.
Ecole Nationale des Sciences Appliquées de Tétouan
64
Figure 23- Diagramme de déploiement
Conclusion Ce chapitre a permis de donner une image claire et nette du système. Nous avons non seulement
spécifié les cas d’utilisation du système, ses diagrammes d’activité et de séquence, mais nous
avons également présenté un diagramme de composants permettant d’avoir une idée précise du
système du point de vue de ses composants, et un diagramme de déploiement spécifiant
l’infrastructure physique du système.
Ecole Nationale des Sciences Appliquées de Tétouan
65
Chapitre 4 Réalisation du module OpenCorp_timesheet
Réalisation de l’application Android
Dans ce chapitre, nous présenterons tout d’abord le déroulement des tests que nous avons
effectué tout au long du développement du projet, l’architecture du système, ensuite, nous
passerons à la description, accompagnée de captures de l’application côté serveur, puis
nous ferons de même du côté mobile (Android).
Ecole Nationale des Sciences Appliquées de Tétouan
66
1- Tests
En informatique, un test désigne une procédure de vérification partielle d'un système. Son
objectif principal est d'identifier un nombre maximum de comportements problématiques du
logiciel afin d'en augmenter la qualité (si les problèmes identifiés lors des tests sont corrigés).
Les tests de vérification ou de validation visent ainsi à vérifier que ce système réagit de la façon
prévue par ses développeurs (spécifications) ou est conforme aux besoins du client,
respectivement.
Un test ressemble à une expérience scientifique. Il examine une hypothèse exprimée en fonction
de trois éléments : les données en entrée, l'objet à tester et les observations attendues. Cet
examen est effectué sous conditions contrôlées pour pouvoir tirer des conclusions. Un bon test
respecte également l'exigence de répétabilité.
Le but de cette activité est de tendre vers un produit « zéro défaut »
Dans notre cas, des tests étaient effectués à la fin de chaque sprint, bouclés par un fichier
détaillant les erreurs rencontrées et les solutions proposées pour les réparer, suite auxquelles
nous réparions les problèmes avant de passer au sprint suivant.
Spécification du test
Exécution du test
Comparaison des résultats
Archivage du test Analyse des résultats
Modification du code/test
Objectif du test
Scénario de test
Résultat du test
Correcte Incorrecte
Résultat attendu
Figure 24- Cycle de vie d'un test
Ecole Nationale des Sciences Appliquées de Tétouan
67
2- Architecture du système Le schéma suivant représente l’architecture générale de notre système, dans lequel on possède
un serveur SGBD, et un serveur d’application Odoo qui contient tous les modules concernés,
en interaction avec un interpréteur des scripts python, puis le service web, qui permet de relier
l’utilisateur de l’application mobile au serveur Odoo.
Figure 25- Architecture du système
Ecole Nationale des Sciences Appliquées de Tétouan
68
3- Réalisation du module opencorp_timesheet : Nous avons décidé de diviser la présentation du module suivant ce qu’il gère, par exemple, la
gestion des timesheets, des contrats, de la facturation etc.
3.1 Gestion des timesheets L'interface relative aux timesheets se présente comme suit :
Nous remarquons la présence de menu latéral contenant les principales fonctionnalités de ces
timesheets, on nommera : My Current Timesheet, permettant la création et modification de la
feuille de temps de la semaine en cours. Timesheets to Validate, visible uniquement par le
manager et lui permettant de consulter, modifier et valider les timesheets soumises. Saved
timesheets contenant les timesheets enregistrées, à l'état 'Brouillon'. Submitted Timesheets,
contenant les timesheets soumises en attente de validation. Approved et Rejected timesheets,
respectivement les timesheets approuvées et rejetées de l'employé connecté.
Commençons donc par la création des timesheets. Elle se fait en deux étapes : le remplissage
du contrat et du nombre d'heures effectuée par journée dans la vue suivante :
Figure 26- Timesheets : Vue d'ensemble
Ecole Nationale des Sciences Appliquées de Tétouan
69
Ensuite, l'insertion de la description, l'activité du projet (ou project activity) dans chaque ligne.
Chaque ligne représente le nombre d'heures travaillé par contrat et par jour.
Nous remarquons que lors de la création de la feuille de ton, l'état de celle-ci se trouve dans
« New »
Parmi les messages d'erreur que l'on peut rencontrer, nous vous montrons le suivant : Lorsque
l'employé décide de soumettre la timesheet pour sa validation et s'il n'a pas rempli de
description, il reçoit le message d'erreur comme vu sur la figure qui suit. Nous rappelons que
l'application a d'autres garde-fous, notamment celui spécifiant qu'il faut travailler plus de 8
heures par jours, plus de 5 jours par semaines et celui spécifiant qu'il est obligatoire de
renseigner un project activity.
Figure 27- Timesheets : Création d'une nouvelle timesheet
Figure 28- Timesheets : Insertion des informations
Ecole Nationale des Sciences Appliquées de Tétouan
70
Après soumission de la feuille de temps, le manager se connecte à son tour à l'application.
Celui-ci peut consulter les timesheets à valider en cliquant sur le menu « Timesheets to
Validate »
On aperçoit par la suite la fenêtre suivante :
Figure 30- Timesheets : Timesheets à valider
Le manager peut choisir de modifier ou de valider directement la feuille de temps après sa
consultation :
Figure 31- Timesheets : Vue validation
Figure 29- Timesheets : Message d'erreur-Description
Ecole Nationale des Sciences Appliquées de Tétouan
71
Nous remarquons qu'une fois que la feuille de temps est en attente de validation, son état est
passé à « Waiting Approval »
Enfin, lorsque celle-ci est validée, l'état passe à « Approved »
3.2 Gestion des contrats
La vue générale de la gestion des contrats est représentée dans la figure qui suit.
Figure 32- Contrats : Vue d'ensemble
Le menu latéral a pour éléments principaux « Contracts », « Subcontracts », « Sales Orders »,
et « Quotations »
Pour les lignes en bleu sont les contrats qui ont un montant à facturer supérieur à 0.
Par la suite nous avons la vue d'un contrat :
Figure 33- Contrats : Vue contrat
Ecole Nationale des Sciences Appliquées de Tétouan
72
Nous remarquons la présence des informations basiques sur le contrat ainsi que trois onglets :
« Contract information », « Children » et « Project Activities »
- Contract information contient la date de début et de fin,
- Children contient les informations sur les sous-contrats reliés au contrat sélectionné,
- Project activites contient les activités reliées au projet.
Pour ce qui est des sous-contrats, ils se présentent comme suit :
Figure 34- Contrats : Vue sous-contrat
Le sous-contrat contient notamment des informations sur le contrat parent, le montant attendu
(Expected), le montant facturé (To Invoice) et les lignes représentant les prix d'achat et de vente
d'un service effectué par un employé donné.
Prenons le contrat Trends par exemple. Nous souhaitons 'splitter' celui-ci. Le wizard nous
permet de choisir le sous-contrat, nous choisissons Trends SO01.
Ecole Nationale des Sciences Appliquées de Tétouan
73
Figure 35- Contrats : Split
Et voici par exemple, une timesheet dont l'employé a travaillé sur le projet Trends :
Figure 36- Contrats : Timesheet concernée par projet
En appuyant sur Confirm, on obtient :
Le passage de « Total to Invoice » de :
Figure 37- Contrats : Total to invoice avant fonction split
Ecole Nationale des Sciences Appliquées de Tétouan
74
À :
Figure 38- Contrats : Total to invoice après fonction split
Et pour la feuille de temps, le nom du contrat prend le nom du sous-contrat :
Figure 39- Contrats : Timesheet modifiée après split
Nous remarquons également que le price et le cost ont été modifiés selon les valeurs de prix
d'achat et de vente spécifiés dans le sous-contrat :
Figure 40- Contrats : Aperçu des prix d'achat et de vente après split
Ecole Nationale des Sciences Appliquées de Tétouan
75
3.3 Facturation sur la base des contrats clients
Afin de passer à la facturation, nous choisissons un contrat et cliquons sur 'Invoice'
Figure 41- Contrats : Aperçu du sous-contrat à facturer
Nous choisissons les détails à afficher et les timesheets à facturer :
Figure 42- Contrats : Timesheets à facturer
Ecole Nationale des Sciences Appliquées de Tétouan
76
Et nous obtenons la facture suivante :
Figure 43- Contrats : Facture
3.4 Service email Nous avons configuré le serveur de manière à ce qu’il procède à l’envoi d’un email de rappel
hebdomadaire, demandant à chaque employé de remplir sa feuille de temps de la semaine en cours.
L’email est présenté dans l’aperçu suivant :
Figure 44- Emails : Aperçu d'email de rappel
3.5 Reporting Nous avons également mis au point une fonction de génération de rapports PDF, permettant la
consultation des informations générales relatives à une ou plusieurs lignes de timesheets validées à
sélectionner.
Ecole Nationale des Sciences Appliquées de Tétouan
77
Figure 45- Reporting : Aperçu de la page des rapports
Le rapport généré contient les informations suivantes :
Figure 46- Reporting : Aperçu du rapport généré
Ecole Nationale des Sciences Appliquées de Tétouan
78
4- Réalisation de l'Application OpenCorp mobile pour Android: Pour ce qui est de la présentation de l’application mobile, nous avons décidé de la présenté en
séparant ses fonctionnalités principales. L’ensemble des captures d’écran peut être trouvé dans
l’annexe.
4.1 Présentation de l'application : Au premier lancement de l'application, il faut se connecter au serveur Odoo,
Après la vérification du login et mot de passe, l'utilisateur peut accéder aux différentes
fonctionnalités de l’application grâce au menu ;
Nous avons adopté un menu de type « navigation drawer » qui correspondait plus à
l’application. En effet, étant donné le nombre de fonctionnalités qui peuvent être proposées aux
utilisateurs, ce menu nous semblait plus pertinent d’un point de vue « ergonomique ». Ci-
dessous un aperçu en image :
Figure 47- Page de connexion
Ecole Nationale des Sciences Appliquées de Tétouan
79
Le menu « Employee » permet d’accéder à la liste des employés et leurs détails, l'utilisateur
peut appeler ou envoyer un mail à l'employé directement à partir de l'application
Figure 48- Menus : Employé ordinaire Figure 49- Menus : Administrateur
Figure 51- Employés : Liste des
employés Figure 50- Employés : Détails d'un
employé
Ecole Nationale des Sciences Appliquées de Tétouan
80
4.2 Gestion des timesheets :
Créer une feuille de temps :
L'employé peut créer une nouvelle feuille de temps à partir du bouton qui se trouve sur la page
d'accueil ou le menu « Add timesheet », l'employé précise la date de début et la date de fin et
pour l'ajout des lignes il suffit de cliquer sur le bouton « + » en orange. Ensuite il précise le
jour et choisit le projet sur lequel il travail, l'activité associée au projet s'il existe, la description
et le nombre d'heures travaillées, s'il veut ajouter une nouvelle ligne, il clique sur le bouton
« next » sinon sur le bouton « Create »
Figure 52- Timesheets : Nouvelle Timesheet et nouvelle ligne
Modifier ou soumettre au responsable :
Le menu « Saved timesheets » contient les timesheets en état brouillon, l'employé peut modifier
les informations des timesheets, ou soumettre sa timesheet au responsable, si les informations
sont correctes.
Ecole Nationale des Sciences Appliquées de Tétouan
81
La modification et la validation par le responsable :
A partir du menu «To Validate », le manager peut consulter et vérifier toutes les timesheets à
approuver, ensuite il modifie ou valide la feuille de temps.
4.3 Gestion des contrats et factures: Le menu Contract permet au manager de consulter la liste des projets, et voir les détails : le
nom du projet, le client, le total à facturer les activités et les détails des sous-contrats …
Figure 53- Timesheets : Soumission de
la feuille de temps
Figure 54- Timesheets : Vérification
par le responsable
Ecole Nationale des Sciences Appliquées de Tétouan
82
Pour chaque projet il peut créer des activités, des sous-contrats et préciser le prix pour chaque
utilisateur au niveau du sous-contrat
Le manager peut aussi consulter les information qui concernent les factures a partir du menu
«Invoices », parmi ces informations : Le numéro, le client, l'état de la facture, la date de création
ainsi que le montant, etc.
4.4 Reporting Le manager peut voir les filtres des timesheets pour chaque utilisateur ou projet, l'autre
fonctionnalité est la possibilité de générer des rapports en format PDF contenant les détails de
chaque ligne de la timesheet : la date l’employé, le projet, le nombre d'heures, le prix de vente
et le prix d’achat.
Figure 55- Contrats : Détails d'un
contrat
Ecole Nationale des Sciences Appliquées de Tétouan
83
Le manager choisit la ligne à imprimer, et obtient le rapport suivant :
Notifications L’utilisateur de l’application reçoit une notification dès qu’une des feuilles de temps qu’il a
soumises est validée.
Figure 56- Rapports : Aperçu des
rapports par projet
Figure 57- Rapports : Aperçu d'un
rapport
Ecole Nationale des Sciences Appliquées de Tétouan
84
Figure 58- Notifications : Aperçu d'une notification de validation
Conclusion Dans ce chapitre, nous avons effectué une brève présentation du processus de test, suivie par
des captures d'écran des applications finales, du côté serveur mais également du côté mobile.
Celui-ci a permis d’avoir une meilleure idée sur les processus de tests et l’objectif de ceux-ci,
ainsi que d’avoir un aperçu clair de l’apparence et des fonctionnalités du module et de
l’application Android développés.
Ecole Nationale des Sciences Appliquées de Tétouan
85
Conclusion générale
Ce stage a été une occasion pour nous pour côtoyer le monde des ERP et des entreprises.
Dans notre projet de fin d'étude le travail a été réalisé au profit de la société OpenCorp SA.
Durant ce projet, la mission suivante nous a été confiée : la conception et le développement
d'un module au sein d'un système de gestion intégré, ainsi que le développement d'une
application mobile mettant en place les différentes fonctionnalités de ce module.
Pour ce faire nous avons commencé par une formation générale sur l'ERP Odoo. Ensuite, une
étude détaillée du cahier de charges afin de comprendre les besoins des futurs utilisateurs du
système, et par la suite nous avons commencé à développer les différentes vues et objets.
Finalement nous avons implémenté le module au sein d'Odoo afin d'avoir un système spécifique
à la société OpenCorp SA qui assure sa gestion globale.
La deuxième partie du projet a été de développer une application mobile pour Android,
permettant à chaque utilisateur d'accéder et d’interagir avec les différentes fonctionnalités du
système.
Le travail que nous avons réalisé peut être complété et poursuivi sous ses différents aspects,
notamment :
Ajouter d'autres fonctionnalités a l'application mobile : La gestion des clients, des payements,
ainsi que la génération des graphes.
L'élaboration de ce travail nous a permis d'une part d'approfondir les connaissances et le savoir-
faire acquis durant les années de notre formation au sein de l'ENSA de Tétouan, d'autre part de
préparer notre intégration à la vie professionnel et de mieux nous familiariser avec le marché
des ERP et de développement mobile.
Ecole Nationale des Sciences Appliquées de Tétouan
86
Webographie [Wikipédia – 2015] http://fr.wikipedia.org/wiki/Odoo
Informations sur Odoo,
[Odoo – 2015] https://www.odoo.com/documentation/8.0/howtos/backend.html
Comment créer un module Odoo,
[Odoo – 2015] https://doc.odoo.com/install/
Comment installer Odoo,
[Odoo – 2015] https://doc.odoo.com/6.0/developer/6_22_XML-RPC_web_services/
XML-RPC sur Odoo,
[XML-RPC – 2003] http://xmlrpc.scripting.com/spec.html
Documentation XML-RPC,
[SOAP – 2007] http://www.w3.org/TR/soap/
Documentation SOAP,
[Android – 2015] https://developer.android.com/guide/index.html
Documentation Android,
[Wikipédia – 2015] http://fr.wikipedia.org/wiki/SOAP
Informations sur SOAP,
[Wikipédia – 2014] http://fr.wikipedia.org/wiki/XML-RPC
Informations sur XML-RPC,
[Wikipédia – 2015] http://fr.wikipedia.org/wiki/Android
Informations sur Android,
[Sebsauvage – 2014] http://www.sebsauvage.net/comprendre/ssl/
Informations sur SSL,
[OpenSSL–2014] http://www.openssl.org/docs/
Documentation OpenSSL.
Ecole Nationale des Sciences Appliquées de Tétouan
87
Annexe
Installation du serveur sur Proxmox
Installation d'Ubuntu server sur Proxmox
Pour commencer l'installation d'Ubuntu Server, il faut accéder au lien Proxmox, nous
choisissons la langue puis nous cliquons sur installer Ubuntu Server.
Nous choisissons un nom pour la machine, un nom d'utilisateur et un mot de passe. Ensuite
nous partitionnons le disque et choisissons l'espace nécessaire pour le partitionnement assisté :
Ecole Nationale des Sciences Appliquées de Tétouan
88
Ensuite, nous choisissons les logiciels à installer, et optionnellement, le programme de
démarrage GRUB, une fois l'installation terminée, nous pouvons nous connecter au serveur
Ubuntu.
Après l'installation du serveur on passe à l'affectation de l'adresse IP, il faut éditer ou créer le
fichier suivant : /etc/network/interfaces. Pour attribuer l’adresse IP 37.59.xx.xx avec le
masque et la passerelle 37.187.xx.xx à l'interface eth0
Ecole Nationale des Sciences Appliquées de Tétouan
89
Le serveur permet d'accepter les connexions de type SSH depuis des machines distantes. Cela
permet donc de laisser une machine munie d'un serveur SSH dans un coin, et de la contrôler à
distance, sans pour autant s’alourdir d'un écran et d'un clavier pour la dite machine
Les cas ou cette utilisation peut être utile :
- Un serveur web perso
- Un serveur de données pour la maison / le bureau
- Une passerelle internet
- Un serveur mail
Installation du serveur OpenSSH (debian)
- Mettez à jour la liste des paquets disponibles
sudo apt-get update
- Installez le serveur OpenSSH
sudo apt-get install openssh-server
Nous installons ensuite le serveur PostgreSQL et le serveur Odoo de la même façon que
précédemment, l'interface pgAdmin non incluse.
Par la suite, nous modifions les fichiers de configuration d'Odoo :
Ecole Nationale des Sciences Appliquées de Tétouan
90
Nous modifions ensuite le fichier init.d
Nous pouvons par la suite lancer le serveur.
Configuration de clé SSL pour avoir un accès https à Odoo
Nous installons apache2 et nous générons le certificat.
Ecole Nationale des Sciences Appliquées de Tétouan
91
Ecole Nationale des Sciences Appliquées de Tétouan
92
Captures de l'application mobile (Android)
Menu
Figure 59- Page d'accueil
Gestion des timesheets
Création d'une timesheet
Figure 60- Créer timesheet
Ecole Nationale des Sciences Appliquées de Tétouan
93
Figure 61- Validation de la création
Aperçus des timesheets
Figure 62- Liste et détails des timesheets
Ecole Nationale des Sciences Appliquées de Tétouan
94
Figure 63- Modifier Saved timesheet
Ecole Nationale des Sciences Appliquées de Tétouan
95
Gestion des contrats
Figure 64- Liste et détails des contrats
Figure 65- Nouvelle activité
Ecole Nationale des Sciences Appliquées de Tétouan
96
Figure 66- Ajouter un Sous-contrat
Gestion des factures
Figure 67- Liste et détails des factures
Ecole Nationale des Sciences Appliquées de Tétouan
97
Gestion des rapports
Figure 68- Reporting: Vue par utilisateur