Canoë Malin

Application développé dans le cadre d’un projet d’équipe

Développement d’un outil de prévision de la fréquentation des lieux de pratique du canoé kayak pour optimiser la répartition équilibrée des touristes et augmenter l’attractivité du territoire en périodes de faible affluence.

Le projet inclut la création d’une application web fournissant des données de fréquentation en temps réel avec un système de prévision basé sur les données historiques et météorologiques.

Spécifications Techniques

Frontend (React)
Technologies :
React, JavaScript, HTML5, CSS3
API de Géolocalisation : Utilisation de l’API de géolocalisation du navigateur pour récupérer la position de l’utilisateur.
Authentification : Intégration avec Google OAuth 2.0 coté Express Gateway pour l’authentification des utilisateurs.
Communication avec le Backend : Utilisation de Fetch API pour envoyer des requêtes HTTP vers l’Express Gateway.

Express Gateway (Node.js)
Technologies :
Node.js, Express
Middleware de Sécurité :
Utilisation de middleware pour gérer CORS.
Implémentation de la limitation de taux pour prévenir les abus.
Authentification :
Utilisation de la stratégie Google OAuth 2.0 pour l’authentification.
Routage : Utilisation d’Express Router pour orienter les requêtes vers les microservices backend.

Microservices Backend
Microservice de Gestion des Sites :
Technologies : Spring Boot, Java 21
Base de Données : MariaDB pour les opérations CRUD des sites de canoë.


Microservice de Collecte de Données :
Technologies : Python, Pandas
20
Données Externes : Intégration avec APIs externes et lecture de fichiers CSV.
Base de Données : MariaDB pour les données structurées, MongoDB pour les données non structurées.


Microservice d’Analyse et Prévision :
Technologies : Python, SciPy, NumPy
Traitement des Données : Analyse des données collectées et génération de prévisions.
Base de Données : Stockage des résultats d’analyse et des prévisions dans MongoDB.


Microservice de Cartographie et Géolocalisation :
Technologies : Node.js, Leaflet.js
Traitement des Données : Récupération et affichage des informations de localisation.
Base de Données : Utilisation de MariaDB et MongoDB pour les données de localisation.


Microservice de Gestion des Notifications et Alertes :
Technologies : Node.js, RabbitMQ
Asynchronisme : Utilisation de RabbitMQ pour l’envoi asynchrone des notifications.
Base de Données : Stockage des notifications et alertes dans MongoDB et synchronisation avec les sources externes via le microservice de collecte.

Bases de Données
MariaDB :
Utilisation : Stockage des données relationnelles (ex. : informations sur les sites de canoë, prévisions).
Schéma : Définition de schémas relationnels pour les entités gérées par les microservices.


MongoDB :
Utilisation : Stockage des données non relationnelles (ex. : données météorologiques, hydrologiques, notifications).
Collections : Définition de collections pour chaque type de données non structurées.

Intégration avec des APIs Externes
Données Météorologiques et Hydrologiques :
Intégration avec des services comme OpenWeatherMap, WeatherAPI, etc.


Données de Géolocalisation :
Utilisation de services comme Google Maps API, Mapbox API.


Données de Cartographie :
Intégration avec des services comme Mapbox, OpenStreetMap.

Aller au contenu principal