| <Installation> <Les fichiers du site> <Les données du site> <Nos points forts> <Extensions envisagées> |
Nos points fortsVoici plusieurs points gérés par notre application qui, bien qu'ils ne soient pas mentionnés dans le sujet, nous ont paru utiles à intégrer :Une réalisation structurée en classesLa réalisation en classes nous a permis d'alléger de manière significative toutes les pages de notre site.En effet, toute la programmation "technique" et la gestion des données est effectuée soit dans les classes elles-mêmes, soit dans des fichiers inclus regroupés dans le répertoire /include. Le site est ainsi plus facile à maintenir, et il suffit de faire appel aux fonctions appropriées déjà codées dans les fichiers /include pour créer de nouvelles pages. Une réecriture complète du code HTML / CSSNous avons réécrit le code de l'ensemble des pages du site, tout en concervant la même organisation générale, afin d'optimiser celles-ci, en supprimant les tableaux de mise en forme que l'on peut remplacer par des styles CSS avancés.MySQL : Une installation automatisée, des requêtes sécuriséesAfin de faciliter l'installation du site, la base MySQL est automatiquement reconstruite avec son jeu d'essai d'origine dès qu'une table nécessaire à l'application est manquante.De plus, l'ensemble des requêtes ont été sécurisée grâce à l'utilisation des fonctions addslashes() et stripslashes(), de facon à éviter des erreurs de guillemets ou apostrophes lors des insertions de données textuelles - dont pourraient profiter des utilisateurs mal intentionnés. Enfin, avec le mode debug activé, il est possible de visualiser toutes les requêtes effectuées sur la base de données. Listes de choix : Personnalisables et optimiséesLes listes de choix ont leurs valeurs définies dans le fichier /include/config.inc.php de facon à pouvoir les personnaliser.Elles sont construites dynamiquement par la fonction affListe définie en fin du fichier /include/class_cv.php. L'utilisation de listes de choix dynamiques nous a permis d'optimiser les données enregistrées : En effet, plutôt que d'enregistrer le libellé complet de l'item sélectionné, l'application n'enregistre que son indice dans le tableau de configuration. On gagne ainsi une place importante tant au niveau des variables de sessions qu'au niveau des tables MySQL (les champs civilite, situation, niveauexp et niveauform ne sont que des petits entiers - tinyint). Saisie des informations : simplifiées et systématiquement contrôléesLa saisie des CVs s'effectue en trois étapes successives, afin de la rendre plus agréable. Ainsi, tout n'est pas perdu si une erreur se produisait en cours de saisie.L'âge des étudiants est calculé à partir de la date de naissance par la fonction getAge() de la classe CV, ce qui permet de garder les CV à jour. De plus, chaque donnée saisie est soigneusement vérifiée avant tout enregistrement, notamment grâce aux expressions régulières en JavaScript, pour vérifier la cohérence des email, date de naissance, numéro de téléphone et code postal. Un menu dynamiquePeut-être l'avez-vous remarqué, le menu de gauche (commun/main.php) évolue au cours des actions de l'utilisateur :Pour les étudiants, le menu propose tout d'abord d'écrire un CV ou d'attacher une lettre. Ce n'est que lorsque le CV a été écrit que le menu propose de le modifier, et uniquement apres qu'une lettre ait été envoyée que le menu propose de la consulter. De même pour les entreprises, le menu ne propose de Voir ses sélections seulement après que l'entreprise ait ajouté un CV à ses sélections. Ceci simplifie la navigation en masquant les liens inutiles... A propos du lien "Ajouter à mes sélections"Nous avons choisi une autre solution que celle proposée par le sujet, concernant la manière d'ajouter un CV aux sélections d'une entreprise.En effet, nous n'affichons pas le lien "Ajouter à mes sélections" dans le menu comme proposé par le sujet, mais à côté de chaque CV consulté sur les pages de recherche ou de visualisation d'un CV. Nous pensons que cette solution est plus intuitive et qu'elle permette de sélectionner plus aisément les CVs. |