Giter VIP home page Giter VIP logo

projet-9-medilabo-solution's Introduction

MediLabo-Solution

Outil déstiné aux médecin, pour aider à détecter les patients à risque sur le diabète de type 2.
Application basée sur une architecture microservices.
Pour exécuter l'application avec docker, suivez les étapes ci-dessous.

Prérequis

Avant de commencer, assurez-vous d'avoir installé Docker et Docker Compose sur votre machine. Si ce n'est pas le cas, vous pouvez les télécharger depuis le site officiel de Docker :

Clonage du Projet

Utilisez la commande suivante pour cloner le projet sur votre machine :
git clone https://github.com/QuentinCAVIN/Projet-9-MediLabo-Solution.git

Configuration des Ports

Assurez-vous que les ports nécessaires sur votre machine sont disponibles. Les services Docker utilisent les ports suivants :

8080: clientui -> interface utilisateur

9101: gateway -> redirige les url vers les différents microservices

9001: patient-service -> gère les opération du CRUD sur les patients

9002: note-service -> gère les opération du CRUD sur les notes

9003: diabetes-assessment-service -> permet l'évaluation du niveau de risque des patients à partir du contenu des notes écrites par le médecin

3307: mysql-db -> persiste les données utiles à patient-service

27018: mongodb -> persiste les données utiles à note-service

Démarrage de l'Application

Accédez au répertoire du projet et placez vous dans le répertoire config:
cd Projet-9-MediLabo-Solution/config

Utilisez la commande suivante pour démarrer l'application en mode détaché:
docker-compose up -d

Connexion à l'application

Après le démarrage des dockers, vous pouvez accéder à l'application via l'interface utilisateur à l'adresse http://localhost:8080.
Utilisez les informations de connexion par défaut pour vous connecter :

Nom d'utilisateur: username

Mot de passe: password

Recommandations d'amélioration Green du projet

Dans un souci de réduction de l'impact écologique de ce projet, voici quelques pistes d'améliorations Green Code:

Optimisation des Dépendances

Évaluer l'utilité des dépendances, qui peuvent parfois générer du code inutilisé (ex : lombock). Supprimer ou réduire l'utilisation de ces dépendances peu alléger l'empreinte du projet.
Privilégier l'utilisation du driver Java de MongoDB pour les interactions avec la base de données plutôt que le framework Spring Data MongoDB, plus technique à utiliser, mais qui favorise la performance en optimisant le temps de traitement des requêtes, contribuant ainsi à une utilisation plus efficace des ressources.

Utilisation Efficace de Docker

Intégrer le fichier .dockerignore pour exclure les dossiers inutiles à la construction de l'image (ex : dossier target), réduisant ainsi la taille des images générées.
Lors de la reconstruction des images Docker à l'aide de docker-compose up, veiller à supprimer uniquement les images nécessaires pour éviter de re-télécharger une image plusieurs fois et contribuer à réduire la demande en bande passante (particulièrement concernant les images des bases de données).

Évaluation et Optimisation des Algorithmes

Utiliser des outils de profilage comme VisualVM pour repérer le code non performant et gourmand en ressources.
Évaluer et optimiser les algorithmes de boucle dans le code en recherchant des structures plus efficaces pour contribuer à une exécution plus rapide et à une consommation moindre de ressources.

projet-9-medilabo-solution's People

Contributors

quentincavin avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

andreshik8

projet-9-medilabo-solution's Issues

Docker image not started

Pour tout dire, après le "docker-compose up -d", rien de fonctionnel, le PC tourne à 100%.
En regardant la config docker (dans Docker Desktop), toutes les processeurs sont utilisés (32), en revanche très peu de mémoire (1Gb).
En paramétrant 8 procs et 4 Gb, le système répond à nouveau.
Mais faut explicitement relancer les services.
Et là ... tout fonctionne
BRAVO !!!

Failed to execute "docker-compose up -d"

Output of command "docker-compose up -d"

