top of page
STAGE 2 - SP2 CRÉATION D'UN SITE DE SERVICES ALTER-INFO
Retour Stage 2

Suite à la SP précédente : Nous avons laissé un accès WEB vers les agendas de l'application Réagir par le biais d'un site WEB.

​

Pour des raisons de vitesse de développement, je me suis pas occupé du design, et ce site n'est pour l'instant utile que pour une seule fonctionnalité.

​

Je me dois de changer ça !

Contexte

Nous voulons créer une interface design.

​

Qui plus est, il serait agréable de pouvoir gérer des services autres que la fonction Agenda de l'application Réagir.

​

Finalement : nous voulons gérer une base de ticket (sur le site WEB) en lien avec une autre base de donnée (plus complète) sur un serveur distant.

Besoin

Les technologies utilisées ont été :

Technologie(s) utilisée(s)

Grâce à ce projet, j'ai pu aider l'entreprise Alter-Info à avancer en leur fournissant une solution globale comportant un serveur WEB, un service pour consulter des agendas, mais aussi un site WEB pouvant servir à plus que simplement ce pourquoi je l'ai créé.

​

J'ai fait de mon mieu pour le rendre facile à comprendre, à utiliser mais surtout à agrémenter.

Je pense avoir bien pris en compte la demande de l'entreprise et avoir créé un projet au delà de ses attentes.

​

Le fait que ce projet soit utilisable et modifiable (à petite échelle) par des personnes qui n'ont jamais touché à un site WEB est également un plus.

​

J'ai d'ailleurs beaucoup appris sur le PHP ainsi que le Framework Laravel.

En effet, en développant sur PHP premièrement, j'ai pu me rendre compte des limitations de celui-ci (surtout en ce qui concerne le transfert de donnée qui n'est possible seulement par le biais de formulaires ou de variables superglobales (tel que le POST, les COOKIES ou les SESSIONS.

​

J'ai aussi pu me rendre compte de quelques problèmes issu de la méthode d’exécution "php" (coté serveur) par exemple à un moment lorsque un utilisateur voulais afficher son agenda, cela affichais son agenda à tous les utilisateur connectés sur le site à ce moment (problème que j'ai solutionné en utilisant les COOKIES)

​

Finalement, ce projet m'a peut être plus aidé qu'il n'a aidé l'entreprise puisque j'ai pu découvrir beaucoup de lieu de recherches sur le PHP. Ainsi, j'ai pu approfondir mes bases en PHP, faisant de celui-ci mon langage de prédilection, et surtout mon langage préféré.

Bilan

Ubuntu 16.04

Serveur :

 - Apache2

 - ssmtp

 - mysql

​

Langage de programmation utilisé :

 - PHP 5.6

 - HTML

 - CSS+ BOOTSTRAP

 - SQL

Pour cette SP, j'ai utilisé le même serveur Apache que lors de la SP précédente

Le plus important va se passer au niveau du serveur MYSQL.

Utilisation des serveurs
1 - Le serveur Apache

Pour commencer, qu'est-ce qu'un serveur MYSQL ?

​

Un serveur MYSQL est un serveur de base de donnée. Il permet de stocker des informations pour les utiliser via une application ou un site WEB.

Pour l'installer : Une seule commande suffit :

​

 apt-get install mysql

​

L'installation se fait normalement et le service est disponible instantanément à condition d'avoir configuré une base de donnée à utiliser.

Premièrement : La raison.

​

J'ai créé une base de donnée pour une simple raison : On veut que le site WEB puisse accueillir des tickets (gestion de tickets)

​

Pour cela, il faut pouvoir s'identifier sur le site et également stocker les tickets. De plus, on veut qu'un client puisse consulter les tickets et qu'il soit prévenu par mail lorsque son ticket est émis.

Création de la BDD

Comme je sait que je ne serait pas toujours là pour intégrer des services, j'ai songé à une façon facile d'intégrer des services directement dans le serveur.

