-
Notifications
You must be signed in to change notification settings - Fork 2
Analyse technique
[Schéma représentant l'architecture de l'application Web]

Les pages de l'application web permettent d'informer le client en fournissant la page web proprement dite (point 2) et également de récupérer des informations qu'il aura données comme pour la réservation d'une voiture par exemple (point 1). Le type données échangées sont des strings.
Les pages utilisateurs sont visibles à l'admin pour des raisons de maintenance mais également des pages administratives qui lui permettent de maintenir l'état du site à jour. L'administrateur peut donner des informations au frontend (point 10) comme pour l'ajout de voiture par example et aussi en reçevoir comme l'affichage des pages (point 9). Le type données échangées sont des strings.
Le frontend peut , grâce à l'API, interragir avec le Backend , via le biai de endpoint ou point de terminaison, pour permettre au frontend d'initier des appels de ressources et des envois de ressources vers la DB. Le frontend et l'API communique entre eux avec des objets.
L'API peut rediriger les requêtes initiées par le frontend avec le endpoint (et donc par un utilisateur du site) , et les transformer en requête SQL proprement dites. L'API utilise des requêtes HTPP (methodes POST, GET, etc) pour interragir avec le backend.
Le backend peut, via des requêtes SQL insérer des données dans la DB (point 7) ou seulement en récupérer (point 8).
Express est un framework sortit en 2010, qui permet de construire des applications web basées sur nodeJS. Grâce aux méthodes utilitaires http et de middleware qui sont à disposition, la création d'une API est simple et rapide.
- NodsJs-Express travaille en asynchrone ce qui lui permet de continuer son exécution et de ne pas devoir attendre qu'un module ai fini,
- Il est fort utilisé dans les grandes entreprises,
- Il possède une communauté très active de développeurs,
- Il peut prendre en charge plusieurs requêtes du à sa caractéristique asynchrone,
- Il intègre un serveur.
- La caractéristique asynchrone d'Express lui procure une vitesse d'exécution et des performances plus importantes que PHP,
- La courbe d'apprentissage de Symphony est extrêmement rude, en effet ce framework est connu pour être assez dur à comprendre,
- L'initialisation d'un projet avec Express est extrêmement simple et par extension plus simple qu'avec symfony,
- L'asynchronicité d'Express permet également une meilleur gestion des requêtes qu'avec Symphony.
- NodeJs offre la possibilité de travailler en asynchrone contrairement à Django,
- Cette caractéristique rend Express beaucoup plus rapide que Django,
- Express est plus adapté à des petits projets de développement contrairementà Django qui est plus utile et utilisé dans les grands pojets web,
- Beaucoup de module fonctionnant avec Django sont assez ancien et provoque parfois des problèmes compatibilité avec des modules plus récent. Ce problème est moins présent avec express.
- Express n'impose pas d'architecture spécifique pour les websApps, le développeur est libre de choisir (avec django on travaille avec le model MVT).
-
/backend: accueillera tous les fichiers js et sql du backend de notre application -
/controllers: accueillera tous les fichiers js qui vont effectuer les requêtes vers la base de données et obtenir les reponses -
/middlewares: acceuillera tous les fichiers js qui vont vérifier les requêtes (ex authentification de l'utilisateur via token ) -
/routes: acceuillera tous les fichiers js qui vont contenir nos routes et faire la liaison avec le dossier controller -
/app.js: fichier d'initialisation de l'application express contient tous les middlewares pour effectuer des requêtes vers des routes -
/server.js: Fichier d'initialisation du server http -
/db.sql: Fichier sql de creation de la base de données postgresql -
/db_dump.sql: Fichier sql qui contient toutes les modifications effectué depuis le départ sur la base de données postgresql
/backend
/controllers
car.js
/middleware
/routes
car.js
app.js
db.js
db.sql
db.dump.sql
package.json
package-lock.json
server.js
[Diagramme de classes] [Explication textuelle du diagramme de classes]
[Explication du fonctionnement du backend. Par exemple : Explication du "voyage" d'une requête entre la réception de la requête sur une route donnée et l'envoi d'une réponse]
Prenons le cas où l'utilisateur arrive sur la page cars du site et souhaite afficher toutes les voitures disponible. Au chargement de cette page, une requête vers la route GET /cars.
La requête transmise arrive dans le fichier app.js et est transmise à la route cars
La route cars à son tour la transmet au controlleur getCars qui va effectuer la requête vers la base de données
Une fois les données récupérées de la DB, elles sont directement transmises vers le frontend sous format json via la réponse