Antoine Van Elstraete bfa48ee8a8 Add bulk CSV import script for work entries
- Add scripts/import_csv.py for direct SQLite database import
- Handle date conflicts with warnings (existing data preserved)
- Support multiple time slots per entry (semicolon-separated)
- Validate day_type, journey_profile_id, and motor_vehicle_id
- Update README.md with usage instructions
2026-05-13 18:45:27 +02:00
2026-05-13 18:12:54 +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

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 170 KiB
Languages
Python 57.8%
HTML 42%
Shell 0.2%