Vous êtes sur la page 1sur 21

SAMG-MOUIT Vaiani (IR 1)

BTS Systèmes Numériques Option


Informatique et Réseaux

RAPPORT DE PROJET

Gérer l’organisation des courses à pied

Année scolaire 2018/2019


SOMMAIRE

INTRODUCTION ................................................................................................. 1
PRESENTATION DU PROJET ........................................................................... 2
Répartitions des tâches : .............................................................................................. 2
Diagramme d’exigences : ............................................................................................ 3
Mon implication : ........................................................................................................ 4
Les langages de programmation utilisées ............................................................. 5
La Base de données ............................................................................................... 7
Les relations entre les tables : ...................................................................................... 8
L’application Windows ......................................................................................... 9
Diagramme de cas d’utilisation : ................................................................................. 9
Amélioration : ............................................................................................................ 11
Diagramme de classe : ............................................................................................... 12
Le site web........................................................................................................... 14
Diagramme de cas d’utilisation : ............................................................................... 14
Les jointures : ............................................................................................................ 16
CONCLUSION ................................................................................................... 18
REMERCIEMENTS

Je tiens à remercier l’équipe pédagogique du BTS SN-IR du lycée Louis Couffignal pour m’avoir
donné cette chance d’intégrer leur formation et ce qui m’a permis de développer mes
connaissances et de découvrir la France métropolitaine.
INTRODUCTION

Je suis étudiant en 2ème année de Brevet de Technicien Supérieur Systèmes Numériques


option Informatique et Réseaux au lycée Louis Couffignal de Strasbourg.
Je suis passionné par l’informatique et ce projet était une opportunité pour moi de pouvoir
découvrir mes capacités et de mettre en pratique tout ce dont j’ai appris en 1ére et 2éme
année.

1
PRESENTATION DU PROJET

L’objectif de notre projet c’est de faciliter la gestion de l’organisation des épreuves de course
à pied pour les organisateurs. Le but c’est de traduire tous ces besoins avec la technologie que
nous détenons. Par exemple auparavant, le chronométrage se faisait par une personne qui les
notaient sur un cahier alors qu’aujourd’hui avec la technologie, on peut les remplacées avec
des stations de chronométrage.

Répartitions des tâches :


Nous sommes trois à gérer ce projet, deux informaticiens et un électronicien.
Un informaticien s’occupe de la partie création des courses, inscription des participants et
publication des résultats sur un site Web.
Quant au deuxième informaticien il s’occupe de la partie chronométrage automatique avec
l’électronicien, qui lui mettra en place des stations de chronométrage pour le chronométrage
afin de détecter l’heure de passage de chaque coureur.

2
Diagramme d’exigences :

3
Mon implication :
Ma mission, c’est ce qui se déroule avant et après le jour de la course.
Avant le jour de la course, je dois concevoir une Interface Homme Machine (Application
Windows) qui va permettre aux organisateurs de gérer les courses à pied existantes et les
participants inscrits.
Après la course, c’est-à-dire à la fin c’est d’afficher sur un site Web les résultats de la course.

Créer une application qui va


servir de gérer les informations Afficher sur une page web
concernant la course et créer les résultats de la course
une page web pour Jour de
l’inscription des coureurs la course

Travail en plus :
Voir en direct le classement
d’une course sur une page web
avec un mini-chat intégré

4
Les langages de programmation utilisées

Le langage C++ Form ou C++/CLI, c’est avec ce langage que j’ai créé l’application Windows de
l’organisateur. Les classes sont managée, ce qui signifie que l’allocation et la désallocation des
objets dans la mémoire est pris en charge par le système d’exploitation.

Les langages HTML et CSS sont des langages Web coté client, HTML pour le contenu et CSS
pour la mise en forme. C’est avec ces langages que j’ai créé le site Web pour l’affichage des
résultats.

