Développement d'un site web sur la ville de Lessines

La page est créée Lionel Fernandes
 
CONTINUER À LIRE
Développement d'un site web sur la ville de Lessines
Année académique 2017-2018

 HAUTE ECOLE DE LA COMMUNAUTE FRANCAISE EN HAINAUT
                                        Catégorie technique
                          8A Avenue Victor Maistriau – 7000 Mons

        Développement d’un site web sur la ville de
                       Lessines

Travail de fin d'études réalisé en vue de l'obtention du titre de bachelier en Informatique et
                    systèmes, orientation réseaux et télécommunications

    Promoteur : De Bodt Julien                           Étudiant : Delcampe Thomas
Développement d'un site web sur la ville de Lessines
Développement d'un site web sur la ville de Lessines
Année académique 2017-2018

 HAUTE ECOLE DE LA COMMUNAUTE FRANCAISE EN HAINAUT
                                        Catégorie technique
                          8A Avenue Victor Maistriau – 7000 Mons

        Développement d’un site web sur la ville de
                       Lessines

Travail de fin d'études réalisé en vue de l'obtention du titre de bachelier en Informatique et
                    systèmes, orientation réseaux et télécommunications

    Promoteur : De Bodt Julien                           Étudiant : Delcampe Thomas
Développement d'un site web sur la ville de Lessines
Remerciements

À l’issue de ce travail, je tiens à adresser mes
remerciements à Philippe Hocepied membre du
conseil communal de Lessines, ainsi qu’à Gianni
Matton et Éric Martin, camarades de classe,
pour leurs conseils sur la conception de mon
projet et leur aide durant les tests des
fonctionnalités.

                     Lessines, le 8 juin 2018

                          Thomas Delcampe
HEH campus Technique                                   Développement d’un site web                                                      Rapport
Section informatique                                      sur la ville de Lessines                                              Thomas Delcampe
Année académique 2017-2018

Table des matières
Table des illustrations................................................................................................................................... 6
Liste des tableaux ......................................................................................................................................... 7
Résumé ......................................................................................................................................................... 8
Abstract ...................................................................................................................................................... 10
Introduction................................................................................................................................................ 12
Analyse des besoins.................................................................................................................................... 13
   Cahier des charges ................................................................................................................................. 13
   GDPR....................................................................................................................................................... 15
       Mise en conformité ............................................................................................................................ 16
   Acteur externe........................................................................................................................................ 18
   Site web ou application web ? ............................................................................................................... 19
Outils utilisés .............................................................................................................................................. 20
   HTML 5 et CSS 3...................................................................................................................................... 20
   PHP 7 ...................................................................................................................................................... 21
       Pourquoi utiliser PHP ? ....................................................................................................................... 21
   MySQL .................................................................................................................................................... 22
       Pourquoi utiliser MySQL ? .................................................................................................................. 22
   JavaScript ................................................................................................................................................ 22
       Pourquoi utiliser JavaScript ? ............................................................................................................. 22
   Sublime Text ........................................................................................................................................... 22
       Pourquoi utiliser Sublime Text ? ........................................................................................................ 22
   WampServer ........................................................................................................................................... 23
       Pourquoi utiliser WampServer ? ........................................................................................................ 23
   Firefox Quantum : Developer Edition .................................................................................................... 23
       Pourquoi utiliser Firefox : Developer Edition ? .................................................................................. 23
   Framework Laravel ................................................................................................................................. 23
       Pourquoi utiliser le framework Laravel ? ........................................................................................... 23
       Fonctionnalités ................................................................................................................................... 24
Conception ................................................................................................................................................. 25
   Design pattern MVC ............................................................................................................................... 25
   Méthodologie CRUD ............................................................................................................................... 26
   Convention de nommage ....................................................................................................................... 26
       Tables de la base de données............................................................................................................. 27
                                                               3
HEH campus Technique                             Développement d’un site web                                                                  Rapport
Section informatique                                   sur la ville de Lessines                                              Thomas Delcampe
Année académique 2017-2018
     Modèles .............................................................................................................................................. 27
       Contrôleurs ......................................................................................................................................... 27
       Vues .................................................................................................................................................... 27
       Permissions......................................................................................................................................... 27
   Base de données .................................................................................................................................... 28
   Utilisateurs ............................................................................................................................................. 29
   Catégories............................................................................................................................................... 30
   Articles et pages ..................................................................................................................................... 30
   Commerces............................................................................................................................................. 32
   Signalements .......................................................................................................................................... 34
   Ergonomie et design............................................................................................................................... 36
       Design ................................................................................................................................................. 36
       Ergonomie .......................................................................................................................................... 37
Développement .......................................................................................................................................... 40
   Bases de données, relations et modèles ................................................................................................ 40
   Agencement ........................................................................................................................................... 42
   Authentification ..................................................................................................................................... 42
   Catégories............................................................................................................................................... 43
   Pages et articles...................................................................................................................................... 44
       Création et modification .................................................................................................................... 44
       Affichage ............................................................................................................................................. 45
       Contact ............................................................................................................................................... 46
   Commerces............................................................................................................................................. 46
       Création et modification .................................................................................................................... 46
       Affichage ............................................................................................................................................. 47
       News ................................................................................................................................................... 47
   Signalements .......................................................................................................................................... 49
       Création et modification .................................................................................................................... 49
       Affichage ............................................................................................................................................. 51
       Réponses ............................................................................................................................................ 52
   Permissions............................................................................................................................................. 53
Tests et sécurisation ................................................................................................................................... 54
   Sécurité................................................................................................................................................... 54
       Côté utilisateur ................................................................................................................................... 54

                                                                                4
HEH campus Technique                           Développement d’un site web                                                                  Rapport
Section informatique                                 sur la ville de Lessines                                              Thomas Delcampe
Année académique 2017-2018
     Côté serveur ....................................................................................................................................... 56
Mise en production .................................................................................................................................... 57
   Référencement ....................................................................................................................................... 57
   Maintenance .......................................................................................................................................... 58
   Erreurs .................................................................................................................................................... 58
   Hébergement ......................................................................................................................................... 58
   Sauvegarde ............................................................................................................................................. 58
Conclusion .................................................................................................................................................. 59
Lexique ....................................................................................................................................................... 61
Bibliographie .............................................................................................................................................. 62
Liste des annexes........................................................................................................................................ 65

                                                                                5
HEH campus Technique                               Développement d’un site web                                                 Rapport
Section informatique                                  sur la ville de Lessines                                         Thomas Delcampe
Année académique 2017-2018
Table des illustrations
Figure 1 : Étapes de conception d'une application web ............................................................................ 13
Figure 2 : Site web vs application web [ thecodingbull.com, novembre 2017, Justin Chan Tsan Ting ] .... 19
Figure 3 : Logos de HTML 5 et CSS 3........................................................................................................... 20
Figure 4 : Pourcentage d'utilisation des langages de programmation côté serveur par les sites web.
[W3Techs.com, 9 juin 2018] ....................................................................................................................... 21
Figure 5 : Schéma du MVC [Geekboots, 08 avril 2017] .............................................................................. 25
Figure 6: Diagramme UML de la base de données..................................................................................... 28
Figure 7 : Statistiques d'utilisation des résolutions d'écrans sur une période d'un an à l'échelle mondiale
[StatCounter, may 2018] ............................................................................................................................ 37

                                                                          6
HEH campus Technique                                Développement d’un site web                                                  Rapport
Section informatique                                   sur la ville de Lessines                                          Thomas Delcampe
Année académique 2017-2018
Liste des tableaux
Tableau 1 : Table "users" ............................................................................................................................ 29
Tableau 2 : Table "password_resets" ......................................................................................................... 29
Tableau 3 : Table "taxonomies" ................................................................................................................. 30
Tableau 4 : Table "posts"............................................................................................................................ 31
Tableau 5 : Table "shops" ........................................................................................................................... 32
Tableau 6 : Table "shops_infos" ................................................................................................................. 33
Tableau 7: Table "shops_news" ................................................................................................................. 33
Tableau 8 : Table "tickets".......................................................................................................................... 34
Tableau 9: Table "tickets_locations" .......................................................................................................... 35
Tableau 10 : Table "tickets_responses" ..................................................................................................... 35
Tableau 11 : Relations établies entre les modèles ..................................................................................... 41

                                                                           7
HEH campus Technique               Développement d’un site web                          Rapport
Section informatique                  sur la ville de Lessines                  Thomas Delcampe
Année académique 2017-2018
Résumé
Ce rapport de Travail de Fin d’Études détaille la création d’une application web sur la ville de
Lessines, qui pourra permettre à ses utilisateurs de s’authentifier et de créer des pages et articles.
L’application contiendra aussi des fonctionnalités communautaires, permettant :

     La création de signalements géo localisé et de réponses par le service travaux ou les
      échevins communaux,
    La création de commerces et d’annonces sur ceux-ci par leur propriétaire,
    Une page communautaire permettant les échanges courts entre utilisateurs du site,
    Un calendrier des événements.
Ce document est décomposé en fonction des étapes principales de la création d’une application
web.

La première étape est l’analyse des besoins, dans laquelle j’analyserai le cahier des charges et le
mettrai en conformité avec la GDPR, qui a restreint les pages et fonctionnalités pouvant être
créées sur le site.

Ensuite vient la sélection des outils utilisés, à savoir les langages :

     HTML 5,
     CSS 3,
     PHP 7,
     JavaScript,
     Le framework Laravel,
     Le système de gestion de bases de données MySQL avec le moteur InnoDB.
Et les outils :

     Firefox Quantum : Developer Edition,
     Sublime Text,
     WampServer.
La seconde étape a été la conception du site, dans laquelle j’ai choisi de créer l’intégralité de
l’application à l’aide du design pattern « MVC » et de la méthodologie «CRUD ». Dans la même
étape, j’ai modélisé chaque fonctionnalité du site en créant les tables des bases de données en
fonction de l’analyse des besoins.