​

Après une lourde réflexion, j'ai décidé de littéralement intégrer les services au serveur : je m'éxplique.

​

Mais avant ça, le moment 'expert' : voici un bout du code :

Le site s'appel alterinfo-services.fr

​

Du coup je me suis dit que ça pouvais être pas mal de pouvoir lister les services de l'entreprise quelque part.

En l’occurrence, on liste les services sur la page Index.

Les services ne sont pas intégrés dans la base de donnée pour des raisons d'administration.

Alter-Info étant une entreprise de prestation informatique général, pas tout le monde sait utiliser du PHP ou une base de donnée, c'est pourquoi j'ai rendu cela simple d'utilisation.

Gestion des services
Le moment "simple d'utilisation"

J'ai même pris le temps de le commenter dans l'éventualité ou quelqu'un passerait derrière moi.

​

Comme on peut le voir, PHP va parcourir un répertoire nommé 'Services' et mettre tous les sous répertoires dans une liste. Après ça, il va parcourir la liste et récupérer le fichier texte nommé "adr.txt" ainsi que l'image nommée "banner.png".

​

Maintenant, il ne reste plus qu'a faire rentrer chaque service dans un bloc cliquable qui aura pour image : la bannière et pour destination : l'adresse contenue dans le fichier texte.

​

Pour la mise en page, j'ai utilisé flexbox qui se couple très bien avec Bootstrap pour faire quelque chose de fonctionnel, responsive et plutôt beau. (de mon point de vue en tout cas)

​

Une image de ce que ça donne une fois en ligne :

En suivant le schéma 'sous répertoire avec le nom du service contenant une image et une adresse', il est simple d'ajouter des nouveaux services sur le site (aussi simple qu'un glisser/déposer par exemple)

En plus, des services, on veut aussi faire en sorte que le site soit capable d'afficher et de recueillir des tickets.

​

J'ai donc dû passer par plusieurs étapes

Gestion des tickets

Premièrement, il m'a fallut faire une authentification : les clients, et l'admin.

​

Les clients arrivent sur une page listant tous leurs tickets émis, classé par date.

L'admin, lui, arrive sur un page listant tous les tickets classés par date.

Il peut également se servir d'un système de filtre afin de ne récupérer que les tickets qui l'intéresse.

​

Voici une image de l'authentification

-- puis des tickets --

Lorsque un utilisateur souhaite créer un ticket, il est dirigé sur une page de formulaire lui demandant de spécifier la raison de son ticket ainsi que son message.

​

Si l'adresse mail de l'utilisateur est disponible dans la base de donnée, il pourra décider de recevoir un accusé de réception comportant son identifiant, la raison de son ticket ainsi que son message.

​

Dans tous les cas, une notification sera envoyée par mail à l'adresse de support d'alter-info lors de l'émission d'un nouveau ticket.

​

En ce qui concerne l'envois de mail, j'ai utilisé partiellement le code présent dans ma SP1 du stage 1.

​

NOTE : Comme vous pouvez les voir sur l'image si dessus, lors de mes test, j'ai pu me rendre compte qu'il étais possible de faire transiter des balises HTML dans les tickets. Je dois avouer qu'au début ça m'a bien amusé, mais soudainement, je me suis ensuite demandé si ça pouvais pas poser des problèmes de sécurité (notamment à cause de JavaScript). Ne connaissant pas le potentiel destructeur de JavaScript, j'ai décidé de faire de ce langage un mot-clé BANNIS du système. De ce fait, lors de l'envois d'un ticket contenant du JS, le message est instantanément remplacé par "Ticket supprimé car estimé potentiellement dangereux"

Le plus gros problème que j'ai eu, ce fut d'intégrer Laravel à Linux.

Un problème si gros qu'il n'a pas été résolus.

​

J'ai donc eu à trouver une alternative, qui ma fois me semble pas si mauvaise :

Un framework fait maison ?
bottom of page