Skip to content

Potits-chats/backend

Repository files navigation

Potits Chats: Backend

Le backend de Potits Chats, une plateforme d'adoption de chats, développée avec NestJS et Prisma.

codecov

Table des Matières

Table des Matières

Fonctionnalités

  • ⚡️ Performance : Serveur rapide et scalable grâce à NestJS et Prisma.
  • 🐱 Gestion des Chats : API complète pour gérer les données des chats disponibles à l'adoption.
  • 🔒 Sécurité : Utilisation des JWT et de helmet pour sécuriser l'application.
  • 💾 Base de données : Gestion efficace des données avec Prisma et PostgreSQL.

(retour au sommet)

Prérequis

Avant de commencer, assurez-vous d'avoir installé les éléments suivants :

  • Node.js (version 18 ou supérieure)

  • PostgreSQL (version 14 ou supérieure)

  • Serveur Frontend en cours d'exécution (voir le dépôt frontend)

(retour au sommet)

Installation

  1. Clonez le dépôt du projet :

    git clone https://github.com/potits-chats/backend.git
    cd backend
  2. Installez les dépendances du projet :

    npm install
  3. Créez un fichier .env à la racine du projet et configurez les variables d'environnement nécessaires (voir un membre de l'équipe pour obtenir les valeurs).

  4. Initialisez la base de données Prisma :

    npx prisma db pull
    npx prisma generate

(retour au sommet)

Utilisation

Pour démarrer le serveur de développement : npm run start:dev

Pour construire une version de production : npm run build

Pour exécuter Prisma Studio et gérer vos données dans une interface graphique : npm run prisma:studio

Documentation

Pour générer la documentation Swagger, démarrez le serveur puis accédez à l'URL local /swagger dans votre navigateur.

Pour générer la documentation Compodoc, exécutez la commande suivante : npm run doc

Pour visualiser la documentation, ouvrez le fichier documentation/index.html dans votre navigateur.

Il y a aussi une documentation potits-chats disponible sur le google drive de l'équipe.

(retour au sommet)

Technologies

Ce projet utilise les technologies suivantes :

Framework/Bibliothèque Description
NestJS Framework Node.js pour la création d'API performantes
Prisma ORM moderne pour Node.js et TypeScript
PostgreSQL Système de gestion de base de données relationnelle
JWT Norme ouverte pour les tokens d'authentification
RxJS Programmation réactive avec des observables
TypeScript Langage de programmation typé qui se compile en JavaScript
Pusher API de messagerie en temps réel pour les applications web et mobiles

(retour au sommet)

Détails de l'Architecture du Projet

  • src/ : Contient tout le code source de l'application.
    • modules/ : Ce répertoire contient les modules NestJS qui sont des groupes fonctionnels de code, par exemple, auth, users, cats.
    • services/ : Ce répertoire contient les services qui traitent la logique métier, tels que les appels API, les interactions avec la base de données via Prisma, etc.
    • controllers/ : Ce répertoire contient les contrôleurs NestJS qui gèrent les routes et orchestrent les appels aux services.
    • prisma/ : Contient les fichiers de configuration et de migration pour la base de données Prisma.

(retour au sommet)

Test et Validation

Le projet inclut des tests unitaires et end-to-end. Nous utilisons Jest pour exécuter ces tests. Vous pouvez exécuter les tests avec : npm run test

Pour voir le rapport de couverture de test :

npm run test:cov

(retour au sommet)

Linting et Formatage

Pour garantir une haute qualité de code et maintenir la cohérence du style, nous utilisons ESLint et Prettier. Voici comment les configurer et les utiliser dans votre projet.

Installation des Plugins

Assurez-vous que les plugins ESLint et Prettier sont installés :

  1. Vérifiez que les fichiers de configuration .eslintrc.js et .prettierrc sont présents à la racine du projet.

Exécuter ESLint

Pour analyser votre code et vérifier sa conformité avec les règles ESLint, exécutez : npm run lint

Pour corriger automatiquement les erreurs et les avertissements, exécutez : npm run lint:fix

(retour au sommet)

Roadmap

La feuille de route du projet est disponible sur le jira de l'équipe.

(retour au sommet)

Extensions

Extensions Nécessaires

Les extensions suivantes sont fortement recommandées pour une meilleure expérience de développement :

  • ESLint : Intégration d'ESLint pour VS Code.
  • Prettier : Extension de formatage de code pour VS Code.
  • Prisma : IntelliSense pour Prisma dans VS Code.

Extensions Recommandées

Les extensions suivantes sont recommandées pour améliorer la productivité et la qualité du code :

  • Path Intellisense : Autocomplétion des noms de fichiers dans VS Code.
  • Auto Rename Tag : Renommage automatique des balises HTML associées.
  • Turbo Console Log : Améliore le logging dans la console de débogage.

(retour au sommet)