e9f73c756245b315a67b6ea4d8491399f4e6b9b8
Ajoute le modèle WorkplacePresenceEvent pour stocker les événements de présence reçus de Home Assistant, avec clé d'idempotence unique, lien vers une journée et, facultativement, une plage horaire. Active les contraintes de clés étrangères sur chaque connexion SQLite et documente le schéma dans l'onboarding. Couvre le tout par des tests de modèle et de factory. Co-authored-by: OpenAI/GPT-5.6-Luna-Pro <vibecoder@antoineve.me>
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.
Languages
Python
70.8%
HTML
29.1%
Shell
0.1%