summaryrefslogtreecommitdiff
path: root/Documents_et_infos/infos_generales.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Documents_et_infos/infos_generales.txt')
-rw-r--r--Documents_et_infos/infos_generales.txt73
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.