Le but de l'application que vous développez est de permettre la détection du diabète de type 2 chez les patients. En utilisant une architecture microservices, cette application permettra de gérer les dossiers patients, les notes des médecins, et d'anticiper le niveau de risque de diabète d'un patient. L'objectif final est donc de fournir une solution complète pour le dépistage des risques de diabète, en respectant les normes de qualité de données, en assurant la sécurité de l'accès aux données des patients et en suivant les principes du Green Code pour la protection de l'environnement.
Ce projet est une application web composée de plusieurs microservices backend et frontend. Il utilise ASP.NET Core 8 pour les services backend et un frontend basé sur ASP.NET MVC.
Frontend (port 7000) interagit avec l'API Gateway (port 5000). API Gateway redirige les requêtes vers :
BackendNote utilise MongoDB et Elasticsearch pour la gestion des notes et les recherches. BackendPatient utilise SQL Server via Entity Framework pour la gestion des patients. Auth Service gère l'authentification de tous les microservices avec JWT Bearer.
Configurez les fichiers appsettings.json
pour chaque projet backend (ApiGateway
, Auth
, BackendNote
, BackendPatient
, Frontend
).
appsettings.json
pour BackendNote :{
"MongoDB": {
"ConnectionString": "mongodb://mongo:27017",
"DatabaseName": "NoteDB",
"NotesCollectionName": "Notes"
},
"Elasticsearch": {
"Uri": "http://elasticsearch:9200"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*"
}
Pour l'authentification dans Auth :
{
"JWT": {
"Secret": "YourJWTSecretKey",
"Issuer": "your-app",
"Audience": "your-users"
}
}
Clonez le repository :
git clone https://github.com/votre-utilisateur/votre-repository.git cd votre-repository
Restaurez les packages NuGet pour tous les services :
dotnet restore
launch.json
Voici un fichier launch.json
pour Visual Studio Code, permettant de démarrer et déboguer tous les microservices simultanément :
{
"version": "0.2.0",
"configurations": [
{
"name": "C#: ApiGateway Debug",
"type": "coreclr",
"request": "launch",
"program": "${workspaceFolder}/ApiGateway/bin/Debug/net8.0/ApiGateway.dll",
"args": [],
"cwd": "${workspaceFolder}/ApiGateway",
"stopAtEntry": false,
"env": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
{
"name": "C#: Auth Debug",
"type": "coreclr",
"request": "launch",
"program": "${workspaceFolder}/Auth/bin/Debug/net8.0/Auth.dll",
"args": [],
"cwd": "${workspaceFolder}/Auth",
"stopAtEntry": false,
"env": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
{
"name": "C#: BackendPatient Debug",
"type": "coreclr",
"request": "launch",
"program": "${workspaceFolder}/BackendPatient/bin/Debug/net8.0/BackendPatient.dll",
"args": [],
"cwd": "${workspaceFolder}/BackendPatient",
"stopAtEntry": false,
"env": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
{
"name": "C#: BackendNote Debug",
"type": "coreclr",
"request": "launch",
"program": "${workspaceFolder}/BackendNote/bin/Debug/net8.0/BackendNote.dll",
"args": [],
"cwd": "${workspaceFolder}/BackendNote",
"stopAtEntry": false,
"env": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
{
"name": "C#: Frontend Debug",
"type": "coreclr",
"request": "launch",
"program": "${workspaceFolder}/Frontend/bin/Debug/net8.0/Frontend.dll",
"args": [],
"cwd": "${workspaceFolder}/Frontend",
"stopAtEntry": false,
"env": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
],
"compounds": [
{
"name": "Launch all microservices",
"configurations": [
"C#: ApiGateway Debug",
"C#: Auth Debug",
"C#: BackendPatient Debug",
"C#: BackendNote Debug",
"C#: Frontend Debug"
]
}
]
}
Si vous utilisez Docker pour vos services, vous pouvez utiliser le fichier docker-compose.yml
pour lancer tous les services ensemble