/cygdrive/d/Devs/Projet-9-MediLabo-Solution> cd config
/cygdrive/d/Devs/Projet-9-MediLabo-Solution/config> docker-compose up -d
[+] Running 27/27
! diabetes-assessment-service Warning                                                                      1.9s
! gateway Warning                                                                                          1.7s
✔ mysql-db 11 layers [⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿]      0B/0B      Pulled                                                115.9s
✔ e9f2695d7e5b Pull complete                                                                            81.4s
✔ 80c6055edb33 Pull complete                                                                             0.6s
✔ c646ab461d8b Pull complete                                                                             2.2s
✔ 38e33690e46b Pull complete                                                                             4.9s
✔ e81ea003555d Pull complete                                                                             3.7s
✔ f79abd900d06 Pull complete                                                                             4.9s
✔ c4d721b014e9 Pull complete                                                                           106.3s
✔ 9ba9f26e807f Pull complete                                                                             5.6s
✔ a7be8506e775 Pull complete                                                                            79.2s
✔ cef9735ba310 Pull complete                                                                            79.9s
✔ 768daf85511c Pull complete                                                                            80.7s
! clientui Warning                                                                                         1.8s
! patient-service Warning                                                                                  1.8s
! note-service Warning                                                                                     1.7s
✔ mongodb 9 layers [⣿⣿⣿⣿⣿⣿⣿⣿⣿]      0B/0B      Pulled                                                    225.3s
✔ cbe3537751ce Pull complete                                                                           123.1s
✔ a80d99d2ce19 Pull complete                                                                            82.7s
✔ cdb44dc221f3 Pull complete                                                                            87.3s
✔ 52cece2eeeb6 Pull complete                                                                            89.2s
✔ 9484737e86c4 Pull complete                                                                            89.7s
✔ 43ad935b75c0 Pull complete                                                                            90.4s
✔ a3ac6a8edff6 Pull complete                                                                            91.3s
✔ 90580617c703 Pull complete                                                                           217.1s
✔ 3c932f959341 Pull complete                                                                           105.3s
[+] Building 147.2s (37/42)                                                                       docker:default
=> [diabetes-assessment-service internal] load build definition from Dockerfile                            3.9s
=> => transferring dockerfile: 318B                                                                        0.0s
=> [gateway internal] load build definition from Dockerfile                                                3.9s
=> => transferring dockerfile: 296B                                                                        0.0s
=> [patient-service internal] load .dockerignore                                                           3.9s
=> => transferring context: 2B                                                                             0.0s
=> [note-service internal] load .dockerignore                                                              4.0s
=> => transferring context: 2B                                                                             0.0s
=> [diabetes-assessment-service internal] load .dockerignore                                               2.2s
=> => transferring context: 2B                                                                             0.0s
=> [note-service internal] load build definition from Dockerfile                                           2.8s
=> => transferring dockerfile: 301B                                                                        0.0s
=> [clientui internal] load .dockerignore                                                                  2.4s
=> => transferring context: 46B                                                                            0.0s
=> [clientui internal] load build definition from Dockerfile                                               3.7s
=> => transferring dockerfile: 420B                                                                        0.0s
=> [patient-service internal] load build definition from Dockerfile                                        3.5s
=> => transferring dockerfile: 427B                                                                        0.0s
=> [gateway internal] load .dockerignore                                                                   4.0s
=> => transferring context: 2B                                                                             0.0s
=> [patient-service internal] load metadata for docker.io/library/openjdk:21                               3.8s
=> [patient-service 1/6] FROM docker.io/library/openjdk:21@sha256:af9de795d1f8d3b6172f6c55ca9ba1c5768ba  136.4s
=> => resolve docker.io/library/openjdk:21@sha256:af9de795d1f8d3b6172f6c55ca9ba1c5768baa11bb2dc8af7045c7d  1.3s
=> => sha256:af9de795d1f8d3b6172f6c55ca9ba1c5768baa11bb2dc8af7045c7db9d4c33ac 1.04kB / 1.04kB              0.0s
=> => sha256:c67f402f77197f2e6ae84ff1fca868699ce3b38bfa78604524051420fa2e4383 954B / 954B                  0.0s
=> => sha256:079114de2be199f2ae0f7766ac0187d24a0c3a2d658fc51bffc6af5b8bd85469 4.42kB / 4.42kB              0.0s
=> => sha256:5262579e8e45cb87fdc8fb6182d30da3c9e4f1036e02223508f287899ea434c0 44.96MB / 44.96MB           54.6s
=> => sha256:0eab4e2287a59db00ae2d401e107a120e21ac3a291b097faffb1af38a1bc773c 15.03MB / 15.03MB           17.7s
=> => sha256:7c002e8f606286a649b6f6cc6420c9056f7d3075fe3094b9cc33a715ff609335 203.93MB / 203.93MB        132.2s
=> => extracting sha256:5262579e8e45cb87fdc8fb6182d30da3c9e4f1036e02223508f287899ea434c0                   1.7s
=> => extracting sha256:0eab4e2287a59db00ae2d401e107a120e21ac3a291b097faffb1af38a1bc773c                   0.4s
=> => extracting sha256:7c002e8f606286a649b6f6cc6420c9056f7d3075fe3094b9cc33a715ff609335                   2.3s
=> [clientui internal] load build context                                                                  1.0s
=> => transferring context: 282.92kB                                                                       0.0s
=> [gateway internal] load build context                                                                   2.5s
=> => transferring context: 82.82kB                                                                        0.0s
=> [diabetes-assessment-service internal] load build context                                               2.2s
=> => transferring context: 102.74kB                                                                       0.0s
=> [note-service internal] load build context                                                              2.7s
=> => transferring context: 98.61kB                                                                        0.0s
=> [patient-service internal] load build context                                                           3.0s
=> => transferring context: 110.97kB                                                                       0.0s
=> [note-service 2/6] WORKDIR /note-service                                                                0.2s
=> [gateway 2/6] WORKDIR /gateway                                                                          0.2s
=> [patient-service 2/6] WORKDIR /patient-service                                                          0.2s
=> [clientui 2/6] WORKDIR /clientui                                                                        0.4s
=> [diabetes-assessment-service 2/6] WORKDIR /diabetes-assessment-service                                  0.4s
=> [note-service 3/6] COPY .mvn/ .mvn                                                                      0.3s
=> [patient-service 3/6] COPY .mvn/ .mvn                                                                   0.3s
=> [gateway 3/6] COPY .mvn/ .mvn                                                                           0.2s
=> [clientui 3/6] COPY .mvn/ .mvn                                                                          0.2s
=> [diabetes-assessment-service 3/6] COPY .mvn/ .mvn                                                       0.2s
=> [note-service 4/6] COPY mvnw pom.xml ./                                                                 0.2s
=> [patient-service 4/6] COPY mvnw pom.xml ./                                                              0.3s
=> [gateway 4/6] COPY mvnw pom.xml ./                                                                      0.3s
=> [clientui 4/6] COPY mvnw pom.xml ./                                                                     0.3s
=> [diabetes-assessment-service 4/6] COPY mvnw pom.xml ./                                                  0.3s
=> ERROR [note-service 5/6] RUN ./mvnw dependency:resolve                                                  2.0s
=> CANCELED [patient-service 5/6] RUN ./mvnw dependency:resolve                                            2.3s
=> ERROR [gateway 5/6] RUN ./mvnw dependency:resolve                                                       1.8s
=> ERROR [clientui 5/6] RUN ./mvnw dependency:resolve                                                      2.3s
=> CANCELED [diabetes-assessment-service 5/6] RUN ./mvnw dependency:resolve                                2.4s
------
> [note-service 5/6] RUN ./mvnw dependency:resolve:
1.949 /bin/sh: ./mvnw: /bin/sh^M: bad interpreter: No such file or directory
------
------
> [gateway 5/6] RUN ./mvnw dependency:resolve:
1.815 /bin/sh: ./mvnw: /bin/sh^M: bad interpreter: No such file or directory
------
------
> [clientui 5/6] RUN ./mvnw dependency:resolve:
1.819 /bin/sh: ./mvnw: /bin/sh^M: bad interpreter: No such file or directory
------
failed to solve: process "/bin/sh -c ./mvnw dependency:resolve" did not complete successfully: exit code: 126

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.