/ProjetWebService

Projet scolaire WebService

Primary LanguageTypeScript

Projet

AUDABRAM Luc
FONTAINE Quentin
HUAUT Antonin

Architecture

Nous avons trois webservices :

  • LibraryService : s'occupe de gérer la bibliothèque : livres, auteurs, éditeurs et emprunts
  • UserService : gère les utilisateurs et les rôles
  • ProxyService : point d'entrée de l'application. Les requêtes vers le LibraryService/UserService doivent passer ce service. Il gère aussi l'authentification et les accès : est-ce que tel utilisateur peut effectuer telle action.
    Il sert aussi du front-end réalisé en React.

Nous avons mis en place notre architecture sur https://ensiws.maner.fr/. Cette adresse pointe vers le proxy. On peut accéder par le proxy via :

Les services LibraryService et UserService sont sur le même serveur que le proxy mais un pare-feu a été mis en place sur la machine pour n'autoriser que les ports HTTP et HTTPS, avec une redirection du domaine ensiws sur le ProxyService.
Cela permet d'être sûr que personne ne contournera le système d'authentification et de gestion des permissions présent sur le ProxyService.

Pour chaque entité (Auteur, Editeur, Livre, Emprunt, Utilisateur), il est possible de :

  • Récupérer toutes les entités
  • Récupérer toutes les entités suivant : name pour Auteur - Editeur - User, title pour Livre - Impossible pour l'emprunt
  • Récupérer une entité par id
  • Ajouter une entité
  • Mettre à jour une entité
  • Supprimer une entité

Authentification token magique

Nous avons fait un choix d'avoir un token magique pour avoir les privilèges admins "à la volée".
Cela permet de créer des utilisateurs comme on le souhaite. D'ailleurs, le menu d'inscription permet de choisir son rôle et de créer un administrateur si on le souhaite.
Bien sûr, ceci a été réalisé dans un cadre scolaire et ne serait pas fait sur un projet réel !
Ce token est stocké dans les fichiers .env.

Postman

Nous avons réalisé 136 tests avec Postman.
Nous avons envoyé un lien pour rejoindre notre Workspace par email.
Sinon, il y a aussi les fichiers Postman disponible, il suffit de les importer.
Il ne faut pas oublier d'activer un environnement (local ou à distance).

Executer les services

Des exécutables .sh et .bat sont disponibles pour exécuter les commandes indiquées dans chaque dossier.

LibraryService

Développé et testé avec Oracle JDK 11

cd LibraryService/
mvn clean install
java -jar target/LibraryService-0.0.1-SNAPSHOT.jar

UserService

Développé et testé avec Node 12 & Node 14

cd UserService/
npm install
npm start

ProxyService

Développé et testé avec Deno 1.14
Lien d'installation : https://deno.land/#installation

cd ProxyService/
deno run --allow-net --allow-env --allow-read=./ src/app.ts

Frontend

Développé et testé avec Node 12 & Node 14
Le dossier de sorti est configuré pour être dans ../ProxyService/front/

cd library_client/
npm install
npm run build

Images

Connexion

Inscription

Inscription (succès)

Page d'accueil (rôle : emprunt)

Page d'accueil (rôle : admin)

Liste des éditeurs

Edition d'un éditeur

Edition d'un éditeur (succès)

Ajout d'un éditeur

Suppression d'un éditeur

Suppression d'un éditeur (erreur)

Liste des auteurs

Liste des livres

Edition d'un livre

Ajout d'un livre

Suppression d'un livre

Liste des utilisateurs

Ajout d'un utilisateur

Edition d'un utilisateur

Suppression d'un utilisateur

(Updated interface) Publisher with empty search field

(Updated interface) Publisher with search field

(Updated interface) Author with empty search field

(Updated interface) Author with search field

(Updated interface) Book with empty search field

(Updated interface) Book with search field

(Updated interface) User with empty search field

(Updated interface) User with search field