L’ergonomie et le design du site ont aussi été conceptualisés, et il a été choisi de respecter les
résolutions d’écran les plus utilisées à l’heure actuelle afin de rendre le site adaptable à tous les
appareils. Ces résolutions sont la largeur de 1366 pixels pour les desktops, 360 pour les
smartphones et 728 pour les tablettes.

La troisième étape a été le développement de toutes les fonctionnalités précédemment
modélisées grâce au framework Laravel et de ses bibliothèques officielles ou communautaires.
Plusieurs API Google ont été utilisées afin de créer des cartes géo localisées et géo localisables.

                                                   8
HEH campus Technique              Développement d’un site web                           Rapport
Section informatique                 sur la ville de Lessines                   Thomas Delcampe
Année académique 2017-2018
Différents rôles associés à des permissions ont aussi été créés afin de limiter les fonctionnalités
du site aux utilisateurs adéquats.

La quatrième étape a été la recherche de toutes les failles de sécurité d’une application web et
la sécurisation de celles-ci. Toutes les fonctionnalités du site ont aussi été testées par des acteurs
externes afin de détecter des bugs, d’autres failles de sécurité et recevoir des avis sur l’interface
afin de rendre l’application plus user-friendly.

Enfin, la dernière étape consiste au déploiement de l’application sur Internet et à l’optimisation
de son référencement naturel afin qu’elle soit rapidement accessible sur Google. Ainsi que divers
points permettant de tenir l’application à jours, de surveiller le comportement et l’avis des
utilisateurs afin de pouvoir l’améliorer, gérer les erreurs, l’hébergement et les sauvegardes du
site.

                                                  9
HEH campus Technique             Développement d’un site web                          Rapport
Section informatique                sur la ville de Lessines                  Thomas Delcampe
Année académique 2017-2018
Abstract
This end-of-studies report details the creation of a web application on the city of Lessines, which
will allow its users to authenticate themselves and create pages and articles. The application will
also contain community features, allowing:

      The creation of geolocalized reports and answers by the works department or the
       municipal aldermen,
      The creation of businesses and ads on them by their owner,
      A community page allowing short exchanges between users of the site,
      A calendar of events.

This document is broken down according to the main steps in creating a web application.

The first is the needs analysis, in which I will analyze the specifications and bring them into
compliance with the GDPR, which has restricted the pages and features that can be created on
the site.

Then comes the selection of the tools used, namely the languages :

   •   HTML 5,
   •   CSS 3,
   •   PHP 7,
      JavaScript,
      The Laravel framework,
      MySQL database management system with InnoDB engine.

And the tools:

   •   Firefox Quantum : Developer Edition,
   •   Sublime Text,
   •   WampServer.

The second step was the design of the site, in which I chose to create the entire application using
the "MVC" design pattern and the "CRUD" methodology. In the same step, I modeled each
functionality of the site by creating database tables based on the needs analysis.

The ergonomics and design of the site were also conceptualized, and it was chosen to respect
the screen resolutions most used at present in order to make the site adaptable to all devices.
These resolutions are the width of 1366 pixels for desktops, 360 for smartphones and 728 for
tablets.

The third step was the development of all the functionalities previously modelled using the
Laravel framework and its official or community libraries. Several Google APIs have been used to
create geolocated and geolocatable maps. Various roles associated with permissions have also
been created to limit the site's functionality to the appropriate users.
                                                10
HEH campus Technique              Développement d’un site web                           Rapport
Section informatique                 sur la ville de Lessines                   Thomas Delcampe
Année académique 2017-2018
The fourth step was the search for all the security holes in a web application and securing them.
All site features have also been tested by external players to detect bugs, other security holes
and receive feedback on the interface to make the application more user-friendly.

Finally, the last step consists in deploying the application on the Internet and optimizing its
natural referencing so that it is quickly accessible on Google. As well as various points to keep the
application up to date, monitor user behavior and feedback to improve it, and manage site errors,
hosting and backups.

                                                 11
HEH campus Technique             Développement d’un site web                         Rapport
Section informatique                sur la ville de Lessines                 Thomas Delcampe
Année académique 2017-2018
Introduction
Dans le cadre de ma dernière année de « bachelier en informatique et systèmes orientation
réseaux et télécommunications option sécurité », il m’a été demandé de réaliser un Travail de
Fin d’Études pour lequel le choix du sujet et des techniques utilisées est entièrement libre.

Voulant améliorer le site communal de ma ville de résidence, j’ai décidé d’en faire mon projet.
J’ai ainsi choisi de concevoir une application web qui sera dotée, d’une part des éléments
standard d’un site, c’est-à-dire d’une plateforme d’authentification utilisateur et de création et
gestion de pages, mais surtout de plusieurs fonctionnalités communautaires.

