Projet ThesesViz (Php / SQL)



Description :

Création d'un tableau de bord permettant une nouvelle expérience de visualisation des données que la version actuelle du catalogue des thèses «Theses.fr ».



La compétence



La compétence 4, "Gérer des données de l’information", est essentielle pour la gestion efficace des données dans l'entreprise. Elle est constituée de quatre sous-compétences :

  • SC 1 : Optimiser les modèles de données de l’entreprise. Cette sous-compétence consiste à concevoir et maintenir des modèles de données pertinents, cohérents et évolutifs, pour améliorer la qualité des données et optimiser les processus décisionnels.

  • SC 2 : Assurer la confidentialité des données (intégrité et sécurité). Cette sous-compétence vise à protéger les données contre les accès non autorisés, les pertes ou les fuites, pour garantir la fiabilité de l'information, préserver la réputation de l'entreprise et éviter des sanctions légales.

  • SC 3 : Organiser la restitution de données à travers la programmation et la visualisation. Cette sous-compétence consiste à maîtriser les outils informatiques nécessaires pour extraire, traiter, analyser et présenter les données de manière compréhensible et adaptée aux différents publics.

  • SC 4 : Manipuler des données hétérogènes. Cette sous-compétence permet d'intégrer des données provenant de différentes sources en les fusionnant et les traitant de manière homogène, pour faciliter la prise de décision éclairée.

Ces sous-compétences offrent une compréhension complète de l'écosystème des données et permettent aux professionnels de contribuer efficacement aux processus décisionnels de leur entreprise.


Démonstration générale :





Plus d'informations :

Ce projet a été réalisé sur les deux semestres de la 2ème année de BUT Informatique. Il a donc été découpé en deux parties. La première partie étant principalement dédié à la conception de la base de données et l'import des données. La seconde partie étant dédié à la réalisation du site web permettant la visualisation des données.

Partie 1 : Conception de la base de données et import des données



Le but de cette première partie était de concevoir la base de données permettant de stocker les données en suivant le cahier des charges.

Après l'étude du cahier des charges, j'ai pu définir les différentes tables de la base de données. On peut noter l'utilisation d'une liaison ternaire indispensable au niveau des personnes pour avoir une représentation correcte des données.
Modèle conceptuelle de données (MCD)


Une BDD, c'est bien beau mais avec des données dedans c'est encore mieux ! C'est pourquoi, on a récupéré les données des thèses sous forme de ficher json que l'on va donné en entrée à notre script php.

Ce script a été réalisé en php avec des classes objets et permet de parser le fichier json et d'insérer les données. L'intérêt du Php Objets est d'optimiser le code et de pouvoir réutiliser les classes pour d'autres projets. (compétence 2)
Exemple de classe objet (classe Personne)
Il est important de garantir la sécurité de la BDD lorqu'on utilise des fichiers externes. C'est pour cette raison que j'ai utilisé des requêtes préparées pour éviter les injections SQL. (SC 2)

Partie 2 : Réalisation du site web



La seconde partie du projet consistait à réaliser le site web permettant la visualisation des données. (SC 3)

Pour cela, j'ai utilisé le framework Bootstrap pour la partie front-end en faisant une interface de type dashboard. Ainsi, l'utilisateur peut facilement observer les données via des graphiques et faire de recherche ciblé. (SC 4) Là aussi, les recherches étant des informations externes, j'ai utilisé des requêtes préparées pour éviter les injections SQL. (SC 2)
Barre de recherche de thèses

Le gros intéret de cette partie est de réaliser des graphiques. Pour cela, j'ai utilisé la librairie HighCharts.js qui permet de réaliser des graphiques de type bar, pie, line, scatter, etc... (SC 3) de manière assez facilement sous JS. Cela a été très instructif dans la manière de manipuler des données et de coder proprement. Effectivement, dans un gros projet comme celui-ci où le copier-coller peut être vite tentant, il faut s'efforcer de créer des fonctions pour organiser son code proprement.

Exemple de graphique