5
Le PHP est un langage Web plutôt coté serveur qui va permettre le calcul du temps mis par le
coureur du début jusqu’à la fin et de rendre l’inscription aux différentes courses accessible
aux personnes par le biais du Web.

Le SQL (Structured Query Language), c’est un langage de base de données qui va permettre
de récupérer les informations concernant les coureurs pour l’affichage des résultats ou
d’envoyer des données dans la Base De Données avec des requêtes SQL.

6
La Base de données

On a choisi comme hébergeur alwaysdata qui propose un pack gratuit de 100 Mo ce qui est
suffisant.
Le Système de Gestion de Base de Données chez cet hébergeur est MySQL.
On la gère avec l’application web phpMyAdmin.

On a une base de données chrono_ng qui contient 5 tables :


- categorie Pour le classement par tranche d’âge
- chrono Pour les temps des coureurs
- coureur Informations des coureurs inscrits
- course Informations des course
- dossard Informations des associations n° RFID, n° dossard, coureur

7
Les relations entre les tables :

Dans chacune de ces tables en première ligne il y une clé primaire par exemple pour la table
coureur c’est idREUR.
Une clé primaire permet de garantir l’unicité des enregistrements dans une table.
Alors pour rendre possible à un coureur de choisir sa course, il faut pouvoir accéder aux
données de la table course à partir de la table coureur. Une solution existe c’est d’utiliser une
clé étrangère.
Une clé étrangère permet d’établir et de conserver une liaison entre les données de deux
tables.
Les deux dernières lignes dans la table coureur qui sont idURSE et idGORIE sont des clés
étrangères.
Concernant la table categorie le coureur ne pourra pas choisir sa catégorie, c’est le
programme en C++ et PHP qui vont attribuer la catégorie en fonction de la date de naissance
fournie.
La relation entre la table course et coureur implique qu’une course peut posséder plusieurs
coureurs alors qu’un coureur appartient à une course.

8
L’application Windows

Diagramme de cas d’utilisation :


Ce diagramme de cas d’utilisation résume ce que peut faire l’organisateur sur cette
application.

On a un acteur Organisateur et deux cas d’utilisation principaux « Course » et « Participant ».


Ce « include » entre les cas d’utilisation « Course » et « Créer » implique que l’acteur
Organisateur devra créer obligatoirement au moins une course. Pour les cas d’utilisation
« Consulter » et « Modifier » ils sont optionnels.
Tout comme pour les cas d’utilisation « Participant » et « Consulter », forcément l’acteur
Organisateur sera obligé de vérifier le nombre de participants inscrits.

9
Au lancement de l’application, c’est la première fenêtre qui s’affiche. Sur cette fenêtre
« Accueil », on peut voir deux boutons ;
Le bouton COURSE pour la gestion des courses et le bouton PARTICIPANT pour la gestion
des participants.

En cliquant sur le bouton COURSE, la fenêtre pour la gestion des courses s’ouvre.

Toutes les données concernées sur cette fenêtre sont enregistrées dans la table course dans
la base de données chrono_ng.
Pour pouvoir enregistrer une course, il faudra remplir tous les champs concernés. Une fois la
course enregistrée, elle sera affichée automatiquement dans le tableau des Résultat à droite.
Pour rechercher une course il faudra indiquer soit le nom, ou le lieu, ou la distance, ou bien la
date.
Et enfin pour la modification il faudra préciser le champ id (identifiant de la course) et remplir
le champ qu’on veut modifier.

10
En cliquant sur le bouton PARTICIPANT, une autre fenêtre s’ouvre pour gérer les participants.

Les données concernées par cette fenêtre sont liées à la table coureur dans la base de données
chrono_ng.
Sur cette fenêtre l’organisateur pourra savoir le nombre de participant inscrit.
Et il y a possibilité pour un participant de s’inscrire à une course via l’application de
l’organisateur et par conséquent il faudra remplir tous les champs concernés.
Pour la recherche, il faudra indiquer le critère soit le nom, ou le prénom, ou la date de
naissance, ou le sexe ou bien la course.
Concernant la modification cela se fait directement dans le tableau Résultat.

