Le backend de Potits Chats, une plateforme d'adoption de chats, développée avec NestJS et Prisma.
Table des Matières
- ⚡️ 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.
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)
-
Clonez le dépôt du projet :
git clone https://github.com/potits-chats/backend.git cd backend
-
Installez les dépendances du projet :
npm install
-
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). -
Initialisez la base de données Prisma :
npx prisma db pull npx prisma generate
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
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.
Ce projet utilise les technologies suivantes :
- 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.
- modules/ : Ce répertoire contient les modules NestJS qui sont des groupes fonctionnels de code, par exemple,
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
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.
Assurez-vous que les plugins ESLint et Prettier sont installés :
- Vérifiez que les fichiers de configuration
.eslintrc.js
et.prettierrc
sont présents à la racine du projet.
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
La feuille de route du projet est disponible sur le jira de l'équipe.
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.
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.