Dans le cadre de ma formation de Développeur Web Fullstack JavaScript suivie à l'école O'clock, j'ai réalisé le projet PetsitTop en équipe. Il s'agit d'un projet complet (2 personnes en front et 2 personnes en back) développé en méthode Agile (4 sprints) pendant 1 mois.
J'ai travaillé sur la partie Backend en réalisant l'API de l'application. Le développement c'est fait principalement en pair-programming avec Axelle.
Documentation de l'API : https://petsitterfriendly-production.up.railway.app/api-docs/
✨ Voici notre site PetsitTop ! ✨
N'hésitez pas à cloner ce dépôt GitHub !
Installation des dépendances :
npm iLancement du serveur :
npm run devPetsitTop est une plateforme d'entraide et de mise en relation entre particuliers pour du "petsitting" : la garde d'animaux domestiques.
2 rôles existent pour tout utilisateur (qui peut choisir d'avoir un seul rôle ou les deux):
- "Petowner" : propriétaire d'animaux ayant besoin de les faire garder
- "Petsitter" : personne acceptant de garder des animaux domestiques
Tout visiteur (non connecté) du site peut rechercher des profils de Petsitters disponibles, en filtrant par département et par type d'animal à faire garder.
Une fois connecté, un utilisateur ("user") peut :
-
afficher son profil et celui des autres utilisateurs
-
modifier/supprimer son profil
-
contacter d'autres utilisateurs (affichage de l'adresse email de contact)
-
accéder à l'ensemble des annonces postées par des Petowners pour leur recherche de Petsitter (filtre possible par département)
-
un Petowner connecté va pouvoir aussi :
- ajouter/modifier/supprimer ses animaux ("pets") => à venir
- ajouter/modifier/supprimer des annonces de recherche de petsitter ("ads")
-
un Petsitter connecté va pouvoir aussi :
- spécifier s'il est disponible actuellement (avec détails de sa disponibilité et types d'animaux qu'il accepte de garder)
Nous avons travaillé à 4 sur ce projet.
🚀 La réalisation d'une application web,
🚀 de sa conception au déploiement d'un MVP,
🚀 en méthodologie Agile,
🚀 pendant 1 mois,
🚀 en équipe.
Voici plus d'informations sur les membres de notre équipe :
- DAÏ Inès
const daiInes = {
first_name: "Inès",
last_name: "Daï",
project_main_role: "Front-end",
superpowers: [
"rappelle à l'équipe de prendre des pauses",
"réalise des GIFs de chats"
]
};Son profil GitHub : github.com/ines-dai
Son profil Linkedin: linkedin.com/in/ines-a-d
Son portfolio : noridoki.fr
- HONORÉ Simon
const honoreSimon = {
first_name: "Simon",
last_name: "Honoré",
project_main_role: "Front-end",
superpowers: [
"a su trouver le nom du site",
"fier Petowner d'un adorable chien"
]
};Son profil GitHub : github.com/Simon-Honore
Son profil Linkedin: linkedin.com/in/simon-honore/
- KELLER Catherine
const kellerCatherine = {
first_name: "Catherine",
last_name: "Keller",
project_main_role: "Back-end",
superpowers: [
"n'hésite pas à passer du back-end au front-end",
"aime et abuse des post-its"
]
};Son profil GitHub : github.com/CatherineKeller
Son profil Linkedin: linkedin.com/in/kellercatherine
Son portfolio : catherine-keller.fr
- SKICA Axelle
const skicaAxelle = {
first_name: "Axelle",
last_name: "Skica",
project_main_role: "Back-end",
superpowers: [
"traductrice officielle des commentaires de code",
"a appris le crochet et le tricot en autodidacte"
],
};Son profil GitHub : github.com/Axelle-SKICA
Son profil Linkedin: linkedin.com/in/axelle-skica
| ROUTE | METHODE | FONCTIONNALITE |
|---|---|---|
| /login | POST | connecter un user à son compte |
| /users?department=&pet_type= | GET | récupérer tous les users "petsitters" disponibles (role=petsitter & availability=true) avec filtre sur "department" (localisation) et "pet_type" (type d'animal à faire garder) |
| /users | POST | créer un nouvel utilisateur (inscription) |
| /users/:id | GET | récupérer les infos d'un user |
| /users/:id | PUT | modifier un user |
| /users/:id | DELETE | supprimer un user |
| /user/:id/pets | GET | récupérer tous les animaux ("pets") d'un user |
| /user/:id/pets | POST | créer un "pet" pour un user |
| /pets/:id | PUT | modifier un "pet" |
| /pets/:id | DELETE | supprimer un "pet" |
| /ads | GET | récupérer les détails de l'ensemble des annonces ("ads") existantes |
| /user/:id/ads | GET | récupérer toutes les annonces "ads" d'un user |
| /user/:id/ads | POST | créer une "ad" pour un user |
| /ads/:id | PUT | modifier une "ad" |
| /ads/:id | DELETE | supprimer une "ad" |
Ce projet a été initié dans le cadre de notre formation chez O'clock, et nous avions donc pour objectif de déployer un MVP au bout de 1 mois.
Mais nous avons également réfléchi à de possibles évolutions pour notre application, que nous avons regroupées par possibles lots pour répartir la charge de travail :
-
V2 :
- Gestion des dates avec ajout des disponibilités (datepicker, du… au…)
- Ajout de la liaison animal / annonce
- Possibilité de télécharger une photo de profil utilisateur / animal
- Inscription avec comptes Google/Apple
- Gestion de mise en favoris
-
V3 :
- Ajout d’un rôle Administrateur (CRUD de tous les users/pets/ads/roles/pet_types, modération des annonces, des comptes...)
- Envoi d’emails (ex : confirmation d’un compte...)
- Ajout de “mot de passe oublié ?” avec envoi d'email pour en choisir un nouveau
- transformation des éléments de texte sur le profil en "badges" (ex : "OK chiens", "OK chat"…)
-
V4 :
- formulaire d'inscription en deux parties : 1 obligatoire + 1 facultative (bouton ignorer) => complétion du profil sous forme de slide avec barre de progression
- créations de profils plus complets pour les animaux (Photos, nom, âge, personnalité/comportement, ententes, soins particuliers, habitudes alimentaires, besoins (exercice...)
-
V5 :
- filtre de recherche par localisation selon un rayon géographique autour d’une adresse
- affichage des petsitters sur une carte lors de l’affichage des résultats d’une recherche
-
V6 :
- Fonctionnalité de messagerie par "chat" entre deux utilisateurs
- confirmation de créneau / prestation sur le site
- une fois la prestation faite, le petsitters et le propriétaire laissent leurs avis
- affichage des avis petsitters et animaux
- modération des avis par les administrateurs
-
V7 :
Bulle de notification pour l'utilisateur :- quand un avis a été donné sur lui
- quand une demande de petsitting lui a été faite...
-
V8 :
- compte professionnel avec paiement en ligne
- abonnement ou paiement ponctuel pour mettre en avant son profil dans les recherches