parent
000b01f61d
commit
8bd17dc973
192
README.md
192
README.md
@ -1,98 +1,158 @@
|
|||||||
<p align="center">
|
# P'titsPas API Backend ✨
|
||||||
<a href="http://nestjs.com/" target="blank"><img src="https://nestjs.com/img/logo-small.svg" width="120" alt="Nest Logo" /></a>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456
|
Ce dépôt contient le code source de l'API backend pour la plateforme **P'titsPas**. L'API est construite avec NestJS et est responsable de toute la logique métier, de la gestion des données et de l'authentification des utilisateurs.
|
||||||
[circleci-url]: https://circleci.com/gh/nestjs/nest
|
|
||||||
|
|
||||||
<p align="center">A progressive <a href="http://nodejs.org" target="_blank">Node.js</a> framework for building efficient and scalable server-side applications.</p>
|
---
|
||||||
<p align="center">
|
|
||||||
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/v/@nestjs/core.svg" alt="NPM Version" /></a>
|
|
||||||
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/l/@nestjs/core.svg" alt="Package License" /></a>
|
|
||||||
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/dm/@nestjs/common.svg" alt="NPM Downloads" /></a>
|
|
||||||
<a href="https://circleci.com/gh/nestjs/nest" target="_blank"><img src="https://img.shields.io/circleci/build/github/nestjs/nest/master" alt="CircleCI" /></a>
|
|
||||||
<a href="https://discord.gg/G7Qnnhy" target="_blank"><img src="https://img.shields.io/badge/discord-online-brightgreen.svg" alt="Discord"/></a>
|
|
||||||
<a href="https://opencollective.com/nest#backer" target="_blank"><img src="https://opencollective.com/nest/backers/badge.svg" alt="Backers on Open Collective" /></a>
|
|
||||||
<a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://opencollective.com/nest/sponsors/badge.svg" alt="Sponsors on Open Collective" /></a>
|
|
||||||
<a href="https://paypal.me/kamilmysliwiec" target="_blank"><img src="https://img.shields.io/badge/Donate-PayPal-ff3f59.svg" alt="Donate us"/></a>
|
|
||||||
<a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg" alt="Support us"></a>
|
|
||||||
<a href="https://twitter.com/nestframework" target="_blank"><img src="https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow" alt="Follow us on Twitter"></a>
|
|
||||||
</p>
|
|
||||||
<!--[](https://opencollective.com/nest#backer)
|
|
||||||
[](https://opencollective.com/nest#sponsor)-->
|
|
||||||
|
|
||||||
## Description
|
## 📚 Table des matières
|
||||||
|
|
||||||
[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.
|
- [Technologies utilisées](#-technologies-utilisées)
|
||||||
|
- [Prérequis](#-prérequis)
|
||||||
|
- [Installation](#-installation)
|
||||||
|
- [Lancement de l'application](#-lancement-de-lapplication)
|
||||||
|
- [Scripts principaux](#-scripts-principaux)
|
||||||
|
- [Tests](#-tests)
|
||||||
|
- [Gestion des migrations](#-gestion-des-migrations)
|
||||||
|
- [Documentation de l'API](#-documentation-de-lapi)
|
||||||
|
|
||||||
## Project setup
|
---
|
||||||
|
|
||||||
|
## 🛠️ Technologies utilisées
|
||||||
|
|
||||||
|
- **Framework**: [NestJS](https://nestjs.com/) (TypeScript)
|
||||||
|
- **Base de données**: [PostgreSQL](https://www.postgresql.org/)
|
||||||
|
- **ORM**: [TypeORM](https://typeorm.io/)
|
||||||
|
- **Authentification**: JWT avec [Passport.js](http://www.passportjs.org/)
|
||||||
|
- **Stockage Fichiers**: [MinIO](https://min.io/) (Compatible S3)
|
||||||
|
- **Tâches Asynchrones**: [Redis](https://redis.io/) avec [BullMQ](https://bullmq.io/)
|
||||||
|
- **Conteneurisation**: [Docker](https://www.docker.com/)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📋 Prérequis
|
||||||
|
|
||||||
|
Avant de commencer, assurez-vous d'avoir installé les outils suivants sur votre machine :
|
||||||
|
|
||||||
|
- [Node.js](https://nodejs.org/) (v18 ou supérieure)
|
||||||
|
- [npm](https://www.npmjs.com/) ou [pnpm](https://pnpm.io/)
|
||||||
|
- [Docker](https://www.docker.com/products/docker-desktop/) et Docker Compose
|
||||||
|
- [Git](https://git-scm.com/)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🚀 Installation
|
||||||
|
|
||||||
|
1. **Clonez le dépôt :**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ npm install
|
git clone https://github.com/votre-username/ptitspas-backend.git
|
||||||
|
cd ptitspas-backend
|
||||||
```
|
```
|
||||||
|
|
||||||
## Compile and run the project
|
2. **Créez le fichier d'environnement :**
|
||||||
|
Copiez le fichier d'exemple `.env.example` et renommez-le en `.env`. Ce fichier est ignoré par Git et contiendra vos secrets locaux.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# development
|
cp .env.example .env
|
||||||
$ npm run start
|
|
||||||
|
|
||||||
# watch mode
|
|
||||||
$ npm run start:dev
|
|
||||||
|
|
||||||
# production mode
|
|
||||||
$ npm run start:prod
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Run tests
|
➡️ **Important :** Ouvrez le fichier `.env` et remplissez les variables (identifiants de la base de données, secrets JWT, etc.).
|
||||||
|
|
||||||
|
3. **Installez les dépendances du projet :**
|
||||||
|
```bash
|
||||||
|
npm install
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ▶️ Lancement de l'application
|
||||||
|
|
||||||
|
### Méthode recommandée : avec Docker
|
||||||
|
|
||||||
|
Cette méthode lance l'ensemble des services nécessaires (API, base de données, MinIO, Redis) dans des conteneurs isolés.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# unit tests
|
docker-compose up --build
|
||||||
$ npm run test
|
|
||||||
|
|
||||||
# e2e tests
|
|
||||||
$ npm run test:e2e
|
|
||||||
|
|
||||||
# test coverage
|
|
||||||
$ npm run test:cov
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Deployment
|
L'API sera accessible à l'adresse `http://localhost:3000` (ou le port que vous avez configuré dans votre `.env`).
|
||||||
|
|
||||||
When you're ready to deploy your NestJS application to production, there are some key steps you can take to ensure it runs as efficiently as possible. Check out the [deployment documentation](https://docs.nestjs.com/deployment) for more information.
|
### Méthode locale (pour le développement)
|
||||||
|
|
||||||
If you are looking for a cloud-based platform to deploy your NestJS application, check out [Mau](https://mau.nestjs.com), our official platform for deploying NestJS applications on AWS. Mau makes deployment straightforward and fast, requiring just a few simple steps:
|
Cette méthode ne lance que le serveur NestJS. Assurez-vous que les autres services (PostgreSQL, Redis, etc.) sont déjà en cours d'exécution (par exemple, via Docker).
|
||||||
|
|
||||||
|
```
|
||||||
|
npm run start:dev
|
||||||
|
```
|
||||||
|
|
||||||
|
Le serveur redémarrera automatiquement à chaque modification de fichier.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⚙️ Scripts principaux
|
||||||
|
|
||||||
|
| Commande | Description |
|
||||||
|
| :------------------ | :-------------------------------------------------------------------- |
|
||||||
|
| `npm run start:dev` | Lance le serveur en mode développement avec rechargement automatique. |
|
||||||
|
| `npm run build` | Compile le projet TypeScript en JavaScript. |
|
||||||
|
| `npm start` | Lance l'application depuis les fichiers compilés (mode production). |
|
||||||
|
| `npm run lint` | Analyse le code pour détecter les erreurs de style et de syntaxe. |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🧪 Tests
|
||||||
|
|
||||||
|
Pour lancer les tests, utilisez les commandes suivantes :
|
||||||
|
|
||||||
|
| Commande | Description |
|
||||||
|
| :----------------- | :--------------------------------------------------------------- |
|
||||||
|
| `npm test` | Lance les tests unitaires. |
|
||||||
|
| `npm run test:e2e` | Lance les tests de bout en bout (end-to-end). |
|
||||||
|
| `npm run test:cov` | Lance tous les tests et génère un rapport de couverture de code. |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🗄️ Gestion des migrations
|
||||||
|
|
||||||
|
La structure de la base de données est gérée par des fichiers de migration TypeORM.
|
||||||
|
|
||||||
|
1. **Générer une nouvelle migration :**
|
||||||
|
Après avoir modifié une entité TypeORM, générez automatiquement le fichier de migration correspondant.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ npm install -g @nestjs/mau
|
npm run migration:generate -- src/database/migrations/NomDeLaMigration
|
||||||
$ mau deploy
|
|
||||||
```
|
```
|
||||||
|
|
||||||
With Mau, you can deploy your application in just a few clicks, allowing you to focus on building features rather than managing infrastructure.
|
2. **Appliquer les migrations :**
|
||||||
|
Pour mettre à jour le schéma de votre base de données avec les nouvelles migrations.
|
||||||
|
```bash
|
||||||
|
npm run migration:run
|
||||||
|
```
|
||||||
|
|
||||||
## Resources
|
---
|
||||||
|
|
||||||
Check out a few resources that may come in handy when working with NestJS:
|
## 📖 Documentation de l'API
|
||||||
|
|
||||||
- Visit the [NestJS Documentation](https://docs.nestjs.com) to learn more about the framework.
|
Une fois l'application lancée, la documentation de l'API générée avec **Swagger (OpenAPI)** est disponible à l'adresse suivante :
|
||||||
- For questions and support, please visit our [Discord channel](https://discord.gg/G7Qnnhy).
|
|
||||||
- To dive deeper and get more hands-on experience, check out our official video [courses](https://courses.nestjs.com/).
|
|
||||||
- Deploy your application to AWS with the help of [NestJS Mau](https://mau.nestjs.com) in just a few clicks.
|
|
||||||
- Visualize your application graph and interact with the NestJS application in real-time using [NestJS Devtools](https://devtools.nestjs.com).
|
|
||||||
- Need help with your project (part-time to full-time)? Check out our official [enterprise support](https://enterprise.nestjs.com).
|
|
||||||
- To stay in the loop and get updates, follow us on [X](https://x.com/nestframework) and [LinkedIn](https://linkedin.com/company/nestjs).
|
|
||||||
- Looking for a job, or have a job to offer? Check out our official [Jobs board](https://jobs.nestjs.com).
|
|
||||||
|
|
||||||
## Support
|
➡️ **[http://localhost:3000/api-docs](http://localhost:3000/api-docs)**
|
||||||
|
|
||||||
Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).
|
Cette interface vous permet d'explorer et de tester toutes les routes de l'API directement depuis votre navigateur.
|
||||||
|
|
||||||
## Stay in touch
|
Excellente idée. C'est un élément crucial qui définit les droits et les devoirs liés à votre code.
|
||||||
|
|
||||||
- Author - [Kamil Myśliwiec](https://twitter.com/kammysliwiec)
|
En me basant sur la section `10.5 Propriété intellectuelle et licence de l’application` de votre cahier des charges, j'ai rédigé une section "Licence" qui reflète précisément le statut propriétaire de votre projet.
|
||||||
- Website - [https://nestjs.com](https://nestjs.com/)
|
|
||||||
- Twitter - [@nestframework](https://twitter.com/nestframework)
|
|
||||||
|
|
||||||
## License
|
Voici le `README.md` complet et mis à jour.
|
||||||
|
|
||||||
Nest is [MIT licensed](https://github.com/nestjs/nest/blob/master/LICENSE).
|
---
|
||||||
|
|
||||||
|
## 📜 Licence
|
||||||
|
|
||||||
|
Ce projet est distribué sous une **licence propriétaire**.
|
||||||
|
|
||||||
|
Le code source, la marque "P'titsPas" et la documentation associée sont la propriété exclusive de l'éditeur, Julien MARTIN.
|
||||||
|
|
||||||
|
Toute reproduction, distribution, modification ou utilisation du code source est strictement interdite sans un accord écrit préalable de l'auteur. Les clients et partenaires autorisés disposent d'une licence d'utilisation non-exclusive et non-transférable, conformément aux termes de leur contrat.
|
||||||
|
|
||||||
|
Pour toute question relative à l'utilisation ou à l'acquisition d'une licence, veuillez contacter l'auteur.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user