Projet Terre Plurielle Ivan Colonneau Terre Plurielle et

  • Slides: 54
Download presentation
Projet Terre Plurielle Ivan Colonneau

Projet Terre Plurielle Ivan Colonneau

Terre Plurielle et ECAM EPMI ● Fondation crée en 2008 par le groupe industriel

Terre Plurielle et ECAM EPMI ● Fondation crée en 2008 par le groupe industriel Bouygues ● Son objectif est d'apporter son soutien financier à des projets visant l'accès à la santé, l'éducation et l'insertion des population en difficulté ● ECAM EPMI est l’école d’ingénieur de Cergy où j’ai effectué mon stage sous la direction du chercheur Mr. Benkkerhat.

Résumé du projet ● Destiné aux enfants atteints d'autisme. ● Aide à leur communication

Résumé du projet ● Destiné aux enfants atteints d'autisme. ● Aide à leur communication et à leur sociabilisation. ● Propose un système de drag and drop sur des pictogrammes pour construire des mots ou des phrases. ● Application destiné au professionnel de l'autisme lors de séance avec leurs patients. ● Disponible sur tous les support.

Conception Graphique

Conception Graphique

Figma : Zonning

Figma : Zonning

Figma : Wireframe

Figma : Wireframe

Coolors : Jeu de couleurs

Coolors : Jeu de couleurs

Description fonctionnelle et technique

Description fonctionnelle et technique

Lucidchart : UML Utilisateur

Lucidchart : UML Utilisateur

Lucidchart : UML Administrateur

Lucidchart : UML Administrateur

Lucidchart : Plan du site

Lucidchart : Plan du site

Lucidchart : Modèle Conceptuel de Données

Lucidchart : Modèle Conceptuel de Données

Spécification techniques

Spécification techniques

Visual Studio Code

Visual Studio Code

Technologies Front-End ● HTML : Langage de balisage pour structurer le document. ● CSS

Technologies Front-End ● HTML : Langage de balisage pour structurer le document. ● CSS : Langage de présentation pour styliser le document. ● j. Query : Bibliothèque Java. Script. ● j. Query Ui : Composant j. Query orienté vers l'expérience utilisateur. ● j. Query UI Touch : Composant j. Query pour rendre les événements de souris tactile. ● Bootstrap : Framework utilisé pour le Responsive Design.

Technologie Back-End ● MAMP : Permet d'installer un environnement de développement local (serveur, base

Technologie Back-End ● MAMP : Permet d'installer un environnement de développement local (serveur, base de données. . . ). ● PHP : Pour concevoir la partie dynamique de l'application. ● My. SQL : Système de gestion de base de données relationnelles basé sur le langage SQL (Structured Query Langage). ● Symfony 4 : Framework back-end avec une architecture MVC et orienté Service.

Symfony

Symfony

Symfony 4: Les avantages : ➔ Gain de productivité. ➔ Puissant. ➔ Populaire. ➔

Symfony 4: Les avantages : ➔ Gain de productivité. ➔ Puissant. ➔ Populaire. ➔ Facilité de débogage. Les inconvénients : ➔ Temps d'apprentissage.

L’installation : Composer : ● Outil de gestion de dépendances. Utile pour installer un

L’installation : Composer : ● Outil de gestion de dépendances. Utile pour installer un projet Symfony avec la commande :

Architecture de Symfony 4 : ● /bin : Il contient tous les exécutables ●

Architecture de Symfony 4 : ● /bin : Il contient tous les exécutables ● qui servent au développement (commandes php). ● ● (controller, service, entité, etc). ● /config : Ce répertoire contient toute la configuration de Symfony et des /src : Contient tous le code source /template : Contient tous les templates, les views de l'application. ● /var : Contient les logs, le cache et Bundles. d'autres fichiers nécessaires au /public : Contient tous les fichiers fonctionnement de Symfony. accessibles aux utilisateurs et le contrôleur frontal. ● /vendor : Contient toutes les bibliothèques externes au projet.

Les environnements : Dev : Prod : L'environnement « dev » est moins rapide

Les environnements : Dev : Prod : L'environnement « dev » est moins rapide mais fournis beaucoup d'information sur le processus de l'application grâce au « profiler » . L'environnement « prod » est plus rapide, c'est cette environnement qui est utilisé lorsque l'application est en production. En cas d'erreurs, l'origine de celles-ci ne sont pas affichées.

Le Profiler :

Le Profiler :

Les Services et Bundles : Les Services : ➔ Symfony est un framework orienté

Les Services et Bundles : Les Services : ➔ Symfony est un framework orienté service. ➔ Ils séparent la logique des controller (performance et maintenabilité du projet). ➔ Sont de simple objets php qui remplissent une fonction. ➔ Ils sont accessible n'importe où dans le code et réutilisable. Les Bundles : ➔ Sont des ensemble d'outils, de services regroupé dans un même répertoire ➔ Ils rassemblent toutes les fonctionnalités liées ç un besoin. ➔ Exemple : ➔ Swift. Mailer. Bundle (pour l'envoie de mail). ➔ Vich. Uploader. Bundle (pour l'upload de fichiers).

Doctrine : L'ORM (Object-Relational Mapping) Doctrine fournit tous les outils nécessaire pour travailler avec

Doctrine : L'ORM (Object-Relational Mapping) Doctrine fournit tous les outils nécessaire pour travailler avec les bases de données. Exemple d'utilisation : ➔ ➔ ➔ La création de classe d'entité. Des migrations (création des tables/ schémas de base de données). La persistance d'objets en base de données. La validation des objets. De récupérer, modifier, supprimer un objet. L'interrogation d'objets (requêtes SQL et DQL).

