Antoine Van Elstraete 85e6e502e5 feat(config): ajouter la configuration Home Assistant (étape 1)
Ajoute la section [home_assistant] au TOML et sa validation au chargement
via get_home_assistant_config(). La section est facultative pour préserver
la compatibilité avec les configurations existantes, mais si elle est
présente elle doit être complète et référencer un type de journée, un
trajet et un véhicule à moteur existants, sous peine de refuser le
démarrage de l'application. La configuration validée est exposée dans
app.config['HOME_ASSISTANT'].

Co-authored-by: OpenAI/GPT-5.6-Luna-Pro <vibecoder@antoineve.me>
2026-08-13 16:13:18 +02:00
2026-03-13 13:45:19 +01:00

Tableau de bord pro

Application web personnelle de suivi du temps de travail et des déplacements professionnels.

Développée en vibe coding avec Claude Sonnet 4.6 (Anthropic).

Fonctionnalités

  • Journal de bord : saisie quotidienne avec type de journée (travail, télétravail, garde, astreinte, formation, RTT, congé, maladie, férié), plages horaires et commentaire
  • Suivi des déplacements : kilométrage par véhicule, estimation CO₂, calcul des frais réels selon le barème kilométrique fiscal
  • Solde congés / RTT : suivi des jours posés et du solde restant
  • Rapports annuels : kilométrage total, frais réels déductibles, répartition par type de journée
  • Véhicules électriques : majoration de 20 % appliquée automatiquement sur les frais réels

Installation

Prérequis

  • Python 3.11+

Développement

# Cloner le dépôt
git clone ssh://git.antoineve.me/AntoineVe/tableau-de-bord.git
cd tableau-de-bord

# Créer l'environnement virtuel et installer les dépendances
python -m venv .venv
.venv/bin/pip install -r requirements.txt

# Lancer le serveur de développement
.venv/bin/python run.py

L'application est accessible sur http://localhost:5000.

Production (systemd + Gunicorn)

Déploiement dans /var/www/tableau-de-bord-pro/, service géré par systemd.

# Copier l'application
sudo rsync -a --exclude='.venv' --exclude='instance' . /var/www/tableau-de-bord-pro/
cd /var/www/tableau-de-bord-pro
sudo python -m venv .venv
sudo .venv/bin/pip install -r requirements.txt
sudo chown -R www-data:www-data /var/www/tableau-de-bord-pro

# Installer le service
sudo cp tableau-de-bord-pro.service /etc/systemd/system/

# Configurer (notamment SECRET_KEY)
sudo systemctl edit --full tableau-de-bord-pro

# Activer et démarrer
sudo systemctl enable --now tableau-de-bord-pro

# Vérifier
sudo systemctl status tableau-de-bord-pro

Configuration

Toute la configuration métier se trouve dans config.toml :

  • [vehicles.*] : véhicules avec puissance fiscale, type de carburant et émissions CO₂
  • [journeys.*] : profils de trajet avec distances par véhicule
  • [bareme_kilometrique.YYYY.*] : barème fiscal par année et puissance (à mettre à jour chaque année)

Tests

.venv/bin/python -m pytest

Qualité Python

Ruff est l'unique outil de lint, de tri des imports et de formatage Python :

.venv/bin/ruff check .
.venv/bin/ruff format --check .

La configuration se trouve dans pyproject.toml (Python 3.11+, lignes de 100 caractères). Le formatage peut être appliqué avec .venv/bin/ruff format . lors de l'étape de correction dédiée.

Import bulk depuis CSV

Un script est disponible pour importer des entrées en masse depuis un fichier CSV :

# Format du CSV : date,day_type,journey_profile_id,motor_vehicle_id,start_time,end_time,comment
# Exemple :
# 2025-06-02,WORK,moteur_seul,familiale,09:00;14:00,17:45;12:00,Travail normal
# 2025-06-03,TT,,,09:00,17:45,Télétravail

.venv/bin/python scripts/import_csv.py mon_fichier.csv

# Avec une config personnalisée
.venv/bin/python scripts/import_csv.py mon_fichier.csv --config /chemin/vers/config.toml

Comportement :

  • En cas de conflit sur une date, les données existantes sont conservées et un avertissement est affiché
  • Les plages horaires multiples peuvent être séparées par des points-virgules (;)
  • Types de jour valides : WORK, TT, GARDE, ASTREINTE, FORMATION, RTT, CONGE, MALADE, FERIE

Licence

MIT — Copyright (c) 2026 Antoine Van-Elstraete

Description
Application web personnelle de suivi du temps de travail et des déplacements professionnels.
Readme 327 KiB
Languages
Python 70.8%
HTML 29.1%
Shell 0.1%