WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Conception d'une BD de contravention et accident de la route pour une circonscription

( Télécharger le fichier original )
par Emmanuel PILITHA
IUT Fotso Victor de Bandjoun - Licence 2007
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

III.2 DIAGRAMME D'ETATS

Les diagrammes d'états décrivent tous les états possibles d'un objet (vu comme une machine à états). Ils indiquent en quoi ses changements d'états sont induits par des événements.

Les diagrammes d'états identifient pour classe données des comportements d'un objet tout au long de son cycle de vie (de la naissance ou de l'état initial, symbolisée par le disque plein noir, à la mort ou état final, disque noir couronné de blanc).

DEBUT

FIN

Si amende = payer

Diagramme d'état d'un payement d'amende

Figure 7 : Diagramme d'état

III.3 DIAGRAMME D'ACTIVITE

UML permet de représenter graphiquement le comportement d'une méthode ou le déroulement d'un cas d'utilisation, à l'aide de diagrammes d'activités.

Une activité représente une exécution d'un mécanisme, un déroulement d'étapes séquentielles. Le passage d'une activité vers une autre est matérialisé par une transition.

Les transitions sont déclenchées par la fin d'une activité et provoquent le début immédiat d'une autre (elles sont automatiques).

Payer amende

Impression reçu

Enregistrement PV

Présence de l'accusé

Payer

Diagramme d'activité : Payer ses amendes

Figure 8 : Diagramme d'activité

III.4 DIAGRAMME DE SEQUENCE

Les diagrammes de séquences permettent de représenter des collaborations entre objets selon un point de vue temporel, on y met l'accent sur la chronologie des envois de messages.

Contrairement au diagramme de collaboration, on n'y décrit pas le contexte ou l'état des objets, la représentation se concentre sur l'expression des interactions.

: Système

: Agent police

(Niveau constat)

: Policier

(Niveau saisi)

: Caisse

: Accusé

Constat

Etablissement ticket de payement

Remet le ticket à l'accusé

En état d'Infraction

Remet le PV

Enregistre le PV

Imprime le reçu

Traitement

Transmission reçu à la caisse

Valide le reçu

Payer

Encaissement

Dresse états de la journée

Figure 9 : Diagramme de séquence

TROISIEME PARTIE : PRODUCTION DE LA PLATE FORME DE DONNEES

I. ENVIRONNEMENT LOGICIEL/MATERIEL

I.1. Environnement Logiciel

1. Système d'exploitation (S.E)

Notre plate forme de données peut fonctionner sur le système d'exploitation suivant : Windows 98, 2000, XP,2003 Server, Linux.

2. Base de données : MySQL du serveur WEB WAMPSERVER

MySQL dérive directement de SQL (Structured Query Language) qui est un langage de requête vers les bases de données exploitant le modèle relationnel.

Il en reprend la syntaxe mais n'en conserve pas toute la puissance puisque de nombreuses fonctionnalités de SQL n'apparaissent pas dans MySQL (sélections imbriquées, clés étrangères...)

Le serveur de base de données MySQL est très souvent utilisé avec le langage de création de pages web dynamiques : PHP.

3. Langage de Script : PHP

Il a été créé en 1994 par Rasmus Lerdorf pour les besoins des pages web personnelles (livre d'or, compteurs, etc.). A l'époque, PHP signifiait Personnal Home Page.

C'est un langage incrusté au HTML et interprété (PHP3) ou compilé (PHP4) côté serveur. Il dérive du C et du Perl dont il reprend la syntaxe. Il est extensible grâce à de nombreux modules et son code source est ouvert. Comme il supporte tous les standards du web et qu'il est gratuit, il s'est rapidement répandu sur la toile.

En 1997, PHP devient un projet collectif et son interpréteur est réécrit par Zeev Suraski et Andi Gutmans pour donner la version 3 qui s'appelle désormais PHP : Hypertext Preprocessor (acronyme récursif à l'exemple du système Open Source Linux : Is Not UniX).

Il existe par ailleurs des applications web prêtes à l'emploi (PHPNuke, PHP SPIP, PHPSlash...) permettant de monter facilement et gratuitement son portail. En juillet 2000 plus de 300.000 sites tournaient déjà sous PHP !

4. Navigateur

Internet Explorer 6 ; Mozilla Firefox ; ...

I.2 Environnement Matériel

Pour notre plate forme nous citerons comme matériels :

- un serveur de base de données ;

- un ordinateur de bureau ;

- un onduleur pour la sécurité électrique ;

- une petite configuration réseau.

II. LA SECURITE

II.1- Sécurité Globale de la plate forme

Nous avons utilisé dans le cas de cette implémentation le MD5 qui est très pratique. De nombreuses implémentations de cet algorithme sont disponibles dans pratiquement tous les langages. De plus, On peut l'utiliser librement. Son niveau de sécurité offert est suffisant pour quasiment toutes les applications.

La page login.php permet à l'utilisateur d'entrer son login et son mot de passe. Cette page utilise le fichier de script login.js. C'est dans ce fichier que sont inclus les scripts javascripts nécessaires (et notamment MD5). .

- La page logout.php doit être appelée si l'utilisateur désire se déconnecter.

- La page auth-config.php contient les informations de configuration du système.

- La page auth.php est appelée par login.php lorsqu'un utilisateur se connecte. C'est cette page qui vérifie si l'utilisateur est autorisé ou non à se connecter.

- La page authcheck.php doit être incluse en début de chaque page que vous désirez protéger. Cette page vérifie si l'utilisateur s'est préalablement identifié. Si ce n'est pas le cas, l'utilisateur sera redirigé vers la page login.php.

Lorsqu'un utilisateur navigue sur un site, il est difficile de passer des informations de page en page. PHP permet de faire cela grâce aux sessions. La création d'une session permet d'assigner des valeurs à des variables, puis de faire passer ces valeurs aux pages que l'utilisateur verra ensuite.

Lorsque vous créez une session, PHP renvoie au navigateur un cookie de session. C'est un identifiant que le navigateur renverra à chaque page visitée. Les variables que vous utilisez sont stockées sur le serveur. En fonction de l'identifiant qu'il reçoit, le serveur détermine quelle session est associée avec l'utilisateur et passe les variables correspondantes au script.

En principe, les identifiants de session ne sont pas stockés sur le disque, ou seulement temporairement. La fermeture du navigateur entraîne généralement la destruction de ces identifiants. Un utilisateur ne peut donc pas se reconnecter avec la même session s'il ferme son navigateur.

Toutefois, tous les navigateurs ne procèdent pas de la même façon. Il faut donc supposer qu'il est possible à un utilisateur de récupérer la même session après avoir fermé son navigateur. Si un utilisateur se connecte depuis un ordinateur public, une personne peut donc utiliser sa session après qu'il soit parti, pour avoir accès au site. La fonction de 'logout' permet d'éviter cela. Elle détruit explicitement la session. Si le navigateur tente d'utiliser le même identifiant de session, cela ne fonctionnera pas. Etant donné que beaucoup d'utilisateurs ne se déconnectent pas, nous introduirons ici un système de 'timeout', qui permet de détruire la session après un certain temps d'inactivité de l'utilisateur.

II.2 Gestion des comptes :

Le système est constitué des comptes (Login, mot de passe et profil).

Le profil de l'Administrateur est défini de la manière suivante :

L'Administrateur est l'organe suprême du système. Il défini les comptes utilisateurs et s'occupe du paramétrage général de plateforme. A cet effet, il accède à toutes bases de données. Il assure la sauvegarde, la maintenance et la mise à jour des données.

Le profil de l'utilisateur est défini comme suit :

L'utilisateur peut solliciter certaines informations et a la possibilité de saisir les données. Il veille à l'entrée correcte des données.

Le profil de l'invité est défini comme suit:

L'invité ne peut que consulter l'information et s'il est intéressé pourra s'adresser au personnel du commissariat de la circonscription qui est l'utilisateur. Il peut également s'adresser directement à la source principale de l'Information.

NB: Ici un Administrateur sera considéré comme un super administrateur qui définira les autres comptes administrateurs

III. REQUETES SQL

III.1. Exemple Requêtes SQL de la gestion des comptes Utilisateurs

CREATION DE LA BASE DE DONNEES DE PROTECTION

CREATE DATABASE `protection`;

CREATION DE LA TABLE MESSAGE

CREATE TABLE `messages` (

`CODE_MESSAGES` bigint(20) NOT NULL auto_increment,

`CODE_AUTEUR` varchar(4) NOT NULL,

`NOM_AUTEUR` varchar(80) NOT NULL,

`SUJET` varchar(120) NOT NULL,

`CONTENU` text NOT NULL,

`DATE_MESSAGE` date NOT NULL,

PRIMARY KEY (`CODE_MESSAGES`)

) TYPE=InnoDB AUTO_INCREMENT=4 ;

CREATION DE LA TABLE UTILISATEUR

CREATE TABLE `utilisateur` (

`CODE_UTILISATEUR` char(4) NOT NULL,

`NOM_PRENOMS` char(80) NOT NULL,

`FONCTION_UTILISATEUR` char(80) default NULL,

`LOGIN_UTILISATEUR` char(80) NOT NULL,

`MOT_PASSE` char(80) NOT NULL,

`DATE_CREATION` date default NULL,

`DATE_EXPIRATION` date default NULL,

`TYPE_UTILISATEUR` char(80) default NULL,

`LAST_ACCESS` date default NULL,

`LAST_ACCESS_TIME` time NOT NULL

) TYPE=InnoDB;

III.2. Structure de table la table Message et Utilisateur

La table Message est la table qui stockera les messages qui seront misent à la disposition de l'administrateur par l'utilisateur. Le massage peut avoir pour objet la validité d'un compte utilisateur qui s'expirera soit dans deux jours, soit dans un mois.

Ne vous fiez pas au fait que normalement « CODE_AUTEUR » fait référence à l'utilisateur de la table « utilisateur » ayant écrit le message, créez simplement ce champ, l'application gère elle même la contrainte, toute fois vous pouvez ajouter la contrainte si nécessaire.

La table Utilisateur est une table qui stockera les informations par rapport aux comptes utilisateurs.

IV. QUELQUES CODES SOURCES

Exemple : Le code php pour un Nouveau compte.

<?php

include "config/auth-config.php";

include "templates/authcheck.php";

include "templates/auth_admin.php";

include "templates/auth_expiration.php";

require 'parametres_base_donnees.php';

$bdd='protection';

//on va dans la base des données effectuer les différentes modifications si les données sont valides.

if ( isset($_POST['passwd']) && isset($_POST['login']) && isset($_POST['code_utilisateur']) ){

list($jour2, $mois2, $annee2) = explode('/', $_POST['expiration']);

$_POST['expiration']=$annee2.'-'.$mois2.'-'.$jour2;//rearangement de la date au format compatible MySQL

@mysql_connect($host,$user,$pass)

or die("Impossible de se connecter au moteur SGBD");

@mysql_select_db("$bdd")

or die("Impossible de se connecter à la Base des données");

$date_creation = date("Y-m-d");

$requete="INSERT INTO `utilisateur` ( `CODE_UTILISATEUR` , `NOM_PRENOMS` , `FONCTION_UTILISATEUR` , `LOGIN_UTILISATEUR` , `MOT_PASSE` , `DATE_CREATION` , `DATE_EXPIRATION` , `TYPE_UTILISATEUR` , `LAST_ACCESS` , `LAST_ACCESS_TIME` ) VALUES('".$_POST['code_utilisateur']."','".$_POST['nom_prenoms']."','".$_POST['fonction_utilisateur']."','".$_POST['login']."','".$_POST['passwd']."','".$date_creation."','".$_POST['expiration']."','".$_POST['message']."','NULL','NULL');";

mysql_query($requete);

mysql_close();

}

?>

<html>

<head>

<title>Création nouvel utilisateur</title>

<style type="text/css">

DIV.all { width: 60%; height: 80%; border: groove #888888 3px; margin-left: auto; margin-right: auto; text-align: left; background-color: #EDEDED; padding: 10; font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-style: normal; font-weight: normal; color: #000000;}

</style>

<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' />

<script language="javascript" type="text/javascript" src="scripts/login.js"></script>

</head>

<body background="./images/fond03[2].jpg" style="text-align: center;">

<div class="all" style="width: 433px; height: 397px">

<form id='log' method='post' action='nouveau_compte.php' onSubmit="return verif_modif_pass_usr();">

<input type='hidden' name='message' />

<input type='hidden' name='md5' />

<table border="0" cellpadding="0" cellspacing="0">

<tr align='center'>

<td valign="middle" height="300" width="628">

<fieldset style="padding: 2;">

<legend ><font color="#0000FF"><b>Nouvel utilisateur</b></font></legend>

<table align='center' id="table1">

<td colspan="2" ><font color="#000080"><b>Code :</b></td><td><input name='code_utilisateur'/></td></tr>

<td colspan="2" ><font color="#000080"><b>Noms et prénoms :</b></td><td><input name='nom_prenoms'/></td></tr>

<td colspan="2" ><font color="#000080"><b>Fonction utilisateur :</b></td><td><input name='fonction_utilisateur'/></td></tr>

<td colspan="2" ><font color="#000080"><b>Login utilisateur :</b></td><td ><input name="login" size="20"></td></tr>

<td colspan="2" ><font color="#000080"><b>Date expiration :</b></td><td ><input name="expiration" size="20" value='<?php print(date('d/m/Y'));?>'></td></tr>

<td colspan="2" ><font color="#000080"><b>Mot de passe :</b></td><td ><input name="passwd" type='password' size="20"></td></tr>

<td colspan="2" ><font color="#000080"><b>Confirmer le mot de passe :</b></td><td ><input name="passwd_confirm" type='password' size="20"></td></tr>

<td colspan="2" ><font color="#000080"><b>Type utilisateur :</b></td><td ><select size="1" name="type_utilisateur">

<option value="administrateur">Administrateur</option>

<option value="utilisateur" selected=true >Utilisateur</option>

</select></td></tr>

<tr><td align='center'><input type='submit' value='Valider !' /></td><td align='center'><input type='reset' value='Retablir !' /></td></tr>

</table>

</fieldset></td>

<b>Retour à la <a href='index_administrateur.php' TARGET='_top'>page personnelle</a><br></b>

<?php if (isset($_POST['message'])) print('Les modifications ont été effectuées avec succès !');unset($_POST['message']);?>

</tr>

</table>

</form>

</div>

</body>

V. PRESENTATIONS DES QUELQUES MAQUETTES

1- Accueil

(A) représente l'entête de notre plate forme de données qui contient : le message de bienvenue et logos ;

(B) représente le menu de notre plate forme qui nous servira d'élément de pilotage de cette dernière ;

(C) représente la fenêtre où s'afficheront nos pages quand nous cliquerons sur le menu.

Entête (A)

Menu (B)

- ...

- ...

- ...

- ...

-

-

-

-

- Connexion avec mode (*)

(C)

Fenêtre où s'afficheront nos pages quand nous cliquerons sur le menu ...

Quand on clique sur Connexion avec mode la fenêtre de connexion s'affiche dans l'espace (C) et le résultat est :

2- Fenêtre de connexion (*)

Bienvenue à la plate forme

Login :

Mot de passe :

Valider

3- Présentation des menus

A l'accueil de la plate forme de données (Base de données de contravention) le menu par défaut est celui de l'invité (a). Ici l'Administrateur et Utilisateur peuvent se connectés via la fenêtre de connexion. Et sur leurs pages personnelles ils verront un changement automatique de menu :

§ si l'on est utilisateur nous verrons le Menu Utilisateur (b) s'afficher et

§ si l'on est administrateur c'est le Menu Administrateur (c) qui s'affichera.

Menu Administrateur (c)

- Paramètres personnels

- Modifier 1 compte

- Nouveau compte

- Gestion des comptes

- Consulter les messages

- ...

- Fermer la session

Menu Utilisateur (b)

- Ecrire à l'administrateur ;

- Formulaire ;

- ...

-

-

-

-

-

- - Fermer la session

Menu Invité (a)

- Accueil

- Contravention de classe 1

- Contravention de classe 2

- Contravention de classe 3

- Liste des accusés

- ...

-

- Connexion avec mode

4- Exemple d'un Formulaire

Toutes les entrées des données seront identiques à ce formulaire ci-dessous :

Formulaire Caisse

Code de la Caisse :

Montant :

Nom agent caisse :

Date de versement :

Code pénalité :

Enregistrer

Annuler

QUATRIEME PARTIE : PROCEDURE D'INSTALLATION ET AIDE A L'UTILISATION DE LA PLATE FORME DE DONNEES

I. Procédures d'Installation

Voir le fichier installation.pdf qui se trouve dans le paquet CD d'installation de la plate forme de données.

II. Aide à l'utilisation de la plate forme de données

La page d'accueil de la plate forme SYSCONTRA se présente ainsi qu'il suit :

II-1. Quelques scénarios relatifs aux comptes administrateur et utilisateur.

1° CONNEXION.

Lors de la première installation, on doit accéder à la page de définition de l'administrateur qui n'est pas encore présent dans la base des données et le définir.

On clique sur « connexion avec code » et on accède à l'écran suivant :

On doit alors remplir le formulaire qui s'affiche et le soumettre par validation, si tout se passe bien on aura :

Lorsqu'on clique ultérieurement sur « connexion avec code », on a l'écran suivant :

On rentre ainsi le « login » et mot de passe.

- Si la date d'expiration du mot de passe n'est pas à sont terme, on est alors identifié et on peut aller à sa page d'accueil ;

- Si la date d'expiration est expirée et qu'on est « utilisateur », on a la possibilité de laisser un message à l'administrateur ;

- Si la date d'expiration est expirée et qu'on est « administrateur », on a la possibilité de mettre à jour immédiatement ses paramètres.

Illustrations :

o 1er cas : Identification correcte et mot de passe non expiré.

Nous pouvons alors cliquer sur « Page personnelle » pour voir affiché l'environnement de l'utilisateur : dans ce cas précis c'est un administrateur et son menu correspond à :

Nous détaillerons les scénarios relatifs à chaque rubrique plus bas.

- 2ème cas : On est administrateur mais le mot de passe est expiré (permet à l'admin de mettre souvent à jour ses infos personnelles pour plus de sécurités).

- Vous pouvez alors cliquer sur « modifier vos paramètres » pour réactiver le compte.

o 3ème cas : Votre compte est expiré et vous êtes « utilisateur » :

On peut choisir de laisser un message à l'administrateur pour lui demander par exemple de mettre à jour ses paramètres ou alors lui donner un nouveau compte.

Il faut cliquer alors sur « Envoyer » et le message sera à la disposition de l'administrateur. Nous parlerons de la « lecture des messages » par l'administrateur un peu plus bas.

2° DESCRIPTION DES SCENARIOS DE L'ADMINISTRATEUR.

On rappelle simplement que lorsqu'on est logué comme administrateur, le menu devient le suivant :

On doit aussi signaler que lorsque l'écran est inactif pendant plus de cinq minutes, il y a déconnexion automatique de la session en cours.

2.1 On clique sur « Paramètres personnels ».

Ceci permet à l'administrateur de contrôler ou de modifier ses propres paramètres :

2.2 Modifier un compte.

Lorsqu'on clique sur cette rubrique, on peut afficher la liste des utilisateurs du système. On peut ainsi supprimer certains comptes ou les modifier. L'écran se présente ainsi qu'il suit :

2.3 Nouveau compte.

Lorsqu'on clique sur « Nouveau compte », on a la possibilité d'ajouter un utilisateur.

2.4 Remplir un formulaire.

Voir l'exemple de maquette remplissage à la troisième partie du mémoire.

2.5 Consulter messages.

Principalement les messages de ceux qui ont vu leur compte expiré. Lorsqu'on clique dessus on a :

Par défaut, seuls les messages de la journée sont affichés. Mais comme on peut le constater, on peut indiquer la plage de la période utile.

Pour chaque message, on peut soit le supprimer, soit afficher le contenu. Par exemple dans le cas précédent, si nous cliquons sur « Détails » en ce qui concerne le message soumis le 16-01-2008 et dont l'objet est « Réactivation de mon compte. », nous verrons l'écran suivant :

On peut alors décider de « supprimer » ce message ou alors de cliquer sur « Paramètres utilisateur » en vu de modifier ses paramètres personnels.

2.6 Fermer la session.

Il est important de cliquer sur « Fermer la session » en vu, non seulement de restituer immédiatement les ressources du serveur, mais aussi de limiter le « vol de sessions ». Toutefois, en cas d'inactivation de la page pendant cinq minutes, la session est automatiquement libérée. Nous pouvons revoir à la hausse ou à la baisse cette valeur.

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"En amour, en art, en politique, il faut nous arranger pour que notre légèreté pèse lourd dans la balance."   Sacha Guitry