mirror of
https://github.com/kmitresse/Compo-Service-Log-Project.git
synced 2026-05-13 17:11:49 +00:00
feat: README.md fini
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 252 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 446 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 553 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 541 KiB |
@@ -11,7 +11,47 @@ Pour pouvoir lancer ce projet vous devez avoir installé les outils suivants :
|
|||||||
- [Docker Desktop](#installation-de-docker-desktop)
|
- [Docker Desktop](#installation-de-docker-desktop)
|
||||||
- [Insonmia](#installation-de-insomnia)
|
- [Insonmia](#installation-de-insomnia)
|
||||||
|
|
||||||
Assurez-vous d'avoir les ports `3000`, `3306` et `27017` de disponible sur votre machine.
|
Assurez-vous d'avoir les ports `3000`, `3306` et `27017` de disponible sur votre
|
||||||
|
machine.
|
||||||
|
|
||||||
|
## Fonctionnalités
|
||||||
|
|
||||||
|
Ce projet rend accessible une API REST qui permet de filtrer et récupérer des
|
||||||
|
données.
|
||||||
|
|
||||||
|
Le téléchargement des données se fait de manière asynchrone en utilisant les WebStream de Nodes.JS.
|
||||||
|
|
||||||
|
Le projet prend en charge les archives suivantes :
|
||||||
|
- ZIP
|
||||||
|
- GZIP
|
||||||
|
|
||||||
|
Il prend également en charge les formats de données suivants :
|
||||||
|
- JSON
|
||||||
|
- CSV
|
||||||
|
|
||||||
|
Pour rendre le processus modulaire, nous avons décidé d'utiliser le Factory Pattern.
|
||||||
|
Il est donc possible d'ajouter de nouveaux services de récupération de données
|
||||||
|
en implémentant une interface.
|
||||||
|
|
||||||
|
L'API expose plusieurs routes :
|
||||||
|
|
||||||
|
- `/randomize`: Le web service général qui va venir piocher dans les autres web
|
||||||
|
services pour récupérer des données
|
||||||
|
- `/randomize/nudger`: Le web service qui va venir récupérer des données de
|
||||||
|
Nudger
|
||||||
|
- `/randomize/openfoodfacts`: Le web service qui va venir récupérer des données
|
||||||
|
de OpenFoodFacts
|
||||||
|
- `/randomize/world-cities`: Le web service qui va venir récupérer des données
|
||||||
|
de World Cities
|
||||||
|
|
||||||
|
Toutes ces routes acceptent les paramètres suivants :
|
||||||
|
- `size`: Le nombre de données à récupérer (doit être un entier > 0, par défaut 10)
|
||||||
|
|
||||||
|
Il vous faudra également fournir un fichier DMN (XML) ou un fichier JSON dans le
|
||||||
|
corps de la requête.
|
||||||
|
|
||||||
|
Lors d'une requête sur `/randomize`, une ligne de log est ajoutée dans la base mariadb.
|
||||||
|

|
||||||
|
|
||||||
### Installation de Docker Desktop
|
### Installation de Docker Desktop
|
||||||
|
|
||||||
@@ -80,7 +120,7 @@ requêtes qui ont été importées.
|
|||||||

|

|
||||||

|

|
||||||
|
|
||||||
## Lancez le projet
|
## Lancer le projet
|
||||||
|
|
||||||
Pour lancer le projet, ouvrez votre terminal et rendez-vous à la racine du
|
Pour lancer le projet, ouvrez votre terminal et rendez-vous à la racine du
|
||||||
projet.
|
projet.
|
||||||
@@ -94,7 +134,8 @@ Cette commande va construire les images Docker et lancer les conteneurs.
|
|||||||
En effet, cette application contient 3 services :
|
En effet, cette application contient 3 services :
|
||||||
|
|
||||||
- `app` : expose l'API REST (sur le port `3000`)
|
- `app` : expose l'API REST (sur le port `3000`)
|
||||||
- `mongodb` : contient la base de données qui va stocker les données filtrées (sur le port `27017`)
|
- `mongodb` : contient la base de données qui va stocker les données filtrées (
|
||||||
|
sur le port `27017`)
|
||||||
- `mariadb`: contient la base de donnée des logs (sur le port `3306`)
|
- `mariadb`: contient la base de donnée des logs (sur le port `3306`)
|
||||||
|
|
||||||
Vous pouvez vérifier que les conteneurs sont bien lancés en exécutant la
|
Vous pouvez vérifier que les conteneurs sont bien lancés en exécutant la
|
||||||
@@ -105,6 +146,7 @@ docker ps
|
|||||||
```
|
```
|
||||||
|
|
||||||
Vous devriez voir les 3 conteneurs lancés.
|
Vous devriez voir les 3 conteneurs lancés.
|
||||||
|
|
||||||
```
|
```
|
||||||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||||
7d90351a5dd4 compo-service-log-project-app "docker-entrypoint.s…" 2 hours ago Up 2 hours 0.0.0.0:3000->3000/tcp app
|
7d90351a5dd4 compo-service-log-project-app "docker-entrypoint.s…" 2 hours ago Up 2 hours 0.0.0.0:3000->3000/tcp app
|
||||||
@@ -112,21 +154,63 @@ f77729fee31b mongo "docker-entrypoint.s…" 2 hour
|
|||||||
f59177f86802 mariadb "docker-entrypoint.s…" 2 hours ago Up 2 hours 0.0.0.0:3306->3306/tcp mariadb
|
f59177f86802 mariadb "docker-entrypoint.s…" 2 hours ago Up 2 hours 0.0.0.0:3306->3306/tcp mariadb
|
||||||
```
|
```
|
||||||
|
|
||||||
Vous pouvez également vérifier que les conteneurs sont bien lancés en ouvrant l'interface graphique de Docker Desktop.
|
Vous pouvez également vérifier que les conteneurs sont bien lancés en ouvrant
|
||||||
|
l'interface graphique de Docker Desktop.
|
||||||

|

|
||||||
|
|
||||||
Il se peut que le conteneur `app` redémarre plusieurs fois avant de se stabiliser.
|
Il se peut que le conteneur `app` redémarre plusieurs fois avant de se
|
||||||
Cela est dû au fait que le conteneur `app` démarre plus vite que les conteneurs `mongodb` et `mariadb`.
|
stabiliser.
|
||||||
Et celui-ci essaye de se connecter aux bases de données mais elles ne sont pas encore prêtes.
|
Cela est dû au fait que le conteneur `app` démarre plus vite que les conteneurs
|
||||||
|
`mongodb` et `mariadb`.
|
||||||
|
Et celui-ci essaye de se connecter aux bases de données mais elles ne sont pas
|
||||||
|
encore prêtes.
|
||||||
|
|
||||||
## Tester l'API
|
## Tester l'API
|
||||||
|
|
||||||
Pour tester l'API rendez-vous sur Insomnia avec la collection importée et
|
Pour tester l'API rendez-vous sur Insomnia avec la collection importée et
|
||||||
assurez-vous que les conteneurs sont bien lancés.
|
assurez-vous que les conteneurs sont bien lancés.
|
||||||
|
|
||||||
|
### Comment fonctionne Insomnia ?
|
||||||
|
|
||||||
|
Une fois une collection de chargée, vous obtenez cette interface:
|
||||||
|
|
||||||
## Autheurs
|
1. La liste des requêtes de la collection
|
||||||
|
2. Une fois une requête sélectionnée, vous pouvez accéder à ces détails à
|
||||||
|
travers différents onglets
|
||||||
|
3. Le contenu de l'onglet params de la requête (ici il y a le paramètre `size`
|
||||||
|
qui définit le nombre de données à récupérer)
|
||||||
|
4. Le bouton pour envoyer la requête
|
||||||
|
5. Le résultat de la requête
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Dans l'onglet `Body` vous pouvez voir le contenu de la requête.
|
||||||
|
Vous pouvez modifier les paramètres de la requête si vous le souhaitez.
|
||||||
|
|
||||||
|
1. Vous choisissez le type de données que vous envoyez (dans cet exemple c'est
|
||||||
|
un fichier DMN donc du XML)
|
||||||
|
2. Vous pouvez mettre le contenu de votre DMN ici
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Dans le cas où vous souhaitez utiliser les schémas JSON, vous pouvez
|
||||||
|
sélectionner `JSON` à la place de `XML`
|
||||||
|
et mettre le contenu de votre JSON dans le champ `Body`.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Arrêter le projet
|
||||||
|
|
||||||
|
Pour arrêter le projet, ouvrez votre terminal et rendez-vous à la racine du
|
||||||
|
projet.
|
||||||
|
|
||||||
|
Ensuite, exécutez la commande suivante :
|
||||||
|
|
||||||
|
```sh
|
||||||
|
docker-compose down
|
||||||
|
```
|
||||||
|
|
||||||
|
## Auteurs
|
||||||
|
|
||||||
- 👤 [Kevin Mitressé](https://github.com/kmitresse)
|
- 👤 [Kevin Mitressé](https://github.com/kmitresse)
|
||||||
- 👤 [Lucàs Vabre](https://github.com/LucasVbr)
|
- 👤 [Lucàs Vabre](https://github.com/LucasVbr)
|
||||||
|
|||||||
Reference in New Issue
Block a user