Valve Electronique est une application web academique permettant de centraliser et de diffuser les informations importantes d'une institution universitaire. Elle met a la disposition des etudiants une interface publique pour consulter les communiques, les resultats et les horaires, ainsi qu'un espace d'administration pour publier et gerer ces contenus.
Le projet vise a remplacer ou completer la valve physique d'une institution par une plateforme numerique accessible depuis un navigateur. Les etudiants peuvent ainsi consulter rapidement les annonces officielles, telecharger les documents publies et rechercher les informations qui concernent leur faculte, promotion ou semaine academique.
- Consultation des communiques officiels publies par l'administration.
- Consultation et telechargement des resultats par faculte et promotion.
- Consultation et recherche des horaires par faculte et par semaine.
- Telechargement de fichiers PDF associes aux publications.
- Espace administrateur protege par authentification.
- Ajout et suppression des communiques, resultats et horaires.
- Changement du mot de passe administrateur.
VALVE/
├── index.php # Page d'accueil publique
├── communiques.php # Liste publique des communiques
├── resultats.php # Liste et recherche des resultats
├── horaires.php # Liste et recherche des horaires
├── connexion.php # Configuration de la connexion PDO
├── valve_electronique.sql # Dump SQL de la base de donnees
├── img/ # Images utilisees par l'interface publique
└── admin/
├── index.php # Connexion administrateur
├── dashboard.php # Gestion des communiques
├── resultats.php # Gestion des resultats
├── horaires.php # Gestion des horaires
├── changermdp.php # Changement du mot de passe admin
├── traitement*.php # Traitement des formulaires d'ajout
├── mesFichiers/ # Fichiers PDF des communiques
├── resultats/ # Fichiers PDF des resultats
└── horaires/ # Fichiers PDF des horaires
- PHP avec PDO pour l'acces a la base de donnees.
- MySQL/MariaDB pour le stockage des donnees.
- HTML5 et CSS3.
- Tailwind CSS via CDN pour le style.
- Flowbite via CDN pour certains composants d'interface.
- Alpine.js via CDN dans l'espace administrateur.
- Font Awesome via CDN pour les icones.
- PHP 8.0 ou version compatible.
- MySQL ou MariaDB.
- Serveur local de type XAMPP, LAMPP, WAMP ou equivalent.
- Navigateur web moderne.
-
Copier le dossier du projet dans le repertoire web du serveur local.
Exemple avec XAMPP/LAMPP :
/opt/lampp/htdocs/VALVE
-
Demarrer Apache et MySQL/MariaDB.
-
Creer une base de donnees MySQL.
Le dump SQL indique le nom
valve_electronique, tandis que le fichierconnexion.phputilise actuellementvalve_bdd. Il faut donc harmoniser le nom de la base dansconnexion.phpavec celui cree dans MySQL. -
Importer le fichier SQL :
mysql -u root -p valve_electronique < valve_electronique.sqlIl est aussi possible d'importer
valve_electronique.sqldepuis phpMyAdmin. -
Configurer la connexion dans
connexion.php:$connexion = new PDO( "mysql:dbname=nom_de_la_base;host=localhost", "utilisateur_mysql", "mot_de_passe_mysql" );
-
Verifier que les dossiers d'upload existent et sont accessibles en ecriture :
admin/mesFichiers/admin/resultats/admin/horaires/
-
Ouvrir l'application dans le navigateur :
http://localhost/VALVE/
L'espace administrateur est accessible via :
http://localhost/VALVE/admin/
Le code d'authentification utilise une table nommee adminn avec les champs suivants :
idnom_usermot_de_passe
Si cette table n'existe pas apres l'import du dump SQL, elle doit etre creee avant de se connecter a l'espace administrateur.
Exemple de creation :
CREATE TABLE adminn (
id INT NOT NULL AUTO_INCREMENT,
nom_user VARCHAR(100) NOT NULL,
mot_de_passe VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);
INSERT INTO adminn (nom_user, mot_de_passe)
VALUES ('admin', 'admin');Pour un environnement reel, il est fortement recommande de remplacer ce mot de passe par un mot de passe fort et de mettre en place un hachage securise.
Le fichier valve_electronique.sql contient les tables principales suivantes :
communiques: stocke les annonces, auteurs, dates, details et fichiers associes.resultats: stocke les resultats par faculte, promotion, annee, date et fichier PDF.horaires: stocke les horaires par faculte, semaine, date et fichier PDF.
Depuis l'interface publique, l'etudiant peut :
- consulter les communiques ;
- telecharger les fichiers PDF des communiques ;
- rechercher des resultats par faculte ;
- telecharger les fichiers PDF des resultats ;
- rechercher les horaires par faculte et semaine.
Depuis le tableau de bord, l'administrateur peut :
- publier un nouveau communique avec un fichier PDF ;
- publier un resultat avec un fichier PDF ;
- publier un horaire avec un fichier PDF ;
- supprimer une publication ;
- changer le mot de passe administrateur ;
- se deconnecter de la session.
Avant un deploiement en production, il est recommande de :
- utiliser des mots de passe haches avec
password_hash()etpassword_verify(); - ne pas conserver les identifiants de base de donnees directement dans le code source ;
- valider strictement les fichiers envoyes par les utilisateurs ;
- renommer les fichiers uploades pour eviter les conflits et les noms dangereux ;
- echapper systematiquement les donnees affichees avec
htmlspecialchars(); - ajouter une protection CSRF aux formulaires administrateur ;
- restreindre l'acces aux dossiers d'upload si necessaire ;
- completer le dump SQL avec la table administrateur.
Projet developpe dans un contexte academique pour faciliter la diffusion numerique des informations universitaires. Projet de fin d'annee de premiere licence