diff options
Diffstat (limited to 'Documents_et_infos/infos_generales.txt')
| -rw-r--r-- | Documents_et_infos/infos_generales.txt | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/Documents_et_infos/infos_generales.txt b/Documents_et_infos/infos_generales.txt new file mode 100644 index 0000000..05ef1f6 --- /dev/null +++ b/Documents_et_infos/infos_generales.txt @@ -0,0 +1,73 @@ +******************************************************************************* + Infos: Déroulé de la réalisation de l'exercice. +******************************************************************************* + +Le cahier des charges que je me suis fixé pour cet exercice est un peu plus chargé +que ce qui était demandé initalement: +-Mettre en place un sytème de client / consultant (et non uniquement pour moi). +-Mettre en place un système d'inscription. +-Mettre en place un système de connection. +-Rechercher par nom un consultant. +-Afficher les capacités d'un consultant. +-Pouvoir enregistrer et noter une mission effectuée auprès d'un consultant en +tant que client. +-Pouvoir supprimer un utilisateur du site. + +Pour cet exercice, j'ai tout d'abord voulu créer mes pages web indépendamment les +unes des autres (index, login, register, etc...), il m'a rapidement paru évident +de séparer la gestion de la base de données dans un fichier à part, et mettre ce +système dans une classe m'a également paru être un bon choix car on pouvait avec +une classe définir les différents paramatres de connection à la base de données +dans les attributs de cette dernière et initier la connection à l'instanciation. +Ce système me permettait de mettre en place des requêtes en créant des méthodes et la classe +grossissant j'ai décidé de la scinder en trois, le fichier principal contenant les +informations de connection et d'initialisation de la base de données ainsi que quelques +requêtes basiques, un second fichier contenant toutes les méthodes pour effectuer des +recherches, et un dernier fichier contenant toutes les méthodes permettant de pouvoir +modifier les éléments de la base de données. + +En avancant dans l'exercice, j'ai voulu séparer la partie "logique" (traitement des données) +de la partie "rendue" (partie envoyée au client), les fichiers grossissants rapidement +cela permettait de gérer plus clairement ces deux parties du site. + +J'ai alors décidé de faire un fichier logique que j'ai appelé "wrapper", +ce wrapper avait deux objectifs: +- Récupérer les données transmises par les formulaires. +- Effectuer toute la partie logique (le traitement des données). +Je souhaitais renvoyer toutes les données vers un seul fichier pour minimiser +l'exposition d'informations transmises au client quand au fonctionnement du site web, +dans une optique de sécurité je souhaite afficher au client +uniquement le strict minimum. Ce fichier wrapper a lui aussi rapidement grossi, +et dans un soucis de lisibilité et de facilité de maintenance, j'ai décidé de le diviser +en plusieurs fichiers qui sont devenus ses fonctions. + +Enfin la partie "rendue" contenait les différentes pages accessibles par le client, +voulant éviter la répétition dans les différentes pages, j'ai séparé les parties +communes dans des fichiers à part (header, navbar, footer) cela me permettait en +modifiant un seul fichier de modifier le rendu sur toutes les pages, et dans un +soucis d'uniformité, j'ai décidé de "sortir" également les parties principales des +différentes pages et de placer le tout dans un dossier nommé "includes" dans lequel +les pages pourraient importer leur contenu. Enfin pour la gestion des langues, il +m'a paru opportun de créer des fichiers contenant le texte pour chaque langue à la +manière de fichier de traduction pour vidéo, et le site allait importer ensuite le +fichier en fonction de la langue sélectionnée, pour le faire j'ai créé deux dossiers +"fr" et "en" et je change la source de l'import en fonction de la langue choisie +par le client. + +Pour permettre une retention d'information entre les pages, le système de session +m'a paru inévitable et grâce à ce dernier, j'ai pu mettre en place le système +de changement de langue (défini dans une variable de cette dernière), un système de +connection (on affiche différents éléments en fonction du contenu de variable défini dans la session). + +J'ai également choisi de créer un système d'auto-connection car je voulais +expérimenter l'utilisation de cookie en PHP pour mettre en place ce système +le but était de créer un "jeton d'auto-connection": une chaine de caractères aléatoires +permettant la connection, valable une seule fois et qui serait stoqué 7 jours +sur le navigateur du client. La session ne restant ouverte +par défaut que 24 min (https://stackoverflow.com/questions/9904105/php-sessions-default-timeout). + +Pour la charte graphique, j'ai mis en place ce qui me parait être la structure la plus basique +pour un site web: En-tête avec barre de navigation -> corps de la page -> pied de page. +J'ai choisi un style clair, anguleux et épuré avec une dominance pour le rouge. + +Et enfin pour pouvoir faire un peu de JS, j'ai choisi de créer un slideshow. |
