CAW1 2019 Projet de Tristan JULIEN et Guillaume GRAVALLON : Différence entre versions

De Ensiwiki
Aller à : navigation, rechercher
(Initialisation)
Ligne 84 : Ligne 84 :
  
 
== Architecture ==
 
== Architecture ==
 +
 +
== Tableau d'API ==
 +
 +
{| class="wikitable alternance center"
 +
|+ Tableau récapitulatif
 +
|-
 +
| scope="col" | Routes
 +
! scope="col" | GET
 +
! scope="col" | POST
 +
! scope="col" | PUT
 +
! scope="col" | DELETE
 +
|-
 +
! scope="row" | /users
 +
| <span style='color:red;'>'''admin only'''</span><br>Renvoi la liste des utilisateurs<br>CR 200
 +
| <span style='color:red;'>'''admin only'''</span><br>Ajoute un utilisateur<br>CR 201
 +
| -
 +
| -
 +
|-
 +
! scope="row" | /users/<ID>
 +
| <span style='color:red;'>'''admin only'''</span><br>Renvoi les informations de l'utilisateur <ID> s'il existe<br>CR 200 ou 404
 +
| -
 +
| <span style='color:red;'>'''admin only'''</span><br>Modifie l'utilisateur <ID> s'il existe<br>CR 200 ou 404
 +
| <span style='color:red;'>'''admin only'''</span><br>Supprime l'utilisateur <ID> s'il existe<br> CR 204 ou 404
 +
|-
 +
! scope="row" | /recipes
 +
| Renvoi la liste des recettes<br>CR 200
 +
| <span style='color:red;'>'''logged user only'''</span><br>CR 201
 +
| -
 +
| -
 +
|-
 +
! scope="row" | /recipes/<ID>
 +
| Renvoi les informations de la recette <ID> si elle existe<br>CR 200 ou 404
 +
| -
 +
| <span style='color:red;'>'''admin or author only'''</span><br>Modifie la recette <ID> si elle existe<br>CR 200 ou 404
 +
| <span style='color:red;'>'''admin or author only'''</span><br>Supprime la recette <ID> si elle existe<br> CR 204 ou 404
 +
|}
  
  

Version du 28 mai 2019 à 22:06

Lebonpiston.png
Titre du projet LeBonPiston
Cadre Projet Web 2AA 2019
Page principale CAW1_Demonstration_Realisation

Équipe Tristan JULIEN, Guillaume GRAVALLON
Encadrants Sébastien Viardot


LeBonPiston est un site de vente en ligne entre particuliers spécialisé dans la vente de motos. Les utilisateurs peuvent donc déposer des annonces de vente pour leurs motos avec de nombreux critères spécifiques à ce domaine que les autres sites ne proposent pas.

Elle a été developpée dans le cadre d'un projet de développement d'application web en deuxième année d'apprentissage à l'ENSIMAG, par Tristan JULIEN et Guillaume GRAVALLON.

Présentation du projet

Description

Lebonpiston.png

LeBonPiston est un site de vente en ligne entre particuliers spécialisé dans la vente de motos. Les utilisateurs enregistrés peuvent donc déposer des annonces de vente pour leurs motos avec de nombreux critères spécifiques à ce domaine que les autres sites ne proposent pas. Les annonces sont visibles sous forme de liste, que l'on peut trier en fonction de critères tels que le prix, la marque, ou de nombreux autres critères spécifiques à la moto qui font notre force. Un utilisateur enregistré peut supprimer son annonce quand il le souhaite ainsi qu'accéder à son profil où il retrouvera toutes ses annonces.

Toute ressemblance avec des applications existantes ou ayant existé ne saurait être que fortuite.

Cahier des charges

  • Gestion de la création / connexion de comptes.
  • Gestion d'un rôle d'utilisateur et d'un rôle d'administrateur.
  • Un utilisateur a accès à toutes les fonctionnalités CRUD pour son annonce.
  • Un utilisateur peut accéder aux différentes annonces.
  • Un utilisateur peut filtrer les annonces.
  • Un administrateur peut consulter les annonces en attente de validation.
  • Un administrateur peut valider une annonce.
  • Design responsive.
  • Tests unitaires.
  • Tests e2e.
  • Doc.

