Rapport Pi Dev

38
Préface Le monde de l’entreprise de nos jours a pris un nouvel horizon de communication, l’informatisation d’applications et de services est devenu primordiale pour les sociétés moderne, étant donné que cela permet une fluidité d’échange rapide, et une accessibilité a tout genre de publique. Si on remarque que le marché informatique des applications et des fonctionnalités est devenu gourmand, c’est bien que la qualité qui se présente comme phénomène arbitre qui favorise un projet a un autre, bien que la qualité d’un rendu est définie selon le choix de l’idée et la réalisation. Il est claire que l'accès a un service est devenu assuré par plusieurs appareil, dont l’ordinateur, le smartphone… cela prouve qu’un ingénieur moderne, doit être capable de développer son idée, sur de divers plates-formes, pour satisfaire les besoins actuel d’un marché. Étant donné que notre école ESPRIT a été toujours proactive vis à vis aux avancements technologiques, elle a invité ses étudiants a réaliser un projet multiples plateformes: Desktop, Web et Mobile, ce qui confirme la continuité de cette politique d’apprentissage par problème, afin de habituer ses étudiants a se mettre en situation, préparant de ceux-ci, a être plus proche a la vie professionnel, en apprenant la conception et le codage a travers des projets, qui utilisent une méthodologie récente et pratiques. Enfin nous tenons à remercier, toute l’équipe pédagogique d’ESPRIT et les intervenants professionnels responsables du module PI.DEV, pour avoir assuré un encadrement et le suivi de celle-ci.

description

Rapport projet intégré ESPRIT

Transcript of Rapport Pi Dev

Page 1: Rapport Pi Dev

Préface

Le monde de l’entreprise de nos jours a pris un nouvel horizon de communication, l’informatisation d’applications et de services est devenu primordiale pour les sociétés moderne, étant donné que cela permet une fluidité d’échange rapide, et une accessibilité a tout genre de publique.

Si on remarque que le marché informatique des applications et des fonctionnalités est devenu gourmand, c’est bien que la qualité qui se présente comme phénomène arbitre qui favorise un projet a un autre, bien que la qualité d’un rendu est définie selon le choix de l’idée et la réalisation.Il est claire que l'accès a un service est devenu assuré par plusieurs appareil, dont l’ordinateur, le smartphone… cela prouve qu’un ingénieur moderne, doit être capable de développer son idée, sur de divers plates-formes, pour satisfaire les besoins actuel d’un marché.Étant donné que notre école ESPRIT a été toujours proactive vis à vis aux avancements technologiques, elle a invité ses étudiants a réaliser un projet multiples plateformes: Desktop, Web et Mobile, ce qui confirme la continuité de cette politique d’apprentissage par problème, afin de habituer ses étudiants a se mettre en situation, préparant de ceux-ci, a être plus proche a la vie professionnel, en apprenant la conception et le codage a travers des projets, qui utilisent une méthodologie récente et pratiques.

Enfin nous tenons à remercier, toute l’équipe pédagogique d’ESPRIT et les intervenants professionnels responsables du module PI.DEV, pour avoir assuré un encadrement et le suivi de celle-ci.

Page 2: Rapport Pi Dev

Table des matières1) Identification des Acteurs..................................................................3

2) Etude des Besoins Fonctionnel..........................................................3

a. Besoin fonctionnels aux utilisateurs en général.............................3

b. Besoins fonctionnels destinés aux Freelancer................................4

c. Besoins fonctionnels destinés aux Job Owner.................................4

d. Notre application doit permettre à l’administrateur :....................4

3) Etude des besoins non fonctionnels...................................................4

1. Méthodologie :..................................................................................5

La méthode agile « SCRUM » :...............................................................5

2.1. Identification des acteurs :.......................................................7

3.1 Modélisation du diagramme de cas d’utilisation global..........8

3.1.2 Déterminer les cas d’utilisations.................................................8

4.Etude et choix de l’environnement.....................................................10

4.1 Environnement de développement.............................................10

Page 3: Rapport Pi Dev

I. Etude de Contexte

Dans le cadre de l’apprentissage du module PIDEV, nous avons été

invité a réaliser un projet d’application Desktop, Web & Mobile. il

s’agit bien d’une plateforme sur laquelle les utilisateurs peuvent

déposer ou chercher des projets de différents catégories allant du

graphisme jusqu’au développement en différents langages, nous allons

donc permettre aux utilisateurs d'être directement liés. il est évident

que ce projet existe déjà auparavant, avec Odesk, Vworker, Codeur…

Or notre projet aurait a la fois plus d’options, et moins de complexités

vis a vis a des nouveaux utilisateurs, accompagné d’une charte

graphique moderne et attirante.

1)Identification des Acteurs

Page 4: Rapport Pi Dev

- Freelancer : Utilisateur qui s’inscrire pour proposer une offre a un projet.

- JobOwner : dépose son projet et choisi parmi les offres proposés.- Administrateur : gère l’application.

2)Etude des Besoins Fonctionnel

a. Besoin fonctionnels aux utilisateurs en général

Notre Application doit permettre à tout utilisateur de :

- s’inscrire en tant que Freelancer ou JobOwner- pouvoir accéder à son compte en s’authentifiant. - Accéder à ses informations, personnelles, les modifier. - désactiver son compte.- Chercher un membre.

b. Besoins fonctionnels destinés aux Freelancer

Notre application doit permettre au Freelancer de :

- Accéder à ses Informations personnelles, les modifier ainsi désactiver son compte.- Consulter la liste des projets.- Evaluer une entreprise.- Passer une certification.- Rechercher un projet.- Déposer son cv.- Déposer une candidature pour les projets.

c. Besoins fonctionnels destinés aux Job Owner

- Publier un projet, ainsi sa modification et sa suppression..- Consulter les candidatures pour son projet.

Page 5: Rapport Pi Dev

- Evaluer une entreprise.- Choisir les Freelancer pour le projet.- Signaler des réclamations.

d. Notre application doit permettre à l’administrateur

- Consulter les affectations pour les projets.- Envoyer un message au Freelancer ou bien Jobowner.- Bannir un utilisateur.- Pouvoir consulter les messages échangés entre un Freelancer et un Jobowner- Ajouter un test, modifier et les supprimer.- Retirer l’affectation d’un Freelancer- Ajouter des comptes d’administrateurs- Valider un projet

3)Etude des besoins non fonctionnels

- Notification (newsletters) pour les projets en rapport des skilles des freelancers- Interface simple et convivial pour l’utilisateur- sécurisé l’application pour assurer le payement entre le Freelancer et le Jobowner- chaque membre peut contacter un autre membre ou un administrateur.

Dans le cadre de la réalisation de notre projet intégré, nous avons

choisi de suivre la méthode Agile « Scrum ».

Dans cette première partie nous décrirons les différentes phases du

projet. Par ce présent rapport, nous allons décortiquer les différentes

parties du Sprint 0, où nous spécifions essentiellement les acteurs

principaux du système, les besoins fonctionnels et non fonctionnels

marquants ainsi que nous entamons l’analyse générale.

Page 6: Rapport Pi Dev

Nous allons avoir recours aussi à l’architecture globale de notre

application et identifier les fonctionnalités principales à travers

l’élaboration du Product Backlog.

1. Méthodologie :

La méthode agile « SCRUM » :

Pour remédier aux failles des méthodes de découpage en phases (voir

cycle en V) et de découpage en activités WBS (Work Brakedown

Structure) La méthode SCRUM définit un cadre de travail permettant la

réalisation de projets complexes. Initialement prévu pour le

développement de projets type « Software », cette méthode peut être

appliquée à tout type de projet, du plus simple au plus innovant, et ce, de

manière très simple.

L’approche Agile « SCRUM » propose au contraire de réduire

considérablement voire complètement cet effet tunnel en donnant

davantage de visibilité, en impliquant le client du début à la fin du projet

et en adoptant un processus de développement itératif et

incrémental. Elle considère que le besoin ne peut être figé et propose

au contraire de s’adapter aux changements de ce dernier. Mais pas sans

un minimum de règles.

Les projets qui suivent la méthode agile « SCRUM » sont divisés en

plusieurs cycles de travail relativement court que l’on appelle « sprints

».

Cette méthode nous a permis, en tant que membres de l’équipe,

d’évaluer régulièrement les progrès liés au projet et de planifier les

prochaines étapes de développement.

Scrum permet de produire la plus grande valeur métier dans la durée la

plus courte.

Page 7: Rapport Pi Dev

Le Cycle projet avec Scrum

La répartition des rôles dans « Scrum »:

Chaque projet utilisant la méthode SCRUM se mène autour d’une équipe

auto-organisée et multifonctionnelle : auto-organisée car il n’y a pas

de chef d’équipe qui décide des rôles de chacun, et multifonctionnelle car

chaque membre de l’équipe est partie prenant dans le développement de

chaque fonctionnalité.

On distingue trois rôles principaux à savoir :

Ø Le Product Owner :

Un directeur de produit qui est soit le client, soit une personne

représentant le client, il définit les fonctionnalités du produit ,choisit

la date et le contenu de la release, responsable du retour sur

investissement et accepte et rejette les résultats.

Ø Le Scrum Master :

Page 8: Rapport Pi Dev

Il représente le management de projet ,il est responsable de faire

appliquer les valeurs et les pratiques de Scrum par l’équipe ,résout les

problèmes et s’assure que l’équipe est complètement fonctionnelle et

productive .

Ø Membres de l’équipe :

Dans la méthode Scrum, l’équipe est responsable de la réalisation

opérationnelle des « travaux », ou en d’autres termes, participe au

développement de l’application; et c’est toute l’équipe qui est

responsable du résultat final de chaque sprint .ils s’organisent eux-

mêmes et ne changent pas de composition pendant un sprint.

2.Etude de contexte Il s’agit de l’implémentation d’une application s’intitulant « freelancer»,

qui facilite la gestion du processus d’embauche à distance.

« freelancer » va permettre aux freelancer connectés d’accéder à leurs

comptes afin de pouvoir gérer ou évaluer l’ensemble des projets

proposés. D’autre part, elle met à disposition du job owner la gestion des

différentes propositions d’offres reçus de la part des freelancers pour

réaliser leurs projets..

2.1. Identification des acteurs :

Un acteur est une entité qui interagit avec le système. Plus spécifiquement, le rôle joué par un

simple utilisateur c’est de produire un flux d’informations.

Dans notre application, nous distinguons 3 principaux acteurs, à savoir :

● un

Page 9: Rapport Pi Dev

3.Analyse Globale

3.1 Modélisation du diagramme de cas d’utilisation global

3.1.1 Identification des cas d’utilisation :

L’identification des cas d’utilisation une première fois, nous donne un

aperçu des fonctionnalités futures que doit implémenter le système.

Cependant, il nous faut plusieurs itérations pour ainsi arriver à

constituer des cas d’utilisation complets. D’autres cas d’utilisation vont

apparaître au fur à mesure de la Description de ceux là, et l’avancement

dans le «recueil des besoins fonctionnels ».

Pour constituer les cas d’utilisation, il faut considérer l'intention

fonctionnelle de L’acteur par rapport au système dans le cadre de

l'émission ou de la réception de chaque message

3.1.2 Déterminer les cas d’utilisations

Un cas d’utilisation représente un ensemble de séquences d’actions

réalisées par le système et produisant un résultat observable

intéressant pour un acteur particulier.

Il modélise un service rendu par le système, en exprimant les

interactions acteurs/système et apportant une valeur ajoutée « notable»

à l’acteur concerné.

Ceci est le diagramme de cas d’utilisation générale qui résume les

activités prises en charge par le système, ainsi que les personnes qui

entreprennent ces activités. Freelancer utilise un diagramme de cas

d'usage pour connaître ce qui suit au sujet du système :

Page 10: Rapport Pi Dev

Figure 1 cas d'utilisation global

3.2 Modélisation du diagramme de cas d’utilisation global

Page 11: Rapport Pi Dev

Le diagramme de classe est l’un des diagrammes statiques d'UML. Il permet de décrire la structure d'un système informatique tout en montrant les différentes classes, leurs attributs, leurs méthodes ainsi que les relations entre eux. Tout au long de nos sprints, nous essayerons de construire ce diagramme au fur et mesure en ajoutant les différentes classes déduites.

4.Etude et choix de l’environnement

4.1 Environnement de développement

L’environnement de développement est un terme qui désigne l’ensemble d’outils et de langage utilisé pour l’implémentation d’une solution informatique. Nous commençons par l’environnement matériel.

Page 12: Rapport Pi Dev

4.1.1 Environnement logiciel4.1.1.1 Netbeans IDE

Netbeans IDENetBeans est un environnement de développement intégré (IDE), open source et multi-langues, créé par Sun. Il a la particularité d’être multiplateforme : il est compatible avec Windows, MacOs, Linux et Solaris. De plus, il supporte plusieurs langages de programmation.

4.1.1.2 Wamp

Wamp server

Wamp server est une plateforme de développement des applications web dynamiques. Ce logiciel est très intéressant puisqu’il englobe tous les outils nécessaires pour le fonctionnement d’une application web notamment un serveur de base de données MySQL, un serveur web apache et une interface de gestion des bases de données facile à utiliser PHPMyadmin

4.1.2 Langage de programmationLes langages de programmations utilisées pour le développement de notre application sont les suivants :

4.1.2.1 PHP

Page 13: Rapport Pi Dev

phpPHP ou Hyper Text Preprocessor est un langage de script extrêmement puissant et destiné pour le développement des applications web. PHP est l’un des langages de programmation les plus populaire. Le point fort de ce langage c’est qu’il est portable et simple à utiliser.

4.1.2.2. JQuery

jQuery

Afin de rendre notre application plus interactif nous avons fait recourt à jQuery qui est une bibliothèque JavaScript libre qui porte sur l'interaction entre JavaScript et HTML, et a pour but de simplifier des commandes communes de JavaScript.

4.1.2.3. JAVA

Java

Page 14: Rapport Pi Dev

Le langage Java est un langage de programmation informatique orienté objet. Java reprend en grande partie la syntaxe du langage C++, très utilisée par les informaticiens

4.1.2.4. Ajax

AJAXC’est un concept de programmation Web reposant sur plusieurs technologies comme le JavaScript et le XML – d'où le nom AJAX. Il permet de faire communiquer une page Web avec un serveur Web sans occasionner le rechargement de la page.

4.1.2.5 Html 5

HTML 5

L’HypertextMarkupLanguage, connu HTML, est le format de données conçu pour représenter les pages web. C’est un langage de balisage permettant d’écrire de l’hypertexte.

4.1.2.6. Css 3

Page 15: Rapport Pi Dev

css3

CSS3 appartient à la famille des styles, il offre de nouvelles possibilités intéressantes pour créer un impact avec vos dessins, vous permet d’utiliser des feuilles de style plus variés pour des effets de style beaucoup plus intéressante.

4.1.2.7 Java script

java script

Le Javascript est un langage de script incorporé dans un document HTML. C’est un langage de programmation qui permet d'apporter des améliorations au langage HTML en permettant d'exécuter des commandes du côté client, c'est-à-dire au niveau du navigateur et non du serveur web.

4.1.2.8 Framework Symfony

Symfony

Page 16: Rapport Pi Dev

Symfony 2 est un Framework MVC (kit de logiciel basé sur le Modèle Vue Contrôleur), libre.Il permet de développer, rapidement et avec facilité, des sites et applications.

4.2 Outils de configuration

L’outils de configuration utilisée pour le développement de notre application est le suivant : Gitlab :

Gitlab

Gitlab est un clone du célèbre site GitHub permettant d'héberger des répertoires Git et de mettre en place plusieurs outils autour afin de mieux gérer les projets à l'aide d'un gestionnaire de bugs (issues) ou encore d'un wiki pour la documentation.

Page 17: Rapport Pi Dev
Page 18: Rapport Pi Dev

partie Aziz :

Le Backlog de produit est le coeur de Scrum, il est l'ensemble des fonctionnalités du produit que l'on veut développer .c’est une liste priorisée de besoins et exigences que veut le client .il est élaboré par le Product owner avant le lancement des sprints

ID Feature ID_US User Story Priority

1 Gestion des consultations

1.1 En tant que freelancer je souhaite consulter la liste des projets via Desktop

70

1.2 En tant que freelancer je souhaite consulter la liste des projets via web

50

1.3 En tant que freelancer je souhaite consulter la liste des projets via mobile

30

1.4 En tant que jobowner je souhaite consulter les candidatures pour mon projet via Desktop

70

1.5 En tant que jobowner 50

Page 19: Rapport Pi Dev

je souhaite consulter les candidatures pour mon projet via Web

1.6 En tant que jobowner je souhaite consulter les candidatures pour mon projet via Mobile

30

1.7 En tant que administrateurs je souhaite consulter les affectations pour les projets via Desktop

70

1.8 En tant que administrateurs je souhaite consulter les affectations pour les projets via Web

50

1.9 En tant que administrateur je souhaite pouvoir consulter les messages échangé entre les freelancer et jobowner via Desktop

70

1.10 En tant que administrateur je souhaite pouvoir consulter les messages échangé entre les freelancer et jobowner via Web

50

2 générer des statistiques

2.1 En tant que administrateur je souhaite générer des statistiques via Desktop

70

2.2 En tant que 50

Page 20: Rapport Pi Dev

administrateur je souhaite générer des statistiques via Web

2.3 En tant que administrateur je souhaite générer des statistiques via Mobile

30

3 Evaluation 3.1 En tant que freelancer je souhaite évaluer une entreprise/jobowner via Desktop

70

3.2 En tant que freelancer je souhaite évaluer une entreprise/jobowner via Web

50

3.3 En tant que jobowner je souhaite évaluer un freelancer via Desktop

70

3.4 En tant que jobowner je souhaite évaluer un freelancer via Web

50

4 Gestion des tests 4.1 En tant que administrateurs je souhaite ajouter un test via Desktop

70

4.2 En tant que administrateurs je souhaite ajouter un test via Web

50

4.3 En tant que administrateurs je souhaite modifier un test via Desktop

70

Page 21: Rapport Pi Dev

4.4 En tant que administrateurs je souhaite modifier un test Via web

50

4.5 En tant que administrateurs je souhaite supprimer un test via Desktop

70

4.6 En tant que administrateurs je souhaite supprimer un test via Web

50

4.7 En tant que Freelancer je souhaite passer des tests Via desktop

70

4.8 En tant que Freelancer je souhaite passer des tests via web

50

5 Gestion des affectations

5.1 En tant que Administrateur je veux retirer l’affectation d’un freelancer à un projet via desktop

70

5.2 En tant que Administrateur je veux retirer l’affectation d’un freelancer à un projet via Web

50

5.3 En tant que jobOwner je souhaite choisir les freelancer pour le projet via Desktop

70

5.4 En tant que jobOwner 50

Page 22: Rapport Pi Dev

je souhaite choisir les freelancer pour le projet via Web

6 Gestion des réclamations

6.1 En tant que jobowner je souhaite déposer mes réclamations en cas de non satisfaction via Desktop

60

6.2 En tant que jobowner je souhaite déposer mes réclamations en cas de non satisfaction via Web

50

6.3 En tant que Freelancer je souhaite déposer mes réclamations via Desktop

70

6.4 En tant que Freelancer je souhaite déposer mes réclamations via Web

50

7 Gestion des recherches

7.1 En tant que Administrateur je souhaite lancer une recherche pour trouver un Freelancer /jobowner via Desktop

70

7.2 En tant que Administrateur je souhaite lancer une recherche pour trouver un Freelancer /jobowner via Web

50

7.3 En tant que 70

Page 23: Rapport Pi Dev

Freelancer je souhaite lancer une recherche pour trouver un jobowner Via Desktop

7.4 En tant que Freelancer je souhaite lancer une recherche pour trouver un jobowner via web

50

7.5 En tant que Freelancer je souhaite lancer une recherche pour trouver un projet via Desktop

70

7.6 En tant que Freelancer je souhaite lancer une recherche pour trouver un projet via Web

