summaryrefslogtreecommitdiff
path: root/Documents_et_infos
diff options
context:
space:
mode:
authorDebulois <quentin@debulois.fr>2022-03-09 19:37:55 +0100
committerDebulois <quentin@debulois.fr>2022-03-09 19:37:55 +0100
commit497ce42637ebaad0c388d309d6b5bbf91db2dfa4 (patch)
tree45844b0ad0d03559eeecf0171efed745900478de /Documents_et_infos
parent5ddf8de3691fde866c5a48b440cffa2990b2014c (diff)
Mise à jour des fonctions de la bdd avec le nouveau modèle, renommage des fichier pour plus de clarte et ajout des documents et infos
Diffstat (limited to 'Documents_et_infos')
-rw-r--r--Documents_et_infos/Bdd_mysql/mld_bdd_original.pngbin0 -> 41354 bytes
-rw-r--r--Documents_et_infos/Bdd_mysql/mysql_alphajob.mwbbin0 -> 13609 bytes
-rw-r--r--Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb.bakbin0 -> 13622 bytes
-rw-r--r--Documents_et_infos/Bdd_mysql/mysql_alphajob.pngbin0 -> 47201 bytes
-rw-r--r--Documents_et_infos/Bdd_mysql/mysql_alphajob.sql143
-rw-r--r--Documents_et_infos/Structure_plan_de_site/arborescence_alphajob.jpgbin0 -> 107544 bytes
-rw-r--r--Documents_et_infos/Structure_plan_de_site/depth_optimised.jpgbin0 -> 76763 bytes
-rw-r--r--Documents_et_infos/Structure_plan_de_site/logigramme_fonction_login.jpgbin0 -> 383335 bytes
-rw-r--r--Documents_et_infos/Structure_plan_de_site/structure_projet web.jpgbin0 -> 163893 bytes
-rw-r--r--Documents_et_infos/Zooning_maquette_graphique/infos_css.txt16
-rw-r--r--Documents_et_infos/Zooning_maquette_graphique/maquette_page_web.jpgbin0 -> 32246 bytes
-rw-r--r--Documents_et_infos/Zooning_maquette_graphique/zooning_avance.epgzbin0 -> 60712 bytes
-rw-r--r--Documents_et_infos/Zooning_maquette_graphique/zooning_simple.epgzbin0 -> 13568 bytes
-rw-r--r--Documents_et_infos/cahier_des_charges_fonctionnalitees.jpgbin0 -> 317462 bytes
-rw-r--r--Documents_et_infos/infos_generales.txt73
15 files changed, 232 insertions, 0 deletions
diff --git a/Documents_et_infos/Bdd_mysql/mld_bdd_original.png b/Documents_et_infos/Bdd_mysql/mld_bdd_original.png
new file mode 100644
index 0000000..228e677
--- /dev/null
+++ b/Documents_et_infos/Bdd_mysql/mld_bdd_original.png
Binary files differ
diff --git a/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb b/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb
new file mode 100644
index 0000000..3a0658c
--- /dev/null
+++ b/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb
Binary files differ
diff --git a/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb.bak b/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb.bak
new file mode 100644
index 0000000..5f39098
--- /dev/null
+++ b/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb.bak
Binary files differ
diff --git a/Documents_et_infos/Bdd_mysql/mysql_alphajob.png b/Documents_et_infos/Bdd_mysql/mysql_alphajob.png
new file mode 100644
index 0000000..89e8df5
--- /dev/null
+++ b/Documents_et_infos/Bdd_mysql/mysql_alphajob.png
Binary files differ
diff --git a/Documents_et_infos/Bdd_mysql/mysql_alphajob.sql b/Documents_et_infos/Bdd_mysql/mysql_alphajob.sql
new file mode 100644
index 0000000..d556d0a
--- /dev/null
+++ b/Documents_et_infos/Bdd_mysql/mysql_alphajob.sql
@@ -0,0 +1,143 @@
+-- MySQL Script generated by MySQL Workbench
+-- Wed Mar 2 13:18:27 2022
+-- Model: New Model Version: 1.0
+-- MySQL Workbench Forward Engineering
+
+SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
+SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
+SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
+
+-- -----------------------------------------------------
+-- Schema exophp
+-- -----------------------------------------------------
+
+-- -----------------------------------------------------
+-- Schema exophp
+-- -----------------------------------------------------
+CREATE SCHEMA IF NOT EXISTS `exophp` DEFAULT CHARACTER SET utf8 ;
+USE `exophp` ;
+
+-- -----------------------------------------------------
+-- Table `exophp`.`userAccount`
+-- -----------------------------------------------------
+CREATE TABLE IF NOT EXISTS `exophp`.`userAccount` (
+ `userId` INT UNSIGNED NOT NULL AUTO_INCREMENT,
+ `email` VARCHAR(128) NOT NULL,
+ `password` VARCHAR(128) NOT NULL,
+ `tokenAutoLogin` VARCHAR(128) NULL DEFAULT NULL,
+ `inscriptionDate` TIMESTAMP NOT NULL,
+ `isClient` TINYINT(1) UNSIGNED NOT NULL,
+ `isPro` TINYINT(1) UNSIGNED NOT NULL,
+ `isAdmin` TINYINT(1) UNSIGNED NOT NULL,
+ PRIMARY KEY (`userId`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+
+-- -----------------------------------------------------
+-- Table `exophp`.`jobCategrory`
+-- -----------------------------------------------------
+CREATE TABLE IF NOT EXISTS `exophp`.`jobCategrory` (
+ `jobCategoryId` INT UNSIGNED NOT NULL AUTO_INCREMENT,
+ `categoryName` VARCHAR(128) NOT NULL,
+ PRIMARY KEY (`jobCategoryId`))
+ENGINE = InnoDB;
+
+
+-- -----------------------------------------------------
+-- Table `exophp`.`mission`
+-- -----------------------------------------------------
+CREATE TABLE IF NOT EXISTS `exophp`.`mission` (
+ `missionId` INT UNSIGNED NOT NULL AUTO_INCREMENT,
+ `date` TIMESTAMP NOT NULL,
+ `subject` VARCHAR(128) NOT NULL,
+ `note` TINYINT(1) UNSIGNED NULL DEFAULT NULL,
+ `review` TEXT NULL DEFAULT NULL,
+ `acceptedByPro` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
+ `validatedByClient` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
+ `validatedByPro` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
+ `clientId` INT UNSIGNED NOT NULL,
+ `proId` INT UNSIGNED NOT NULL,
+ `jobCategroryId` INT UNSIGNED NOT NULL,
+ PRIMARY KEY (`missionId`),
+ INDEX `fk_mission_clientId_idx` (`clientId` ASC) VISIBLE,
+ INDEX `fk_mission_proId_idx` (`proId` ASC) VISIBLE,
+ INDEX `fk_mission_jobCategroryId_idx` (`jobCategroryId` ASC) VISIBLE,
+ CONSTRAINT `fk_mission_userId`
+ FOREIGN KEY (`clientId`)
+ REFERENCES `exophp`.`userAccount` (`userId`)
+ ON DELETE NO ACTION
+ ON UPDATE NO ACTION,
+ CONSTRAINT `fk_mission_consultantId`
+ FOREIGN KEY (`proId`)
+ REFERENCES `exophp`.`userAccount` (`userId`)
+ ON DELETE NO ACTION
+ ON UPDATE NO ACTION,
+ CONSTRAINT `fk_mission_jobcategrory1`
+ FOREIGN KEY (`jobCategroryId`)
+ REFERENCES `exophp`.`jobCategrory` (`jobCategoryId`)
+ ON DELETE NO ACTION
+ ON UPDATE NO ACTION)
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+
+-- -----------------------------------------------------
+-- Table `exophp`.`userInfo`
+-- -----------------------------------------------------
+CREATE TABLE IF NOT EXISTS `exophp`.`userInfo` (
+ `lastName` VARCHAR(128) NOT NULL,
+ `firstName` VARCHAR(128) NOT NULL,
+ `phoneNumber` VARCHAR(10) NOT NULL,
+ `adress` VARCHAR(128) NOT NULL,
+ `zipCode` VARCHAR(6) NOT NULL,
+ `city` VARCHAR(128) NOT NULL,
+ `job` VARCHAR(128) NULL DEFAULT NULL,
+ `degree` VARCHAR(128) NULL DEFAULT NULL,
+ `capability` TEXT NULL DEFAULT NULL,
+ `description` TEXT NULL DEFAULT NULL,
+ `userId` INT UNSIGNED NOT NULL,
+ PRIMARY KEY (`userId`),
+ INDEX `fk_userinfo_userId_idx` (`userId` ASC) VISIBLE,
+ CONSTRAINT `fk_userinfo_userId`
+ FOREIGN KEY (`userId`)
+ REFERENCES `exophp`.`userAccount` (`userId`)
+ ON DELETE CASCADE
+ ON UPDATE CASCADE)
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+
+-- -----------------------------------------------------
+-- Table `exophp`.`category`
+-- -----------------------------------------------------
+CREATE TABLE IF NOT EXISTS `exophp`.`category` (
+ `category_id` INT NOT NULL,
+ `name` VARCHAR(255) NOT NULL,
+ PRIMARY KEY (`category_id`));
+
+
+-- -----------------------------------------------------
+-- Table `exophp`.`userJob`
+-- -----------------------------------------------------
+CREATE TABLE IF NOT EXISTS `exophp`.`userJob` (
+ `jobCategroryId` INT UNSIGNED NOT NULL,
+ `userId` INT UNSIGNED NOT NULL,
+ INDEX `fk_userJob_jobcategrory1_idx` (`jobCategroryId` ASC) VISIBLE,
+ INDEX `fk_userJob_userinfo1_idx` (`userId` ASC) VISIBLE,
+ CONSTRAINT `fk_userJob_jobCategroryId`
+ FOREIGN KEY (`jobCategroryId`)
+ REFERENCES `exophp`.`jobCategrory` (`jobCategoryId`)
+ ON DELETE NO ACTION
+ ON UPDATE NO ACTION,
+ CONSTRAINT `fk_userJob_userId`
+ FOREIGN KEY (`userId`)
+ REFERENCES `exophp`.`userInfo` (`userId`)
+ ON DELETE NO ACTION
+ ON UPDATE NO ACTION)
+ENGINE = InnoDB;
+
+
+SET SQL_MODE=@OLD_SQL_MODE;
+SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
+SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
diff --git a/Documents_et_infos/Structure_plan_de_site/arborescence_alphajob.jpg b/Documents_et_infos/Structure_plan_de_site/arborescence_alphajob.jpg
new file mode 100644
index 0000000..1a543f2
--- /dev/null
+++ b/Documents_et_infos/Structure_plan_de_site/arborescence_alphajob.jpg
Binary files differ
diff --git a/Documents_et_infos/Structure_plan_de_site/depth_optimised.jpg b/Documents_et_infos/Structure_plan_de_site/depth_optimised.jpg
new file mode 100644
index 0000000..5a7303b
--- /dev/null
+++ b/Documents_et_infos/Structure_plan_de_site/depth_optimised.jpg
Binary files differ
diff --git a/Documents_et_infos/Structure_plan_de_site/logigramme_fonction_login.jpg b/Documents_et_infos/Structure_plan_de_site/logigramme_fonction_login.jpg
new file mode 100644
index 0000000..5aef760
--- /dev/null
+++ b/Documents_et_infos/Structure_plan_de_site/logigramme_fonction_login.jpg
Binary files differ
diff --git a/Documents_et_infos/Structure_plan_de_site/structure_projet web.jpg b/Documents_et_infos/Structure_plan_de_site/structure_projet web.jpg
new file mode 100644
index 0000000..d4564ad
--- /dev/null
+++ b/Documents_et_infos/Structure_plan_de_site/structure_projet web.jpg
Binary files differ
diff --git a/Documents_et_infos/Zooning_maquette_graphique/infos_css.txt b/Documents_et_infos/Zooning_maquette_graphique/infos_css.txt
new file mode 100644
index 0000000..98eaea4
--- /dev/null
+++ b/Documents_et_infos/Zooning_maquette_graphique/infos_css.txt
@@ -0,0 +1,16 @@
+
+Tailles écrans:
+https://gbksoft.com/blog/common-screen-sizes-for-responsive-web-design/
+https://www.w3schools.com/browsers/browsers_display.asp
+https://99designs.fr/blog/design-web-digital/lconception-sites-web-adaptatifs/
+
+Infos utiles:
+https://kinsta.com/fr/wp-content/uploads/sites/4/2020/09/points-rupture-responsives-bootstrap.png
+https://raidboxes.io/fr/blog/webdesign-development/webdesign-trends-2021/
+https://webdesign.tutsplus.com/tutorials/how-to-create-a-frosted-glass-effect-in-css--cms-32535
+
+Fonds:
+https://unsplash.com/photos/eMNevd6ErCU
+
+Lisibilité et texte:
+http://all-for-design.com/web-design/lisibilite-des-sites-web-font-size-100-16px/ \ No newline at end of file
diff --git a/Documents_et_infos/Zooning_maquette_graphique/maquette_page_web.jpg b/Documents_et_infos/Zooning_maquette_graphique/maquette_page_web.jpg
new file mode 100644
index 0000000..2e4a256
--- /dev/null
+++ b/Documents_et_infos/Zooning_maquette_graphique/maquette_page_web.jpg
Binary files differ
diff --git a/Documents_et_infos/Zooning_maquette_graphique/zooning_avance.epgz b/Documents_et_infos/Zooning_maquette_graphique/zooning_avance.epgz
new file mode 100644
index 0000000..db034cb
--- /dev/null
+++ b/Documents_et_infos/Zooning_maquette_graphique/zooning_avance.epgz
Binary files differ
diff --git a/Documents_et_infos/Zooning_maquette_graphique/zooning_simple.epgz b/Documents_et_infos/Zooning_maquette_graphique/zooning_simple.epgz
new file mode 100644
index 0000000..a2051a0
--- /dev/null
+++ b/Documents_et_infos/Zooning_maquette_graphique/zooning_simple.epgz
Binary files differ
diff --git a/Documents_et_infos/cahier_des_charges_fonctionnalitees.jpg b/Documents_et_infos/cahier_des_charges_fonctionnalitees.jpg
new file mode 100644
index 0000000..8519988
--- /dev/null
+++ b/Documents_et_infos/cahier_des_charges_fonctionnalitees.jpg
Binary files differ
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.