Alors que les communes sont chargées de fournir un service à leurs citoyens, leurs sites sont la
plupart du temps dénués de tels services. Ainsi, mon application permettra à tous les citoyens de
créer une page dédiée à leur commerce, entreprise ou association et d’y créer des articles afin
de plébisciter celui-ci.

Ensuite, une plateforme de tickets sera créée, permettant aux citoyens de créer des signalements
géo localisés sur les problèmes dans la ville. Ces tickets permettront les échanges entre leur
créateur et les personnes habilitées, tels que les échevins ou le service travaux.

De plus, l’application contiendra une page permettant à chaque citoyen d’interagir entre eux au
format réseau social. Un calendrier des événements Lessinois devra aussi être créé.

Ce rapport s’attellera à relater l’ensemble des étapes permettant de réaliser cette application.

La première étape sera l’analyse des besoins, dans laquelle sera établi un cahier des charges en
prenant en considération les avis d’un échevin communal et les réglementations imposées par le
GDPR. Dans cette étape seront ensuite sélectionnés les outils à utiliser afin de réaliser au mieux
ce projet.

Viendra ensuite la phase de conception, où les méthodologies et patrons de conception
permettant de réaliser l’application seront définis, et les fonctionnalités du site modélisées de
manière à réaliser efficacement l’étape suivante.

Ensuite, le rapport décrira toutes les étapes de développement du site, les problèmes rencontrés
et les solutions apportées. Cette étape débouchera directement sur la phase de tests de
l’application et l’analyse de sécurité de celle-ci.

Pour finir, le site sera mis en production sans oublier de gérer le référencement sur les moteurs
de recherche et la gestion de la maintenance et des retours utilisateurs.

Ce rapport sera clôturé par une conclusion relatant l’état d’avancement du projet et les
améliorations à lui apporter.

                                               12
HEH campus Technique              Développement d’un site web                                       Rapport
Section informatique                 sur la ville de Lessines                               Thomas Delcampe
Année académique 2017-2018
Analyse des besoins
La conception d’une application web se réalise en plusieurs étapes.

   1) Analyse des besoins : Cette étape consiste en la réalisation d’un cahier des charges
      décrivant toutes les fonctionnalités de l’application et ses contraintes.
   2) Conception : La phase de conception consiste à représenter et modéliser les éléments et
      fonctionnalités du cahier des charges de manière à pouvoir réaliser le programme.
   3) Réalisation : Cette phase consiste au développement des fonctionnalités conçues lors de
      la précédente étape.
   4) Tests : Chaque fonctionnalité développée doit être testée et vérifiée.
   5) Mise en production : L’application réalisée et les tests validés, la dernière étape consiste
      à publier l’application web et à surveiller son évolution auprès du public.

         Analyse des                                                                                Mise en
                            Conception               Réalisation                    Tests
           besoins                                                                                 production

                            Figure 1 : Étapes de conception d'une application web

Cahier des charges
Ce Travail de Fin d’Études consiste au développement d’une application web consacré à la ville
de Lessines. Celui-ci disposera de fonctionnalités permettant de créer, éditer et afficher des
pages classiques pour le site d’une ville, telles que : informations utiles, loisirs, économie,
membres du conseil communal, services ... Ainsi que de pages d’articles triés par catégories tels
que des actualités, des travaux, des évènements, des enquêtes publiques … Et d’un calendrier
général recensant tous les événements, travaux planifiés, débuts et fins d’enquêtes … Toutes ces
pages devront être facilement accessibles et lisibles pour tous les utilisateurs.

En plus de ces fonctionnalités habituelles pour un site communal, ce projet comportera une
multitude de fonctionnalités dédiées à la communauté.

Communauté

Une page permettra les conversations publiques entre chaque utilisateur du site, au format
réseau social : chaque utilisateur pourra y rédiger un article, qui pourra être répondu ou
commenté.

Cette fonctionnalité permettra à chaque citoyen le désirant de s’exprimer sur la ville ou le site.
Ils pourront par exemple y féliciter les fonctionnalités du site, en proposer de nouvelles, des
améliorations … Ou parler des nouveautés de la ville, proposer des idées aux membres du conseil
communal …

                                                     13
HEH campus Technique             Développement d’un site web                         Rapport
Section informatique                sur la ville de Lessines                 Thomas Delcampe
Année académique 2017-2018

Commerces

Cette fonctionnalité communautaire permettra à chaque citoyen d’enregistrer un commerce,
entreprise ou association dans la base de données et d’y définir ses informations : nom, adresse,
informations de contact, horaires d’ouvertures.
Après l’ajout du commerce, une page contenant les données pré remplies sera disponible sur le
site et permettra au propriétaire du commerce d’y rédiger des annonces diverses : description
complète de leurs services, nouveaux services, nouveaux produits, jour de fermeture
extraordinaire …

Cette fonctionnalité sur un site communal permet, pour les citoyens de pouvoir visualiser la liste
de leurs commerces ainsi que leurs annonces aisément dans un même site, mais permet surtout
aux commerçants de disposer gratuitement d’une présence en ligne sans avoir le besoin
d’imaginer, acheter, gérer … eux-mêmes leur propre site Internet.

Signalements

La fonctionnalité communautaire la plus importante est la création de signalements. Cette
fonctionnalité permet :

À chaque citoyen de déclarer facilement un signalement : Dégradations aux infrastructures, à la
voirie, sentiers ou trottoirs impraticables, poubelles qui débordent, dépôts clandestins … En plus
du type de signalement, ceux-ci seront accompagnés d’un nom, d’une photo éventuelle et d’une
courte description, mais aussi d’une géolocalisation soit manuelle en écrivant l’adresse, soit
automatique en déplaçant un curseur sur une carte Google Maps.

À chaque personne habilitée (échevins, service travaux …) de modifier le statut du signalement,
ainsi que d’y répondre. Les citoyens peuvent aussi répondre sur leurs propres tickets.

De les visualiser, de plusieurs manières :
     Dans une liste paginée reprenant les informations essentielles de chaque signalement.
     Dans une carte Google Maps disposant d’un marqueur par signalement.
     Individuellement, en visualisation toutes les données du signalement ainsi que toutes les
        réponses apportées par le créateur du signalement ou les personnes habilitées.

                                               14
HEH campus Technique                   Développement d’un site web                                  Rapport
Section informatique                      sur la ville de Lessines                          Thomas Delcampe
Année académique 2017-2018
GDPR
Le General Data Protection Regulation, ou « règlement général sur la protection des données »
en français est un texte de loi européen qui vise à protéger les données de tout individu au sein
de l’Union européenne. Ce règlement s’applique à chaque entité1 en et hors UE qui traitent2 les
données personnelles de citoyens européens.

Par données personnelles, la GDPR entend « toutes les données personnelles ou impersonnelles
qui révèlent l’entité d’un individu sont uniques à cette personne ».

Données personnelles classiques :

       Nom et prénom
       Adresse du domicile
       Numéro de téléphone
       Date et/ou lieu de naissance
       Carte d’identité
       Lieu de travail ou d’école

Données personnelles digitales :

       Adresse IP
       Comptes ou posting sur les réseaux sociaux
       Métadonnées
       Adresse email

Données sensibles

       Données génétiques et biométriques
       Orientation politique et religieuse
       Orientation sexuelle

1
  Le terme « entité » renvoie à chaque personne, physique ou morale
2
  Par « traiter », on entend tout ce que l’on peut faire avec une donnée personnelle : Collecte, enregistrement,
intégration, diffusion, organisation, sauvegarde, transfert, suppression…
                                                         15
HEH campus Technique             Développement d’un site web                         Rapport
Section informatique                sur la ville de Lessines                 Thomas Delcampe
Année académique 2017-2018
Le GDPR propose une multitude de règles permettant de protéger toutes ces données, entre
autres :

      Consentement : Pour que les données personnelles soient traitées, chaque individu doit
       donner son consentement.
      Opt-in : Les checkbox permettant d’accepter un élément sur un site « CGU, newsletter,
       … » ne peuvent pas être cochées par défaut : l’individu doit obligatoirement cliquer lui-
       même sur la case pour accepter.
      Chiffrement et sécurité : Les données personnelles doivent être protégées, la GDPR
       recommande d’utilise le chiffrement. En cas de brèches de sécurité, les personnes
       concernées doivent en être averties dans les 72 heures.
      Renseignement : L’individu doit pouvoir connaître toutes ses données personnelles qui
       sont traitées, à quoi sont-elles utilisées, comment y accéder, les modifier ou les
       supprimer.
      Accès : L’individu doit pouvoir accéder à ses données traitées dans un format intelligible.
      Droit à l’oubli : L’individu doit pouvoir supprimer toutes ses données personnelles.

Mise en conformité
Le GDPR étant obligatoire pour tout le monde à dater du 25 mai 2018, j’ai été obligé de mettre
en conformité mon cahier des charges et donc l’ensemble de mon projet avec ce traité, sous
peine de disposer d’une application web illégale.

Pages classiques
Le cahier des charges comprend la création de diverses pages statiques classiques pour le site
d’une ville, celles-ci se sont vues lourdement impactées par la GDPR.

En effet, la grande majorité des pages devaient contenir des données personnelles (adresses mail
ou fiche de personnes) :

      Services : L’objectif pour ses pages était de présenter succinctement chaque service de la
       ville de Lessines, mais surtout d’y renseigner le numéro de téléphone et adresse email du
       dit service. Le problème étant que la commune n’utilise pas des adresses email
       impersonnelles (de type « travaux@lessines.be »), mais des adresses email personnelles
       (de type « delcampe-thomas@lessines.be »). Ces adresses étant des données
       personnelles permettant d’identifier un individu, il est interdit de les traiter.
      Membres du conseil communal : Les membres du conseil communal devaient être
       enregistrés dans une table afin d’être réutilisés dans une page comprenant tous les
       membres, voire potentiellement dans d’autres pages du site. Ces données étant
       personnelles, je ne peux pas les traiter.

                                               16
