Skip to content
Snippets Groups Projects
Name Last commit Last update
backend
frontend
README.md
STUDENTS.md

Travail Pratique

Ceci est le projet exemple pour la réalisation du travail pratique (TP) et le dépôt Git de référence pour les étudiants. Il sera complété au fur et à mesure des notions enseignées pendant le cours.

Informations pour les étudiants

Le fork de ce repository doit contenir votre projet pour les cours qui sera évalué sur la partie frontend pour le cours Applications Web et la partie backend pour le cours Architectures Web. Pour la marche à suivre, veuillez vour référer au document nommé STUDENTS.md

Les critères d'évaluation sont explicités ici: https://gitedu.hesge.ch/jeremy.gobet/app-et-archi-web

La suite contient la documentation du projet exemple que vous devez adapter et compléter pour le vôtre.


Description du projet

Ce projet est une application Web permettant à l'utilisateur de consulter les blagues de Chuck Norris, de voter pour ses blagues préférées et de consulter les blagues les plus appréciées par la communauté.

Réccupérer le projet

Le projet est disponible sur l'hébergement Git (gitedu.hesge.ch).

Cloner le projet localement avec la commande git suivante:

git clone ssh://git@ssh.hesge.ch:10572/jeremy.gobet/app-et-archi-web-tp-2020.git

Structure

Le projet contient deux dossiers:

  • frontend: Contient le site public
  • backend: Contient le serveur Node

Démarrer le serveur

La partie publique est servie par le serveur sur Node. Vous devez avoir Node installé sur votre machine pour démarrer cette application Web.

Accédez au dossier contenant le serveur Node

cd backend/

Installez les dépendances

npm install

Démarrez le serveur Node

node server.js

Vous pouvez ensuite visualiser le site en local sur un navigateur: localhost:8080

Stopper le server

Pour stopper le serveur Node, utilisez la commande CTRL + C

Architecture du projet

          +------------+
          |            |
          |            |
       +--+  Frontend  +--+
       |  |            |  |
       |  |            |  |
       |  +------------+  |
       |                  |
       |                  |
       |                  |
       |                  |
       v                  v
+-------------+    +-------------+
|     API     |    |     API     |
+-------------+    +-------------+
|             |    |             |
|   Backend   |    |    ICNDB    |
|   NODE.JS   |    |  API public |
|             |    |             |
+-------------+    +-------------+
  • Frontend: Projet HTML5, CSS3, JS
  • Backend: Exposition d'une API REST sur NODE.JS pour la gestion des notations
  • ICNDB: API Rest public pour réccupérer les blagues de Chuck Norris (https://api.icndb.com)

Fonctionnalités

Voici la liste des fonctionnalités de l'Application Web:

  • Récupération des blagues sur l'API public (non-implémenté)
  • Récupération des dernières blagues publiées (non-implémenté)
  • Gestion de la notation de blagues (non-implémenté)
  • Récupération des blagues les mieux notées par les utilisateurs (non-implémenté)
  • Récupération des blagues notées par un utilisateur (non-implémenté)

L'application ne dispose pas d'une persistance de données. Une fois le serveur stoppé, toutes les données sont perdues.

Une authentification sans mot de passe permet l'identification de l'utilisateur via l'utilisation de son adresse e-mail.

Interface REST API

Voici l'API REST CRUD exposée par le backend

Verbe HTTP Endpoint Données Description
GET emails/ Retourne la liste des mails des utilisateurs
GET evaluated-jokes/ Retourne les blagues les mieux notées
GET evaluated-jokes/:email email* Retourne les blagues notées par l'utilisateur
POST evaluated-jokes/ email*, id* Ajout d'une nouvelle note à la blague (id)
PUT evaluated-jokes/ email*, id* Modification de la note de la blague (id)
DELETE evaluated-jokes/ email*, id* Suppression de la note de la blague (id)

* Obligatoire

Contact

Assistant

Applications Web

Architectures Web