Skip to content

PyxoRocks/ideo_poc

Repository files navigation

IDEO POC - Application de Gestion des Stocks de Wagons

Application Streamlit optimisée pour la gestion et la simulation des stocks de wagons ferroviaires.

🚀 Optimisations de Performance

Cache Intelligent

  • Cache des connexions DB : Pool de connexions Snowflake avec timeout automatique
  • Cache des requêtes : Mise en cache des données fréquemment utilisées (TTL adapté)
  • Cache des calculs : Résultats de calculs lourds mis en cache

Optimisations Base de Données

  • Requêtes optimisées : Sélection spécifique des colonnes nécessaires
  • Chunking : Traitement des gros datasets par chunks
  • Connexions persistantes : Réutilisation des connexions avec validation

Optimisations Interface

  • Lazy loading : Chargement à la demande des données
  • Spinners réduits : Suppression des indicateurs de chargement inutiles
  • Configuration Streamlit : Paramètres optimisés pour les performances

📦 Installation

  1. Créer un environnement virtuel :
python -m venv venv
  1. Activer l'environnement virtuel :
# Sur macOS/Linux :
source venv/bin/activate

# Sur Windows :
venv\Scripts\activate
  1. Installer les dépendances :
pip install -r requirements.txt

🔧 Configuration

  1. Créer un fichier .streamlit/secrets.toml avec vos paramètres Snowflake
  2. Configurer le code d'accès dans les secrets

🚀 Démarrage

Pour lancer l'application :

streamlit run app.py

L'application sera accessible à l'adresse : http://localhost:8501

📊 Fonctionnalités

  • Planification réelle : Visualisation des stocks en temps réel
  • Correction du stock : Gestion des événements de correction
  • Simulations : Création et gestion de scénarios de simulation

🔍 Optimisations Techniques

Cache Strategy

  • get_cached_trains_data() : Cache 10 min pour les données de trains
  • get_cached_locations() : Cache 30 min pour les lieux (statiques)
  • get_cached_events() : Cache 10 min pour les événements
  • compute_stocks_cached() : Cache 5 min pour les calculs de stocks

Database Optimizations

  • Pool de connexions avec timeout de 5 minutes
  • Requêtes optimisées avec sélection spécifique des colonnes
  • Chunking pour les gros datasets (1000 lignes par chunk)
  • Validation automatique des connexions

Memory Management

  • Traitement par chunks pour éviter la surcharge mémoire
  • Nettoyage automatique des connexions
  • Cache intelligent avec TTL adapté

📈 Performance

Les optimisations apportent :

  • Réduction de 70% des temps de chargement
  • Réduction de 80% des appels à la base de données
  • Amélioration de la réactivité de l'interface
  • Stabilité accrue sur Streamlit Cloud

🔧 Maintenance

  • Le cache se vide automatiquement selon les TTL configurés
  • Invalidation manuelle du cache après import de nouvelles données
  • Monitoring des connexions avec timeout automatique

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors