SOMMAIRE I. Introduction 02 II. Glossaire 03 a. Glossaire technique 03 b. Glossaire fonctionnel 04 III. Présentation de l'association 05 a. Présentation juridique et géographique 05 b. Présentation de l'activité de l'association 05 c. Organigramme 06 d. Intégration des stagiaires 07 e. Diagramme de Gantt 08 IV. Mise en place du projet 09 a. Existant et objectifs du projet 09 b. Les différents environnements 09 c. Méthode de travail 12 d. Contrainte technique 12 e. Intégration 13 V. L'application 14 a. Présentation de l application développée 14 b. Développement 17 c. Base de données 18 d. Résultats obtenus 19 e. Difficultés rencontrées et solutions apportées 19 VI. Conclusion 20 1
I. Introduction Combinant, formations théoriques et connaissances en entreprise, j ai choisi pour ma première année d effectuer mon stage pour l association Gianfar-Informatique. Les avantages de ce projet en entreprise sont nombreux et l expérience acquise est plus qu intéressante pour se familiariser et débuter dans le monde du travail. Dans la continuité de mes études, cela m a permis d approfondir mes connaissances et de découvrir le travail en groupe autonome avec d autres développeurs. Un projet en particulier fait le sujet de cette note, une application de facturation sur laquelle j ai travaillé durant mon stage de première année. Ce projet vise à créer une application de gestion des factures de l association, allant de leur saisie à la génération d un PDF d impression, tout en pouvant consulter, modifier, supprimer. Un accent particulier a été mis lors du développement, sur le suivi de projet spécifique avec une nouvelle méthode agile, Scrum, complétement novatrice pour moi et extrêmement enrichissante dans le développement d applications. Ce rapport se découpe donc en trois grandes parties, une première pour présenter la structure, l environnement et l association, une seconde consacrée à l avant développement et à la mise en place du projet et, enfin, une dernière sur le développement de l application. 2
II. Glossaire a. Glossaire technique Base de données : Un lot d'informations stockées dans un dispositif informatique. Environnement : Un espace dédié au développement du projet. PDF : Format de fichier permettant de préserver la mise en forme (polices d'écritures, images, objets graphiques ) d un fichier telle qu'elle a été définie par son auteur. Il est donc parfaitement adapté à la consultation et impression de fichiers. UML: Est utilisé pour spécifier, visualiser, modifier et construire les documents nécessaires au bon développement d'un logiciel ou site web orienté objet. CSS : Un langage de programmation permettant l affichage de la présentation d un site web. HTML : Langage de programmation permettant de structurer et mettre en forme une page web. PHP : Langage de programmation utilisé pour réaliser des pages web dynamique, et interagir avec les bases de données. Javascript : Ce langage de programmation a pour but la réalisation de scripts ayant pour but d interagir avec le navigateur. PHP MyAdmin: Une application web développée pour gérer une base de données. FTP : Permet facilement d ajouter, de modifier, ou de supprimer des fichiers stockés sur un site web. Pattern: Aussi appelé patron de conception, il permet l organisation d une partie des fichiers du site web selon une méthode précise. Contrôleur : Il reçoit tous les événements de l'utilisateur et enclenche les actions à effectuer. Diagramme de Gantt : un outil permettant de modéliser la planification de tâches nécessaires à la réalisation d'un projet. 3
b. Glossaire fonctionnel Ingénieur informatique : Son rôle est de participer au développement et à la maintenance des applications informatiques, en assurant l analyse fonctionnelle, la conception technique, le codage, la mise au point et la documentation des programmes. Chef de projet : La personne chargée de mener un projet et de contrôler son bon déroulement. De manière générale, il dirige une équipe pendant la durée du ou des divers projets dont il a la charge. Graphiste : Réalise la conception de l'interface web, l organisation des pages, l arborescence et la navigation dans le site. Charte graphique : Le but de la charte graphique est de conserver une cohérence graphique pour le site web. Intégration : Tâche désignant la mise en place du site web sur un nouvel enviro n- nement. Recette : Un environnement permettant de tester le site web afin de détecter to utes les erreurs. Une fois les tests effectués, le site web peut alors passer en production, ou retourner en développement, afin de corriger les erreurs. Production : Environnement directement accessible par les clients et utilisateurs du site web. Agile : Une méthode de développement impliquant en grande partie le client, et permettant de répondre à ses besoins. Scrum : Une méthode de développement agile, découpée en trois étapes, le backlog, les sprints et les releases. Backlog : Consiste à découper le projet en une multitude de sous-tâches. Sprint : Une période durant laquelle les développeurs devront réaliser des sous tâches découpées lors du backlog, qu ils auront eux-mêmes sélectionnées. Release : A la fin de deux sprints, les développeurs, graphiste et leur chef de projets se réunissent afin de constater les avancées effectuées, et de s assurer que les objectifs ont bien été atteints. S ensuit alors un passage du site web en environnement de recette. 4
III. Présentation de l association a. Présentation juridique & géographique L association Gianfar Informatique, a été fondée en Juin 2009, par deux étudiants en BTS Informatique de Gestion, elle était alors spécialisée dans le développement de sites web. Aujourd hui, l association a évolué, et intègre désormais, des étudiants désireux d accroître leurs connaissances, et leur esprit d équipe. Le panel de prestations s est lui aussi élargi proposant maintenant des créations graphiques, des administrations et créations d applications de gestion en plus des seuls sites web. Géographiquement parlant, l association ne possède pas encore de locaux et intervient au domicile de ses clients. Ceux-ci sont principalement situés en région parisienne et sur Paris même. b. Présentation de l'activité de l'association Comme vu, Gianfar informatique est une association spécialisée dans la création et l'administration d'applications informatiques. Elle est constitué de développeurs, et graphistes professionnels ou étudiants, qui travaillent afin d accroître leurs compétences. Via son activité non lucrative, l'association a réussi à s approprier une part du marché grâce à des tarifs relativement bas. Malgré que la majorité des membres de Gianfar-Informatique soit des étudiants, ils sont sélectionnés pour leurs compétences et qualifications. Ainsi, ils peuvent acquérir de grandes compétence et qualifications avant de rejoindre le monde du travail. Ils ont aussi pour objectifs, de toujours avoir la satisfaction de leur clientèle. C est pourquoi l entreprise utilise principalement des méthodes de développement permettant de travailler en coopération avec ses clients. 5
c. Organigramme 6
d. Intégration des stagiaires N oubliant pas ses racines, l association intègre régulièrement des stagiaires en développement, et graphisme à qui elle propose de vrais projets enrichissants. Ces stagiaires sont ainsi considérés durant leurs stages comme de vrais développeurs et utilisés pleinement dans le processus de développement des projets. Ils intègrent ainsi de vraies équipes projets visant à les rendre rapidement opérationnels et à les assister pour compléter les connaissances nécessaires aux métiers. Suite à notre demande, nous avons pu travailler sur notre application de gestion des factures en autonomie, avec l aide du président de l association. Les développements sont faits dans les technologies étudiées lors des cours pour compléter au mieux l enseignement reçu et l enrichir. 7
e. Diagramme de Gantt 8
IV. Mise en place du projet a. Existant et objectifs du projet Etait mis en place un module interne à Gianfar-Informatique, gérant le stockage des factures et devis. Pour le compléter et automatiser la gestion de ceux-ci, le développement et l intégration d un module de gestion et de génération informatique des factures et devis était important. Les employés de la structure étaient en charge de la facturation. Celle-ci gérait les factures via des logiciels de saisie de traitement de textes (Word). Malgré l existence d un support de démarrage, le risque d erreur était grand et la tâche fastidieuse et sensible de par l importance des enjeux. b. Les différents environnements Je vais maintenant détailler le fonctionnement des développements informatiques à travers les trois domaines qui le constituent : L environnement de développement : Celui-ci reste principalement l axe de travail des analystes programmeurs qui, suite aux demandes des chefs de projets, réalisent les développements sur des serveurs complètement indépendants des autres environnements. Ces serveurs possèdent exactement les mêmes caractéristiques, particularités et applications pour que les développeurs puissent créer et entretenir les applications et programmes dans les meilleures conditions. Une fois les développements d un projet réalisés, ceux-si sont transmis pour vérification et validation aux équipes de l environnement de recette via une installation sur le serveur de recette. 9
La certification va travailler de concert avec les équipes de développement pour un suivi de recette jusqu'à la validation totale des développements du projet. Les équipes de développement prennent aussi en charge les éventuelles anomalies de production qui pourraient survenir. L environnement de recette : C est un environnement consacré aux vérifications des développements effectués. En somme, une équipe de certification travaille à valider et vérifier les différents développements pour assainir les projets arrivant en production. Quand un développement est jugé non conforme, il revient aux équipes de développement jusqu'à sa validation. Une fois l ensemble des développements d une application validé, celle-ci est installée sur l environnement de production. L environnement de production : C est l environnement utilisé par les utilisateurs. Il reste l environnement principal car c est celui qui permet aux clients de travailler, de correspondre avec les particuliers/entreprises et de proposer les services de leurs structures. 10
Schéma des environnements et du fonctionnement informatique : Clients Environnement de Production Programmes validés pour passage en Production Environnement de Recette Programmes validés pour passage en Recette Programmes à modifier Environnement de Développement 11
c. Méthode de travail Grâce à l expérience de notre maître de stage, mon binôme et moi avons pu sélectionner une méthode de travail adaptée à un tel projet. Le choix, s est tourné vers la méthode agile SCRUM, récemment introduite dans le suivi des projets de petites tailles. Cette méthode consiste à diviser le projet en de multiples tâches, dans un premier temps, à l aide de l ensemble de l équipe projet (backlog). Ensuite, les développeurs, aidés de leur chef de projets choisissent une durée définie afin de réaliser un sprint (temps de travail durant lequel les programmeurs doivent accomplir leurs tâches). Nous devons ensuite, à notre tour, de choisir parmi les multiples tâches découpées au préalable, celles que nous pourrons réaliser sur un sprint. C est ensuite au bout de deux sprints, que nous avons la mission de faire passer en environnement de recette nos développements (release). Les différents défauts de fonctionnalités relevés par la recette des précédents sprints s ajoutant aux développements restants. A noter qu un point journalier est effectué par l ensemble de l équipe pour voir les avancées, trouver des solutions ensemble pour la résolution des problèmes et gagner un maximum d efficacité. On évite ainsi la procrastination des problèmes et limite la probabilité de ne pas livrer son sprint à temps. Le suivi des développements se fait via des posts-its placés dans trois colonnes (à faire, en cours et réalisé). Ces trois colonnes représentent le sprint en cours. Chaque post-it représente une tâche. Ils sont déplacés durant ces points journaliers. d. Contrainte technique Au cours de ce projet, nous disposions de contraintes strictes afin de pouvoir adapter le module au site web déjà réalisé. Pour cela, nous ne disposions d un choix restreint de langages de, parmi lequel le CSS et le HTML, pour la partie graphique de l application, le javascript, pour mettre en œuvre des pages dynamiques et, enfin le PHP pour lier l interface graphique et la base de données. Pour le stockage de données, nous avons pu travailler sur une base de données, SQL, gérée par PHP MyAdmin. Enfin, pour le développement de l application, nous disposions d un environnement de développement mis en place par Gianfar. Nous avons pu nous occuper de la mise en ligne de la programmation à l aide de divers clients FTP. La charte graphique de l association étant définie, nous nous sommes attachés à bien la respecter. 12
e. Intégration L application fut rattachée au site web via la catégorie «Gestion facturation» du menu. L application étant dynamique et interagissant avec la base de données, nous avons dû l adapter à celle du site web. Désormais, l application fait donc intégralement partie du site web. 13
V. L application a. Présentation de l application développée Afin de présenter au mieux l application développée durant mon stage, j ai découpé cette partie par fonctionnalité/module. J y ai join un diagramme d activité UML pour faciliter la compréhension Afficher la liste des projets : Cette page permet d afficher les clients et de choisir un projet. Elle liste l ensemble des projets de l association via la base de données. L utilisateur est redirigé vers la page de sélection des factures/devis en cliquant sur le projet voulu. Afficher les devis factures : Cette page permet d afficher les devis/factures de chaque client. Le client a la possibilité d ajouter une facture/devis, supprimer, modifier et/ou générer au format PDF. 14
Consulter/Modifier une facture/ un devis : Cette page offre la possibilité de consulter et de modifier une facture ou un devis stocké en base de données, avec l aide des prestations, elles aussi stockées en base de données. Les données principales sont consultables et modifiables via des champs saisissables. Les prestations, quant à elles, sont gérables via un tableau en dessous des informations principales et des cases à cocher en fonction des prestations vo u- lues. Supprimer une facture/ un devis : L utilisateur peut ici sélectionner une facture et demander sa suppression de la base de données. Une confirmation sera requise pour valider la suppression. Editer une facture/ un devis : Finalité de l application, on peut générer un PDF avec les factures/devis en base de données pour l impression au format juridique obligatoire pour une facture. Celui-ci se génère automatiquement et reprend toutes les informations importantes. 15
16
b. Développement L application, ayant été développée en programmation orientée objet principalement sur un pattern Modèle Vue Contrôleur, l extrait de code ci-dessous, représente la classe AjoutFacture, contrôleur pour l ajout d une facture. 17
c. Base de données 18
d. Résultats obtenus Grâce au suivi de la méthode agile SCRUM, nous avons pu nous investir au maximum dans le projet et, ainsi, le mener à terme. Après un grand nombre de passages par l environnement de recette, l application a finalement été intégrée au site web, elle est donc entièrement fonctionnelle, et est à ce jour utilisée par l association. e. Difficultés rencontrées et solutions apportées La première grande difficulté rencontrée, a été le choix du support de l application. En effet, nous avions prévu une application intranet, avant de finalement nous décider à l intégrer sur le site en tant que module. En effet, il est préférable, que les utilisateurs de l application puissent avoir accès à tout moment à l intégralité des factures/devis, et puissent réaliser les factures ou les devis immédiatement chez les clients. Le second soucis a été la sécurisation de l application. En effet, si un champ était rempli de manière incorrecte, il rendait la facture invalide et non présentable au client. Ainsi, il fallait sécuriser constamment tous les champs les plus importants pour éviter ces situations. Nous avons fait le choix d utiliser des cases à cocher ou principalement des listes déroulantes et des calendriers pour les dates afin de limiter les risques d erreurs. L intégration à l environnement de recette puis de production auront aussi été des moments difficiles. Devoir préparer des livrables régulièrement m a obligé à faire preuve d une grande rigueur dans mes développements. 19
VI. Conclusion Outil central dans la gestion des facture et des devis, la création de cet applicatif restait primordial dans l optique d améliorer toujours plus les traitements de Gianfar Informatique. Il regroupait en une seule application, la gestion complète des factures/devis allant de leur création à leur édition et s intégrait avec les existants. La durée et la complexité d un tel projet auront été à mon sens, très enrichissants et positifs. Principalement centré sur les développements, j ai eu la chance de pouvoir participer entièrement au projet de la création de l applicatif, aux développements en eux-mêmes à son passage en recette ou en certification. Des réelles qualités d organisation et de rigueur m ont ainsi été demandées au fil des développements. Le projet a pu atteindre la certification dans les temps impartis. Les notions de travail en équipe et de gestion de développement ont été inédites et formatrices pour moi et le soutien constant de mon équipe m a permis de toujours avancer. Je pense avoir ainsi énormément gagné en autonomie de travail. Le projet se poursuit encore pour moi durant quelques mois, étant en charge des correctifs de certifications réalisée en coopération avec les utilisateurs suite à la sortie de l application en pilote de production jusqu'à la mise en place totale pour l ensemble des utilisateurs. Hors du côté technique, je pense aussi avoir développé mes compétences relationnelles et humaines au contact de tous les interlocuteurs avec lesquels j ai pu travailler. Les connaissances fonctionnelles et mon intégration auront aussi été grandement améliorées. 20