summaryrefslogtreecommitdiff
path: root/Documents_et_infos/infos_generales.txt
blob: 05ef1f698488a1c055c86c9db5cc9b98e5c8fab4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
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.