Amélioration :
En testant l’application j’ai remarqué qu’on cliquant sur chacune de ces boutons plusieurs fois,
il y avait beaucoup de fenêtres qui s’ouvraient. Ce qui n’était pas trop pratique, alors j’ai fait
appel à une technique qui est le singleton qu’on avait utilisée dans un TP cette année.
Le singleton consiste à garantir une instance unique donc dans notre cas à ouvrir une seule et
unique fenêtre. La procédure c’est de mettre en « private » le constructeur de la classe course,
afin d’obliger les membres extérieurs de passer par une méthode de la classe pour instanciée.
Dans la méthode on vérifie si l’attribut de la classe n’a pas encore été instanciée.

11
Diagramme de classe :

2 1 1

1 Relation Héritage : Les classes MyForm, Course et Particpant héritent de la classe


Form, ce sont des spécialisations de la classe Form.

2 Relation Composition : La fenêtre MyForm est composée de deux Button. Si on détruit


le composée MyForm tous les composites Button disparaîtront avec lui.

3 Relation Composition : La fenêtre MyForm est composée de deux fenêtres


supplémentaires de 0 à 1 maximum pour la fenêtre Course et la fenêtre Participant.

12
Processus de vérification des données entrées par l’organisateur sur l’application avant
enregistrement.

Début

Affichage :
« Remplir champs »

Entrée : donnees

Non
donnees ! = vide

Oui

Enregistrer donnees dans


la base de données

13
Le site web

Le site comporte cinq pages et est accessible à l’adresse http://chrono.alwaysdata.net/

Diagramme de cas d’utilisation :


Le rôle principal de l’internaute sur le site web.

On a un acteur internaute et un cas d’utilisation principal « Aller sur le site web ».


Quand un internaute va sur le site web, il pourra « s’inscrire à une course » ou « consulter
résultat course ».
14
Cette page ne concerne que l’inscription.

J’ai utilisé la méthode POST pour récupérer les informations avec le langage PHP.
Ces informations sont ensuite envoyées dans la table coureur de la base de données
chrono_ng avec le langage SQL.

Méthode POST

15
Là sur cette page ça concerne les résultats des courses fini.

Les résultats sont consultables en général (toutes catégories confondues) ou par catégorie.

Les jointures :
Comme on peut remarquer, les informations proviennent de différentes tables et pour
pouvoir les récupérer il faut utiliser une table de jointure.

La table de jointure ici c’est « resultat » et dans cette table il y a des clés composites.
Grâce à cette table on récupère que les informations nécessaires.

16
Voici la requête permettant de récupérer les informations de ce qui ont franchi la ligne
d’arrivée :

SELECT : Sélectionne tous les champs qu’on veut récupérer.


FROM : Le nom des tables.
INNER JOIN / ON : Jointure, pour vérifier si l’information est présente dans les deux tables.
WHERE : Condition.
ORDER BY : trié par ordre croissant.

La variable « $requeteClassement » va contenir la réponse que MySQL retournera.


Puis avec la fonction « fetch() » on récupère chaque entrée.
Travail complémentaire :
J’ai rajouté en plus une page Direct pour suivre le classement d’une course en live.

La page est rafraîchie toutes les 1 secondes avec JQuery et quand la situation est en cours cela
signifie que le coureur se trouve entre la station du milieu et la station arrivée.

17
CONCLUSION

Pour conclure le projet est bientôt au point, il nous manque juste à tester le système en
coordonnant nos différentes parties.
Ce qui a été dit dans ce rapport n’est pas définitif, des modifications du projet peuvent être
fait par la suite.
Ce projet a été très formateur et m’a permis de savoir travailler en équipe, de respecter le
délai imparti qui nous est donnée et de comprendre la technologie mis au point pour les
épreuves de courses à pied.

18

Vous aimerez peut-être aussi