HEH campus Technique                 Développement d’un site web                        Rapport
Section informatique                    sur la ville de Lessines                Thomas Delcampe
Année académique 2017-2018
La publication de pages dans lesquelles il manque des données ou dans lesquelles ses données
ne se seraient que partielles n’étant pas envisageable, ses pages ne peuvent pas être crées.

Afin de pouvoir complètement créer ces pages, il faudrait que je dispose de l’autorisation
explicite de chaque personne concernée (chaque chef de service, chaque membre du conseil
communal, …) afin de pouvoir traiter leurs données. Ne voulant pas créer de pages incomplètes,
la liste des membres du conseil communal, par exemple, ne pourrait être créée sans
l’autorisation d’une seule personne.

Conditions Générales d’Utilisation
Une page autorisant le site à traiter les données personnelles de ses utilisateurs doit être créée.

Parmi ces données, le site traitera :

       Leurs adresses email,
       Leur nom,
       Leur(s) adresse(s) IP.

Cette page doit aussi renseigner :

       Où ces données ont été ou seront traitées,
       Où les modifier, voir ou supprimer.

Diverses informations doivent aussi y être renseignées :

       La raison du traitement de ces données,
       La durée de leur stockage,
       Les coordonnées du « Data Protection Officer ».

Inscription
La page d’inscription devra contenir une checkbox interdisant l’accès aux utilisateurs n’ayant pas
accepté les CGU.

Cette checkbox, ainsi que tous les autres formulaires de consentements ne pourront pas être
cochés par défaut.

Profil d’utilisateur
L’utilisateur pourra y voir et modifier ses données personnelles. Il lui sera aussi possible d’exercer
son droit à l’oubli en supprimant facilement son compte.

Sécurité
Le site implémentera le « HTTP Strict Transport Security » (HSTS) et ne sera donc accessible qu’en
HTTPS, tout le trafic sera donc chiffré à l’aide d’un certificat Comodo Positive SSL installé sur
l’hébergement de production.

                                                  17
HEH campus Technique              Développement d’un site web                          Rapport
Section informatique                 sur la ville de Lessines                  Thomas Delcampe
Année académique 2017-2018
Acteur externe
En mars 2018, j’ai pu lire dans un article de L’Avenir que Philippe Hocepied, tête de liste Ecolo à
Lessines et membre du conseil communal, réclamait un système de signalements afin de
permettre aux Lessinois de déclarer des problèmes dans la ville.

Celui-ci relevait le fait que les Lessinois ne savent pas à quel service communal s’adresser
lorsqu’un problème survient dans leur environnement, mais aussi qu’aucun enregistrement des
demandes faites par les moyens traditionnels (administration communale, téléphone) n’était
réalisé, ce qui ne permet pas aux citoyens de disposer d’un suivi de la demande formulée, ni de
visualiser la quantité de travail que cela représente.

Le système de signalements étant la principale fonctionnalité de mon application web, je l’ai donc
contacté afin de lui demander ses attentes dans un tel système, et lui ai présenté mon projet.

Lors de ces échanges, j’ai pu voir que les fonctionnalités prévues dans mon cahier des charges
étaient les mêmes dont il voudrait disposer sur un site parallèle à la ville, mais m’a aussi apporté
quelques conseils.

J’ai ainsi modifié ou pris en considération certains points de mon application, tels que :

      Modification du nom de la fonctionnalité « Tickets » en « Signalements », l’utilisateur
       lambda n’étant pas familier avec la première expression ;
      Afficher la date de création et de clôture d’un signalement ;
      Créer une « boite à idée » permettant aux citoyens d’interagir et donc de fournir des avis,
       suggestions, conseils, remerciements … sur le site ou la ville. Cette boite à idées
       correspond à la fonctionnalité « communauté » du cahier des charges ;
      Afficher un lien sur les pages de tickets qui rédigera les utilisateurs vers la fonctionnalité
       « communauté ».

Il m’a aussi conseillé de contacter et présenter mon application aux services communaux afin de
récolter leurs critiques, étant donné que c’est eux qui devront éventuellement traiter les
signalements. Cette prise de contact était prévue et sera effectuée après la mise en production
de la première version de l’application.

                                                18
HEH campus Technique                   Développement d’un site web                                       Rapport
Section informatique                      sur la ville de Lessines                               Thomas Delcampe
Année académique 2017-2018
Site web ou application web ?
Le rôle d’un site web est de fournir et présenter du contenu informatif à ses visiteurs. Ses pages
de contenu sont statiques, donc ne sont pas ou très rarement éditées. Les sites web sont
développés en HTML, CSS et parfois un peu de JavaScript. Étant statique, leur développement ne
requiert pas de langage de programmation ni même de base de données. Par exemple, le site
web officiel de la ville de Lessines ne fait que diffuser des pages statiques et ne dispose pas de
fonctionnalités communautaires (commentaires, ajout d’articles …), c’est donc un site web.

