Projet Personnel • 2023

TimeTracker

Application de bureau pour la gestion du temps

Application Desktop 100% Offline développée avec Electron et React.
Conçue pour être légère, privée et multiplateforme (macOS & Windows).

Electron React TypeScript Recharts Local Storage
Windows (exe)
macOS (dmg)
TimeTracker Dashboard

🎯 Le Besoin Initial

Projet réalisé pour un ami musicien qui souhaitait organiser ses sessions de pratique (Piano, Solfège, Composition) sans s'encombrer d'une usine à gaz ou d'une application nécessitant un abonnement.

Contraintes du projet :
  • ⚡ Rapidité : Lancer un chronomètre en 1 clic
  • 🔒 Privé : Pas de compte, pas de tracking externe, tout reste sur l'ordinateur
  • 📊 Visuel : Voir en un coup d'œil où passe le temps chaque semaine

✨ Fonctionnalités Clés

Interface de tracking

Un timer minimaliste et discret conçu pour ne pas distraire. Lancez votre session en un clic, sélectionnez votre activité, et laissez l'application tourner en arrière-plan.

Statistiques complètes

Visualisez votre progression grâce à des graphiques dynamiques. Analysez la répartition de votre temps par catégorie et identifiez vos jours les plus productifs.

Gestion du profil

Personnalisez vos catégories de travail et gérez vos données. Export/import complet au format JSON pour la sauvegarde et le transfert.

Statistiques

Page Statistiques : Graphiques dynamiques avec Recharts.

Profil

Page Profil : Gestion des catégories et export de données.

⚙️ Architecture & Technologies

L'application utilise Electron pour encapsuler une application web React moderne. Cela permet d'avoir accès au système de fichiers natif tout en gardant une interface fluide développée avec les standards du web.

⚛️ Store Context

Gestion de l'état global (Timer actif, Logs, Catégories) via React Context API, avec persistance automatique dans le localStorage.

📈 Visualisation

Intégration de Recharts pour générer des graphiques dynamiques : Pie Chart pour la répartition et Bar Chart pour l'intensité quotidienne.

📦 Build & Release

Configuration de scripts npm personnalisés pour builder l'application sur toutes les architectures : Mac ARM/Intel, Windows ARM/Intel.

💾 Gestion des Données

L'application inclut un système d'export/import JSON complet pour permettre la sauvegarde manuelle ou le transfert de données entre deux machines.

Stockage 100% local : Toutes les données sont stockées en JSON sur l'ordinateur. Aucun cloud requis, aucune donnée transmise à des serveurs externes.

// Exemple d'interface de données
interface AppState {
    categories: Category[];
    logs: TimeLog[];     // Historique complet
    userProfile: UserProfile;
    activeTimer: {
        categoryId: string;
        startTime: number;
    } | null;
}
🔧 Stack Technique
  • Electron : Main process (accès système)
  • React + Vite : Interface utilisateur
  • Context API : Gestion d'état globale
  • TypeScript : Typage statique
  • Recharts : Graphiques interactifs
  • date-fns & uuid : Utilitaires
📦 Plateformes supportées
  • Windows ARM / Intel (exe)
  • macOS ARM / Intel (dmg)

Découvrir le code source

Voir sur GitHub

Code source complet et disponibles