Twig : Twig est un moteur de templates qui a été conçu par les

Twig : Twig est un moteur de templates qui a été conçu par les créateurs de Symfony. Les principales Fonctionnalité : ➔ ➔ ➔ Permet de séparer le code PHP du code HTML Système d’héritage de block défini dans un template de base. Sécurise automatiquement les variables pour prévenir des attaques XSS et injection SQL. Filtre les variables. Permet de travailler avec les variables en utilisant des commandes (conditions, boucles …).

Sécurité

Sécurité

Faille XSS : Les failles XSS (Cross-Site Scripting) est une faille permettant l'injection de

Faille XSS : Les failles XSS (Cross-Site Scripting) est une faille permettant l'injection de code HTML ou Java. Script dans des variables mal protégées. Les règles de base contre les attaques XSS : ➔ Filtrer les entrées avec des contraintes, annotations de doctrine, regex et les requêtes préparées. ➔ Échapper les sorties, avec Twig toutes les données envoyées à la vue sont échappées automatiquement, grâce à l'option auto-escape.

Faille d’injection SQL : Les injections SQL sont des méthodes d'attaques qui consistent à

Faille d’injection SQL : Les injections SQL sont des méthodes d'attaques qui consistent à modifier une requête SQL en injectant un script SQL. Le composant Doctrine : Utilise un système de requêtes préparées pour éviter ce genre d'attaques. La composant Forms : Il construit des classes de formulaire à partir d'objets, les champs générés par cette classe correspondent aux type des propriétés de l'objet associé. Lors de la soumission du formulaire, il faut donc vérifier si l'objet est valide après lui avoir appliqué les données soumises. Si l'objet est valide alors on peut effectuer le traitement, comme une insertion en base de données en toute sécurité

Faille CSRF : Les attaques CSRF sont des méthodes par lesquelles un utilisateur malveillant

Faille CSRF : Les attaques CSRF sont des méthodes par lesquelles un utilisateur malveillant tente de faire en sorte qu'un utilisateur soumettent sans le savoir des données qu'ils n'ont pas l'intention de soumettre. Le composant Forms : Intègre une protection contre les attaques CSRF. Lors de la création du formulaire un champs de type hidden est ajouté automatiquement dont la valeur est un token. Lorsque le formulaire est soumis, si la valeur du champs hidden est différent de celui généré au moment de la génération du formulaire, la validation sera non valide et le formulaire ne sera pas traité.

Réalisations

Réalisations

Refresh Lecture mot à mot

Refresh Lecture mot à mot

Controller page echange :

Controller page echange :

Template Echange :

Template Echange :

Categorie. Repository :

Categorie. Repository :

Api. Get. Categorie. Controller :

Api. Get. Categorie. Controller :

Ajax :

Ajax :

Drag & Drop :

Drag & Drop :

Scroll. Box :

Scroll. Box :

Jeu d’essaie

Jeu d’essaie

Composant Fixture : Installation : Commande Fixtures : Class User. Fixtures :

Composant Fixture : Installation : Commande Fixtures : Class User. Fixtures :

Class User. Fixtures :

Class User. Fixtures :

Résultat du jeu d’essaie :

Résultat du jeu d’essaie :

Veille sur les vulnérabilités de sécurité

Veille sur les vulnérabilités de sécurité

Protocole SSL/TLS : Le protocole SSL (Secure Socket Layer) a été créé en 1994

Protocole SSL/TLS : Le protocole SSL (Secure Socket Layer) a été créé en 1994 par Netscape, pour sécurisé le transfert de données sensible. Le protocole TLS est une évolution du SSL La méthode consiste à chiffrer les données qui transitent entre un client et un serveur, en utilisant des fonctions de hachage utilisées pour authentifier la signature électronique des certificats (obtenue auprès d'une autorité tierce) qui permet la communication au moyen de clé asymétrique (clé publique et clé privée).

Attaque par force brute : Un utilisateur malveillant essaye tous les mots de passe

Attaque par force brute : Un utilisateur malveillant essaye tous les mots de passe possibles d'où sont nom attaque par force brute. Une des alternatives simple et efficace pour diminuer et ralentir ce type d'attaque est la mise en place d'une limite aux tentatives de connexion et la demande aux utilisateurs du choix d'un mot de passe complexe et son changement régulier.

La faille CRLF(Carriage Return Line Feed) Permet comme son nom l'indique d'effectuer un retour

La faille CRLF(Carriage Return Line Feed) Permet comme son nom l'indique d'effectuer un retour chariot dans un champ de type input ou textarea. Elle est le plus souvent utilisée sur des formulaires de réinitialisation de mot de passe. Pour se protéger de ce genre d'attaques le moyen le plus efficace et simplement de supprimer les retours à la ligne lors du traitement. Ou en vérifiant si l'adresse fournie est bien valide, grâce à la fonction filter_var en utilisant pour 2 em paramètre FILTER_VALIDATE_EMAIL.

Evolutions

Evolutions

Système d'historique : ● Suivi de l'évolution de l'enfant. ● Mise en place d'une

Système d'historique : ● Suivi de l'évolution de l'enfant. ● Mise en place d'une base de données Mongo. Db. ● Création d'un système de statistiques. Système d'enregistrement vocale : ● Intégrer un système d'enregistrement vocale. ● Mise en place d'un spectrogramme permettant aux professionnels de suivre l'évolution de la ● prononciation de l'enfant. Design : ● Amélioration esthétique de l'application. ● Amélioration des pictogrammes. Système de niveaux: ● Mise en place de plusieurs niveaux de difficulté en fonction de l'enfant.

Recherche en anglais

Recherche en anglais

Merci

Merci