Modules
SmartWatch est organisé en modules spécialisés qui collaborent pour former un pipeline de traitement complet.
Structure du projet
Le projet SmartWatch suit une architecture en couches organisée dans les répertoires suivants :
smart_watch/
├── src/smart_watch/ # Code source principal
│ ├── assets/ # Ressources (templates, images)
│ ├── config/ # Modules de configuration
│ ├── core/ # Modules centraux
│ ├── data_models/ # Modèles de données
│ ├── evaluation/ # Système d'évaluation
│ ├── processing/ # Pipeline de traitement
│ ├── reporting/ # Génération de rapports
│ └── utils/ # Utilitaires
├── data/ # Données de production
├── logs/ # Fichiers de logs
├── docs/ # Documentation Sphinx
└── tests/ # Tests unitaires
Code source (src/smart_watch/
)
Chaque module enregistre ses résultats dans une base de données SQLite. Les tabes utilisées sont décrites dans la page suivante, Base de données.
Les librairies tierces utilisées sont listées dans le fichier requirements.txt
et documentées dans la section Stack technique.
Assets (assets/
)
Ce module contient les ressources statiques telles que les modèles de rapport et les images.
- templates/ReportTemplate.html
Template HTML pour rapports détaillés.
- templates/SimpleReportTemplate.html
Template HTML pour corps d’emails.
- images/
Logos et captures d’écran.
Configuration (config/
)
Ce module gère tous les aspects de la configuration de l’application.
- Base Configuration
Gère la configuration de base.
- Database Configuration
Configure les sources de données.
- Email Configuration
Configure l’envoi d’e-mails.
- LLM Configuration
Configure les grands modèles linguistiques.
- Markdown Filtering Configuration
Configure le filtrage de contenu Markdown.
- Processing Configuration
Gère les paramètres de traitement.
Core (core/
)
Ce module contient les composants fondamentaux et la logique métier de l’application.
- Comparateur d’Horaires
Compare les horaires extraits/référence.
- Configuration Manager
Orchestre la configuration globale.
- Database Manager
Gère les connexions à la BDD.
- Envoi d’Email
Envoie des emails avec pièces jointes.
- Error Handler
Centralise la gestion des erreurs.
- Générateur de Prompt
Gère et crée les prompts.
- Client LLM
Client unifié pour les LLMs.
- ../source/modules/core/Logger
Système de journalisation flexible.
- Gestionnaire de Notifications
Gère les notifications utilisateurs.
- Gestionnaire de Statistiques
Suit les statistiques d’application.
- Récupérateur d’URL
Récupère le contenu des URLs.
Data Models (data_models/
)
Ce module définit la structure des données utilisées dans l’application.
- opening_hours_schema.json
Schéma JSON pour horaires d’ouverture.
- schema_bdd
Schémas SQLAlchemy pour la BDD.
Evaluation (evaluation/
)
Ce module est dédié à l’évaluation des performances du système.
En cours de développement.
Processing (processing/
)
Ce module correspond au pipeline de traitement des données, de la récupération à l’analyse.
- Comparison Processor
Analyse les différences d’horaires.
- Database Processor
Gère la base de données.
- LLM Processor
Extrait les horaires via LLM.
- Markdown Processor
Filtre le Markdown par sémantique.
- Setup Processor
Initialise les exécutions du pipeline.
- URL Processor
Récupère le contenu des URLs.
Reporting (reporting/
)
Ce module est responsable de la génération et de la distribution des rapports.
- HTML Generator
Génère des rapports HTML interactifs.
- Report Manager
Orchestre la génération des rapports.
Utils (utils/
)
Ce module fournit des fonctions et des classes utilitaires réutilisables.
- CSV to Polars
Charge les fichiers CSV.
- CustomJsonToOSM
Convertit JSON vers format OSM.
- HTML to Markdown
Convertit du HTML en Markdown.
- Jours Fériés
Récupère les jours fériés.
- Markdown Cleaner
Nettoie le contenu Markdown.
- OSMToCustomJson
Convertit OSM vers format JSON.
- Vacances Scolaires
Récupère les vacances scolaires.
Data (data/
)
Ce répertoire contient les bases de données utilisées par l’application pour stocker les données de production et d’évaluation.
- SmartWatch.db
Base de données principale (lieux, exécutions et résultats d’extraction).
- evaluation.db
Base de données pour l’évaluation des performances.
Logs (logs/
)
Ce répertoire archive les journaux d’événements générés par l’application.
- SmartWatch.log
Journal principal des traces d’exécution.
Documentation (docs/
)
Ce répertoire rassemble toute la documentation du projet, y compris les guides et les spécifications techniques.
- Architecture
Description de l’architecture et des modules.
- Guides utilisateur
Guides d’installation et d’utilisation.
- Source
Documentation technique générée depuis le code.