CAW1 2019 Projet de Dylan FAYANT et Marylie LIMOUSIN

De Ensiwiki
Aller à : navigation, rechercher
Image: 200 pixels
Titre du projet Pitoupi
Cadre Projet Web 2AA 2019
Page principale CAW1_Demonstration_Realisation

Équipe Dylan FAYANT, Marylie LIMOUSIN
Encadrants Sébastien Viardot


Pitoupi est une application WEB de mise en relation consacrée à la reproduction des animaux.

L'application a été développée dans le cadre d'un projet de développement d'application web en deuxième année d'apprentissage à l'ENSIMAG, par Dylan FAYANT et Marylie LIMOUSIN.

Présentation du projet

Screencast : https://www.youtube.com/watch?v=cRNEhVUCV98&feature=youtu.be

Description

Pitoupi est une application WEB permermettant de mettre en relation des maîtres désireux de faire reproduire leurs animaux. Les maîtres peuvent ajouter tous leurs animaux (espèce, race, âge, photo, description, sexe), sélectionner les animaux qui les intéressent pour la reproduction par un système de like/dislike, et voir la fiche d'animaux compatibles si les maîtres de ces derniers ont aussi validé leur animal. Pitoupi dispose d'un système de météo pour que les utilisateurs puisse savoir quel temps il fait dans le ville (afin de sortir ou non leurs animaux).

Objectifs

[V] Gestion des utilisateurs et des comptes (création de compte, connexion, déconnexion)
[V] Ajouter, voir, modifier, supprimer un animal
[V] Rechercher des Ani'Matchs pour un animal
[±] Consulter les Ani'Matchs d'un animal et contacter le propriétaire (manque le contact des propriétaires)
[x] Proposer une interface d'administration pour valider ou non les animaux et pour ajouter des espèces et des races (nous n'avons pas eu le temps)

Modélisation

Cas d'usage

UseCase (1).png

Modèle de données

ModeleBDD.png

Balsamiq

Afin de modéliser le visuel de nos pages, nous avons utilisé Balsamiq : Fichier:Pitoupi Balsamiq.pdf

Architecture

API

Choix techniques

Back-end

Le back-end a été réalisé avec la technologie Node.js et le framework Express.

Front-end

Le front-end a été réalisé avec la technologie Angular et le framework Bootstrap.

Tests

Les tests front-end ont été réalisé à partir de Selenium (script .side présent à la racine du GitLab).

Les tests back-end ont, quant à eux, été réalisé à partir de Chai et de Chai HTTP (répertoire : /backend/tests)

Docker

Tableau récapitulatif
Routes GET POST PUT DELETE
/compte Renvoie la liste des comptes utilisateurs
CR 200
Crée un compte utilisateur
CR 200
- -
/compte/email - Retourne un compte associé à l'adresse <adresse_mail> passée dans le body sous format JSON
CR 200
- -
/compte/<id> Retourne un compte associé à l'identifiant <id>
CR 200
Ajoute l'animal <animalId> passé dans le body sous format JSON au compte <id> passé dans l'URL
CR 200
Modifie le compte associé à l'identifiant <id>
CR 200
Supprime le compte associé à l'identifiant <id>
CR 200
/compte/<id>/check_password - Vérifie si le mot de passe <mot_de_passe> passé dans le body sous format JSON correspond à celui du compte <id> passé dans l'URL
CR 200
- -
/animal Renvoie la liste des animaux
CR 200
Crée un animal
CR 200
- -
/animal/<id> Retourne un animal associé à l'identifiant <id>
CR 200
Défini la race <raceId> passée dans le body sous format JSON à l'animal <id> passé dans l'URL
CR 200
Modifie l'animal associé à l'identifiant <id>
CR 200
Supprime l'animal associé à l'identifiant <id>
CR 200
/animal/<id>/matchsSucces Retourne la liste des ID des animaux qui ont marché avec l'animal <id> passé dans l'URL
CR 200
- - -
/animal/<id>/toMatch Retourne la liste des ID des animaux avec qui l'animal <id> passé dans l'URL doit (ou non) matcher
CR 200
- - -
/match Renvoie la liste des matchs
CR 200
Crée un match
CR 200
- -
/match/makeMatch Crée (ou modifie) un match entre l'animal <animal_matcheur> passé dans le body sous format JSON et l'animal <animal_matche> passé dans le body sous format JSON. Si c'est un like il faut mettre la variable <match> passée dans le body sous format JSON à "true" sinon à "false"
CR 200
Crée un match
CR 200
- -
/match/<id> Retourne un match associé à l'identifiant <id> passé dans l'URL
CR 200
- Modifie l'animal associé à l'identifiant <id> passé dans l'URL Supprime l'animal associé à l'identifiant <id> passé dans l'URL
/race Renvoie la liste des races
CR 200
Crée une race
CR 200
- -
/race/<id> Retourne une race associée à l'identifiant <id> passé dans l'URL
CR 200
Modifie la race associée à l'identifiant <id> passé dans l'URL pour y mettre l'espèce <especeId> passée dans le body sous le format JSON
CR 200
Modifie la race associée à l'identifiant <id> passé dans l'URL
CR 200
Supprime la race associée à l'identifiant <id> passé dans l'URL
CR 200
/espece Renvoie la liste des espèces
CR 200
Crée une espèce
CR 200
- -
/espece/<id> Retourne une espèce associée à l'identifiant <id> passé dans l'URL
CR 200
- Modifie la espèce associée à l'identifiant <id> passé dans l'URL
CR 200
Supprime la espèce associée à l'identifiant <id> passé dans l'URL
CR 200
/espece/<id>/races Retourne les races associées à l'espèce correspondant à l'identifiant <id> passé dans l'URL
CR 200
- - -