Spécifications techniques

Cas d'utilisation

Visiteur:

  • Voir la page des annonces.
  • Filtrer les annonces.
  • Voir le détail d'une annonce.
  • Créer un compte.
  • Se connecter.


Utilisateur:

  • Voir la page des annonces.
  • Filtrer les annonces.
  • Voir le détail d'une annonce.
  • Se déconnecter.
  • Voir son compte.
  • Supprimer son compte.
  • Modifier son compte.
  • Poster une annonce.
  • Voir ses annonces.
  • Modifier ses annonces.
  • Supprimer ses annonces.


Administrateur:

  • Voir la page des annonces.
  • Filtrer les annonces.
  • Voir le détail d'une annonce.
  • Se déconnecter.
  • Voir son compte.
  • Supprimer son compte.
  • Modifier son compte.
  • Voir les annonces en attente de validation.
  • Valider une annonce.
  • Refuser une annonce.


Choix techniques

Modèle de données

Webservice

Gestion des rôles

Architecture

Tableau d'API

Tableau récapitulatif
Routes GET POST PUT DELETE
/users admin only
Renvoi la liste des utilisateurs
CR 200
admin only
Ajoute un utilisateur
CR 201
- -
/users/<ID> admin only
Renvoi les informations de l'utilisateur <ID> s'il existe
CR 200 ou 404
- admin only
Modifie l'utilisateur <ID> s'il existe
CR 200 ou 404
admin only
Supprime l'utilisateur <ID> s'il existe
CR 204 ou 404
/recipes Renvoi la liste des recettes
CR 200
logged user only
CR 201
- -
/recipes/<ID> Renvoi les informations de la recette <ID> si elle existe
CR 200 ou 404
- admin or author only
Modifie la recette <ID> si elle existe
CR 200 ou 404
admin or author only
Supprime la recette <ID> si elle existe
CR 204 ou 404


Démonstration

Video.PNG

Une vidéo de démonstration de l'application est disponible en cliquant sur ce lien.

On y présente les fonctionnalités élémentaires de l'application LeBonPiston : afficher les annonces existantes, les filtrer selon différents critères, créer un compte, accéder à son profil, déposer une annonce, supprimer son annonce...

Installation

Outils nécessaires

  • Git
  • NodeJS
  • Angular-CLI
  • MongoDB

Initialisation

  • Récupérer le projet avec
    git clone https://gitlab.ensimag.fr/gravallg/lebonpiston.git
  • Se placer dans la racine du projet et lancer
    npm install
    Puis dans le dossier /server lancer également
    npm install
  • Après avoir démarré mongoDB, se placer dans le dossier "/demo" et lancer
    mongorestore --db lebonpiston /lebonpiston
  • Dans le dossier /server lancer
    nodemon server.js
  • A la racine, lancer
    ng serve
  • Le site est accessible à l'adresse "localhost:4200"

Rendu

Ce qui est demandé

  • Utilisation de framework → NodeJS/Express.
  • Gestion des rôles → Oui, un visiteur ne peut pas poster d'annonce, un utilisateur peut poster une annonce et supprimer uniquement les siennes.
  • Site adapté aux différents terminaux → Oui avec Bootstrap.
  • Tests unitaires → Oui, mis en place et un premier fichier de tests.
  • Tests fonctionnels → Oui, mis en place et un premier fichier de tests.
  • WebService externe côté serveur → Non.
  • Optionnel: API REST → Oui.
  • Optionnel: Client Angular ou vue.js → Oui, Angular.
  • Outil: Depot GitLab → Oui.
  • Outil: Integration continue → Oui, lance uniquement les tests unitaires à cause de problèmes de drivers.

Ce qu'il resterait à faire