diff options
Diffstat (limited to 'Documents_et_infos')
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 Binary files differnew file mode 100644 index 0000000..228e677 --- /dev/null +++ b/Documents_et_infos/Bdd_mysql/mld_bdd_original.png diff --git a/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb b/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb Binary files differnew file mode 100644 index 0000000..3a0658c --- /dev/null +++ b/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb diff --git a/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb.bak b/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb.bak Binary files differnew file mode 100644 index 0000000..5f39098 --- /dev/null +++ b/Documents_et_infos/Bdd_mysql/mysql_alphajob.mwb.bak diff --git a/Documents_et_infos/Bdd_mysql/mysql_alphajob.png b/Documents_et_infos/Bdd_mysql/mysql_alphajob.png Binary files differnew file mode 100644 index 0000000..89e8df5 --- /dev/null +++ b/Documents_et_infos/Bdd_mysql/mysql_alphajob.png 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 Binary files differnew file mode 100644 index 0000000..1a543f2 --- /dev/null +++ b/Documents_et_infos/Structure_plan_de_site/arborescence_alphajob.jpg diff --git a/Documents_et_infos/Structure_plan_de_site/depth_optimised.jpg b/Documents_et_infos/Structure_plan_de_site/depth_optimised.jpg Binary files differnew file mode 100644 index 0000000..5a7303b --- /dev/null +++ b/Documents_et_infos/Structure_plan_de_site/depth_optimised.jpg 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 Binary files differnew file mode 100644 index 0000000..5aef760 --- /dev/null +++ b/Documents_et_infos/Structure_plan_de_site/logigramme_fonction_login.jpg 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 Binary files differnew file mode 100644 index 0000000..d4564ad --- /dev/null +++ b/Documents_et_infos/Structure_plan_de_site/structure_projet web.jpg 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 Binary files differnew file mode 100644 index 0000000..2e4a256 --- /dev/null +++ b/Documents_et_infos/Zooning_maquette_graphique/maquette_page_web.jpg diff --git a/Documents_et_infos/Zooning_maquette_graphique/zooning_avance.epgz b/Documents_et_infos/Zooning_maquette_graphique/zooning_avance.epgz Binary files differnew file mode 100644 index 0000000..db034cb --- /dev/null +++ b/Documents_et_infos/Zooning_maquette_graphique/zooning_avance.epgz diff --git a/Documents_et_infos/Zooning_maquette_graphique/zooning_simple.epgz b/Documents_et_infos/Zooning_maquette_graphique/zooning_simple.epgz Binary files differnew file mode 100644 index 0000000..a2051a0 --- /dev/null +++ b/Documents_et_infos/Zooning_maquette_graphique/zooning_simple.epgz diff --git a/Documents_et_infos/cahier_des_charges_fonctionnalitees.jpg b/Documents_et_infos/cahier_des_charges_fonctionnalitees.jpg Binary files differnew file mode 100644 index 0000000..8519988 --- /dev/null +++ b/Documents_et_infos/cahier_des_charges_fonctionnalitees.jpg 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. |