50

7.7 En tant que jobowner je souhaite lancer mes recherches pour trouver un Freelancer Via Desktop

70

7.8 En tant que jobowner je souhaite lancer mes recherches pour trouver un Freelancer Via web

50

8 Gestion Projet 8.1 En tant que jobowner je veux ajouter un projet Via Desktop

70

8.2 En tant que jobowner 50

Page 24: Rapport Pi Dev

je veux ajouter un projet Via Web

8.2 En tant que jobowner je veux supprimer un projet Via Desktop

70

8.3 En tant que jobowner je veux supprime un projet Via Web

50

8.4 En tant que jobowner je veux modifier un projet Via Desktop

70

8.5 En tant que jobowner je veux modifier un projet Via Web

50

9 Gestion des dépôts 9.1 En tant que freelancer je souhaite déposer mon cv via Desktop

70

9.2 En tant que freelancer je souhaite déposer mon cv via Web

50

9.3 En tant que freelancer je souhaite déposer mes candidatures pour les projets via Desktop

70

9.4 En tant que freelancer je souhaite déposer mes candidatures pour les projets Via web

50

9.5 En tant que freelancer je souhaite déposer le projet final via Web

50

Page 25: Rapport Pi Dev

10 Gestion des contacts

10.1 En tant que jobowner je souhaite contacter les freelancer via Desktop

70

10.2 En tant que jobowner je souhaite contacter les freelancer via Web

50

10.3 En tant que jobowner je souhaite contacter les freelancer via Desktop

70

10.4 En tant que jobowner je souhaite contacter les freelancer Via web

50

11 Gestion des payements

11.1 En tant que jobowner je souhaite payer les freelancer Via desktop

70

11.2 En tant que jobowner je souhaite payer les freelancer via Web

50

12 Gestion des comptes

12.1 En tant que freelancer je souhaite modifier mon compte via Desktop

70

12.2 En tant que freelancer je souhaite modifier mon compte via Web

50

12.3 En tant que jobowner je souhaite modifier mon compte via Desktop

70

12.4 En tant que jobowner je souhaite modifier

50

Page 26: Rapport Pi Dev

mon compte via Web

12.5 En tant que administrateur je souhaite pouvoir supprimer des comptes via Desktop

70

12.6 En tant que administrateur je souhaite pouvoir supprimer des comptes via Web

50

12.7 En tant que administrateurs je souhaite ajouter des comptes d’administrateurs via Desktop

70

12.8 En tant que administrateurs je souhaite ajouter des comptes d’administrateurs via Web

50

12.9 En tant que freelancer je souhaite désactiver mon compte via Desktop

70

12.10 En tant que freelancer je souhaite désactiver mon compte via Web

50

12.11 En tant que jobowner je souhaite désactiver mon compte via Desktop

70

12.12 En tant que jobowner je souhaite désactiver

50

Page 27: Rapport Pi Dev

mon compte via Web

12.13 En tant que utilisateur je souhaite accéder sur mon compte via login et mot de passe via Desktop

70

12.14 En tant que utilisateur je souhaite accéder sur mon compte via login et mot de passe via Web

50

12.15 En tant que freelancer je souhaite m’inscrire en local sur via desktop

70

12.16 En tant que freelancer je souhaite m’inscrire sur via web

50

12.17 En tant que jobowner je souhaite m’inscrire via Desktop

70

12.18 En tant que jobowner je souhaite m’inscrire sur via web

50

Le diagramme de déploiement permet d'illustrer l'architecture physique du système et de

montrer la relation entre ses différentes composantes. Voici le diagramme de déploiement de

notre application.

Page 28: Rapport Pi Dev

Maquette :

Page 29: Rapport Pi Dev

figure 1.1 représente la page d’authentification de l’application

Figure 1.2 la page d’accueil de jobowner

Page 30: Rapport Pi Dev

figure 1.3 ajouter un nouveau projet

Figure 1.4 liste des Projets d’un jobowner

Page 31: Rapport Pi Dev

Figure 1.5 Liste des condidats pour un projet

figure 1.6 représente la livraison du projet