Une application web est en revanche un site web dynamique qui permet à ses utilisateurs
d’accomplir certaines tâches spécifiques et ajouter du contenu dans les bases de données. Une
application web utilise donc des langages de programmation tels que PHP et des bases de
données.

Même si la ligne séparant les deux est floue (un site ne faisant que présenter du contenu statique,
mais disposant de fonctionnalités dynamiques pouvant être désigné par les deux noms), il est
très fréquent de confondre « application web » avec « application (Android, IOS…) » et dès lors
parler de « site web » pour tout ce qui est accessible via un navigateur Internet.

Étant donné que mon projet consiste principalement au développement de fonctionnalités
interactives (ajout, édition et suppression d’articles, de signalements, de commerces …), il
convient mieux de parler d’une application web que d’un site web, qui ne ferait que présenter
du contenu à ses visiteurs dans sa forme la plus basique.

           Figure 2 : Site web vs application web [ thecodingbull.com, novembre 2017, Justin Chan Tsan Ting ]

                                                          19
HEH campus Technique              Développement d’un site web                           Rapport
Section informatique                 sur la ville de Lessines                   Thomas Delcampe
Année académique 2017-2018
Outils utilisés
HTML 5 et CSS 3
La version 5 du HyperText Markup Language est la dernière révision majeure de ce langage de
balisage, développé par le W3C. Le HTML 5 est utilisé pour la représentation des pages web en
permettant d’écrire l’hypertexte, de structurer sémantiquement et logiquement ainsi que de
mettre en forme des pages, d’inclure des ressources multimédias, des formulaires de saisie et
des programmes informatiques. HTML permet de créer des documents interopérables avec une
multitude d’autres langages web, se conformant ainsi aux exigences du web.

Dans ce projet, HTML est utilisé dans sa version 5, qui a ajouté de nombreux nouveaux éléments
afin de limiter l’utilisation des balises « vides »  et , et améliore ainsi l’accessibilité
d’un site. Il convient ainsi d’utiliser des balises de type , , ,  au
lieu des .

HTML 5 dispose aussi de nombreux nouveaux éléments dédiés aux applications web et à
l’interactivité : nouveaux types d’, , , et bien d’autres… ainsi que des API
JavaScript nativement intégrées dans le langage.

Associé au HTML, le CSS pour « Cascading Style Sheets » est un langage permettant de décrire la
présentation des documents HTML et XML. Les éléments de ce langage sont eux aussi définis par
le W3C, et son développement et mise à jour se font en même temps que celles de HTML.

Il n’y a pas de solution alternative à HTML et CSS.

                                    Figure 3 : Logos de HTML 5 et CSS 3

                                                   20
HEH campus Technique                      Développement d’un site web                                      Rapport
Section informatique                         sur la ville de Lessines                              Thomas Delcampe
Année académique 2017-2018
PHP 7
PHP, pour Hypertext Preprocessor est un langage de programmation libre utilisé afin de produire
des pages web dynamiques via un serveur HTTP. PHP est le langage impératif orienté objet le
plus utilisé afin de créer des applications web. Facebook et Wikipedia sont, par exemple, créés
en PHP.

Dans ce projet, la version 7.1, dernière version disponible sur l’hébergement web est utilisé.

Pourquoi utiliser PHP ?
J’ai choisi de développer mon application web avec le langage PHP pour toute une série de
questions.

       Facilité d’apprentissage : PHP est un langage simple à apprendre, il est possible de faire
        beaucoup juste en apprenant quelques simples fonctions.
       Vitesse : PHP utilisant sa propre mémoire, la charge de travail et les temps de chargement
        sont réduits. Les temps de traitements des pages sont donc très réduits.
       Peu cher : PHP est open source, facile à apprendre, et ses fonctionnalités peuvent être
        rapidement étendues, ses serveurs multipliés. Il est gratuit, ne dispose pas de charges
        éventuelles, et est rapide à mettre en place, diminuant les couts du personnel.
       HTML-friendly : PHP est le langage le plus interopérable avec HTML, son intégration est
        donc très facile, le code PHP peut être écrit dans des fichiers HTML et inversement.
       MySQL-friendly : le support entre PHP et les bases de données MySQL, couramment
        utilisées sur le web est optimal.
       Documentation et popularité : Facilitant encore plus son apprentissage, la communauté
        de PHP est énorme, il est donc aisé de trouver une réponse à ses problèmes grâce aux
        communautés de développeurs ou aux documentations (officielles ou non) de PHP.
       Utilisation : En accord avec les points précédents, PHP est toujours le langage de
        programmation le plus utilisé pour les sites web, avec 83.5% de parts de marché.

Figure 4 : Pourcentage d'utilisation des langages de programmation côté serveur par les sites web. [W3Techs.com, 9 juin 2018]

                                                             21
