Skip to content
This repository was archived by the owner on Dec 26, 2022. It is now read-only.

Limerio/Tsunami

Repository files navigation

🌊 Tsunamiiiii

🏠 Présentation global du projet

📼 Tech Stack

🗿 Architecture

  • apps
    • api
      • rest api
      • websocket (gateway)
      • Docs (swagger)
    • rabbitmq (client)
    • web
  • config
  • libs
    • constants
    • scanner
    • types

Utilisation de docker pour la base de donnée de session (redis) et la base de donnée principale (mongodb), pour mettre en place rabbitmq et pour la mise en place du Web Server Caddy

🗿 Démarrage de l'architecture

📦 Installation des modules

npm, yarn ou pnpm libre à vous de choisir moi je préfère yarn

yarn

🎛️ Démarrage des services en dehors du code

J'ai créé un script dans le package.json qui me permet de lancer les containers docker de mon fichier docker-commpose.yml encore une fois libre à vous de le lancer ou non avec npm, yarn ou pnpm

yarn docker

si vous voulez le faire vous même

docker-compose up -d

💻 Démarrage en mode développement

En exécutant cette commande, vous allez lancer nx qui va se charger de build grâce à babel tous les fichiers qui par la suite vont être lancer avec leur port attitrer dans un fichier .env (uniquement pour l'api)

information supplémentaire vérifier bien que dans libs/scanner/utils/constants la constante API_URL a bien le même port qu'il y a écrit dans votre fichier .env sinon la communication en simultaner ne fonctionnera pas

yarn dev

⛔ Vérification d'erreurs

Eslint permet de vérifier s'il y a un problème dans le code et si c'est le cas écrire un rapport dans la console pour dire quelle ligne, quelle fichier a une erreur et il peut nous proposer des solutions à ce problème vous pouvez l'exécuter pour être sûr qu'il n'y a pas d'erreurs mais elle n'est pas obligatoire

yarn lint

🔨 Build du projet

Lancement du build de tous les apps et libs nécessaires au bon fonctionnement du projet

yarn build

👥 Production

J'aurai aimé pouvoir faire une partie pour le déploiment de tous les apps avec le serveur Caddyy mais malheuresement par manque de temps je n'ai pas pu le faire, mais vous pouvez tout de même démarrer tout avec l'explication plus haut de la partie 💻 Démarrage en mode développement

⌨️ Explication de son fonctionnement

Pour commencer nous avons l'application api qui est composé de trois systèmes 🎛️

  1. Une documentation qui est gestionné par swagger qui permet de vous donner les informations nécessaire au fonctionnement de l'api (disponible quand vous ouvrez votre navigateur http://localhost:[Le port défini dans votre fichier .env]/docs)
  2. Un serveur websocket sur le même que vous avez mis dans le .env qui permet la communication entre l'app web l'api et le scanner qui permet d'envoyer les différentes informations sur le scan
  3. Et l'api REST qui est constitué d'un système d'authentification et la gestion des scanners

⛔ Attention : L'app api est le système central si elle n'est pas démarré des erreurs surviendront avec le reste du système et pareil pour les autres applications elles sont toutes autant importantes

Ensuite, l'application rabbitmq est une instance client du serveur rabbitmq qui permet quand un scan lancé ça envoie un JSON contenant les informations nécessaires au bon fonctionnement du scanner

Pour terminer, nous avons l'application web qui est l'interface graphique, celle-ci vous permet un suivie du scan et d'avoir une lisibilité plus global sur les statistiques qui est retourné dessus et c'est un peu plus jolie que de voir des requêtes api 🤮

About

Projet réaliser en 2 semaines avec www.cyna-it.fr et www.supdevinci.fr

Resources

Stars

Watchers

Forks

Releases

No releases published