-
Concept : "Pilotage de Survie & Récupération" L'application doit séparer ce qui est vital (récupération et base technique) de ce qui est perturbateur (demandes extérieures, business secondaire).
-
Spécifications Fonctionnelles A. Gestion des Tâches par Catégories CORE (Fixes) : Tâches non négociables générées chaque jour.
Récupération : Sport, Anime/Manga, Sommeil.
Valeur : Apprentissage Rust, Prospection Cyber.
DYNAMIC (Ajoutées) : Tâches que tu saisis durant la journée.
DENIALS (Les "Non") : Enregistrement des sollicitations que tu as refusées pour te protéger.
B. Le "Filtre de Pertinence" (Input Logic) Lors de l'ajout d'une tâche dynamique, l'application impose un formulaire :
Description : Quoi faire ?
Justification : Pourquoi est-ce prioritaire ? (Oblige à une analyse logique).
Impact : Est-ce pour moi, pour la famille ou pour l'image sociale ?
C. Analyse Hebdomadaire (Evolution) Historique : Archivage automatique en fin de semaine dans un fichier week_XX.json.
Stats de progression : Comparaison des taux de complétion entre la semaine N et N-1.
Détection de patterns : "Pourquoi ai-je échoué le mercredi ?" (Champ note de fin de journée).
- Architecture Technique A. Stack Logicielle Langage : Rust.
UI : ratatui + crossterm.
Data : serde + serde_json.
Temps : chrono (pour la gestion des semaines ISO).
Registre Windows : winreg (pour l'auto-démarrage).
B. Déploiement Compilation : cargo build --release génère un .exe autonome.
Auto-démarrage : L'application s'enregistre dans le registre Windows au premier lancement.
- Clé : HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
- L'utilisateur peut activer/désactiver cette option dans les paramètres de l'app.
Persistance des données : Fichiers JSON stockés dans %APPDATA%\PilotageSurvie\
- current_day.json : Tâches du jour
- week_XX_YYYY.json : Archives hebdomadaires
- config.json : Paramètres utilisateur (dont auto-démarrage)
C. Structure des Données (Modèle) Rust struct Task { id: u32, category: Category, // Recovery, Core, Dynamic, Denial title: String, justification: String, status: bool, created_at: DateTime, } 4. Interface Utilisateur (Layout TUI) L'écran doit être divisé en zones distinctes :
Zone Supérieure (Header) : Semaine actuelle, Score de complétion (%), et état du "Système" (ex: "Stable" ou "Surcharge").
Zone Centrale Gauche : Liste des tâches CORE (Ta base de survie).
Zone Centrale Droite : Liste des tâches DYNAMIQUES et NON.
Zone Inférieure : Terminal de commande et logs d'audit (Justifications des tâches sélectionnées).
- Workflow Quotidien Boot : L'app affiche tes tâches CORE.
Audit : Pour chaque nouvelle tâche, tu entres ta justification.
Log : À chaque "Non" dit à un ami ou à une pression sociale, tu l'enregistres comme une victoire technique.
Review : Chaque soir, un résumé de l'énergie consommée.
- Objectif Portfolio Ce projet doit être codé avec une rigueur de "Senior" :
Gestion propre des erreurs (Result, Option).
Séparation nette entre la logique métier et le rendu TUI.
Code documenté en francais et anglais (pour les recruteurs Cyber).