HEH campus Technique              Développement d’un site web                           Rapport
Section informatique                 sur la ville de Lessines                   Thomas Delcampe
Année académique 2017-2018
MySQL
MySQL est le système de gestion de bases de données relationnelles (SGBDR) le plus utilisé au
monde, tant par les applications web que par les professionnels en concurrence à Oracle et
Microsoft SQL Server.

Pourquoi utiliser MySQL ?
MySQL est développé dans un souci de performances élevées en lecture, ce qui convient
parfaitement aux applications et sites web. Il est aussi libre et open source.

MySQL dispose de deux moteurs de base de données principaux : MylSAM et InnoDB. Ce dernier
étant le seul à supporter les transactions, les clefs étrangères et l’intégrité automatique des
tables, c’est celui-ci qui sera utilisé dans ce projet. Si MylSAM ne permet pas de garantir la
cohérence des données d’une application, ses performances sont cependant, en théorie
meilleure qu’InnoDB.

De même, MyISAM n’est plus mis à jour, contrairement à InnoDB.

JavaScript
JavaScript est un langage de programmation de scripts orienté objet à prototype qui est
principalement employé dans les pages web interactives, mais aussi pour les serveurs. L’orienté
objet à prototype signifie que ses bases sont fournies par des objets qui ne sont pas des instances,
mais sont chacun équipés de constructeurs permettant de créer leurs propriétés, telles que
l’héritage personnalisé.

Pourquoi utiliser JavaScript ?
Hormis quelques éventuels courts scripts du côté client, l’utilisation du JavaScript n’était pas
initialement définie.

J’ai cependant dû l’utiliser du côté serveur afin d’utiliser l’API Google Maps, permettant la
géolocalisation des signalements.

Sublime Text
Sublime Text est un éditeur de texte pour code. Il est codé en C++ et Python et a initialement été
conçu comme une extension de Vim. Il prend en charge plus de 44 langages de programmation.

Pourquoi utiliser Sublime Text ?
Sublime Text est ici utilisé dans sa dernière version. Il n’y a pas de réel atout à choisir un éditeur
de texte plutôt qu’un autre, autre que l’appréciation du développeur. Sublime Text est simple,
dispose d’une interface moderne, permet d’ouvrir l’entièreté d’un dossier dans une sidebar
permettant de naviguer aisément dans les divers fichiers d’un projet, …

                                                 22
HEH campus Technique              Développement d’un site web                           Rapport
Section informatique                 sur la ville de Lessines                   Thomas Delcampe
Année académique 2017-2018
WampServer
WAMP est un acronyme signifiant Windows Apache MySQL PHP. Le rôle de ce logiciel est
d’installer les composants requis au développement d’un site web localement sur une machine
Windows.

      Apache est le serveur web frontal permettant de répondre aux requêtes HTTP des clients,
      PHP est le langage de programmation le plus utilisé des sites web,
      MySQL est le SGBDR,
      Windows assure l’attribution des ressources à ces composants.

Pourquoi utiliser WampServer ?
WampServer dispose de nombreux concurrents permettant de faire du WAMP, dont les
différences consistent surtout au nombre de modules installés et la version de ceux-ci.
WampServer est régulièrement tenu à jour et dispose de tous les composants requis à mon
projet.

Firefox Quantum : Developer Edition
Cette version du navigateur internet a été repensée pour être plus rapide et plus puissante que
jamais. Elle inclut entre autres un nouveau moteur CSS ultra rapide, des outils de
développements permettant de modifier son code directement dans le navigateur, d’un
débuggeur JavaScript, des grilles CSS, d’une console et de différents outils relatifs au réseau, à la
sécurité, à la mémoire et aux performances d’une application web.

Pourquoi utiliser Firefox : Developer Edition ?
J’ai utilisé Firefox dans cette version, tout d’abord car ce navigateur dispose de toutes les
possibilités possibles pour l’affichage d’une page web, il n’y aura donc pas de problèmes de
comptabilité envers les autres navigateurs avec une application développée sur celui-ci. La
version développeur a été utilisée afin de pouvoir utiliser la multitude d’outils dont elle dispose
afin d’aider et déboguer le développement d’une application.

Framework Laravel
D'après Wikipedia un framework est un "ensemble cohérent de composants logiciels structurels,
qui sert à créer les fondations ainsi que les grandes lignes de tout ou d’une partie d'un logiciel".
Il existe des frameworks pour tous les langages de programmation.
Laravel est un framework d’application web PHP permettant de concevoir des applications web.
C’est le framework PHP le plus populaire. Le framework Laravel n’a pas conçu chacune de ses
fonctionnalités, mais a agi de la même façon qu’un développeur : plutôt que de tout réinviter, il
a utilisé ce qui se faisait de mieux dans d’autres framework ou bibliothèques. Laravel regroupe
donc les meilleures bibliothèques existantes au sein d’un seul framework.

Pourquoi utiliser le framework Laravel ?
L’utilité d’un framework est d’éviter de passer du temps à développer des éléments déjà
développés par d’autres personnes souvent plus compétentes. De plus, ces éléments ont étés

                                                 23
Vous pouvez aussi lire