Ce projet représente un simple site web créé dans le but d'améliorer mes compétences en PHP. À l'origine, l'idée du projet était un travail pratique proposé dans notre établissement académique, l'ENSA, conçu pour nous permettre de pratiquer ce langage de programmation. Cependant, j'ai choisi de corriger et d'améliorer ce devoir afin qu'il devienne une application complète et fonctionnelle.
Ce site web est conçu pour gérer les inscriptions au concours des écoles. Il offre aux utilisateurs la possibilité de s'inscrire en fournissant toutes les informations nécessaires et de vérifier leur compte. Une fois le compte vérifié, l'utilisateur accède à une page affichant ses informations. À partir de cette page, il peut :
- Modifier ses informations,
- Télécharger le reçu de candidature,
- Se déconnecter,
- Supprimer son compte.
Le site gère également plusieurs contraintes, par exemple : un étudiant ayant un niveau Bac+2 ne peut pas postuler pour la 4ᵉ année, parmi d'autres règles spécifiques. De plus, un administrateur a la possibilité de rechercher les candidats par leur nom et de consulter la liste complète des candidats inscrits.
- Création de compte.
- Authentification des utilisateurs.
- Vérification des comptes via email .
- Utilisation des sessions pour gerer les connexions des utilisateurs
- Maintien de l'état de l'utilisateur pendant la navigation.
- Création, modification, suppression et affichage des données.
- Application des principes CRUD aux utilisateurs et aux candidatures.
- Organisation du projet pour séparer les responsabilités.
- Utilisation de contrôleurs pour gérer les actions, modèles pour interagir avec la base de données et vues pour afficher les données.
- Connexion sécurisée à une base de données MySQL.
- Requêtes préparées pour éviter les vulnérabilités liées à l'injection SQL.
- Conception et gestion des tables pour stocker les informations des utilisateurs et des candidatures.
- Téléchargement des fichiers.
- Génération de documents PDF pour les reçus de candidature.
- Mise en place de règles spécifiques (les restrictions pour postuler en fonction du niveau d'études).
- Gestion des erreurs et des exceptions pour assurer une expérience utilisateur fluide.
- Utilisation de JavaScript et AJAX pour des fonctionnalités interactives.
- Mise à jour en temps réel des données affichées (résultats de recherche).
- PHP
- CSS
- Bootstrap
- JS
- SASS
- HTML
- MySql