1.5.1 • Published 2 years ago

galery-photo-chloe v1.5.1

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

API explication

Ceci est une API utilisée dans le cadre d'un site de photographe pro. L'idée est d'implémenter un système de galeries publiques / privée. Cette api va donc permettre d'avoir des galeries stockées en base de données, qui vont contenir des images pour les galeries publiques et des images + un user particulier dans les galeries privées. Concernant OAuth2, il est implémenté via le jwt et la couche de validation au moment de la connexion est suffisamment robuste pour le contexte de l'application

ORM

L'ORM utilisé est Mongoose. J'ai choisis de partir sur un stockage sur MongoDB pour diverses raisons. Les données, schémas de données ainsi que leurs types peuvent varier au fil du temps, l'accès aux données nécessitant un pattern commun et pour finir le contexte de l'application ne visant pas à traiter un large volume de données; ces raisons m'ont menées à m'orienter vers MongoDB qui est une base de données non relationnelle comportant l'intégralité des fonctionnalités nécessaires au bon fonctionnement de cette API.

Membre du groupe :

API mise en ligne via Heroku à l'adresse suivant :

API déployée sur npm :

  • galery-photo-chloe
  • Pour l'utiliser :
    • npm i galery-photo-chloe
    • dans un fichier index.js : const app = require('galery-photo-chloe');
    • créer un fichier .env à la racine avec les bonnes données en se basant sur le .env.example
    • node index.js

Installation des dépendances :

npm install

Database :

  • Créer un fichier .env à la racine avec les bonnes données en se basant sur le .env.example

Lancement du projet :

npm run dev

Collection Insomnia & Postman

  • Les collections sont disponibles dans le dossier ./src/collections

Features :

Users

  • Inscription et connexion d'un utilisateur avec gestion du role processor(admin) / user.
  • Voir l'utilisateur actif
  • Voir tous les utilisateurs (admin)
  • Supprimer un utilisateur (admin)
  • Toutes les routes sont protégées avec un JWT.

Posts

  • Ajouter une galerie (admin)
  • Supprimer une galerie (admin)
  • Mettre à jour une galerie (admin)
  • Voir toutes les galeries
  • Voir une galerie

Comptes enregistrés

  • Administrateur
    • admin@admin.com
    • Admin123
  • User
    • random@test.com
    • Password@123

Middlewares :

  • authenticated : Un middleware qui nous permet de savoir si un utilisateur est authentifié, par conséquent maitriser l'accés à certains endpoints.

  • jwt : Un middleware permettant de générer un token, sur la base des informations fournies par l'utilisateur et de l'authentifier en le comparant.

  • error : Un middleware permettant d'avoir une erreur de fallback lorsqu'aucune des précédentes erreurs prises en charge n'entre dans le contexte de cette dernière

  • validation : Un middleware permettant de passer tout nos schémas de validation utilisés par une méthode d'un controlleur

Technologies utilisées :