- Structure projet complete - Schema BDD (3 tables: Clients, Projets, Temps) - 6 modules VBA documentes - Scripts SQL de creation - Plan d'implementation pour agent - Base Access avec tables creees (Phase 1 complete) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
11 KiB
11 KiB
TimeTrack Pro - Plan d'Implementation pour Agent
Informations Critiques
Fichier cible: C:\Users\alexi\Documents\projects\timetrack-pro\db\TimeTrackPro.accdb
Prerequis humain: Le fichier .accdb doit exister (base Access vide creee manuellement).
Outils MCP utilises:
run_access_query- Execution SQLlist_access_tables- Verification tablesget_worksheet_data- Lecture donneesset_worksheet_data- Ecriture donneesinject_vba- Injection modules VBAvalidate_vba_code- Validation syntaxe VBAbackup_vba- Sauvegarde fichier
Phase 0 : Verification Prerequis
Step 0.1 - Verifier existence fichier
Action: list_access_tables
Params: file_path = "C:\Users\alexi\Documents\projects\timetrack-pro\db\TimeTrackPro.accdb"
- Si erreur "fichier introuvable": STOP - Demander a l'utilisateur de creer la base Access vide
- Si succes (meme vide): Continuer
Step 0.2 - Creer backup
Action: backup_vba
Params:
file_path = "C:\Users\alexi\Documents\projects\timetrack-pro\db\TimeTrackPro.accdb"
action = "create"
- Noter le backup_id pour restauration eventuelle
Phase 1 : Creation Structure BDD
Step 1.1 - Creer table tbl_Clients
Action: run_access_query
Params:
file_path = "C:\Users\alexi\Documents\projects\timetrack-pro\db\TimeTrackPro.accdb"
sql = "CREATE TABLE tbl_Clients (ClientID AUTOINCREMENT PRIMARY KEY, Nom TEXT(100) NOT NULL, Email TEXT(100), Telephone TEXT(20), Notes MEMO, DateCreation DATETIME DEFAULT Now())"
- Si erreur "table existe deja": Ignorer et continuer
- Si autre erreur: STOP et reporter
Step 1.2 - Creer table tbl_Projets
Action: run_access_query
Params:
file_path = "C:\Users\alexi\Documents\projects\timetrack-pro\db\TimeTrackPro.accdb"
sql = "CREATE TABLE tbl_Projets (ProjetID AUTOINCREMENT PRIMARY KEY, ClientID LONG NOT NULL, Nom TEXT(100) NOT NULL, Description MEMO, TauxHoraire CURRENCY DEFAULT 0, Actif YESNO DEFAULT True, DateCreation DATETIME DEFAULT Now())"
Step 1.3 - Creer table tbl_Temps
Action: run_access_query
Params:
file_path = "C:\Users\alexi\Documents\projects\timetrack-pro\db\TimeTrackPro.accdb"
sql = "CREATE TABLE tbl_Temps (TempsID AUTOINCREMENT PRIMARY KEY, ProjetID LONG NOT NULL, DateEntree DATETIME NOT NULL, Duree DOUBLE NOT NULL, Description MEMO, DateCreation DATETIME DEFAULT Now())"
Note: Utiliser DateEntree au lieu de Date (mot reserve SQL)
Step 1.4 - Verification Checkpoint 1
Action: list_access_tables
Params: file_path = "C:\Users\alexi\Documents\projects\timetrack-pro\db\TimeTrackPro.accdb"
- Attendu: 3 tables (tbl_Clients, tbl_Projets, tbl_Temps)
- Si manquant: Reprendre les steps 1.1-1.3 pour les tables manquantes
Step 1.5 - Creer index (optionnel mais recommande)
Action: run_access_query (x4)
sql_1 = "CREATE INDEX idx_Projets_ClientID ON tbl_Projets (ClientID)"
sql_2 = "CREATE INDEX idx_Temps_ProjetID ON tbl_Temps (ProjetID)"
sql_3 = "CREATE INDEX idx_Temps_Date ON tbl_Temps (DateEntree)"
sql_4 = "CREATE INDEX idx_Projets_Actif ON tbl_Projets (Actif)"
- Ignorer erreurs "index existe deja"
Phase 2 : Insertion Donnees de Test
Step 2.1 - Inserer Clients
Action: set_worksheet_data
Params:
file_path = "C:\Users\alexi\Documents\projects\timetrack-pro\db\TimeTrackPro.accdb"
sheet_name = "tbl_Clients"
columns = ["Nom", "Email", "Telephone", "Notes"]
mode = "append"
data = [
["Acme Corporation", "contact@acme.com", "01 23 45 67 89", "Client principal"],
["Tech Solutions", "info@techsol.fr", "01 98 76 54 32", "Startup tech"],
["Freelance Direct", "hello@freelance.io", "", "Plateforme freelance"],
["Marketing Pro", "contact@marketingpro.fr", "06 11 22 33 44", "Agence marketing"]
]
Step 2.2 - Verifier Clients inseres
Action: get_worksheet_data
Params:
file_path = "C:\Users\alexi\Documents\projects\timetrack-pro\db\TimeTrackPro.accdb"
sheet_name = "tbl_Clients"
- Attendu: 4 enregistrements avec ClientID 1-4
- Noter les ClientID pour la suite
Step 2.3 - Inserer Projets
Action: set_worksheet_data
Params:
file_path = "C:\Users\alexi\Documents\projects\timetrack-pro\db\TimeTrackPro.accdb"
sheet_name = "tbl_Projets"
columns = ["ClientID", "Nom", "Description", "TauxHoraire", "Actif"]
mode = "append"
data = [
[1, "Site Web Corporate", "Refonte du site web principal", 75, true],
[1, "Maintenance Mensuelle", "Support et maintenance", 60, true],
[2, "API Backend", "Developpement API REST", 85, true],
[2, "App Mobile", "Application iOS/Android", 90, true],
[3, "Consulting Tech", "Conseil et accompagnement", 100, true],
[4, "Campagne SEO", "Optimisation referencement", 70, true]
]
Step 2.4 - Verifier Projets inseres
Action: get_worksheet_data
Params:
file_path = "C:\Users\alexi\Documents\projects\timetrack-pro\db\TimeTrackPro.accdb"
sheet_name = "tbl_Projets"
- Attendu: 6 enregistrements avec ProjetID 1-6
Step 2.5 - Inserer Temps
Action: set_worksheet_data
Params:
file_path = "C:\Users\alexi\Documents\projects\timetrack-pro\db\TimeTrackPro.accdb"
sheet_name = "tbl_Temps"
columns = ["ProjetID", "DateEntree", "Duree", "Description"]
mode = "append"
data = [
[1, "2025-01-02", 3.5, "Maquettes et wireframes"],
[1, "2025-01-03", 4.0, "Integration HTML/CSS"],
[1, "2025-01-06", 5.5, "Developpement pages dynamiques"],
[2, "2025-01-07", 1.5, "Mise a jour plugins"],
[2, "2025-01-08", 2.0, "Correction bugs mineurs"],
[3, "2025-01-02", 6.0, "Architecture et endpoints"],
[3, "2025-01-03", 7.0, "Implementation CRUD"],
[3, "2025-01-06", 4.5, "Tests unitaires"],
[4, "2025-01-07", 5.0, "Setup projet React Native"],
[4, "2025-01-08", 6.5, "Ecrans principaux"],
[5, "2025-01-03", 2.0, "Reunion strategie technique"],
[5, "2025-01-09", 3.0, "Audit architecture existante"],
[6, "2025-01-06", 4.0, "Analyse mots-cles"],
[6, "2025-01-08", 3.5, "Optimisation on-page"]
]
Step 2.6 - Verification Checkpoint 2
Action: get_worksheet_data
Params:
file_path = "C:\Users\alexi\Documents\projects\timetrack-pro\db\TimeTrackPro.accdb"
sheet_name = "tbl_Temps"
- Attendu: 14 enregistrements
Step 2.7 - Test requete agregation
Action: run_access_query
Params:
file_path = "C:\Users\alexi\Documents\projects\timetrack-pro\db\TimeTrackPro.accdb"
sql = "SELECT COUNT(*) AS NbTemps, SUM(Duree) AS TotalHeures FROM tbl_Temps"
- Attendu: NbTemps = 14, TotalHeures = 58.0
Phase 3 : Injection Modules VBA
Important: Lire le code de chaque module dans VBA_MODULES.md avant injection.
Step 3.1 - Valider mod_Config
Action: validate_vba_code
Params:
code = "<contenu de mod_Config depuis VBA_MODULES.md>"
file_type = "excel"
- Si erreurs syntaxe: Corriger et revalider
- Si succes: Continuer
Step 3.2 - Injecter mod_Config
Action: inject_vba
Params:
file_path = "C:\Users\alexi\Documents\projects\timetrack-pro\db\TimeTrackPro.accdb"
module_name = "mod_Config"
code = "<contenu valide>"
Step 3.3 - Valider et Injecter mod_Utils
Action: validate_vba_code puis inject_vba
module_name = "mod_Utils"
Step 3.4 - Valider et Injecter mod_DataAccess
Action: validate_vba_code puis inject_vba
module_name = "mod_DataAccess"
Step 3.5 - Valider et Injecter mod_Calculs
Action: validate_vba_code puis inject_vba
module_name = "mod_Calculs"
Step 3.6 - Valider et Injecter mod_Navigation
Action: validate_vba_code puis inject_vba
module_name = "mod_Navigation"
Step 3.7 - Valider et Injecter mod_Export
Action: validate_vba_code puis inject_vba
module_name = "mod_Export"
Step 3.8 - Verification Checkpoint 3
Action: list_modules (via extract_vba ou list_macros)
Params: file_path = "C:\Users\alexi\Documents\projects\timetrack-pro\db\TimeTrackPro.accdb"
- Attendu: 6 modules (mod_Config, mod_Utils, mod_DataAccess, mod_Calculs, mod_Navigation, mod_Export)
Phase 4 : Verification Finale
Step 4.1 - Test requete TempsByClient
Action: run_access_query
Params:
file_path = "C:\Users\alexi\Documents\projects\timetrack-pro\db\TimeTrackPro.accdb"
sql = "SELECT c.Nom AS Client, SUM(t.Duree) AS TotalHeures FROM (tbl_Clients c INNER JOIN tbl_Projets p ON c.ClientID = p.ClientID) INNER JOIN tbl_Temps t ON p.ProjetID = t.ProjetID GROUP BY c.Nom ORDER BY c.Nom"
- Attendu: 4 clients avec leurs totaux heures
Step 4.2 - Test requete ProjetsActifs
Action: run_access_query
Params:
file_path = "C:\Users\alexi\Documents\projects\timetrack-pro\db\TimeTrackPro.accdb"
sql = "SELECT p.Nom AS Projet, c.Nom AS Client, p.TauxHoraire FROM tbl_Clients c INNER JOIN tbl_Projets p ON c.ClientID = p.ClientID WHERE p.Actif = True"
- Attendu: 6 projets actifs
Step 4.3 - Test calcul montant
Action: run_access_query
Params:
file_path = "C:\Users\alexi\Documents\projects\timetrack-pro\db\TimeTrackPro.accdb"
sql = "SELECT SUM(t.Duree * p.TauxHoraire) AS MontantTotal FROM tbl_Temps t INNER JOIN tbl_Projets p ON t.ProjetID = p.ProjetID"
- Attendu: Montant > 0 (calcul taux * heures)
Phase 5 : Post-Implementation (Manuel)
Ces etapes ne sont PAS automatisables par MCP VBA et doivent etre faites dans Access UI :
5.1 - Creer Formulaires
- frm_Accueil - Navigation + stats
- frm_Clients - CRUD clients
- frm_Projets - CRUD projets (filtre par client)
- frm_SaisieTemps - Saisie rapide
- frm_Historique - Liste filtrable
5.2 - Creer Rapports
- rpt_RecapPeriode - Recap par periode
- rpt_DetailClient - Detail par client
5.3 - Configurer Navigation
- Formulaire de demarrage
- Menu principal
- Boutons de navigation
Resume Checkpoints
| Checkpoint | Verification | Critere Succes |
|---|---|---|
| CP0 | Fichier existe | list_access_tables sans erreur |
| CP1 | Tables creees | 3 tables visibles |
| CP2 | Donnees inserees | 4 clients, 6 projets, 14 temps |
| CP3 | Modules VBA | 6 modules injectes |
| CP4 | Requetes OK | Agregations retournent donnees |
Gestion des Erreurs
| Erreur | Action |
|---|---|
| "fichier introuvable" | Demander creation manuelle base Access |
| "table existe deja" | Ignorer et continuer |
| "index existe deja" | Ignorer et continuer |
| "erreur syntaxe VBA" | Revoir code, corriger, revalider |
| "Trust access to VBA" | Activer dans Access > Options > Trust Center |
| Autre erreur | STOP, backup_vba restore, reporter |
Commande de Restauration (si besoin)
Action: backup_vba
Params:
file_path = "C:\Users\alexi\Documents\projects\timetrack-pro\db\TimeTrackPro.accdb"
action = "restore"
backup_id = "<id du backup cree en Step 0.2>"
Auteur: Claude Date: 2025-12-30 Version: 1.0