Comment construire un suivi et visualiseur en temps réel des épidémies de maladies dans le monde
Créez une application web puissante qui visualise les données sur les épidémies de maladies en temps réel sur des cartes interactives. Ce projet combine des données de plusieurs organismes de santé, fournissant aux utilisateurs des informations à jour sur les menaces sanitaires mondiales, les tendances et les points chauds. Parfait pour les chercheurs, les professionnels de la santé et les citoyens préoccupés.
Learn2Vibe AI
Online
What do you want to build?
Résumé Simple
Un visualiseur d'épidémies de maladies en temps réel qui fournit des cartes interactives et des analyses de données pour suivre et surveiller les menaces sanitaires mondiales, donnant aux utilisateurs des informations et des analyses opportunes.
Document d'Exigences Produit (PRD)
Objectifs :
- Fournir une visualisation en temps réel des épidémies de maladies dans le monde
- Offrir des cartes interactives avec des informations détaillées sur des épidémies spécifiques
- Permettre aux utilisateurs de suivre plusieurs maladies et de comparer les données sur les épidémies
- Fournir des notifications en temps opportun pour les nouvelles épidémies ou les mises à jour importantes
Public cible :
- Responsables de la santé publique
- Chercheurs et épidémiologistes
- Professionnels de la santé
- Journalistes et organisations médiatiques
- Grand public intéressé par la santé mondiale
Principales fonctionnalités :
- Carte mondiale interactive avec des marqueurs d'épidémies de maladies
- Vue détaillée des épidémies spécifiques avec statistiques et tendances
- Outils de suivi et de comparaison de plusieurs maladies
- Mises à jour des données en temps réel provenant d'organismes de santé fiables
- Alertes et notifications personnalisables
- Capacités d'exportation et de partage des données
- Conception réactive pour un accès mobile
Exigences des utilisateurs :
- Interface intuitive pour une navigation et une exploration des données faciles
- Informations précises et à jour provenant de sources fiables
- Capacité de filtrer et de rechercher des maladies ou des régions spécifiques
- Tableau de bord personnalisable pour un suivi personnalisé
- Comptes d'utilisateurs sécurisés pour enregistrer les préférences et recevoir des alertes
Flux Utilisateur
-
Inscription et intégration d'un nouvel utilisateur :
- L'utilisateur visite le site web et clique sur "S'inscrire"
- Il saisit son adresse e-mail, son mot de passe et ses informations de profil de base
- Il termine un bref processus d'intégration pour sélectionner les maladies et les régions qui l'intéressent
- Il accède à son tableau de bord personnalisé avec les informations pertinentes sur les épidémies
-
Exploration des données sur les épidémies de maladies :
- L'utilisateur navigue jusqu'à la vue de la carte mondiale
- Il zoome sur une région ou un pays spécifique
- Il clique sur les marqueurs d'épidémie pour voir des informations détaillées
- Il bascule entre différentes maladies ou périodes
- Il utilise des filtres pour affiner les données affichées
-
Configuration des alertes et des notifications :
- L'utilisateur accède à la page des paramètres de notification
- Il sélectionne les maladies, les régions ou les critères de seuil pour les alertes
- Il choisit les méthodes de notification préférées (e-mail, push, dans l'application)
- Il enregistre les paramètres et reçoit des mises à jour en temps réel en fonction de ses préférences
Spécifications Techniques
Frontend :
- React pour construire l'interface utilisateur
- Mapbox GL JS ou Leaflet pour les cartes interactives
- D3.js pour les visualisations de données avancées
- Redux pour la gestion d'état
- Axios pour les requêtes API
Backend :
- Node.js avec Express pour le serveur
- PostgreSQL pour la base de données principale
- Redis pour la mise en cache et les mises à jour en temps réel
- Bull pour la mise en file d'attente des tâches (récupération et traitement des données)
API et services :
- API de l'OMS, des CDC et d'autres organismes de santé pour les données sur les épidémies
- API Mapbox ou Google Maps pour le géocodage et les tuiles cartographiques
- SendGrid ou Mailgun pour les notifications par e-mail
- Firebase Cloud Messaging pour les notifications push
DevOps :
- Docker pour la conteneurisation
- GitHub Actions pour le CI/CD
- AWS ou Google Cloud Platform pour l'hébergement
Points de Terminaison API
- POST /api/auth/register
- POST /api/auth/login
- GET /api/outbreaks
- GET /api/outbreaks/:id
- GET /api/diseases
- POST /api/alerts
- GET /api/user/dashboard
- PUT /api/user/preferences
- GET /api/stats/global
- GET /api/stats/regional/:region
Schéma de Base de Données
Utilisateurs :
- id (PK)
- password_hash
- name
- created_at
- last_login
Épidémies :
- id (PK)
- disease_id (FK)
- location
- start_date
- status
- case_count
- death_count
- last_updated
Maladies :
- id (PK)
- name
- description
- symptoms
Alertes utilisateur :
- id (PK)
- user_id (FK)
- disease_id (FK)
- region
- threshold
- notification_type
Structure de Fichiers
/src
/components
Map.js
OutbreakDetails.js
AlertSettings.js
Dashboard.js
/pages
Home.js
Login.js
Register.js
Profile.js
/api
outbreakService.js
userService.js
alertService.js
/utils
dataProcessing.js
mapHelpers.js
/styles
global.css
components.css
/redux
store.js
actions/
reducers/
/public
index.html
assets/
/server
/routes
/controllers
/models
/services
/config
/scripts
dataScraper.js
dataProcessor.js
README.md
package.json
Dockerfile
.env.example
Plan de Mise en Œuvre
-
Configuration du projet (1-2 jours)
- Initialiser l'application React et le serveur Node.js
- Mettre en place le contrôle de version et la structure du projet
-
Intégration des données (3-4 jours)
- Mettre en œuvre la récupération des données à partir des API des organismes de santé
- Créer des scripts de traitement et de stockage des données
-
Développement backend (5-7 jours)
- Développer les points de terminaison de l'API
- Configurer la base de données et les modèles
- Mettre en œuvre le système d'authentification
-
Structure de base du frontend (3-4 jours)
- Créer les composants React de base
- Mettre en œuvre le routage et la gestion de l'état
-
Intégration de la carte (4-5 jours)
- Intégrer la bibliothèque cartographique
- Développer les marqueurs de carte et l'interactivité
-
Visualisation des données (5-6 jours)
- Créer des graphiques et des graphiques pour les données sur les épidémies
- Mettre en œuvre des fonctionnalités de filtrage et de comparaison
-
Fonctionnalités utilisateur (3-4 jours)
- Développer le tableau de bord utilisateur
- Mettre en œuvre le système d'alerte et de notification
-
Test et raffinement (4-5 jours)
- Effectuer des tests approfondis de toutes les fonctionnalités
- Optimiser les performances et corriger les bugs
-
Préparation du déploiement (2-3 jours)
- Configurer l'environnement d'hébergement
- Configurer la pipeline CI/CD
-
Lancement et surveillance (en continu)
- Déployer l'application
- Surveiller les performances et les commentaires des utilisateurs
- Itérer et améliorer en fonction des données d'utilisation
Stratégie de Déploiement
- Conteneuriser l'application à l'aide de Docker pour assurer la cohérence entre les environnements
- Utiliser AWS Elastic Beanstalk ou Google App Engine pour une mise à l'échelle facile
- Mettre en place une base de données PostgreSQL gérée (par exemple, AWS RDS ou Google Cloud SQL)
- Implémenter une couche de mise en cache Redis pour de meilleures performances
- Utiliser un réseau de diffusion de contenu (CDN) pour les actifs statiques
- Mettre en place des procédures de sauvegarde et de récupération en cas de catastrophe
- Mettre en œuvre des outils de journalisation et de surveillance (par exemple, la pile ELK, Prometheus, Grafana)
- Utiliser le déploiement bleu-vert pour des mises à jour sans temps d'arrêt
- Mettre en place la mise à l'échelle automatique en fonction des tendances de trafic
- Mettre régulièrement à jour et corriger tous les systèmes pour assurer la sécurité
Justification de la Conception
La conception se concentre sur la création d'une application conviviale, performante et évolutive pour visualiser les données sur les épidémies de maladies. React a été choisi pour son architecture basée sur les composants et son vaste écosystème, tandis que Node.js fournit un backend basé sur JavaScript pour assurer la cohérence. L'utilisation de cartes interactives et de bibliothèques de visualisation de données garantit une expérience utilisateur attrayante. Les mises à jour et les notifications en temps réel informent les utilisateurs des changements critiques. L'architecture modulaire et l'utilisation de conteneurs permettent une mise à l'échelle et une maintenance faciles à mesure que l'application se développe. Les mesures de sécurité, notamment l'authentification des utilisateurs et le chiffrement des données, protègent les informations de santé sensibles.