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.