npm install jquery --save
npm install --save-dev @types/jquery
npm install --save bootstrap
npm install font-awesome --save
npm install ngx-cookie --save
npm install ngx-cookie-service --save
npm i ng2-tooltip-directive
npm i --save angular4-files-upload
ng build --prod
- Système : Raspberry Pi 3
- Serveurs d'applications Java EE: WildFly 11
- 2 * Bases de données MariaDB 10 (Master-Slave)
Servlets Disponible:
http://bookking.ovh/Login
operation sur les connexion utilisateurshttp://bookking.ovh/User
operation sur les comptes utilisateurshttp://bookking.ovh/Book
requête sur un ou des livres proposé à la ventehttp://bookking.ovh/Cart
operation (et synchro) sur le contenu du panier utilisateurhttp://bookking.ovh/Command
operation et récupération des commandes utilisateurhttp://bookking.ovh/Init
récupère un package avec des informations d'initialisation
Liste des Json acceptés par l'API en entrée (client -> server):
BookSearchJson: Précise des critère de recherche pour un ou des livres
- Exemple:
{"title":"","author":"","maxPrice":0,"minPrice":0,"type":"ANY","genre":"ANY","anySearch":"mots dans le désordre"}
- Paramètres :
title
titre ou partie du titre du/des livres recherchésauthor
nom de l'auteur ou partie du nom de l'auteur des livres recherchésmaxPrice
prix maximum (inclu) des livres recherchésminPrice
prix minimum (inclu) des livres recherchéstype
type du livre recherché, doit correspondre à un type existant ou vide ou ANYgenre
genre du livre recherché, doit correspondre à un genre existant ou vide ou ANYanySearch
mots appartenant au résumé, au nom de l'auteur ou du titre d'un livre, l'ordre n'a pas d'importance. La règle de recherche est "au moins 1 présent", les mots de moins de 3 lettres sont ignorés. Les conditions précédente restent vérifiées.
CartItemJson: Précise un livre du panier et sa quantité
- Exemple:
{"idBook":1,"quantity":42}
- Paramètres :
idBook
id du livre du panierquantity
quantité du livre ayant l'id spécifié dans le panierisInStock
true si l'article est en stock, faux sinon.
CommandGetJson: Précise des dates entre lesquelle recherche des commandes
- Exemple:
{"start":"2017-12-01","end":"2017-12-30"}
- Paramètres :
start
date (incluse) à partir de laquelle rechercherend
date (incluse) à partir de laquelle arréter la recherche
CartJson: Précise le panier utilisateur
- Exemple:
{"items":[{"idBook":1,"quantity":42}]}
- Paramètres :
items
tableau de CartItemJson
UserJson: Précise les informations d'un utilisateur
- Exemple:
{"name":"Paul Carretero","email":"paul@carretero.ovh","password":"123456","address":"47 rue marius charles 38420 Domene"}
- Paramètres :
name
nom (ou prénom et nom) de l'utilisateurpassword
mot de passe de l'utilisateuraddress
address de l'utilisateur
BookPostJson: représentation des données pour l'ajout d'un livre
- Exemple:
{"genre":"GENRE1","type":"ANY","author":"JC Van Damme","price":20.0,"title":"JCVD","picture":"base64_encoded_picture","summary":"Réflexion sur la vie de JCVD","stock":42}
- Paramètres :
genre
genre du livretype
type du livreauthor
auteur du livreprice
prix du livretitle
titre du livrepicture
image de la couverture du livre encodé en base64summary
résumé du livre
CommandReqJson: Précise le panier utilisateur
- Exemple:
{"address":"adresse de livraison"}
- Paramètres :
address
une adresse de livraison, éventuellement vide ou null
Liste des Json retourné par l'API en sortie (server -> client):
GenericResponseJson: Réponse générique de l'API représentant l'échec ou la réussite d'une requête
- Exemple:
{"success":true,"message":""}
- Paramètres :
success
true si la requête client à réussi, false sinonmessage
permet de préciser la raison d'un échec, peut être vide
UserJsonResponse: Réponse représentant les données d'un utilisateur
- Exemple:
{"name":"Paul Carretero","email":"paul@carretero.ovh","address":"47 rue marius charles 38420 Domene","success":true,"message":""}
- Paramètres :
name
nom (ou prénom et nom) de l'utilisateuraddress
address de l'utilisateursuccess
truemessage
unused
BookJson: Réponse représentant les données d'un livre
- Exemple:
{"genre":"GENRE1","type":"ANY","author":"JC Van Damme","price":20.0,"title":"JCVD","picture":"base64_encoded_picture","summary":"Réflexion sur la vie de JCVD","idBook":1,"stock":42,"pagesAvailable":5,"resultsAvailable":42,"success":true,"message":""}
- Paramètres :
genre
genre du livretype
type du livreauthor
auteur du livreprice
prix du livretitle
titre du livrepicture
image de la couverture du livre encodé en base64summary
résumé du livreidBook
id du livresuccess
truemessage
unused
BookListJson: Réponse représentant les données d'une liste livre (éventuellement issue d'une recherche)
- Exemple:
{"books":[{"genre":"GENRE1","type":"ANY","author":"JC Van Damme","price":20.0,"title":"JCVD","picture":"base64_encoded_picture","summary":"Réflexion sur la vie de JCVD","idBook":1,"stock":42,"success":true,"message":""}],"pagesAvailable":5,"resultsAvailable":42,"success":true,"message":""}
- Paramètres :
books
un tableau contenant des BookJsonpagesAvailable
Nombre de page disponible pour cette rechercheresultsAvailable
Nombre de livre totaux correspondant à la recherchesuccess
truemessage
unused
CartJsonResponse: Réponse représentant les livres dans le panier d'un utilisateur connecté
- Exemple:
{"quantities":{"1":42},"books":{"1":{"genre":"GENRE1","type":"ANY","author":"JC Van Damme","price":20.0,"title":"JCVD","picture":"base64_encoded_picture","summary":"Réflexion sur la vie de JCVD","idBook":1,"stock":42,"success":true,"message":""}},"success":true,"message":""}
- Paramètres :
quantities
un tableau associatif associant l'id d'un livre à sa quantitébooks
un tableau associatif associant l'id d'un livre à son BookJsonsuccess
truemessage
unused
CommandJson: Réponse représentant une commande d'un utilisateur
- Exemple:
{"date":"2017-11-19","idCmd":12,"books":{"1":{"genre":"GENRE1","type":"ANY","author":"JC Van Damme","price":20.0,"title":"JCVD","picture":"base64_encoded_picture","summary":"Réflexion sur la vie de JCVD","idBook":1,"stock":42,"success":true,"message":""}},"prices":{"1":20.0},"quantities":{"1":42},"success":true,"message":""}
- Paramètres :
date
date de la commandeidCmd
id de la commandebooks
tableau de BookJsonitems
tableau de CartItemJsonshippingCost
cout de livraisonshippingAddress
addresse de livraisoninvoiceAddress
nom + addresse de facturationsuccess
truemessage
unused
CommandListJson: Réponse représentant la liste des commandes d'un utilisateur
- Exemple:
{"commands":[{"date":"2017-11-19","idCmd":12,"books":{"1":{"genre":"GENRE1","type":"ANY","author":"JC Van Damme","price":20.0,"title":"JCVD","picture":"base64_encoded_picture","summary":"R�flexion sur la vie de JCVD","idBook":1,"stock":42,"success":true,"message":""}},"prices":{"1":20.0},"quantities":{"1":42},"success":true,"message":""}],"success":true,"message":""}
- Paramètres :
commands
tableau de CommandJsonsuccess
truemessage
unused
InitResponseJson: Réponse représentant des données statiques pour l'initialisation de l'application
- Exemple:
{"mostBuyBook":{"genre":"POLICIER","type":"ROMAN","author":"Gail Carriger","price":7.0,"title":"Etiquette et espionnage","picture":"base64 png picture","summary":"summary","idBook":2,"stock":2,"success":true,"message":"","serveurUrl":"127.0.0.1"},"randomBook":{"genre":"POLICIER","type":"MANGA","author":"Tsukasa Hojo","price":8.5,"title":"City Hunter, tome 12","picture":"base64 png picture","summary":"summary","idBook":7,"stock":2,"success":true,"message":"","serveurUrl":"127.0.0.1"},"newestBook":{"genre":"INFORMATIQUE","type":"MANUEL","author":"Richard Lassaigne, Michel de Rougemont","price":21.9,"title":"Logique et fondements de l\u0027informatique","picture":"base64 png picture","summary":"summary","idBook":9,"stock":2,"success":true,"message":"","serveurUrl":"127.0.0.1"},"min":6,"max":23,"success":true,"message":"","serveurUrl":"127.0.0.1"}
- Paramètres :
mostBuyBook
livre le plus achetérandomBook
livre aléatoirenewestBook
dernier livre ajoutémin
prix minimum des livresmax
prix maximum des livressuccess
truemessage
unused
GET: Informations semi-static sur les livres et l'application
- paramètre : -
- retourne : InitResponseJson
GET: Information sur l’authentification de l'utilisateur
- paramètre : -
- retourne : GenericResponseJson
DELETE: Déconnexion d'un utilisateur
- paramètre : -
- retourne : GenericResponseJson
PUT: Connexion d'un utilisateur
- paramètre : UserJson (seulement email et mot de passe requis)
- retourne : GenericResponseJson
POST: réinitialise le mot de passe de l'utilisateur associé à un email. Envoi un email à cet utilisateur pour l'informer de son nouveau mot de passe.
- paramètre : UserJson (seulement email requis)
- retourne : GenericResponseJson
GET: Permet de récupérer les données d'un utilisateur connecté
- paramètre : -
- retourne : UserJsonResponse
POST: Créer un nouvel utilisateur, le connecte et lui envoie un email de bienvenu avec un rappel de ses informations (sauf mot de passe).
- paramètre : UserJson
- retourne : GenericResponseJson
PUT: Met à jour les informations d'un utilisateur connecté
- paramètre : UserJson (tous les champs sont requis)
- retourne : GenericResponseJson
GET: Permet de récupérer les données d'un livre par son id
- paramètre : url :
/Book/<idBook>/
- retourne : BookJson correspondant à l'id du livre spécifiée
PUT: Recherche une liste de livre correspondant au type spécifié (si spécifié), aux genres spécifiés (si spécifiés) dans la fourchette de prix spécifiée (si spécifiée) et ayant un titre correspondant au titre spécifié (si spécifié) ou à l'auteur spécifié (si spécifié).
- paramètre : BookSearchJson
- retourne : BookListJson
POST: En tant qu'administrateur connecté, permet d'ajouter un livre
- paramètre : BookPostJson
- retourne : GenericResponseJson
GET: Permet de récupérer le panier d'un utilisateur connecté
- paramètre : -
- retourne : CartJsonResponse
POST: Initialise le panier d'un utilisateur nouvellement connecté avec son panier local.
- paramètre : CartJson
- retourne : GenericResponseJson
PUT: Ajoute, met à jour ou supprime un article du panier d'un utilisateur connecté (si quantité <= 0 alors suppression)
- paramètre : CartItemJson
- retourne : GenericResponseJson
GET: Permet de récupérer la liste des commandes d'un utilisateur connecté
- paramètre : -
- retourne : CommandListJson
GET: Permet de récupérer les données d'une commande d'un utilisateur connecté
- paramètre : url :
/Command/<idCmd>/
- retourne : CommandJson
POST: Créer une nouvelle commande avec le contenu du panier d'un utilisateur connecté. Envoie un mail de confirmation à l'utilisateur connecté.
- paramètre : CommandReqJson
- retourne : GenericResponseJson
PUT: En tant qu'administrateur, permet de récupérer la liste des commandes entre les dates spécifiés
- paramètre : CommandGetJson
- retourne : CommandListJson