Skip to content

CatherineKeller/PetsitTop-API

Repository files navigation

PetsitTop 🐾

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.

Développement de l'API de l'application

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 ! ✨

Lancement

N'hésitez pas à cloner ce dépôt GitHub !

Installation des dépendances :

npm i

Lancement du serveur :

npm run dev

Présentation

PetsitTop 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

Fonctionnalités

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)

Technologies & outils utilisés

VSCode NPM ESLint Git Railway Trello Whimsical MOCODO

Front-end

JavaScript React Redux Vite SASS React-icons Joi Json Web tokens

Back-end

JavaScript NodeJS ExpressJS Joi Json Web tokens PostgreSQL Sqitch Swagger Insomnia

L'équipe

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

Routes API

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"

Évolutions envisagées

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

About

PetsitTop : API

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •