Un simulateur léger et autonome (HTML/CSS/JS) pour estimer rapidement l’effort et le coût d’un projet intégrant de l’IA. Il permet de définir des phases, ajuster un TJM, appliquer une remise et une marge, puis d’exporter les résultats au format JSON.
Démo locale en un clic : ouvrez index.html dans votre navigateur.
- Gestion des phases de projet
- ➕ Ajouter, ✏️ Renommer, 🗑️ Supprimer des phases
- ⌨️ Jours par phase avec validation optimiste
- Paramétrage des coûts
- 💶 TJM (Taux Journalier Moyen)
- 🏷️ Remise (%) et 📈 Marge (%) appliquées au total HT
- Résumé clair
- 🕒 Total jours et 💰 coût estimé
- 📋 Détail par phase
- ✅ Valeurs après remise et avec marge
- Presets pratiques
- ⚡ Lean : cadrage rapide, prototype express, dev noyau, tests essentiels
- 🧩 Complet : cadrage, UX/recherche, prototype haute fidélité, dev, intégration IA, sécurité/observabilité, tests, formation/support
- Export JSON intégré
- 🧾 Téléchargement d’un fichier récapitulatif prêt à partager
- Export PDF (devis) via impression native
- 🖨️ Bouton « Exporter PDF (Devis) » qui prépare un en‑tête (date, référence) et ouvre la boîte de dialogue d’impression
- 📄 Mise en page optimisée A4 (@media print) pour un rendu type devis
- UI soignée et accessible
- 🧱 Composants “cards / buttons / inputs”, labels ARIA, focus states, responsive
- Ouvrir
index.htmldans un navigateur moderne (Chrome, Edge, Firefox). - Ajuster les phases et les jours dans le panneau gauche.
- Saisir le TJM, la remise (%) et la marge (%) dans le panneau de droite.
- Consulter le résumé et le détail des coûts.
- Exporter en JSON via le bouton « Exporter ».
- Générer un PDF (devis) via le bouton « Exporter PDF (Devis) » puis choisir « Enregistrer en PDF » dans la boîte de dialogue d’impression.
Aucune installation requise. Le projet est 100% front-end et fonctionne hors-ligne.
index.html: contient le HTML, le CSS et le JavaScript du simulateur dans un seul fichier.
Le JSON exporté inclut :
generatedAt: horodatage ISOtjm: valeur du TJMphases: liste des phases{ name, days }totals:days: total jourscostHT: coût total HT avant remiseremisePct: remise appliquée (%)afterRemiseHT: total HT après remisemargePct: marge appliquée (%)totalWithMargeHT: total HT avec marge
Exemple abrégé :
{
"generatedAt": "2025-08-05T13:20:40.000Z",
"tjm": 800,
"phases": [{ "name": "Développement app", "days": 10 }],
"totals": {
"days": 10,
"costHT": 8000,
"remisePct": 0,
"afterRemiseHT": 8000,
"margePct": 20,
"totalWithMargeHT": 9600
}
}- Champs numériques avec
inputmode="decimal"et validation visuelle - Libellés ARIA pour lecteurs d’écran
- Composants responsives, utilisables au clavier
- Design inspiré des patterns modernes (cards, toolbars, metrics)
- Autonome : aucun framework requis
- Formatage et calculs côté client
Intl.NumberFormatpour les formats monétaires et numériques- Export via
BlobetURL.createObjectURL - Export PDF: impression native (
window.print) avec styles@media print(A4) et métadonnées dynamiques (date, référence) - Identifiants phases générés via
crypto.randomUUID()
Idées d’améliorations possibles :
- 💾 Persistance locale (localStorage)
- 🧷 Export CSV
- 🧾 Gabarit de devis personnalisable (en-tête société/client, logo, conditions, signature)
- 🧮 Option TVA et totaux TTC dans le PDF
- 🌗 Thème clair pour l’impression dédiée
- 🧮 TVA et devis TTC
- 👥 Multi-profils (TJM par rôle)
- 📊 Courbe d’effort par phase
- 📥 Import de presets personnalisés
- Forker le repo
- Créer une branche :
feature/ma-fonctionnalite - Commits clairs et atomiques
- Ouvrir une Pull Request avec une description détaillée
Recommandations :
- Garder l’app autonome et simple
- Soigner l’accessibilité
- Maintenir la cohérence visuelle
MIT — Utilisation libre, sans garantie. Inclure la notice de licence dans les redistributions.
UI/UX inspirée par des patterns courants (cards, boutons, inputs) popularisés dans des tutoriels et dashboards modernes, en particulier des références mentionnées dans index.html (dev.to, Medium, etc.).