2012-2014 DANIEL Alexis A1 BTS SIO SLAM Projet Fredi Page 1 sur 29
p. 2 p. 3 p. 6 p. 7 p. 8 p. 10 p. 15 p. 21 p. 22 p. 28 Projet Fredi Page 2 sur 29
La Maison des Ligues de Lorraine (M2L) a pour mission de fournir des espaces et des services aux différentes ligues sportives régionales et à d autres structures hébergées. La M2L est une structure financée par le Conseil Régional de Lorraine dont l'administration est déléguée au Comité Régional Olympique et Sportif de Lorraine (CROSL). Les associations sportives (les clubs) peuvent profiter de dispositions fiscales apparues en 2008 pour faire bénéficier de remises d'impôts les adhérents engageant des frais, en particulier dans le cadre de déplacements liés à des compétitions, des stages sportifs, des réunions Il s'agit de faciliter par l'informatisation l'établissement du document officiel permettant la remise d'impôts. Les adhérents doivent entrer leurs notes de frais permettant aux trésoriers de faire les comptes des associations sportives. Les adhérents des clubs engageant des frais peuvent «renoncer» au remboursement de ces frais, ce qui équivaut à un don à l association. Ils peuvent alors faire valoir ce don lors de leur déclaration de revenus et bénéficier de remise d impôts (au même titre qu un don à une association caritative par exemple) L association doit délivrer un document officiel numéroté à ses adhérents en fin d année civile (document CERFA n 11580-02) où figure le montant total «rétrocédé» à l association durant l année. Pour l adhérent, ce document CERFA sert de reçu et il pourra le joindre à sa déclaration de revenus. En tant que prestataire de M2L nous avons comme objectifs : De créer une interface qui permettrait aux licenciés de pouvoir : s enregistrer et de se connecter pour pouvoir gérer et entrer eux même leur note de frais. De permettre aux trésorier : se connecter comme les adhérents aux interfaces gérer le contenu des bordereaux créer ou éditer des CERFA et ensuite les envoyer gérer les montants total des sommes des bordereaux validés imprimer une pièce justificative de ce montant. Projet Fredi Page 3 sur 29
Important : Gérer les connexions à l aide du mot de passe et de l adresse mail Gérer les Mails de confirmation qui retourne le mot de passe choisit 1. Pour les adhérents : L ajout de note de frais. Les aperçus des reçus. 2. Pour chaque connexion : Etre réactif aux modifications des coordonnées Renvoie du mot de passe Modification de note de frais 3. Pour le trésorier : Création du Cerfa Suivre les validations déjà validées Valider les notes Suivre les paiements ` Projet Fredi Page 4 sur 29
Le modèle conceptuel des données (MCD) a pour but d'écrire les données qui seront utilisées par le système d'information. Il s'agit donc d'une représentation des données, facilement compréhensible, permettant de décrire le système d'information à l'aide d'entités. Le MCD vise à conceptualiser l application. Il met en jeu des d entités et des associations L entité : un objet d intérêt dans le problème qu on cherche à modéliser Chaque entité comporte des attributs (ou propriétés) c est à dire des caractéristiques (date de naissance, couleur, nom, capitale, population, Superficie...). Il peut exister 0 à n occurrences d une entité Remarque : Indépendance logique : Une modification du schéma conceptuel ne doit pas entraîner la modification des programmes; une modification de certains schémas externes est utile dans ce cas. Projet Fredi Page 5 sur 29
1. Entités et classe d entité Une entité est la représentation d'un élément matériel ou immatériel ayant un rôle dans le système que l'on désire décrire. On appelle classe d'entité un ensemble composé d'entités de même type, dont la définition est la même. Une entité est une instanciation de la classe. Chaque entité est composée de propriétés, données élémentaires permettant de la décrire. Les classes d'entités sont représentées par un rectangle. Ce rectangle est séparé en deux champs : le champ du haut contient le libellé (abréviation de l'écriture). Chaque classe d'entité correspond un et un seul libellé, et réciproquement le champ du bas contient la liste des propriétés de la classe d'entité 2. Relation et classes de relation Une relation (ou association) représente les liens sémantiques qui peuvent exister entre plusieurs entités. Une classe de relation peut lier plus de deux classes d'entité. Il existe plusieurs dénominations des classes de relation selon le nombre d'intervenants : 1. Relation récursive (ou réflexive) relie la même classe d'entité 2. Relation binaire relie deux classes d'entité 3. Relation ternaire relie trois classes d'entité 4. Relation n-aire relie n classes d'entité La cardinalité indique le nombre minimum (0 ou 1) et maximum (1 ou n) de fois où l occurrence d une entité peut participer à une association. Une cardinalité 1.N signifie que chaque entité appartenant à une classe d'entité participe au moins une fois à la relation. Une cardinalité 0.N signifie que chaque entité appartenant à une classe d'entité ne participe pas forcément à la relation. Remarque : Les classes de relations sont représentées par des hexagones ou ellipses, dont l'intitulé décrit le type de relation qui relie les classes d'entité. Projet Fredi Page 6 sur 29
1. Les identifiants Un identifiant est un ensemble de propriétés (une ou plusieurs) permettant de désigner une et une seule entité. L'identifiant est une propriété particulière d'un objet telle qu'il n'existe pas deux occurrences de cet objet pour lesquelles cette propriété pourrait prendre une même valeur Les attributs d'une classe d'entité permettant de désigner de façon unique chaque instance de cette entité sont appelés identifiants absolus. Remarque : Les attributs peuvent avoir des types permettant de mieux les décrire: D An BL T DT N S I Date Caractères de longueur n Booléen Temps Date Temps Nombre Smallint (entier court) Integer entier 2. Les règles de normalisation : 1. Première forme normale : chaque entité e doit posséder un identifiant qui caractérise ses individus de manière unique. 2. Deuxième forme normale: l identifiant peut être composée de plusieurs attributs mais les autres attributs de l entité e doivent être dépendant de l identifiant en entier (et non pas une partie de cet identifiant). 3. Troisième forme normale (importante) : les attributs d une entité doivent dépendre directement de son identifiant. Projet Fredi Page 7 sur 29
Le logiciel utilisé pour établir le MCD et MPD est «PowerAMC». C est un logiciel de création développé par SYBASE qui permet de réaliser tous les modèles informatiques existants aujourd hui. Pour le projet, nous n avons utilisé que le schéma de merise «MCD». Une fois le MCD réalisé à l aide de cet outil, nous sommes passé au MPD. Particularité du logiciel : une fois le Modèle Conceptuel de Données réalisé, Power AMC permet de faire le Modèle Physique de Données automatiquement. Bien entendu, il ne faut pas qu il y ait d erreur dans le MCD pour que le MPD soit réalisé de façon automatique. Pour la base de données, le logiciel procède de la même manière que du MCD vers MPD sauf que là c est MCD vers BDD. Il ne faut également aucunes erreurs pour que la réalisation se fasse. Effectivement, s il y a des erreurs, le logiciel vous en fera part pour que vous tentiez d y remédier. Projet Fredi Page 8 sur 29
Modèle Conceptuel de Données Modèle Physique de Données Projet Fredi Page 9 sur 29
Une base de données est un ensemble organisé d'informations, mémorisées sur un support informatique. Structure de données permettant de : Recevoir Stocker Fournir à la demande des données à de multiples utilisateurs indépendants. Une base de données permet de mettre des données à la disposition d'utilisateurs pour une consultation, une saisie ou bien une mise à jour, tout en s'assurant des droits accordés à ces derniers. Une base de données peut être : Locale (utilisable sur une machine par un utilisateur). Répartie (les informations sont stockées sur des machines distantes et accessibles par réseau). L'avantage majeur de l'utilisation de bases de données est la possibilité de pouvoir être accédées par plusieurs utilisateurs simultanément. Projet Fredi Page 10 sur 29
1. Les différentes structures de BD Les concepts de base : Domaine : ensemble de valeurs caractérisé par un nom. Table / relation : tableau à 2 dimensions : lignes et colonnes Clé candidate : attribut ou ensemble d attributs dont la connaissance des valeurs permet d identifier de façon unique chaque ligne de la table. Clé primaire : Il y a une clé primaire par table, choisie parmi les clés candidates. Clé étrangère : attribut ou ensemble d attributs d une table qui correspond à une clé primaire d une autre table. Une table peut contenir plusieurs clés étrangères. Valeur nulle : valeur conventionnelle qui doit représenter une information inconnue ou non existante. 2. Les contraintes Contrainte d intégrité : Prédicat qui doit vérifier un sous ensemble de la base de données afin que l on puisse considérer la base de données comme cohérente. Contrainte de domaine contrôle syntaxique et sémantique d une donnée, en faisant référence au type de définition du domaine. Contrainte déclarative contrainte imposée sur des attributs (valeur nul, valeur par défaut, clé primaire, validité des valeurs ) Contrainte référentielle la valeur d un attribut d une table existe comme valeur de clé primaire dans une autre table (Clé étrangère -> clé primaire). Projet Fredi Page 11 sur 29
La base de données a été crée grâce fichier Liste_Licencies, générer par power AMC. Nous avons donc choisi de composer notre base de données de 5 tables : 1. Adhérents 2. Clubs 3. Bordereau Liste des adhérents et leurs informations détaillé fourni aves le PPE 2-1 ainsi que le mot de passe et le login Qui rassemble tous les différents clubs. Qui rassemble l année, le numéro de bordereau ainsi que les adhérents et les tarifs 4. Tarif Regroupe les différents tarifs pour les notes de frais. 5. Frais Regroupe toute les lignes de frais classé par les adhérents pour les imprimer par la suite. Une fois la base de données crée, nous avons choisi d utiliser SQL server express comme SGBR. Nous l avons donc transférer et exécuter puis crée des jeu d essai. Projet Fredi Page 12 sur 29
/*==============================================================*/ /* Table : Adherents */ /*==============================================================*/ create table Adherents ( ID_adherent int not null, ID_club int not null, Nom_adherent varchar(256) not null, Prenom_adherent varchar(256) not null, Sexe_adherent int not null, Datenaiss_adherent datetime not null, Adresse_ahderent varchar(256) not null, CP_adherent int not null, Ville_adherent varchar(256) not null, NoLicence_adherent bigint not null, Login_adherent varchar(256) not null, MotDePasse_adherent varchar(256) not null, Email varchar(50) null, constraint PK_ADHERENTS primary key nonclustered (ID_adherent) ) go /*==============================================================*/ /* Index : ADHERER_FK */ /*==============================================================*/ create index ADHERER_FK on Adherents ( ID_club ASC ) go Projet Fredi Page 13 sur 29
/*==============================================================*/ /* Table : Bordereau */ /*==============================================================*/ create table Bordereau ( ID_bordereau int not null, ID_adherent int not null, ID_tarif int not null, Annee_bordereau smallint not null, constraint PK_BORDEREAU primary key nonclustered (ID_bordereau) ) go /*==============================================================*/ /* Index : EMETTRE_FK */ /*==============================================================*/ create index EMETTRE_FK on Bordereau ( ID_adherent ASC ) go /*==============================================================*/ /* Index : RELEVER_FK */ /*==============================================================*/ create index RELEVER_FK on Bordereau ( ID_tarif ASC ) go Projet Fredi Page 14 sur 29
/*==============================================================*/ /* Table : Clubs */ /*==============================================================*/ create table Clubs ( ID_club int not null, Nom_club varchar(256) not null, constraint PK_CLUBS primary key nonclustered (ID_club) ) go /*==============================================================*/ /* Table : Frais */ /*==============================================================*/ create table Frais ( ID_frais int not null, ID_bordereau int not null, Date_frais datetime not null, Motif_frais varchar(256) not null, Trajet_frais varchar(256) not null, Kms_frais int not null, Cout_frais float not null, Peages_frais int null, Repas_frais int null, Hebergement_frais int null, Remboursement_frais bit not null, constraint PK_FRAIS primary key nonclustered (ID_frais) ) go Projet Fredi Page 15 sur 29
/*==============================================================*/ /* Index : APPARTENIR_FK */ /*==============================================================*/ create index APPARTENIR_FK on Frais ( ID_bordereau ASC ) go /*==============================================================*/ /* Table : Tarif */ /*==============================================================*/ create table Tarif ( ID_tarif int not null, Prix_tarif float not null, constraint PK_TARIF primary key nonclustered (ID_tarif) ) go Projet Fredi Page 16 sur 29
Pour cette requête j'ai sélectionné : le nom le prénom no de licence puis ordonné par date de naissance Projet Fredi Page 17 sur 29
Pour cette requête j ai utilisé : un count pour compter le nombre de garçons Projet Fredi Page 18 sur 29
Pour cette requête j ai utilisé : un count pour compter le nombre de filles Projet Fredi Page 19 sur 29
Pour cette requête j'ai : sélectionner que les dates de naissances Projet Fredi Page 20 sur 29
Pour cette requête j'ai sélectionné : le nom des adhérents pour les trier par famille il y est compter 34 familles alors qu'il y a 40 adhérents Projet Fredi Page 21 sur 29
Pour cette requête j'ai compté : le nombre de personnes habitants à "Villers lès Nancy" grâce à "count" Projet Fredi Page 22 sur 29
Visual studio prône le RAD: Rapid Application Développement rendu possible grâce aux nombreux outils disponibles. gère élégamment le produit cartésien entre les langages de programmation et les types d applications. Multi langages de programmation: C# VB.NET C++ non géré MC++ (Managed C++) J# Multi applications: application mode console application graphique avec fenêtres service windows application web service web une bibliothèque de classes et base de données. Pour faire des IHM, visual studio est facile à utiliser, rapide, et comporte de nombreux élément pour construire des ihm rapidement et facilement. Grace à cela ça donne un bon aperçu de ce que donnera la future solution et un aperçu de notre application. On peut tous gérer en quelque click et changer chaque élément, chaque couleur en instantanée. On peut facilement coder pour relier nos ihm et avoir un vrai aperçu de notre idée de départ. Projet Fredi Page 23 sur 29
L interface Homme-Machine correspond à l affichage de l application telle que la verra l utilisateur. Sur cette interface apparaîtront les différents écrans auxquels l utilisateur aura accès. Page de connexion Sur cette première image, on peut voir l écran de connexion. Pour pouvoir accéder à l application, l utilisateur doit préalablement s être enregistré dans la base de données pour avoir accès à son compte. S il s est enregistré, l utilisateur possède un «login» et un «mot de passe» Le bouton «inscription» est à votre disposition afin Entrer votre login /identifiant ci-dessous Entrer votre mot de passe ci-dessous de vous enregistrer dans la base de données et de vous permettre d accéder à l application. Si vous cocher le bouton, à la prochaine ouverture de l application, votre connexion se fera automatiqueme nt avec les identifiants rentre lors de la précédente connexion. Cliquer ici en cas d erreur, vous pourrez recommencer la manipulation. Valider en cliquant sur «ok». Si les informations sont correctes, l application ouvre l écran d accueil. Sinon, un message d erreur apparaît pour informer l utilisateur qu il a fait une erreur et l inviter à recommencer. Le bouton «Mot de passe oublié» sert à renvoyer à l utilisateur son mot de passe en échange d informations afin d attester l identité de l utilisateur. Projet Fredi Page 24 sur 29
Page d inscription L écran d inscription permet à l utilisateur de s enregistrer auprès de la base de données. Il s agit là d un formulaire visant à récupérer des informations essentielles pour l utilisation de l application. Insérer votre nom ci-dessous Insérer votre prenom ci-dessous Insérer votre date de naissance ci-dessous Insérer votre adresse juste ici Insérer votre code postal. Insérer votre ville juste ici Cocher la case qui vous convient Cliquer ici en cas d erreur, vous pourrez recommencer la manipulation et arrête l opération en cours afin de revenir à l écran de connexion. Cliquer sur «envoyer», votre inscription sera enregistré. Ce bouton sert à transmettre à la base de données les informations entrées par l utilisateur. Il lui sera alors notifié un «login» ainsi qu un «mot de passe» à entrer à l écran de connexion. Projet Fredi Page 25 sur 29
Page de recensement des informations On arrive sur cette page lorsque la connexion s est bien établie. Elle recense toutes les informations concernant l adhérent. Les données ne sont modifiables que lorsque vous cliquerez sur le bouton «modifier» en bas de page. Cliquer sur «déconnexion» pour quitter l application et revenir à l écran de connexion Cliquer sur modifier redirige vers la page de modification de recensement d informations Cliquer sur «Note de Frais» redirige vers la page du recensement des notes de frais Projet Fredi Page 26 sur 29
Page de modification de recensement L écran de modification des données personnelles est sensiblement équivalent à l écran d inscription. Il permet à l utilisateur de modifier ses informations (ex : changement d adresse, Insérer votre N. de licence ci-dessous Insérer votre prénom ci-dessous Insérer votre date de naissance ci-dessous Insérer votre nom ici Insérer votre adresse ici Insérer votre code postal ici Entrer votre sexe ici Cliquer ici en cas d erreur, vous pourrez annuler & recommencer la manipulation ou encore de revenir à l écran d accueil. Cliquer sur «envoyer», vos modifications seront enregistrées. Entrer votre ville ici Projet Fredi Page 27 sur 29
Page de note de frais L écran des notes de frais se présente comme un formulaire permettant, après l avoir complété, à l utilisateur d imprimer sa fiche de notes de frais afin de prouver qu il a bien fait don de ces remboursements de frais et d acquérir sa remise d impôt. Remplir les champs ci-dessous Sélectionner l année civile correspondante Remplir les champs ici Cliquer sur «retour», pour revenir à la page précédente. Cliquer sur «ajouter», pour ajouter une nouvelle note de frais (ligne) Cliquer sur «modifier», pour modifier la note de frais (lignes, champs ) Cliquer sur «supprimer», pour supprimer la note de frais Cliquer sur «imprimer», pour sortir votre exemplaire Projet Fredi Page 28 sur 29
Page de modification des notes La page d ajout de note de frais est sensiblement la même que cette page au niveau des champs sauf qu elle permet d ajouter une ligne au tableau des notes de frais. Remplir les champs ci-dessous Sélectionner l année civile correspondante Remplir les champs Cliquer ici en cas d erreur, vous pourrez annuler & recommencer la manipulation. Cliquer sur «modifier», pour valider la modification. Remarque : L écran d ajout et de modification des fiches de notes de frais sont les mêmes à ceci près que le dernier permet de modifier les informations d une fiche existante alors que le premier ajoute une nouvelle fiche. Projet Fredi Page 29 sur 29
Apres avoir identifié et compris les besoins de la M2L, nous avons d'abord réfléchi à l'élaboration d'une base de données. Nous sommes passé par trois étapes pour arriver à une base de données complète : - établissement d'un modèle conceptuel de données - élaboration d'un modèle physique de données - réalisation du script de la base de données à l'aide des deux schémas Une fois la base de données créée, nous avons créé une ébauche de ce que pourrait être l'application dont la M2L aurait besoin. Nous ne sommes partis d'aucune base d'autres applications pour créer la notre. Nous nous sommes mis à la place des utilisateurs pour essayer de penser à tous les besoins. Nous nous sommes fait des jeux de rôle pour nous assurer que l'application conviendrait avant de la proposer. Cela permettra à la M2L de gérer plus efficacement ses notes par rapport à la méthode actuelle qui peut entrainer des pertes de papiers, des retards dans le remplissage des fiches ou même des papiers qui arriveraient en retard. C'est-à-dire comprendre l'utilité de l'application, se familiariser avec les documents officiels de notes de frais pour comprendre le but final. Nous proposons donc ce dossier pour la M2L pensant que ce serait ce qui lui conviendrait le mieux. Projet Fredi Page 30 sur 29