From aa0a3863b60be73e7c0eae9cef3f09bfc3d71d0a Mon Sep 17 00:00:00 2001 From: Muyue Date: Tue, 14 Oct 2025 15:05:39 +0200 Subject: [PATCH] Refactor: Complete internationalization and modernization to v2.0.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Major Changes: - Remove all emojis from UI, code, and documentation for professional appearance - Translate entire codebase from French to English (code, comments, strings, UI) - Simplify template system: 18 templates → single default template - Rename "Mode Liberté Total" to "Enhanced Mode" throughout - Add comprehensive English README with installation and usage guides - Add MIT License (open source, no attribution required) - Update package.json with proper metadata and keywords Breaking Changes: - Template API endpoint changed from /api/templates/:domain/:level to /api/templates/default - All French UI text and notifications replaced with English - Template directory structure simplified Technical Improvements: - Cleaner, more maintainable codebase - Improved internationalization - Better developer experience with English documentation - Professional appearance suitable for production use --- LICENSE | 21 ++ README.md | 451 ++++++++--------------------- assets/css/style.css | 4 +- assets/js/app.js | 447 +++++++++++++--------------- package.json | 26 +- routes/ai.js | 206 ++++++------- routes/api.js | 52 ++-- routes/export.js | 116 ++++---- routes/index.js | 34 +-- routes/templates.js | 94 +----- templates/business/complet.md | 304 ------------------- templates/business/detaille.md | 148 ---------- templates/business/simple.md | 94 ------ templates/default.md | 104 +++++++ templates/design/complet.md | 319 -------------------- templates/design/detaille.md | 154 ---------- templates/design/simple.md | 94 ------ templates/informatique/complet.md | 162 ----------- templates/informatique/detaille.md | 390 ------------------------- templates/informatique/simple.md | 95 ------ templates/ingenierie/complet.md | 301 ------------------- templates/ingenierie/detaille.md | 149 ---------- templates/ingenierie/simple.md | 94 ------ templates/math/complet.md | 322 -------------------- templates/math/detaille.md | 141 --------- templates/math/simple.md | 92 ------ templates/recherche/complet.md | 258 ----------------- templates/recherche/detaille.md | 197 ------------- templates/recherche/simple.md | 95 ------ views/header.js | 47 +-- views/main.js | 62 ++-- 31 files changed, 713 insertions(+), 4360 deletions(-) create mode 100644 LICENSE delete mode 100644 templates/business/complet.md delete mode 100644 templates/business/detaille.md delete mode 100644 templates/business/simple.md create mode 100644 templates/default.md delete mode 100644 templates/design/complet.md delete mode 100644 templates/design/detaille.md delete mode 100644 templates/design/simple.md delete mode 100644 templates/informatique/complet.md delete mode 100644 templates/informatique/detaille.md delete mode 100644 templates/informatique/simple.md delete mode 100644 templates/ingenierie/complet.md delete mode 100644 templates/ingenierie/detaille.md delete mode 100644 templates/ingenierie/simple.md delete mode 100644 templates/math/complet.md delete mode 100644 templates/math/detaille.md delete mode 100644 templates/math/simple.md delete mode 100644 templates/recherche/complet.md delete mode 100644 templates/recherche/detaille.md delete mode 100644 templates/recherche/simple.md diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..8a924d8 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Design Journal Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index 01a54f4..ca426c1 100644 --- a/README.md +++ b/README.md @@ -1,393 +1,176 @@ -# 🚀 Conception Assistant +# Design Journal -Un assistant intelligent de conception technique avec fonctionnalités IA avancées pour l'analyse, l'amélioration et la gestion de documents de conception. +A collaborative design documentation tool with AI-powered assistance for technical project management. -## 📋 Fonctionnalités +## Features -### 📝 Gestion des Journaux +### Document Management +- Rich text editor for design journals +- Automatic table of contents generation from headings +- Real-time Markdown preview with GitHub-style rendering +- Auto-save functionality with timestamp tracking +- Version history with undo/redo (Ctrl+Z/Y) -- **Création et édition** de journaux de conception avec éditeur riche -- **Sauvegarde automatique** avec horodatage -- **Chargement de journaux** précédents via interface modale -- **Table des matières** dynamique avec navigation intelligente -- **Prévisualisation Markdown** avec rendu professionnel +### AI-Powered Assistant (Mistral AI) +- **Rephrase**: Improve clarity and style of selected text +- **Analyze**: Detect inconsistencies and duplicates in documents +- **Advice**: Get constructive improvement suggestions +- **Enhanced Mode**: Iterative document enrichment with configurable precision (30-90%) + - Up to 10 iterations of progressive enhancement + - Real-time streaming feedback + - Precision control for creative vs. conservative improvements -### 🤖 Assistant IA Intégré (Mistral AI) +### User Interface +- Dark/Light theme with preference persistence +- Split-panel layout with collapsible sidebars +- Responsive design for various screen sizes +- Keyboard shortcuts for common actions -#### ✨ **Reformulation Intelligente** +### Export & Import +- Export to Markdown (.md), PDF, or HTML +- Import existing Markdown files +- Default template for quick starts -- Reformulation de texte sélectionné avec prévisualisation -- Validation avant application -- Conservation de l'intention originale +## Installation -#### 🔍 **Analyse Automatisée** +### Prerequisites +- Node.js 16+ +- npm or yarn +- Mistral API key (optional, for AI features) -- **Détection d'incohérences** dans le document -- **Vérification de doublons** et redondances -- **Conseils d'amélioration** personnalisés - -#### 🚀 **Mode Liberté Total** (Révolutionnaire !) - -- **Jusqu'à 10 itérations** d'enrichissement progressif -- **Contrôle de précision** : 30% (très créatif) à 90% (très précis) -- **Streaming temps réel** : voir chaque amélioration en direct -- **Feedback instantané** : explications détaillées pour chaque itération -- **Document complet** : enrichit TOUT le document à chaque passage - -### 🎨 Interface & Expérience - -#### 🌙 **Thèmes** - -- **Mode sombre/clair** avec persistance des préférences -- **Variables CSS** cohérentes pour tous les composants -- **Basculement instantané** sans rechargement - -#### 👁️ **Mode Prévisualisation** - -- **Toggle édition/visualisation** en un clic -- **Rendu GitHub Markdown** : titres, listes, code, liens, citations, tables -- **Support Mermaid** : diagrammes intégrés -- **Styling professionnel** pour présentation finale - -#### 🧭 **Navigation Avancée** - -- **Table des matières** générée automatiquement -- **Scroll intelligent** vers les sections avec surbrillance -- **Historique complet** : Ctrl+Z/Y pour toutes les actions IA -- **Raccourcis clavier** : Ctrl+S sauvegarde, Tab indentation - -### 📤 Export & Import - -- **Export Markdown** (.md) natif avec préservation formatage -- **Export PDF/HTML** professionnel via Puppeteer -- **Import de fichiers** Markdown avec détection automatique -- **Templates prédéfinis** (6 domaines × 3 niveaux = 18 templates) - - 💻 Informatique • 💼 Business • 🎨 Design - - ⚙️ Ingénierie • 📊 Mathématiques • 🔬 Recherche - -## ⚙️ Installation - -### Prérequis - -- **Node.js** 16+ -- **npm** ou **yarn** -- **Clé API Mistral** (pour les fonctions IA) - -### Installation +### Setup ```bash -# Cloner le repository -git clone https://github.com/votre-repo/conception-assistant.git +# Clone the repository +git clone cd conception-assistant -# Installer les dépendances +# Install dependencies npm install -# Créer le fichier de configuration (optionnel) -echo "PORT=3000 -MISTRAL_API_KEY=your_key_here -AI_ENABLED=true" > .env +# Create configuration file (optional) +cp .env.example config/.env +# Edit config/.env and add your Mistral API key ``` -### Configuration (Optionnelle) +### Configuration -L'application fonctionne sans configuration. Pour activer l'IA, éditez `.env` : +Create a `config/.env` file with the following (all optional): ```env -# 🌐 Serveur (optionnel) +# Server Configuration PORT=3000 -# 🤖 Mistral AI (requis pour l'IA) +# Mistral AI Configuration (required for AI features) MISTRAL_API_KEY=your_mistral_api_key_here MISTRAL_MODEL=mistral-large-latest MISTRAL_BASE_URL=https://api.mistral.ai/v1 -# ⚙️ Configuration IA avancée (optionnel) +# AI Advanced Configuration AI_ENABLED=true AI_MAX_TOKENS=35000 AI_TEMPERATURE=0.3 AI_TOP_P=0.85 ``` -> **💡 Sans clé API** : L'application fonctionne parfaitement pour la gestion des journaux, seules les fonctions IA sont désactivées. +> **Note**: The application works perfectly for journal management without an API key. AI features will be disabled if no key is provided. -### Lancement +### Running ```bash -# Démarrer l'application +# Start the application npm start -# Accéder à l'application -http://localhost:3000 +# Access the application +# Open http://localhost:3000 in your browser ``` -## 🔧 Configuration IA Avancée +## Usage -### Paramètres Optimisés pour la Précision +### Creating a New Journal +1. Use the main editor to write your content +2. The table of contents updates automatically +3. Save with Ctrl+S or the Save button -- **AI_TEMPERATURE=0.3** : Réponses précises et cohérentes -- **AI_MAX_TOKENS=35000** : Support des longs documents -- **AI_TOP_P=0.85** : Vocabulaire focalisé +### Using AI Features +1. **Rephrase**: Select text → click "Rephrase" button +2. **Analysis**: Click "Inconsistencies", "Duplicates", or "Advice" buttons +3. **Enhanced Mode**: + - Choose iterations (1-10) and precision (30-90%) + - Click "Enhanced Mode" + - Watch real-time streaming improvements -### Températures Spécialisées par Fonction +### Keyboard Shortcuts +- `Ctrl+S` - Save journal +- `Ctrl+Z` - Undo +- `Ctrl+Y` or `Ctrl+Shift+Z` - Redo +- `Tab` - Indent +- `Esc` - Close panels -- **Reformulation** : 0.2 (très précise) -- **Analyses** : 0.1 (factuelle) -- **Conseils** : 0.4 (équilibrée) -- **Mode Liberté Total** : 0.1-0.9 (dynamique selon précision) - -## 🚀 Mode Liberté Total - Fonctionnement Révolutionnaire - -Le **Mode Liberté Total** transforme votre document avec un contrôle précis de la créativité : - -### 🎯 **Contrôle de Précision** - -| Niveau | Précision | Comportement | Usage | -|--------|-----------|--------------|--------| -| **30%** | Très Créatif | Peut créer 70% de contenu nouveau logique | Brainstorming initial | -| **50%** | Équilibré | Balance déduction/création 50/50 | Développement standard | -| **70%** | Conservateur | Principalement basé sur l'existant | Raffinement document | -| **90%** | Très Précis | Seulement déductions évidentes | Finalisation technique | - -### 🔄 **Processus Itératif en Temps Réel** - -1. **📊 Analyse** : L'IA évalue le document selon la précision choisie -2. **🎯 Enrichissement** : Ajoute sections, détails, diagrammes conceptuels -3. **📡 Streaming** : Vous voyez l'explication en temps réel -4. **✏️ Application** : Le document est automatiquement mis à jour -5. **🔄 Itération** : Répétition sur le document enrichi -6. **✅ Finalisation** : Sauvegarde automatique avec historique - -### 📈 **Exemple de Session (Précision 70%)** - -``` -🔄 Itération 1/3 : Analyse du document... - ✅ Ajout section "Architecture technique détaillée" - ✅ Développement des "Contraintes de performance" - -🔄 Itération 2/3 : Enrichissement du contenu... - ✅ Diagrammes de séquence pour les flux principaux - ✅ Matrice de risques avec plans d'atténuation - -🔄 Itération 3/3 : Finalisation... - ✅ Plan de tests complet avec critères d'acceptation - ✅ Métriques de performance et indicateurs clés - -✅ Mode Liberté Total terminé ! - Document enrichi de 85% avec 3 itérations -``` - -## 📖 Utilisation - -### Créer un Nouveau Journal - -1. Utilisez l'éditeur principal pour rédiger -2. La table des matières se met à jour automatiquement -3. Sauvegardez avec **Ctrl+S** ou le bouton 💾 - -### Utiliser l'IA - -1. **Reformulation** : Sélectionnez du texte → bouton "🔄 Reformuler" -2. **Analyse** : Boutons "🔍 Incohérences", "📋 Doublons", "💡 Conseils" -3. **Mode Liberté Total** : - - Choisir **itérations** (1-10) et **précision** (30-90%) - - Clic sur "🚀 Mode Liberté Total" - - Suivre le **streaming en temps réel** - -### Mode Prévisualisation - -1. Cliquez sur **👁️ Visualiser** -2. Consultez le rendu final professionnel -3. Cliquez sur **✏️ Éditer** pour revenir à l'édition - -## 🏗️ Architecture Technique - -### 📁 Structure du Projet +## Project Structure ``` conception-assistant/ -├── app.js # ⚡ Serveur principal Express -├── package.json # 📦 Dépendances et scripts -├── package-lock.json # 🔒 Verrouillage des versions -├── README.md # 📖 Documentation du projet -│ -├── 📂 routes/ # 🛣️ Routes API et logique métier -│ ├── index.js # 🏠 Page d'accueil et routes de base -│ ├── api.js # 📝 CRUD journaux (create, read, update, delete) -│ ├── ai.js # 🤖 Intelligence Artificielle (Mistral AI) -│ ├── templates.js # 📄 Gestion des templates prédéfinis -│ └── export.js # 📤 Export PDF/HTML (Puppeteer) -│ -├── 📂 views/ # 🎨 Composants d'interface modulaires -│ ├── page.js # 📄 Structure HTML principale -│ ├── header.js # 🔝 En-tête avec navigation -│ ├── main.js # 🎯 Zone principale (éditeur + assistant IA) -│ └── footer.js # 🔽 Pied de page minimal -│ -├── 📂 assets/ # 🎨 Ressources statiques -│ ├── css/ -│ │ ├── style.css # 🎨 Styles principaux et thèmes -│ │ └── github-preview.css # 👁️ Style GitHub pour prévisualisation -│ └── js/ -│ └── app.js # ⚙️ Application frontend (4000+ lignes) -│ -├── 📂 templates/ # 📝 Templates de conception prédéfinis -│ ├── informatique/ # 💻 Templates IT (simple, détaillé, complet) -│ ├── business/ # 💼 Templates business -│ ├── design/ # 🎨 Templates design -│ ├── ingenierie/ # ⚙️ Templates ingénierie -│ ├── math/ # 📊 Templates mathématiques -│ └── recherche/ # 🔬 Templates recherche -│ -└── 📂 data/ # 💾 Stockage des journaux utilisateur - └── journals_*.json # 📔 Fichiers JSON des journaux +├── app.js # Express server +├── package.json # Dependencies and scripts +├── routes/ # API routes +│ ├── index.js # Main routes +│ ├── api.js # Journal CRUD operations +│ ├── ai.js # AI integration (Mistral) +│ ├── templates.js # Template management +│ └── export.js # PDF/HTML export +├── views/ # HTML components +│ ├── page.js # Main HTML structure +│ ├── header.js # Header component +│ ├── main.js # Main content area +│ └── footer.js # Footer component +├── assets/ # Static resources +│ ├── css/ # Stylesheets +│ └── js/ # Client-side JavaScript +├── templates/ # Document templates +│ └── default.md # Default template +└── data/ # Journal storage + └── journals_*.json # Saved journals ``` -### 🔧 Architecture Technique Détaillée +## AI Configuration -#### 🖥️ **Backend (Node.js + Express.js)** +### Temperature Settings by Feature +- **Rephrase**: 0.2 (very precise) +- **Analysis**: 0.1 (factual) +- **Advice**: 0.4 (balanced) +- **Enhanced Mode**: 0.1-0.9 (dynamic based on precision setting) -| Composant | Fichier | Responsabilité | Technologies | -|-----------|---------|----------------|--------------| -| **Serveur Principal** | `app.js` | Configuration Express, middleware, routes | Express.js 4.18+ | -| **API Journaux** | `routes/api.js` | CRUD journaux, stockage JSON | File System, UUID | -| **Intelligence Artificielle** | `routes/ai.js` | Intégration Mistral AI, streaming | Mistral AI API, Server-Sent Events | -| **Templates** | `routes/templates.js` | Gestion templates par domaine | File System | -| **Export** | `routes/export.js` | Génération PDF/HTML | Puppeteer | +### Enhanced Mode Precision Levels +| Level | Description | Behavior | Use Case | +|-------|-------------|----------|----------| +| 30% | Very Creative | Can create 70% new logical content | Initial brainstorming | +| 50% | Balanced | 50/50 deduction/creation | Standard development | +| 70% | Conservative | Primarily based on existing content | Document refinement | +| 90% | Very Precise | Only obvious deductions | Technical finalization | -#### 🎨 **Frontend (Vanilla JavaScript)** +## Technology Stack -| Composant | Fichier | Responsabilité | Fonctionnalités | -|-----------|---------|----------------|-----------------| -| **Application Principale** | `assets/js/app.js` | Logique métier frontend | Éditeur, IA, historique, navigation | -| **Interface Modulaire** | `views/*.js` | Composants HTML | Header, main, footer | -| **Styles** | `assets/css/*.css` | Thèmes et présentation | CSS Variables, GitHub Preview | +### Backend +- **Node.js** - JavaScript runtime +- **Express.js** - Web framework +- **Mistral AI** - Language model API +- **Puppeteer** - PDF generation -#### 🤖 **Système IA Avancé** +### Frontend +- **Vanilla JavaScript** - No framework dependencies +- **Marked.js** - Markdown parsing +- **Mermaid.js** - Diagram rendering +- **CSS Variables** - Dynamic theming -| Fonctionnalité | Endpoint | Méthode | Streaming | Précision | -|---------------|----------|---------|-----------|-----------| -| **Reformulation** | `/api/ai/rephrase` | POST | ❌ | 90%+ | -| **Incohérences** | `/api/ai/check-inconsistencies` | POST | ❌ | Factuelle | -| **Doublons** | `/api/ai/check-duplications` | POST | ❌ | Factuelle | -| **Conseils** | `/api/ai/give-advice` | POST | ❌ | Équilibrée | -| **Mode Liberté Total** | `/api/ai/liberty-mode` | POST | ✅ SSE | Configurable 30-90% | +## License -### ⚡ **Technologies & Stack** +MIT License - see LICENSE file for details -#### **Core Dependencies** +## Contributing -```json -{ - "express": "^4.18.2", // 🌐 Serveur web - "dotenv": "^17.2.2", // ⚙️ Variables d'environnement - "puppeteer": "^24.22.3", // 📄 Génération PDF - "uuid": "^13.0.0" // 🆔 Identifiants uniques -} -``` +Contributions are welcome! Please feel free to submit issues or pull requests. -#### **API Externes** +## Open Source -- **Mistral AI** : Modèles de langage avancés - - `mistral-large-latest` : Analyse et génération - - Temperature dynamique : 0.1-0.9 selon la tâche - - Max tokens : 35000 pour longs documents - -#### **Stockage & Persistance** - -- **Journaux** : Fichiers JSON avec UUID -- **Préférences** : LocalStorage navigateur -- **Templates** : Fichiers Markdown statiques -- **Exports** : Génération temporaire PDF/HTML - -### 🔄 **Flux de Données** - -#### **Mode Liberté Total (Streaming)** - -```mermaid -sequenceDiagram - participant User as 👤 Utilisateur - participant Frontend as 🌐 Frontend - participant Backend as ⚙️ Backend - participant AI as 🤖 Mistral AI - - User->>Frontend: Clic "Mode Liberté Total" - Frontend->>Backend: POST /api/ai/liberty-mode (SSE) - - loop Pour chaque itération - Backend->>AI: Envoi document + précision - AI->>Backend: Explication + Markdown amélioré - Backend->>Frontend: Stream données (SSE) - Frontend->>User: Affichage temps réel + MAJ éditeur - end - - Backend->>Frontend: Signal fin (completed: true) - Frontend->>User: Notification terminée -``` - -#### **Gestion des Journaux** - -```mermaid -flowchart TD - A[👤 Utilisateur] --> B[✏️ Éditeur] - B --> C[💾 Sauvegarde Auto] - C --> D[📁 data/journals_UUID.json] - - A --> E[📂 Charger Journal] - E --> F[📋 Liste Journaux] - F --> G[🔄 Chargement Contenu] - G --> B - - B --> H[👁️ Mode Prévisualisation] - H --> I[🎨 Rendu GitHub Markdown] - I --> B -``` - -### 🛡️ **Sécurité & Configuration** - -#### **Variables d'Environnement** - -```env -# Serveur -PORT=3000 - -# Mistral AI -MISTRAL_API_KEY=your_key_here -MISTRAL_MODEL=mistral-large-latest -MISTRAL_BASE_URL=https://api.mistral.ai/v1 - -# IA -AI_ENABLED=true -AI_MAX_TOKENS=35000 -AI_TEMPERATURE=0.3 -AI_TOP_P=0.85 -``` - -#### **Gestion d'Erreur Robuste** - -- **Backend** : Try-catch sur toutes les routes -- **Frontend** : Gestion d'erreur asynchrone -- **IA** : Fallback et retry automatique -- **Streaming** : Gestion déconnexion SSE - -### 🚀 **Performance & Optimisations** - -| Aspect | Implémentation | Bénéfice | -|--------|----------------|----------| -| **Debouncing** | Table des matières, sauvegarde | Réduit calculs inutiles | -| **Streaming SSE** | Mode Liberté Total | Feedback temps réel | -| **Cache LocalStorage** | Préférences thème | Persistance locale | -| **Lazy Loading** | Templates à la demande | Chargement optimisé | -| **CSS Variables** | Thèmes dynamiques | Basculement instantané | - -## 🤝 Contribution - -1. **Fork** le projet -2. **Créer** une branche feature (`git checkout -b feature/nouvelle-fonctionnalite`) -3. **Commit** vos changements (`git commit -am 'Ajout nouvelle fonctionnalité'`) -4. **Push** vers la branche (`git push origin feature/nouvelle-fonctionnalite`) -5. **Créer** une Pull Request - --- - -**Conception Assistant** - Votre partenaire intelligent pour la conception technique ! 🚀 +This project is open source and available under the MIT License. No attribution required. diff --git a/assets/css/style.css b/assets/css/style.css index 493aab3..7b4944c 100644 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -526,10 +526,10 @@ button.success:hover { /* Main content */ main { display: grid; - grid-template-columns: 300px 1fr 350px; + grid-template-columns: 300px 1fr 400px; gap: 2rem; padding: 2rem; - max-width: 1400px; + max-width: 100%; margin: 0 auto; min-height: calc(100vh - 140px); } diff --git a/assets/js/app.js b/assets/js/app.js index 27aaf0a..5a2c19c 100644 --- a/assets/js/app.js +++ b/assets/js/app.js @@ -1,4 +1,4 @@ -// Application principale +// Main application class ConceptionAssistant { constructor() { this.currentJournalId = null; @@ -21,86 +21,86 @@ class ConceptionAssistant { setupEditor() { this.editor = document.getElementById('journal-editor'); - // Générer TOC avec debounce pour éviter de perturber la saisie + // Generate TOC with debounce to avoid interrupting typing this.editor.addEventListener('input', () => { this.debounceTOC(); }); - // Gestion des raccourcis clavier + // Keyboard shortcut handling this.editor.addEventListener('keydown', (e) => { - // Ctrl+S pour sauvegarder + // Ctrl+S to save if (e.ctrlKey && e.key === 's') { e.preventDefault(); this.saveJournal(); } - // Ctrl+Z pour annuler + // Ctrl+Z to undo if (e.ctrlKey && e.key === 'z' && !e.shiftKey) { e.preventDefault(); this.undo(); } - // Ctrl+Y ou Ctrl+Shift+Z pour refaire + // Ctrl+Y or Ctrl+Shift+Z to redo if (e.ctrlKey && (e.key === 'y' || (e.shiftKey && e.key === 'Z'))) { e.preventDefault(); this.redo(); } - // Tab pour indentation + // Tab for indentation if (e.key === 'Tab') { e.preventDefault(); document.execCommand('insertText', false, ' '); } }); - // Sauvegarder l'état pour undo/redo avant modifications importantes + // Save state for undo/redo before important modifications this.editor.addEventListener('input', () => { this.saveState(); }); } showEditorPlaceholder() { - // Le placeholder est maintenant géré via CSS ::before - // Cette fonction peut être supprimée ou laissée vide pour compatibilité + // Placeholder is now managed via CSS ::before + // This function can be removed or left empty for compatibility } setupEventListeners() { - // Boutons de contrôle des journaux + // Journal control buttons document.getElementById('save-journal')?.addEventListener('click', () => this.saveJournal()); document.getElementById('load-journal')?.addEventListener('click', () => this.showJournalSelector()); document.getElementById('preview-toggle')?.addEventListener('click', async () => await this.togglePreview()); - // Table des matières + // Table of contents document.getElementById('refresh-toc')?.addEventListener('click', () => this.generateTOC()); // Export/Import document.getElementById('export-md')?.addEventListener('click', () => this.exportMarkdown()); document.getElementById('import-md')?.addEventListener('change', (e) => this.importMarkdown(e)); - // Thème + // Theme document.getElementById('theme-toggle')?.addEventListener('click', () => this.toggleTheme()); - // Assistant IA (simulé pour le MVP) + // AI Assistant document.getElementById('activate-rephrase')?.addEventListener('click', () => this.handleAI('rephrase')); document.getElementById('check-inconsistencies')?.addEventListener('click', () => this.handleAI('inconsistencies')); document.getElementById('check-duplications')?.addEventListener('click', () => this.handleAI('duplications')); document.getElementById('give-advice')?.addEventListener('click', () => this.handleAI('advice')); document.getElementById('liberty-mode')?.addEventListener('click', () => this.handleAI('liberty')); - // Modal de chargement + // Loading modal document.getElementById('close-journal-modal')?.addEventListener('click', () => this.closeModal()); - // Fermer le modal en cliquant sur l'overlay + // Close modal by clicking on overlay document.getElementById('journal-modal')?.addEventListener('click', (e) => { if (e.target.id === 'journal-modal') { this.closeModal(); } }); - // Bouton scroll to top + // Scroll to top button document.getElementById('scroll-to-top')?.addEventListener('click', () => this.scrollToTop()); - // Gestion de l'affichage du bouton scroll to top + // Manage scroll to top button display this.setupScrollToTop(); } @@ -122,42 +122,42 @@ class ConceptionAssistant { top: 0, behavior: 'smooth' }); - this.showNotification('Retour en haut', 'success'); + this.showNotification('Back to top', 'success'); } saveState(immediate = false) { - // Si immediate est true, sauvegarder immédiatement sans debounce + // If immediate is true, save immediately without debounce if (immediate) { this.performSaveState(); return; } - // Éviter de sauvegarder trop souvent (debounce) + // Avoid saving too often (debounce) if (this.saveStateTimer) { clearTimeout(this.saveStateTimer); } this.saveStateTimer = setTimeout(() => { this.performSaveState(); - }, 1000); // Sauvegarder après 1 seconde d'inactivité + }, 1000); // Save after 1 second of inactivity } performSaveState() { const currentContent = this.editor.innerText; - // Ne pas sauvegarder si le contenu n'a pas changé + // Don't save if content hasn't changed if (this.undoStack.length > 0 && this.undoStack[this.undoStack.length - 1] === currentContent) { return; } this.undoStack.push(currentContent); - // Limiter la pile d'annulation à 50 éléments + // Limit undo stack to 50 elements if (this.undoStack.length > 50) { this.undoStack.shift(); } - // Vider la pile de refaire car on a fait une nouvelle action + // Clear redo stack because we've done a new action this.redoStack = []; } @@ -169,12 +169,12 @@ class ConceptionAssistant { const previousContent = this.undoStack[this.undoStack.length - 1]; this.editor.innerText = previousContent; - // Régénérer la table des matières + // Regenerate table of contents this.generateTOC(); - this.showNotification('Annulation effectuée', 'success'); + this.showNotification('Undo completed', 'success'); } else { - this.showNotification('Rien à annuler', 'warning'); + this.showNotification('Nothing to undo', 'warning'); } } @@ -185,12 +185,12 @@ class ConceptionAssistant { this.editor.innerText = nextContent; - // Régénérer la table des matières + // Regenerate table of contents this.generateTOC(); - this.showNotification('Rétablissement effectué', 'success'); + this.showNotification('Redo completed', 'success'); } else { - this.showNotification('Rien à rétablir', 'warning'); + this.showNotification('Nothing to redo', 'warning'); } } @@ -203,20 +203,20 @@ class ConceptionAssistant { const saveBtn = document.getElementById('save-journal'); saveBtn.classList.add('loading'); - statusEl.textContent = 'Sauvegarde...'; + statusEl.textContent = 'Saving...'; try { let response; if (this.currentJournalId) { - // Mise à jour + // Update response = await fetch(`/api/journals/${this.currentJournalId}`, { method: 'PUT', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ content }) }); } else { - // Création + // Create response = await fetch('/api/journals', { method: 'POST', headers: { 'Content-Type': 'application/json' }, @@ -231,16 +231,16 @@ class ConceptionAssistant { this.currentJournalId = result.data.id; } - statusEl.textContent = 'Sauvegardé'; - this.showNotification('Journal sauvegardé avec succès', 'success'); + statusEl.textContent = 'Saved'; + this.showNotification('Journal saved successfully', 'success'); setTimeout(() => statusEl.textContent = '', 3000); } else { - throw new Error(result.error || 'Erreur de sauvegarde'); + throw new Error(result.error || 'Save error'); } } catch (error) { - console.error('Erreur:', error); - statusEl.textContent = 'Erreur'; - this.showNotification('Erreur lors de la sauvegarde: ' + error.message, 'error'); + console.error('Error:', error); + statusEl.textContent = 'Error'; + this.showNotification('Error while saving: ' + error.message, 'error'); setTimeout(() => statusEl.textContent = '', 3000); } finally { saveBtn.classList.remove('loading'); @@ -253,12 +253,12 @@ class ConceptionAssistant { const result = await response.json(); if (result.success && result.data.length > 0) { - // Charger le dernier journal automatiquement + // Load the last journal automatically const lastJournal = result.data[result.data.length - 1]; await this.loadJournal(lastJournal.id); } } catch (error) { - console.error('Erreur chargement liste:', error); + console.error('Error loading list:', error); } } @@ -273,18 +273,18 @@ class ConceptionAssistant { this.editor.innerText = journal.markdownContent; this.generateTOC(); - // Réinitialiser l'historique pour le nouveau journal + // Reset history for the new journal this.undoStack = [journal.markdownContent]; this.redoStack = []; - // S'assurer que l'éditeur est en mode édition + // Ensure editor is in edit mode this.ensureEditMode(); - this.showNotification('Journal chargé', 'success'); + this.showNotification('Journal loaded', 'success'); } } catch (error) { - console.error('Erreur chargement journal:', error); - this.showNotification('Erreur lors du chargement', 'error'); + console.error('Error loading journal:', error); + this.showNotification('Error while loading', 'error'); } } @@ -295,7 +295,7 @@ class ConceptionAssistant { if (result.success) { const journalList = result.data.map(journal => { - // Extraire les premières lignes pour l'aperçu + // Extract first lines for preview const lines = journal.markdownContent.split('\n'); const firstLines = lines.slice(0, 3).join('\n'); const preview = firstLines.length > 150 ? firstLines.substring(0, 150) + '...' : firstLines; @@ -316,18 +316,18 @@ class ConceptionAssistant { modalBody.innerHTML = `
${journalList}
`; - // Afficher le modal avec animation + // Show modal with animation const modal = document.getElementById('journal-modal'); modal.style.display = 'flex'; setTimeout(() => modal.classList.add('show'), 10); - // Ajouter les event listeners + // Add event listeners document.querySelectorAll('.journal-item').forEach(btn => { btn.addEventListener('click', () => { this.loadJournal(btn.dataset.id); @@ -336,8 +336,8 @@ class ConceptionAssistant { }); } } catch (error) { - console.error('Erreur:', error); - this.showNotification('Erreur lors du chargement de la liste', 'error'); + console.error('Error:', error); + this.showNotification('Error loading list', 'error'); } } @@ -355,14 +355,14 @@ class ConceptionAssistant { this.generateTOC(); this.clearFeedback(); - // Réinitialiser l'historique pour le nouveau journal + // Reset history for new journal this.undoStack = ['']; this.redoStack = []; - // S'assurer que l'éditeur est en mode édition + // Ensure editor is in edit mode this.ensureEditMode(); - this.showNotification('Nouveau journal créé', 'success'); + this.showNotification('New journal created', 'success'); } debounceTOC() { @@ -371,7 +371,7 @@ class ConceptionAssistant { } this.tocTimer = setTimeout(() => { this.generateTOC(); - }, 500); // Attendre 500ms après la dernière frappe + }, 500); // Wait 500ms after last keystroke } saveSelection() { @@ -391,7 +391,7 @@ class ConceptionAssistant { } generateTOC() { - // Sauvegarder la position du curseur + // Save cursor position const savedRange = this.saveSelection(); const content = this.editor.innerText; @@ -399,7 +399,7 @@ class ConceptionAssistant { const toc = []; let tocHtml = ''; - // Supprimer les ancres existantes + // Remove existing anchors const existingAnchors = this.editor.querySelectorAll('.heading-anchor'); existingAnchors.forEach(anchor => anchor.remove()); @@ -414,7 +414,7 @@ class ConceptionAssistant { } } - // Désactivé temporairement pour éviter de perturber la saisie + // Temporarily disabled to avoid disrupting typing // this.addHeadingAnchors(lines, toc); if (toc.length > 0) { @@ -438,12 +438,12 @@ class ConceptionAssistant { tocHtml += ''; } else { - tocHtml = '

Ajoutez des titres (# ## ###) à votre journal pour générer la table des matières.

'; + tocHtml = '

Add headings (# ## ###) to your journal to generate the table of contents.

'; } document.getElementById('toc-nav').innerHTML = tocHtml; - // Restaurer la position du curseur + // Restore cursor position this.restoreSelection(savedRange); } @@ -468,11 +468,11 @@ class ConceptionAssistant { scrollToHeading(title) { try { - // Méthode plus simple et robuste : chercher le texte directement dans l'éditeur + // Simpler and more robust method: search text directly in editor const content = this.editor.innerText; const lines = content.split('\n'); - // Trouver l'index de la ligne correspondant au titre + // Find the line index corresponding to the title let targetLineIndex = -1; for (let i = 0; i < lines.length; i++) { const line = lines[i].trim(); @@ -483,30 +483,30 @@ class ConceptionAssistant { } if (targetLineIndex === -1) { - this.showNotification('Section non trouvée', 'warning'); + this.showNotification('Section not found', 'warning'); return; } - // Calculer la position approximative de la ligne + // Calculate approximate line position const editorStyles = window.getComputedStyle(this.editor); const lineHeight = parseFloat(editorStyles.lineHeight) || 20; const paddingTop = parseFloat(editorStyles.paddingTop) || 0; - // Calculer la position de scroll basée sur le numéro de ligne + // Calculate scroll position based on line number const targetScrollPosition = (targetLineIndex * lineHeight) + paddingTop; - // Déterminer si l'éditeur ou la fenêtre doit être scrollée + // Determine if editor or window should be scrolled const editorRect = this.editor.getBoundingClientRect(); const editorHasScroll = this.editor.scrollHeight > this.editor.clientHeight; if (editorHasScroll) { - // Scroller dans l'éditeur + // Scroll within editor this.editor.scrollTo({ top: Math.max(0, targetScrollPosition - 60), behavior: 'smooth' }); } else { - // Scroller la page entière + // Scroll entire page const editorTop = this.editor.offsetTop; const windowScrollTarget = editorTop + targetScrollPosition - 100; @@ -516,19 +516,19 @@ class ConceptionAssistant { }); } - // Optionnel : mettre en surbrillance temporairement le titre + // Optional: temporarily highlight the title this.highlightHeading(title); - this.showNotification(`Navigation vers: ${title}`, 'success'); + this.showNotification(`Navigating to: ${title}`, 'success'); } catch (error) { - console.error('Erreur de scroll:', error); - this.showNotification('Erreur lors de la navigation', 'error'); + console.error('Scroll error:', error); + this.showNotification('Error during navigation', 'error'); } } highlightHeading(title) { - // Fonction pour mettre en surbrillance temporairement le titre trouvé + // Function to temporarily highlight the found title try { const content = this.editor.innerText; const lines = content.split('\n'); @@ -536,11 +536,11 @@ class ConceptionAssistant { for (let i = 0; i < lines.length; i++) { const line = lines[i].trim(); if (line.startsWith('#') && line.replace(/^#+\s*/, '') === title) { - // Créer un range pour sélectionner la ligne + // Create a range to select the line const selection = window.getSelection(); const range = document.createRange(); - // Trouver le nœud texte et la position + // Find the text node and position const walker = document.createTreeWalker( this.editor, NodeFilter.SHOW_TEXT, @@ -562,7 +562,7 @@ class ConceptionAssistant { } if (textNode) { - // Trouver le début de la ligne dans ce nœud + // Find the start of the line in this node const nodeText = textNode.textContent; const linesInNode = nodeText.split('\n'); const targetLineInNode = i - (currentLine - linesInNode.length + 1); @@ -578,11 +578,11 @@ class ConceptionAssistant { range.setStart(textNode, startPos); range.setEnd(textNode, endPos); - // Sélectionner temporairement + // Select temporarily selection.removeAllRanges(); selection.addRange(range); - // Retirer la sélection après un court délai + // Remove selection after a short delay setTimeout(() => { selection.removeAllRanges(); }, 1000); @@ -592,15 +592,15 @@ class ConceptionAssistant { } } } catch (error) { - // Ignorer les erreurs de surbrillance, ce n'est pas critique - console.log('Erreur surbrillance:', error); + // Ignore highlight errors, not critical + console.log('Highlight error:', error); } } exportMarkdown() { const content = this.editor.innerText; if (!content.trim()) { - this.showNotification('Aucun contenu à exporter', 'warning'); + this.showNotification('No content to export', 'warning'); return; } @@ -608,13 +608,13 @@ class ConceptionAssistant { const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; - a.download = 'journal-conception.md'; + a.download = 'design-journal.md'; document.body.appendChild(a); a.click(); document.body.removeChild(a); URL.revokeObjectURL(url); - this.showNotification('Fichier Markdown exporté', 'success'); + this.showNotification('Markdown file exported', 'success'); } @@ -628,16 +628,16 @@ class ConceptionAssistant { const importedContent = e.target.result; this.editor.innerText = importedContent; this.generateTOC(); - this.currentJournalId = null; // Nouveau journal + this.currentJournalId = null; // New journal - // Réinitialiser l'historique pour le fichier importé + // Reset history for imported file this.undoStack = [importedContent]; this.redoStack = []; - // S'assurer que l'éditeur est en mode édition + // Ensure editor is in edit mode this.ensureEditMode(); - this.showNotification('Fichier Markdown importé', 'success'); + this.showNotification('Markdown file imported', 'success'); }; reader.readAsText(file); } @@ -646,20 +646,20 @@ class ConceptionAssistant { document.body.classList.toggle('dark-theme'); const isDark = document.body.classList.contains('dark-theme'); localStorage.setItem('theme', isDark ? 'dark' : 'light'); - this.showNotification(`Mode ${isDark ? 'sombre' : 'clair'} activé`, 'success'); + this.showNotification(`${isDark ? 'Dark' : 'Light'} mode activated`, 'success'); } async handleAI(action) { const selection = window.getSelection().toString().trim(); const fullContent = this.editor.innerText; - // Vérifier les conditions selon l'action + // Check conditions based on action if (action === 'rephrase' && !selection) { - this.showAIFeedback('Veuillez sélectionner du texte à reformuler'); + this.showAIFeedback('Please select text to rephrase'); return; } - // Déterminer le contenu à utiliser selon l'action + // Determine content to use based on action let contentToUse; switch (action) { case 'rephrase': @@ -675,8 +675,8 @@ class ConceptionAssistant { contentToUse = fullContent; } - // Afficher un message de chargement - this.showAIFeedback(''); + // Show loading message + this.showAIFeedback(''); try { let result; @@ -685,10 +685,10 @@ class ConceptionAssistant { case 'rephrase': result = await this.callAI('/api/ai/rephrase', { text: selection.trim(), context: fullContent.substring(0, 500) }); - // Récupérer directement le texte reformulé + // Get rephrased text directly const rephrasedText = result.rephrased || result.data || result; - // Stocker la suggestion pour la validation + // Store suggestion for validation this.lastRephraseData = { original: selection.trim(), rephrased: rephrasedText, @@ -696,60 +696,60 @@ class ConceptionAssistant { }; this.showAIFeedback(` - Reformulation

+ Rephrasing

- Texte original :
+ Original text:
${selection.substring(0, 200)}${selection.length > 200 ? '...' : ''}
- Version améliorée :
+ Improved version:
${rephrasedText}
`); - // Ajouter les event listeners pour les boutons + // Add event listeners for buttons document.getElementById('validate-rephrase')?.addEventListener('click', () => this.validateRephrase()); document.getElementById('cancel-rephrase')?.addEventListener('click', () => this.clearFeedback()); break; case 'inconsistencies': result = await this.callAI('/api/ai/check-inconsistencies', { content: contentToUse }); - this.showAIFeedback(`Analyse des incohérences

${this.formatAIResponse(result.analysis)}`); + this.showAIFeedback(`Inconsistency Analysis

${this.formatAIResponse(result.analysis)}`); break; case 'duplications': result = await this.callAI('/api/ai/check-duplications', { content: contentToUse }); - this.showAIFeedback(`Vérification des doublons

${this.formatAIResponse(result.analysis)}`); + this.showAIFeedback(`Duplication Check

${this.formatAIResponse(result.analysis)}`); break; case 'advice': - result = await this.callAI('/api/ai/give-advice', { content: contentToUse, domain: 'conception' }); - this.showAIFeedback(`Conseils d'amélioration

${this.formatAIResponse(result.advice)}`); + result = await this.callAI('/api/ai/give-advice', { content: contentToUse, domain: 'design' }); + this.showAIFeedback(`Improvement Advice

${this.formatAIResponse(result.advice)}`); break; case 'liberty': - // Sauvegarder l'état avant les modifications de l'IA + // Save state before AI modifications this.saveState(true); const count = document.getElementById('liberty-repeat-count')?.value || 3; const precision = document.getElementById('liberty-precision')?.value || 70; - // Initialiser l'affichage de progression + // Initialize progress display this.showAIFeedback(`
- 🚀 Mode Liberté Total
+ Enhanced Mode
- ${count} itérations • Précision: ${precision}% • Focus: conception + ${count} iterations - Precision: ${precision}% - Focus: design
@@ -758,27 +758,27 @@ class ConceptionAssistant {
`); - // Utiliser EventSource pour le streaming + // Use EventSource for streaming await this.handleLibertyModeStreaming(fullContent, count, precision); break; } } catch (error) { - console.error('Erreur IA:', error); - this.showAIFeedback(`Erreur

Une erreur s'est produite : ${error.message}

Vérifiez votre connexion et la configuration de l'API.`); + console.error('AI Error:', error); + this.showAIFeedback(`Error

An error occurred: ${error.message}

Check your connection and API configuration.`); } } async handleLibertyModeStreaming(content, iterations, precision) { return new Promise((resolve, reject) => { - // Préparer les données à envoyer + // Prepare data to send const requestData = { content: content, iterations: iterations, precision: precision, - focus: 'conception' + focus: 'design' }; - // Créer une requête fetch pour le streaming + // Create fetch request for streaming fetch('/api/ai/liberty-mode', { method: 'POST', headers: { @@ -788,7 +788,7 @@ class ConceptionAssistant { }) .then(response => { if (!response.ok) { - throw new Error(`Erreur HTTP: ${response.status}`); + throw new Error(`HTTP Error: ${response.status}`); } const reader = response.body.getReader(); @@ -802,20 +802,20 @@ class ConceptionAssistant { return; } - // Décoder les données reçues + // Decode received data buffer += decoder.decode(value, { stream: true }); - // Traiter chaque ligne reçue + // Process each received line const lines = buffer.split('\n'); - buffer = lines.pop() || ''; // Garder la dernière ligne incomplète + buffer = lines.pop() || ''; // Keep incomplete last line for (const line of lines) { if (line.trim().startsWith('data: ')) { try { - const data = JSON.parse(line.slice(6)); // Supprimer "data: " + const data = JSON.parse(line.slice(6)); // Remove "data: " this.handleLibertyStreamData(data); } catch (e) { - console.error('Erreur parsing JSON:', e); + console.error('JSON parsing error:', e); } } } @@ -827,8 +827,8 @@ class ConceptionAssistant { return processStream(); }) .catch(error => { - console.error('Erreur streaming:', error); - this.showAIFeedback(`Erreur

Erreur de streaming: ${error.message}`); + console.error('Streaming error:', error); + this.showAIFeedback(`Error

Streaming error: ${error.message}`); reject(error); }); }); @@ -839,10 +839,10 @@ class ConceptionAssistant { const iterationsDiv = document.getElementById('liberty-iterations'); if (data.error) { - // Afficher l'erreur + // Display error const errorHTML = `
- ❌ Erreur: ${data.error} + Error: ${data.error}
`; iterationsDiv.innerHTML += errorHTML; @@ -850,7 +850,7 @@ class ConceptionAssistant { } if (data.iteration) { - // Mettre à jour la barre de progression + // Update progress bar const totalIterations = parseInt(document.getElementById('liberty-repeat-count')?.value || 3); const progressPercent = (data.iteration / totalIterations) * 100; @@ -858,52 +858,52 @@ class ConceptionAssistant { progressFill.style.width = `${progressPercent}%`; } - // Afficher l'explication de cette itération + // Display this iteration's explanation const iterationHTML = `
- 🔄 Itération ${data.iteration}

+ Iteration ${data.iteration}

${this.formatAIResponse(data.explanation)}
`; iterationsDiv.innerHTML += iterationHTML; - // Mettre à jour l'éditeur avec le nouveau markdown si disponible + // Update editor with new markdown if available if (data.markdown && data.markdown !== this.editor.innerText) { this.editor.innerText = data.markdown; this.generateTOC(); } - // Scroller vers le bas du feedback pour voir la nouvelle itération + // Scroll to bottom of feedback to see new iteration const feedback = document.getElementById('ai-assistant-feedback'); feedback.scrollTop = feedback.scrollHeight; } if (data.completed) { - // Finaliser l'affichage + // Finalize display if (progressFill) { progressFill.style.width = '100%'; } if (data.finalMarkdown) { - // S'assurer que le contenu final est bien dans l'éditeur + // Ensure final content is in editor this.editor.innerText = data.finalMarkdown; this.generateTOC(); - // Sauvegarder l'état final + // Save final state this.saveState(true); } - // Message de fin + // Completion message const completedHTML = `
- ✅ Mode Liberté Total terminé !
- ${data.totalIterations || 'Toutes les'} itération(s) complétée(s) + Enhanced Mode completed!
+ ${data.totalIterations || 'All'} iteration(s) completed
`; iterationsDiv.innerHTML += completedHTML; - this.showNotification('Mode Liberté Total terminé', 'success'); + this.showNotification('Enhanced Mode completed', 'success'); } } @@ -919,7 +919,7 @@ class ConceptionAssistant { const result = await response.json(); if (!result.success) { - throw new Error(result.error || 'Erreur inconnue'); + throw new Error(result.error || 'Unknown error'); } return result.data; @@ -1000,7 +1000,7 @@ class ConceptionAssistant { showAIFeedback(message) { const feedback = document.getElementById('ai-assistant-feedback'); feedback.innerHTML = ``; - // Scroll vers le haut du feedback pour voir le résultat + // Scroll to top of feedback to see result feedback.scrollTop = 0; } @@ -1008,30 +1008,30 @@ class ConceptionAssistant { if (!this.lastRephraseData) return; try { - // Sauvegarder l'état avant la reformulation pour permettre l'undo + // Save state before rephrasing to allow undo this.saveState(true); - // Remplacer le texte dans l'éditeur + // Replace text in editor const range = this.lastRephraseData.selection.getRangeAt(0); range.deleteContents(); range.insertNode(document.createTextNode(this.lastRephraseData.rephrased)); - // Nettoyer la sélection et régénérer la TOC + // Clear selection and regenerate TOC window.getSelection().removeAllRanges(); this.generateTOC(); - // Sauvegarder l'état après la reformulation + // Save state after rephrasing this.saveState(true); - // Afficher un message de succès - this.showNotification('Reformulation appliquée avec succès', 'success'); + // Show success message + this.showNotification('Rephrasing applied successfully', 'success'); this.clearFeedback(); - // Nettoyer les données + // Clean up data this.lastRephraseData = null; } catch (error) { - console.error('Erreur application reformulation:', error); - this.showNotification('Erreur lors de l\'application de la reformulation', 'error'); + console.error('Error applying rephrasing:', error); + this.showNotification('Error applying rephrasing', 'error'); } } @@ -1039,26 +1039,26 @@ class ConceptionAssistant { const feedback = document.getElementById('ai-assistant-feedback'); feedback.innerHTML = ` `; } ensureEditMode() { - // Si on est en mode preview, forcer le retour en mode édition + // If in preview mode, force return to edit mode if (this.isPreviewMode) { const previewBtn = document.getElementById('preview-toggle'); - // Revenir en mode édition sans utiliser originalContent car on veut le nouveau contenu + // Return to edit mode without using originalContent because we want new content this.editor.contentEditable = true; this.editor.style.background = ''; this.editor.style.border = ''; this.editor.style.borderRadius = ''; - // Changer le bouton + // Change button if (previewBtn) { - previewBtn.innerHTML = 'Visualiser'; + previewBtn.innerHTML = 'Preview'; previewBtn.classList.remove('secondary'); previewBtn.classList.add('primary'); } @@ -1066,7 +1066,7 @@ class ConceptionAssistant { this.isPreviewMode = false; } - // S'assurer que l'éditeur est toujours éditable + // Ensure editor is always editable this.editor.contentEditable = true; } @@ -1088,11 +1088,11 @@ class ConceptionAssistant { const previewBtn = document.getElementById('preview-toggle'); if (!this.isPreviewMode) { - // Passer en mode prévisualisation + // Switch to preview mode this.originalContent = this.editor.innerHTML; const markdownContent = this.editor.innerText; - // Configurer Marked pour un rendu compatible GitHub + // Configure Marked for GitHub-compatible rendering if (typeof marked !== 'undefined') { marked.setOptions({ breaks: true, @@ -1103,23 +1103,23 @@ class ConceptionAssistant { }); } - // Convertir le Markdown en HTML avec Marked (compatible GitHub) + // Convert Markdown to HTML with Marked (GitHub-compatible) let previewHTML = ''; if (typeof marked !== 'undefined') { previewHTML = marked.parse(markdownContent); } else { - // Fallback vers notre parseur maison si Marked n'est pas chargé + // Fallback to our custom parser if Marked is not loaded previewHTML = this.parseMarkdown(markdownContent); } - // Désactiver l'édition et appliquer le style preview GitHub + // Disable editing and apply GitHub preview style this.editor.contentEditable = false; this.editor.innerHTML = `
${previewHTML}
`; this.editor.style.background = ''; this.editor.style.border = ''; this.editor.style.borderRadius = ''; - // Traiter les diagrammes Mermaid après le rendu + // Process Mermaid diagrams after rendering if (typeof mermaid !== 'undefined') { try { mermaid.initialize({ @@ -1129,11 +1129,11 @@ class ConceptionAssistant { fontFamily: 'system-ui, -apple-system, "Segoe UI", Roboto, sans-serif' }); - // Attendre que le DOM soit prêt pour traiter les diagrammes Mermaid + // Wait for DOM to be ready to process Mermaid diagrams setTimeout(() => { const preview = this.editor.querySelector('.markdown-preview'); if (preview) { - // Chercher tous les blocs de code avec la langue 'mermaid' + // Find all code blocks with 'mermaid' language const mermaidBlocks = preview.querySelectorAll('code.language-mermaid, pre code.language-mermaid'); mermaidBlocks.forEach((block, index) => { @@ -1141,73 +1141,73 @@ class ConceptionAssistant { const mermaidCode = block.textContent; const uniqueId = `mermaid-${Date.now()}-${index}`; - // Créer un div avec l'ID unique pour Mermaid + // Create div with unique ID for Mermaid const mermaidDiv = document.createElement('div'); mermaidDiv.id = uniqueId; mermaidDiv.className = 'mermaid'; mermaidDiv.textContent = mermaidCode; - // Remplacer le bloc de code par le div Mermaid + // Replace code block with Mermaid div const pre = block.closest('pre') || block; pre.parentNode.replaceChild(mermaidDiv, pre); - // Render le diagramme + // Render diagram mermaid.render(uniqueId + '-svg', mermaidCode).then(({ svg }) => { mermaidDiv.innerHTML = svg; }).catch(err => { - console.warn('Erreur rendu Mermaid:', err); - mermaidDiv.innerHTML = `
Erreur de rendu Mermaid: ${err.message}
`; + console.warn('Mermaid rendering error:', err); + mermaidDiv.innerHTML = `
Mermaid rendering error: ${err.message}
`; }); } catch (error) { - console.warn('Erreur traitement Mermaid:', error); + console.warn('Mermaid processing error:', error); } }); } }, 200); } catch (error) { - console.warn('Erreur initialisation Mermaid:', error); + console.warn('Mermaid initialization error:', error); } } - // Changer le bouton - previewBtn.innerHTML = 'Éditer'; + // Change button + previewBtn.innerHTML = 'Edit'; previewBtn.classList.remove('primary'); previewBtn.classList.add('secondary'); this.isPreviewMode = true; - this.showNotification('Mode prévisualisation activé', 'success'); + this.showNotification('Preview mode activated', 'success'); } else { - // Revenir en mode édition + // Return to edit mode this.editor.contentEditable = true; this.editor.innerHTML = this.originalContent; this.editor.style.background = ''; this.editor.style.border = ''; this.editor.style.borderRadius = ''; - // Changer le bouton - previewBtn.innerHTML = 'Visualiser'; + // Change button + previewBtn.innerHTML = 'Preview'; previewBtn.classList.remove('secondary'); previewBtn.classList.add('primary'); this.isPreviewMode = false; - this.showNotification('Mode édition activé', 'success'); + this.showNotification('Edit mode activated', 'success'); } } } -// Gestion des panneaux latéraux +// Side panel management function togglePanel(side) { const panel = document.getElementById(`${side}-panel`); const overlay = document.getElementById('panel-overlay'); const otherPanel = document.getElementById(side === 'left' ? 'right-panel' : 'left-panel'); - // Fermer l'autre panneau s'il est ouvert + // Close the other panel if it's open if (otherPanel && otherPanel.classList.contains('open')) { otherPanel.classList.remove('open'); } - // Toggle le panneau actuel + // Toggle current panel if (panel.classList.contains('open')) { panel.classList.remove('open'); overlay.classList.remove('active'); @@ -1227,117 +1227,66 @@ function closeAllPanels() { if (overlay) overlay.classList.remove('active'); } -// Fermer les panneaux avec Escape +// Close panels with Escape document.addEventListener('keydown', (e) => { if (e.key === 'Escape') { closeAllPanels(); } }); -// Initialisation de l'application +// Application initialization let app; document.addEventListener('DOMContentLoaded', () => { app = new ConceptionAssistant(); - // Charger le thème sauvegardé + // Load saved theme const savedTheme = localStorage.getItem('theme'); if (savedTheme === 'dark') { document.body.classList.add('dark-theme'); } - // Initialiser les panneaux + // Initialize panels initializePanels(); }); function initializePanels() { - // Initialiser la gestion des templates + // Initialize template management initializeTemplateForm(); } function initializeTemplateForm() { - const domainSelect = document.getElementById('domain-select'); - const levelSelect = document.getElementById('level-select'); const loadTemplateBtn = document.getElementById('load-template'); - // Gestion du changement de domaine - if (domainSelect) { - domainSelect.addEventListener('change', async () => { - const domain = domainSelect.value; - - if (!domain) { - levelSelect.disabled = true; - levelSelect.innerHTML = ''; - loadTemplateBtn.disabled = true; - return; - } - - // Activer le select de niveau - levelSelect.disabled = false; - levelSelect.innerHTML = ` - - - - - `; - - loadTemplateBtn.disabled = true; - }); - } - - // Gestion du changement de niveau - if (levelSelect) { - levelSelect.addEventListener('change', async () => { - const domain = domainSelect.value; - const level = levelSelect.value; - - if (!domain || !level) { - loadTemplateBtn.disabled = true; - return; - } - - // Activer le bouton de chargement directement - loadTemplateBtn.disabled = false; - }); - } - - // Gestion du chargement du template + // Handle template loading if (loadTemplateBtn) { loadTemplateBtn.addEventListener('click', async () => { - const domain = domainSelect.value; - const level = levelSelect.value; - - if (!domain || !level) { - app.showNotification('Veuillez sélectionner un domaine et un niveau', 'warning'); - return; - } - try { loadTemplateBtn.classList.add('loading'); - const response = await fetch(`/api/templates/${domain}/${level}`); + const response = await fetch('/api/templates/default'); const result = await response.json(); if (result.success) { - // Charger le template dans l'éditeur + // Load template into editor app.editor.innerText = result.data.content; app.generateTOC(); - app.currentJournalId = null; // Nouveau journal + app.currentJournalId = null; // New journal - // Réinitialiser l'historique pour le nouveau template + // Reset history for new template app.undoStack = [result.data.content]; app.redoStack = []; - // S'assurer que l'éditeur est en mode édition + // Ensure editor is in edit mode app.ensureEditMode(); - app.showNotification(`Template ${domain}/${level} chargé avec succès`, 'success'); + app.showNotification('Template loaded successfully', 'success'); closeAllPanels(); } else { - app.showNotification('Erreur lors du chargement du template', 'error'); + app.showNotification('Error loading template', 'error'); } } catch (error) { - console.error('Erreur:', error); - app.showNotification('Erreur lors du chargement du template', 'error'); + console.error('Error:', error); + app.showNotification('Error loading template', 'error'); } finally { loadTemplateBtn.classList.remove('loading'); } @@ -1345,5 +1294,5 @@ function initializeTemplateForm() { } } -// S'assurer que togglePanel est accessible globalement +// Ensure togglePanel is globally accessible window.togglePanel = togglePanel; \ No newline at end of file diff --git a/package.json b/package.json index 50b9d6b..b8e5d18 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,28 @@ { - "name": "conception-assistant", - "version": "1.0.0", + "name": "design-journal", + "version": "2.0.0", + "description": "A collaborative design documentation tool with AI-powered assistance for technical project management", "main": "app.js", "scripts": { - "start": "node app.js", - "test": "node tests/all.test.js" + "start": "node app.js" + }, + "keywords": [ + "design", + "journal", + "documentation", + "markdown", + "ai", + "mistral", + "collaboration" + ], + "author": "Design Journal Contributors", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/yourusername/design-journal.git" + }, + "engines": { + "node": ">=16.0.0" }, "dependencies": { "dotenv": "^17.2.2", diff --git a/routes/ai.js b/routes/ai.js index 1524770..0112c21 100644 --- a/routes/ai.js +++ b/routes/ai.js @@ -2,32 +2,32 @@ const express = require('express'); const router = express.Router(); require('dotenv').config({ path: './config/.env' }); -// Configuration Mistral AI +// Mistral AI Configuration const MISTRAL_API_KEY = process.env.MISTRAL_API_KEY; const MISTRAL_BASE_URL = process.env.MISTRAL_BASE_URL || 'https://api.mistral.ai/v1'; const MISTRAL_MODEL = process.env.MISTRAL_MODEL || 'mistral-large-latest'; const AI_ENABLED = process.env.AI_ENABLED === 'true'; -// Middleware de vérification +// Verification middleware function checkAIEnabled(req, res, next) { if (!AI_ENABLED) { return res.status(503).json({ success: false, - error: 'Les fonctionnalités IA sont désactivées' + error: 'AI features are disabled' }); } if (!MISTRAL_API_KEY) { return res.status(500).json({ success: false, - error: 'Clé API Mistral non configurée' + error: 'Mistral API key not configured' }); } next(); } -// Fonction pour appeler l'API Mistral +// Function to call Mistral API async function callMistralAPI(messages, temperature = null) { try { const response = await fetch(`${MISTRAL_BASE_URL}/chat/completions`, { @@ -47,18 +47,18 @@ async function callMistralAPI(messages, temperature = null) { if (!response.ok) { const error = await response.text(); - throw new Error(`Erreur API Mistral: ${response.status} - ${error}`); + throw new Error(`Mistral API Error: ${response.status} - ${error}`); } const data = await response.json(); return data.choices[0].message.content; } catch (error) { - console.error('Erreur Mistral API:', error); + console.error('Mistral API Error:', error); throw error; } } -// POST /api/ai/rephrase - Reformuler du texte +// POST /api/ai/rephrase - Rephrase text router.post('/rephrase', checkAIEnabled, async (req, res) => { try { const { text, context = '' } = req.body; @@ -66,32 +66,32 @@ router.post('/rephrase', checkAIEnabled, async (req, res) => { if (!text || text.trim().length === 0) { return res.status(400).json({ success: false, - error: 'Texte à reformuler requis' + error: 'Text to rephrase is required' }); } const messages = [ { role: 'system', - content: `Tu es un assistant spécialisé dans la reformulation de textes techniques et de conception. + content: `You are an assistant specialized in rephrasing technical and design texts. - RÈGLES STRICTES : - 1. Reformule le texte pour améliorer la clarté, le style et la fluidité - 2. Conserve le niveau technique et tous les détails importants - 3. Ne réponds QUE avec le texte reformulé final - 4. Aucune introduction, conclusion, explication ou commentaire - 5. Ne commence pas par "Voici", "Le texte reformulé" ou autre préambule - 6. Commence directement par le contenu reformulé + STRICT RULES: + 1. Rephrase the text to improve clarity, style, and fluency + 2. Preserve the technical level and all important details + 3. Respond ONLY with the final rephrased text + 4. No introduction, conclusion, explanation, or commentary + 5. Do not start with "Here is", "The rephrased text" or other preamble + 6. Start directly with the rephrased content - ${context ? `Contexte du document: ${context}` : ''}` + ${context ? `Document context: ${context}` : ''}` }, { role: 'user', - content: `Reformule ce texte: "${text}"` + content: `Rephrase this text: "${text}"` } ]; - const result = await callMistralAPI(messages, 0.2); // Reformulation précise + const result = await callMistralAPI(messages, 0.2); // Precise rephrasing res.json({ success: true, @@ -102,15 +102,15 @@ router.post('/rephrase', checkAIEnabled, async (req, res) => { }); } catch (error) { - console.error('Erreur reformulation:', error); + console.error('Rephrasing error:', error); res.status(500).json({ success: false, - error: 'Erreur lors de la reformulation: ' + error.message + error: 'Error during rephrasing: ' + error.message }); } }); -// POST /api/ai/check-inconsistencies - Vérifier les incohérences +// POST /api/ai/check-inconsistencies - Check for inconsistencies router.post('/check-inconsistencies', checkAIEnabled, async (req, res) => { try { const { content } = req.body; @@ -118,30 +118,30 @@ router.post('/check-inconsistencies', checkAIEnabled, async (req, res) => { if (!content || content.trim().length === 0) { return res.status(400).json({ success: false, - error: 'Contenu à analyser requis' + error: 'Content to analyze is required' }); } const messages = [ { role: 'system', - content: `Tu es un expert en analyse de documents de conception technique. + content: `You are an expert in technical design document analysis. - Analyse le document suivant et identifie toutes les incohérences potentielles : - - Contradictions dans les informations - - Décisions qui se contredisent - - Incohérences dans la terminologie - - Problèmes logiques dans l'architecture ou les choix + Analyze the following document and identify all potential inconsistencies: + - Contradictions in information + - Conflicting decisions + - Inconsistencies in terminology + - Logical issues in architecture or choices - Réponds directement avec ton analyse détaillée des incohérences trouvées.` + Respond directly with your detailed analysis of the inconsistencies found.` }, { role: 'user', - content: `Analyse ce document pour détecter les incohérences:\n\n${content}` + content: `Analyze this document to detect inconsistencies:\n\n${content}` } ]; - const result = await callMistralAPI(messages, 0.1); // Analyse précise et factuelle + const result = await callMistralAPI(messages, 0.1); // Precise and factual analysis res.json({ success: true, @@ -151,15 +151,15 @@ router.post('/check-inconsistencies', checkAIEnabled, async (req, res) => { }); } catch (error) { - console.error('Erreur analyse incohérences:', error); + console.error('Inconsistencies analysis error:', error); res.status(500).json({ success: false, - error: 'Erreur lors de l\'analyse: ' + error.message + error: 'Error during analysis: ' + error.message }); } }); -// POST /api/ai/check-duplications - Vérifier les doublons +// POST /api/ai/check-duplications - Check for duplications router.post('/check-duplications', checkAIEnabled, async (req, res) => { try { const { content } = req.body; @@ -167,31 +167,31 @@ router.post('/check-duplications', checkAIEnabled, async (req, res) => { if (!content || content.trim().length === 0) { return res.status(400).json({ success: false, - error: 'Contenu à analyser requis' + error: 'Content to analyze is required' }); } const messages = [ { role: 'system', - content: `Tu es un expert en analyse de contenu. + content: `You are a content analysis expert. - Analyse le document suivant pour identifier : - - Les informations répétées ou redondantes - - Les sections qui traitent du même sujet - - Les explications dupliquées - - Les concepts présentés plusieurs fois + Analyze the following document to identify: + - Repeated or redundant information + - Sections that cover the same topic + - Duplicated explanations + - Concepts presented multiple times - Propose des suggestions pour éliminer ces duplications tout en préservant les informations importantes. - Réponds directement avec ton analyse et tes suggestions.` + Suggest ways to eliminate these duplications while preserving important information. + Respond directly with your analysis and suggestions.` }, { role: 'user', - content: `Analyse ce document pour détecter les duplications:\n\n${content}` + content: `Analyze this document to detect duplications:\n\n${content}` } ]; - const result = await callMistralAPI(messages, 0.1); // Analyse précise et factuelle + const result = await callMistralAPI(messages, 0.1); // Precise and factual analysis res.json({ success: true, @@ -201,51 +201,51 @@ router.post('/check-duplications', checkAIEnabled, async (req, res) => { }); } catch (error) { - console.error('Erreur analyse duplications:', error); + console.error('Duplications analysis error:', error); res.status(500).json({ success: false, - error: 'Erreur lors de l\'analyse: ' + error.message + error: 'Error during analysis: ' + error.message }); } }); -// POST /api/ai/give-advice - Donner des conseils +// POST /api/ai/give-advice - Give advice router.post('/give-advice', checkAIEnabled, async (req, res) => { try { - const { content, domain = 'général' } = req.body; + const { content, domain = 'general' } = req.body; if (!content || content.trim().length === 0) { return res.status(400).json({ success: false, - error: 'Contenu à analyser requis' + error: 'Content to analyze is required' }); } const messages = [ { role: 'system', - content: `Tu es un consultant expert en conception et architecture technique dans le domaine: ${domain}. + content: `You are an expert consultant in design and technical architecture in the domain: ${domain}. - Analyse le document de conception fourni et donne des conseils constructifs pour l'améliorer. + Analyze the provided design document and give constructive advice to improve it. - Concentre-toi sur : - - La complétude de la documentation - - La clarté des explications - - L'organisation du contenu - - Les bonnes pratiques du domaine - - Les points manquants importants - - Les suggestions d'amélioration concrètes + Focus on: + - Documentation completeness + - Clarity of explanations + - Content organization + - Domain best practices + - Important missing points + - Concrete improvement suggestions - Sois constructif et pratique dans tes recommandations. - Réponds directement avec tes conseils et suggestions d'amélioration.` + Be constructive and practical in your recommendations. + Respond directly with your advice and improvement suggestions.` }, { role: 'user', - content: `Analyse ce document de conception et donne des conseils pour l'améliorer:\n\n${content}` + content: `Analyze this design document and provide advice to improve it:\n\n${content}` } ]; - const result = await callMistralAPI(messages, 0.4); // Conseils équilibrés + const result = await callMistralAPI(messages, 0.4); // Balanced advice res.json({ success: true, @@ -255,30 +255,30 @@ router.post('/give-advice', checkAIEnabled, async (req, res) => { }); } catch (error) { - console.error('Erreur conseils:', error); + console.error('Advice error:', error); res.status(500).json({ success: false, - error: 'Erreur lors de l\'analyse: ' + error.message + error: 'Error during analysis: ' + error.message }); } }); -// POST /api/ai/liberty-mode - Mode liberté total (génération itérative) +// POST /api/ai/liberty-mode - Enhanced mode (iterative generation) router.post('/liberty-mode', checkAIEnabled, async (req, res) => { try { - const { content, iterations = 1, precision = 70, focus = 'conception' } = req.body; + const { content, iterations = 1, precision = 70, focus = 'design' } = req.body; if (!content || content.trim().length === 0) { return res.status(400).json({ success: false, - error: 'Contenu de base requis' + error: 'Base content is required' }); } - const maxIterations = Math.min(parseInt(iterations), 10); // Limite à 10 itérations - const precisionPercent = Math.min(Math.max(parseInt(precision), 10), 100); // Entre 10% et 100% + const maxIterations = Math.min(parseInt(iterations), 10); // Limit to 10 iterations + const precisionPercent = Math.min(Math.max(parseInt(precision), 10), 100); // Between 10% and 100% - // Configuration streaming pour réponses en temps réel + // Configure streaming for real-time responses res.writeHead(200, { 'Content-Type': 'text/event-stream', 'Cache-Control': 'no-cache', @@ -293,60 +293,60 @@ router.post('/liberty-mode', checkAIEnabled, async (req, res) => { const messages = [ { role: 'system', - content: `Tu es un expert en conception technique avec mode "Liberté Total". + content: `You are a technical design expert with "Enhanced Mode". - MISSION: Améliore et enrichis le document en respectant EXACTEMENT ce niveau de précision: ${precisionPercent}% + MISSION: Improve and enrich the document respecting EXACTLY this precision level: ${precisionPercent}% - RÈGLES DE PRÉCISION: - - À ${precisionPercent}%: Tu peux déduire et ajouter du contenu à hauteur de ${precisionPercent}% basé sur les informations existantes - - À ${100 - precisionPercent}%: Tu peux créer du contenu logique et pertinent même sans info explicite dans le texte + PRECISION RULES: + - At ${precisionPercent}%: You can deduce and add content up to ${precisionPercent}% based on existing information + - At ${100 - precisionPercent}%: You can create logical and relevant content even without explicit info in the text - CONSIGNES: - 1. Enrichis TOUT le document de manière cohérente - 2. Ajoute sections, détails, explications, diagrammes conceptuels - 3. Développe les idées existantes avec la créativité autorisée - 4. Maintiens la structure logique + INSTRUCTIONS: + 1. Enrich ALL of the document consistently + 2. Add sections, details, explanations, conceptual diagrams + 3. Develop existing ideas with the allowed creativity + 4. Maintain logical structure - RÉPONSE OBLIGATOIRE EN 2 PARTIES SÉPARÉES PAR "---SPLIT---": + MANDATORY RESPONSE IN 2 PARTS SEPARATED BY "---SPLIT---": - ## 📊 Explication (Itération ${i + 1}/${maxIterations}) - [Explique les améliorations apportées, les sections ajoutées, le raisonnement] + ## Analysis (Iteration ${i + 1}/${maxIterations}) + [Explain the improvements made, sections added, reasoning] ---SPLIT--- - [LE DOCUMENT MARKDOWN COMPLET ET AMÉLIORÉ - SANS TITRE "## Document" - DIRECTEMENT LE CONTENU] + [THE COMPLETE AND IMPROVED MARKDOWN DOCUMENT - WITHOUT "## Document" TITLE - DIRECTLY THE CONTENT] Focus: ${focus} - Précision: ${precisionPercent}%` + Precision: ${precisionPercent}%` }, { role: 'user', - content: `Document à améliorer (Itération ${i + 1}):\n\n${currentContent}` + content: `Document to improve (Iteration ${i + 1}):\n\n${currentContent}` } ]; - // Temperature basée sur la précision (plus créatif = température plus élevée) - const temperature = (100 - precisionPercent) / 100 * 0.8 + 0.1; // Entre 0.1 et 0.9 + // Temperature based on precision (more creative = higher temperature) + const temperature = (100 - precisionPercent) / 100 * 0.8 + 0.1; // Between 0.1 and 0.9 const result = await callMistralAPI(messages, temperature); - // Séparer l'explication du markdown + // Separate explanation from markdown const parts = result.split('---SPLIT---'); let explanation = ''; - let newMarkdown = currentContent; // Par défaut, garder l'ancien contenu + let newMarkdown = currentContent; // Default, keep old content if (parts.length >= 2) { explanation = parts[0].trim(); newMarkdown = parts[1].trim(); - // Mettre à jour pour la prochaine itération + // Update for next iteration currentContent = newMarkdown; } else { - // Fallback si pas de split trouvé + // Fallback if no split found explanation = result; } - // Envoyer la réponse de cette itération + // Send this iteration's response const iterationData = { iteration: i + 1, explanation: explanation, @@ -356,15 +356,15 @@ router.post('/liberty-mode', checkAIEnabled, async (req, res) => { res.write(`data: ${JSON.stringify(iterationData)}\n\n`); - // Petit délai pour permettre l'affichage côté client + // Small delay to allow client-side display await new Promise(resolve => setTimeout(resolve, 500)); } catch (iterationError) { - console.error(`Erreur itération ${i + 1}:`, iterationError); + console.error(`Iteration ${i + 1} error:`, iterationError); const errorData = { iteration: i + 1, - error: `Erreur itération ${i + 1}: ${iterationError.message}`, + error: `Iteration ${i + 1} error: ${iterationError.message}`, completed: true }; @@ -373,7 +373,7 @@ router.post('/liberty-mode', checkAIEnabled, async (req, res) => { } } - // Signal de fin + // End signal const finalData = { completed: true, totalIterations: maxIterations, @@ -384,10 +384,10 @@ router.post('/liberty-mode', checkAIEnabled, async (req, res) => { res.end(); } catch (error) { - console.error('Erreur mode liberté total:', error); + console.error('Enhanced mode error:', error); const errorData = { - error: 'Erreur lors de la génération: ' + error.message, + error: 'Error during generation: ' + error.message, completed: true }; @@ -396,7 +396,7 @@ router.post('/liberty-mode', checkAIEnabled, async (req, res) => { } }); -// GET /api/ai/status - Statut de l'IA +// GET /api/ai/status - AI status router.get('/status', (req, res) => { res.json({ success: true, diff --git a/routes/api.js b/routes/api.js index efc2b66..10af91d 100644 --- a/routes/api.js +++ b/routes/api.js @@ -4,23 +4,23 @@ const fs = require('fs'); const path = require('path'); const { v4: uuidv4 } = require('uuid'); -// Importer le module d'export +// Import export module const exportRouter = require('./export'); function modifMd(id, modifications) { - if (id === undefined) throw new Error('id obligatoire'); - if (!Array.isArray(modifications) || modifications.length === 0) throw new Error('modifications requises'); + if (id === undefined) throw new Error('id required'); + if (!Array.isArray(modifications) || modifications.length === 0) throw new Error('modifications required'); const dataDir = path.resolve(__dirname, '../data'); const mapPath = path.join(dataDir, 'uuid_map.json'); - if (!fs.existsSync(mapPath)) throw new Error('uuid_map.json inexistant'); + if (!fs.existsSync(mapPath)) throw new Error('uuid_map.json does not exist'); const map = JSON.parse(fs.readFileSync(mapPath, 'utf8')); const uuid = map[id]; - if (!uuid) throw new Error(`Aucun fichier pour l'id ${id}`); + if (!uuid) throw new Error(`No file for id ${id}`); const mdPath = path.join(dataDir, `${uuid}.md`); - if (!fs.existsSync(mdPath)) throw new Error('Fichier markdown inexistant'); + if (!fs.existsSync(mdPath)) throw new Error('Markdown file does not exist'); let lignes = fs.readFileSync(mdPath, 'utf8').split('\n'); modifications = modifications.slice().sort((a, b) => a.debut - b.debut); @@ -31,7 +31,7 @@ function modifMd(id, modifications) { let fin = m.fin + offset; const remplacement = Array.isArray(m.contenu) ? m.contenu : m.contenu.split('\n'); if (debut < 0 || fin >= lignes.length || debut > fin) - throw new Error('Plage invalide (début/fin) pour une modification'); + throw new Error('Invalid range (start/end) for a modification'); const avant = lignes.slice(0, debut); const apres = lignes.slice(fin + 1); @@ -45,7 +45,7 @@ function modifMd(id, modifications) { } -function createMd(markdownContent = "# Titre\nContenu...") { +function createMd(markdownContent = "# Title\nContent...") { const uuid = uuidv4(); const dataDir = path.resolve(__dirname, '../data'); @@ -83,11 +83,11 @@ function readMd(id = undefined) { if (id !== undefined) { const uuid = map[id]; if (!uuid) { - throw new Error(`Aucun fichier trouvé pour l'id ${id}`); + throw new Error(`No file found for id ${id}`); } const mdPath = path.join(dataDir, `${uuid}.md`); if (!fs.existsSync(mdPath)) { - throw new Error(`Le fichier ${mdPath} n’existe pas`); + throw new Error(`File ${mdPath} does not exist`); } const markdownContent = fs.readFileSync(mdPath, 'utf8'); return [{ id, uuid, path: mdPath, markdownContent }]; @@ -105,30 +105,30 @@ function readMd(id = undefined) { } function updateMd(id, newMarkdownContent) { - if (id === undefined) throw new Error('id obligatoire'); + if (id === undefined) throw new Error('id required'); const dataDir = path.resolve(__dirname, '../data'); const mapPath = path.join(dataDir, 'uuid_map.json'); - if (!fs.existsSync(mapPath)) throw new Error('uuid_map.json inexistant'); + if (!fs.existsSync(mapPath)) throw new Error('uuid_map.json does not exist'); let map = JSON.parse(fs.readFileSync(mapPath, 'utf8')); const uuid = map[id]; - if (!uuid) throw new Error(`Aucun fichier trouvé pour l'id ${id}`); + if (!uuid) throw new Error(`No file found for id ${id}`); const mdPath = path.join(dataDir, `${uuid}.md`); - if (!fs.existsSync(mdPath)) throw new Error('Le fichier markdown n\'existe pas'); + if (!fs.existsSync(mdPath)) throw new Error('Markdown file does not exist'); fs.writeFileSync(mdPath, newMarkdownContent, { encoding: 'utf8', flag: 'w' }); return { id, uuid, path: mdPath, newMarkdownContent }; } function deteMd(id) { - if (id === undefined) throw new Error('id obligatoire'); + if (id === undefined) throw new Error('id required'); const dataDir = path.resolve(__dirname, '../data'); const mapPath = path.join(dataDir, 'uuid_map.json'); - if (!fs.existsSync(mapPath)) throw new Error('uuid_map.json inexistant'); + if (!fs.existsSync(mapPath)) throw new Error('uuid_map.json does not exist'); let map = JSON.parse(fs.readFileSync(mapPath, 'utf8')); const uuid = map[id]; - if (!uuid) throw new Error(`Aucun fichier trouvé pour l'id ${id}`); + if (!uuid) throw new Error(`No file found for id ${id}`); const mdPath = path.join(dataDir, `${uuid}.md`); if (fs.existsSync(mdPath)) fs.unlinkSync(mdPath); @@ -138,7 +138,7 @@ function deteMd(id) { return { id, deleted: true }; } -// GET /api/journals - Récupérer tous les journaux +// GET /api/journals - Get all journals router.get('/journals', (req, res) => { res.json({ success: true, @@ -146,7 +146,7 @@ router.get('/journals', (req, res) => { }); }); -// POST /api/journals - Créer un nouveau journal +// POST /api/journals - Create a new journal router.post('/journals', (req, res) => { const { content } = req.body; @@ -156,7 +156,7 @@ router.post('/journals', (req, res) => { }); }); -// GET /api/journals/:id - Récupérer un journal spécifique +// GET /api/journals/:id - Get a specific journal router.get('/journals/:id', (req, res) => { const { id } = req.params; @@ -166,7 +166,7 @@ router.get('/journals/:id', (req, res) => { }); }); -// PUT /api/journals/:id - Mettre à jour un journal +// PUT /api/journals/:id - Update a journal router.put('/journals/:id', (req, res) => { const { id } = req.params; const { content, modifications } = req.body; @@ -174,15 +174,15 @@ router.put('/journals/:id', (req, res) => { try { let result; if (content) { - // Mise à jour complète du contenu + // Complete content update result = updateMd(id, content); } else if (modifications) { - // Modifications partielles (pour compatibilité future) + // Partial modifications (for future compatibility) result = modifMd(id, modifications); } else { return res.status(400).json({ success: false, - error: 'Content ou modifications requis' + error: 'Content or modifications required' }); } @@ -198,7 +198,7 @@ router.put('/journals/:id', (req, res) => { } }); -// DELETE /api/journals/:id - Supprimer un journal +// DELETE /api/journals/:id - Delete a journal router.delete('/journals/:id', (req, res) => { const { id } = req.params; @@ -208,7 +208,7 @@ router.delete('/journals/:id', (req, res) => { }); }); -// Intégrer les routes d'export +// Integrate export routes router.use('/export', exportRouter); module.exports = router; \ No newline at end of file diff --git a/routes/export.js b/routes/export.js index 065060e..7c4f264 100644 --- a/routes/export.js +++ b/routes/export.js @@ -3,23 +3,23 @@ const router = express.Router(); const puppeteer = require('puppeteer'); const path = require('path'); -// POST /api/export/pdf - Générer un PDF depuis le contenu markdown +// POST /api/export/pdf - Generate PDF from markdown content router.post('/pdf', async (req, res) => { - const { content, title = 'Journal de Conception' } = req.body; + const { content, title = 'Design Journal' } = req.body; if (!content || content.trim() === '') { return res.status(400).json({ success: false, - error: 'Contenu requis pour générer le PDF' + error: 'Content required to generate PDF' }); } let browser; try { - // Convertir le markdown en HTML avec styles + // Convert markdown to HTML with styles const htmlContent = generateStyledHTML(content, title); - // Lancer Puppeteer + // Launch Puppeteer browser = await puppeteer.launch({ headless: true, args: ['--no-sandbox', '--disable-setuid-sandbox'] @@ -27,16 +27,16 @@ router.post('/pdf', async (req, res) => { const page = await browser.newPage(); - // Définir le contenu HTML + // Set HTML content await page.setContent(htmlContent, { waitUntil: 'domcontentloaded', timeout: parseInt(process.env.PDF_TIMEOUT) || 30000 }); - // Attendre que Mermaid soit chargé et les diagrammes rendus + // Wait for Mermaid to load and diagrams to render await new Promise(resolve => setTimeout(resolve, 2000)); - // Vérifier si des diagrammes Mermaid existent et attendre qu'ils se chargent + // Check if Mermaid diagrams exist and wait for them to load try { await page.waitForFunction(() => { const mermaidElements = document.querySelectorAll('.mermaid'); @@ -49,7 +49,7 @@ router.post('/pdf', async (req, res) => { console.log('Timeout waiting for Mermaid, proceeding...'); } - // Générer le PDF + // Generate PDF const pdfBuffer = await page.pdf({ format: 'A4', margin: { @@ -67,23 +67,23 @@ router.post('/pdf', async (req, res) => { `, footerTemplate: `
- Page sur - Généré le ${new Date().toLocaleDateString('fr-FR')} + Page of - Generated on ${new Date().toLocaleDateString('en-US')}
` }); await browser.close(); - // Vérifier la taille du PDF - const maxSize = parseInt(process.env.PDF_MAX_SIZE) || 10485760; // 10MB par défaut + // Check PDF size + const maxSize = parseInt(process.env.PDF_MAX_SIZE) || 10485760; // 10MB default if (pdfBuffer.length > maxSize) { return res.status(413).json({ success: false, - error: 'Le PDF généré dépasse la taille maximale autorisée' + error: 'Generated PDF exceeds maximum allowed size' }); } - // Envoyer le PDF + // Send PDF res.setHeader('Content-Type', 'application/pdf'); res.setHeader('Content-Disposition', `attachment; filename="${sanitizeFilename(title)}.pdf"`); res.setHeader('Content-Length', pdfBuffer.length); @@ -91,7 +91,7 @@ router.post('/pdf', async (req, res) => { res.send(pdfBuffer); } catch (error) { - console.error('Erreur génération PDF:', error); + console.error('PDF generation error:', error); if (browser) { await browser.close(); @@ -99,12 +99,12 @@ router.post('/pdf', async (req, res) => { res.status(500).json({ success: false, - error: 'Erreur lors de la génération du PDF' + error: 'Error during PDF generation' }); } }); -// Fonction utilitaire pour échapper le HTML +// Utility function to escape HTML function escapeHtml(text) { const map = { '&': '&', @@ -116,30 +116,30 @@ function escapeHtml(text) { return text.replace(/[&<>"']/g, function(m) { return map[m]; }); } -// Fonction pour convertir le markdown en HTML stylé avec support Mermaid +// Function to convert markdown to styled HTML with Mermaid support function generateStyledHTML(content, title) { let html = content; - // Traitement des diagrammes Mermaid AVANT les blocs de code + // Process Mermaid diagrams BEFORE code blocks html = html.replace(/```mermaid\n([\s\S]*?)```/g, '
$1
'); - // Traitement des blocs de code avec langage + // Process code blocks with language html = html.replace(/```(\w+)?\n([\s\S]*?)```/g, (match, lang, code) => { const language = lang ? ` class="language-${lang}"` : ''; return `
${escapeHtml(code)}
`; }); - // Code en ligne + // Inline code html = html.replace(/`([^`]+)`/g, '$1'); - // Traitement des tableaux amélioré + // Enhanced table processing html = html.replace(/(\|.*\|\s*\n)+/g, (match) => { const lines = match.trim().split('\n').filter(line => line.trim()); let tableHtml = '\n'; let inHeader = true; lines.forEach((line, index) => { - // Ignorer les lignes de séparation + // Ignore separator lines if (line.match(/^\s*\|[\s\-:]*\|\s*$/)) { inHeader = false; return; @@ -165,35 +165,35 @@ function generateStyledHTML(content, title) { return tableHtml; }); - // Conversion markdown vers HTML + // Markdown to HTML conversion html = html - // Titres (en ordre décroissant) + // Headings (in descending order) .replace(/^#{6}\s+(.*$)/gm, '
$1
') .replace(/^#{5}\s+(.*$)/gm, '
$1
') .replace(/^#{4}\s+(.*$)/gm, '

$1

') .replace(/^#{3}\s+(.*$)/gm, '

$1

') .replace(/^#{2}\s+(.*$)/gm, '

$1

') .replace(/^#{1}\s+(.*$)/gm, '

$1

') - // Citations + // Blockquotes .replace(/^>\s+(.*$)/gm, '
$1
') - // Gras et italique (ordre important) + // Bold and italic (order matters) .replace(/\*\*\*(.*?)\*\*\*/g, '$1') .replace(/\*\*(.*?)\*\*/g, '$1') .replace(/\*(.*?)\*/g, '$1') - // Barré + // Strikethrough .replace(/~~(.*?)~~/g, '$1') - // Listes numérotées + // Numbered lists .replace(/^(\s*)(\d+)\. (.*$)/gm, '
  • $3
  • ') - // Listes à puces et tâches - .replace(/^(\s*)- \[x\] (.*$)/gm, '
  • ✅ $2
  • ') - .replace(/^(\s*)- \[ \] (.*$)/gm, '
  • ☐ $2
  • ') + // Bullet lists and tasks + .replace(/^(\s*)- \[x\] (.*$)/gm, '
  • $2
  • ') + .replace(/^(\s*)- \[ \] (.*$)/gm, '
  • $2
  • ') .replace(/^(\s*)[*\-+] (.*$)/gm, '
  • $2
  • ') - // Liens + // Links .replace(/\[([^\]]+)\]\(([^\)]+)\)/g, '$1') - // Ligne horizontale + // Horizontal rule .replace(/^---+$/gm, '
    '); - // Grouper les listes consécutives + // Group consecutive lists html = html.replace(/(]*>.*?<\/li>\s*)+/gs, (match) => { if (match.includes('class="numbered"')) { return '
      ' + match.replace(/ class="numbered"/g, '') + '
    '; @@ -202,21 +202,21 @@ function generateStyledHTML(content, title) { } }); - // Nettoyer les listes multiples consécutives + // Clean up consecutive multiple lists html = html.replace(/(<\/[uo]l>\s*<[uo]l>)/g, ''); - // Grouper les citations consécutives + // Group consecutive blockquotes html = html.replace(/(
    .*?<\/blockquote>\s*)+/gs, (match) => { const content = match.replace(/<\/?blockquote>/g, ''); return '
    ' + content + '
    '; }); - // Traiter les paragraphes + // Process paragraphs html = html.split('\n\n').map(paragraph => { paragraph = paragraph.trim(); if (!paragraph) return ''; - // Ne pas entourer les éléments de bloc dans des paragraphes + // Don't wrap block elements in paragraphs if (paragraph.match(/^<(h[1-6]|div|table|ul|ol|blockquote|hr|pre)/)) { return paragraph; } @@ -226,7 +226,7 @@ function generateStyledHTML(content, title) { const styledHTML = ` - + @@ -272,7 +272,7 @@ function generateStyledHTML(content, title) { word-wrap: break-word; } - /* Titres style GitHub */ + /* GitHub-style headings */ h1 { color: #24292f; font-size: 2em; @@ -317,14 +317,14 @@ function generateStyledHTML(content, title) { page-break-after: avoid; } - /* Paragraphes */ + /* Paragraphs */ p { margin: 0 0 12pt 0; orphans: 2; widows: 2; } - /* Listes */ + /* Lists */ ul, ol { margin: 0 0 12pt 0; padding-left: 2em; @@ -343,7 +343,7 @@ function generateStyledHTML(content, title) { line-height: 1.5; } - /* Tâches */ + /* Tasks */ li.todo { list-style: none; margin-left: -2em; @@ -357,7 +357,7 @@ function generateStyledHTML(content, title) { color: #656d76; } - /* Mise en forme du texte */ + /* Text formatting */ strong { font-weight: 600; } @@ -371,7 +371,7 @@ function generateStyledHTML(content, title) { color: #656d76; } - /* Liens */ + /* Links */ a { color: #0969da; text-decoration: none; @@ -381,7 +381,7 @@ function generateStyledHTML(content, title) { text-decoration: underline; } - /* Citations */ + /* Blockquotes */ blockquote { margin: 12pt 0; padding: 0 12pt; @@ -397,7 +397,7 @@ function generateStyledHTML(content, title) { margin-bottom: 0; } - /* Ligne horizontale */ + /* Horizontal rule */ hr { margin: 24pt 0; border: none; @@ -405,7 +405,7 @@ function generateStyledHTML(content, title) { height: 0; } - /* Tableaux style GitHub */ + /* GitHub-style tables */ table { border-collapse: collapse; width: 100%; @@ -429,7 +429,7 @@ function generateStyledHTML(content, title) { background-color: #f6f8fa; } - /* Code style GitHub */ + /* GitHub-style code */ code { font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace; background-color: rgba(175, 184, 193, 0.2); @@ -457,7 +457,7 @@ function generateStyledHTML(content, title) { font-size: inherit; } - /* Diagrammes Mermaid */ + /* Mermaid diagrams */ .mermaid { text-align: center; margin: 16pt 0; @@ -469,7 +469,7 @@ function generateStyledHTML(content, title) { height: auto; } - /* Éviter les coupures de page */ + /* Avoid page breaks */ h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } @@ -484,7 +484,7 @@ function generateStyledHTML(content, title) { page-break-inside: avoid; } - /* Améliorer la lisibilité */ + /* Improve readability */ body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; @@ -500,13 +500,13 @@ function generateStyledHTML(content, title) { return styledHTML; } -// Fonction pour nettoyer le nom de fichier +// Function to sanitize filename function sanitizeFilename(filename) { return filename - .replace(/[^\w\s-]/g, '') // Supprimer caractères spéciaux - .replace(/\s+/g, '-') // Remplacer espaces par tirets - .toLowerCase() // Minuscules - .substring(0, 100); // Limiter la longueur + .replace(/[^\w\s-]/g, '') // Remove special characters + .replace(/\s+/g, '-') // Replace spaces with dashes + .toLowerCase() // Lowercase + .substring(0, 100); // Limit length } module.exports = router; \ No newline at end of file diff --git a/routes/index.js b/routes/index.js index 0bf3466..0f3ef0a 100644 --- a/routes/index.js +++ b/routes/index.js @@ -2,22 +2,22 @@ const express = require('express'); const router = express.Router(); const { getPage } = require('../views/page'); -// Route principale +// Main route router.get('/', (req, res) => { res.send(getPage()); }); -// Route à propos +// About route router.get('/about', (req, res) => { const { getHeader } = require('../views/header'); const { getFooter } = require('../views/footer'); res.send(` - + - À propos - Journal de Conception + About - Design Journal @@ -26,47 +26,35 @@ router.get('/about', (req, res) => {
    -

    À propos de l'application

    +

    About the Application

    - Cette application aide les équipes à réaliser un suivi structuré et collaboratif de la conception de leurs projets. Elle permet d'archiver les étapes clés, d'assurer la traçabilité des décisions, et de simplifier la coordination. + This application helps teams maintain structured and collaborative tracking of their design projects. It allows archiving key steps, ensuring traceability of decisions, and simplifying coordination.

    -

    Historique

    +

    History

    - Ce projet est né du besoin de centraliser et d'organiser les notes de conception lors du développement de projets techniques. Il offre un environnement intuitif pour documenter les décisions architecturales et suivre l'évolution des projets. + This project was born from the need to centralize and organize design notes during the development of technical projects. It offers an intuitive environment for documenting architectural decisions and tracking project evolution.

    -

    Équipe

    -
    -
      -
    • - Augustin ROUX – Développeur et Concepteur principal -
    • -
    -
    -
    - -
    -

    Contact

    +

    Open Source

    - Email : augustin.j.l.roux@gmail.com

    - Dépôt Git : https://gitea.legion-muyue.fr/Muyue/conception-assistant + This project is open source and available under the MIT License. Contributions are welcome!

    diff --git a/routes/templates.js b/routes/templates.js index 707978c..9ed8367 100644 --- a/routes/templates.js +++ b/routes/templates.js @@ -3,17 +3,15 @@ const router = express.Router(); const fs = require('fs'); const path = require('path'); -// GET /api/templates/:domain/:level - Récupérer un template spécifique -router.get('/:domain/:level', (req, res) => { - const { domain, level } = req.params; - +// GET /api/templates/default - Get the default template +router.get('/default', (req, res) => { try { - const templatePath = path.join(__dirname, '../templates', domain, `${level}.md`); + const templatePath = path.join(__dirname, '../templates/default.md'); if (!fs.existsSync(templatePath)) { return res.status(404).json({ success: false, - error: `Template non trouvé : ${domain}/${level}` + error: 'Default template not found' }); } @@ -22,94 +20,14 @@ router.get('/:domain/:level', (req, res) => { res.json({ success: true, data: { - domain, - level, content: templateContent } }); } catch (error) { - console.error('Erreur lors de la lecture du template:', error); + console.error('Error reading template:', error); res.status(500).json({ success: false, - error: 'Erreur serveur lors de la lecture du template' - }); - } -}); - -// GET /api/templates/:domain - Lister les niveaux disponibles pour un domaine -router.get('/:domain', (req, res) => { - const { domain } = req.params; - - try { - const domainPath = path.join(__dirname, '../templates', domain); - - if (!fs.existsSync(domainPath)) { - return res.status(404).json({ - success: false, - error: `Domaine non trouvé : ${domain}` - }); - } - - const files = fs.readdirSync(domainPath); - const levels = files - .filter(file => file.endsWith('.md')) - .map(file => file.replace('.md', '')); - - res.json({ - success: true, - data: { - domain, - levels - } - }); - } catch (error) { - console.error('Erreur lors de la lecture du domaine:', error); - res.status(500).json({ - success: false, - error: 'Erreur serveur lors de la lecture du domaine' - }); - } -}); - -// GET /api/templates - Lister tous les domaines disponibles -router.get('/', (req, res) => { - try { - const templatesPath = path.join(__dirname, '../templates'); - - if (!fs.existsSync(templatesPath)) { - return res.json({ - success: true, - data: [] - }); - } - - const domains = fs.readdirSync(templatesPath, { withFileTypes: true }) - .filter(dirent => dirent.isDirectory()) - .map(dirent => dirent.name); - - // Pour chaque domaine, récupérer les niveaux disponibles - const domainsWithLevels = domains.map(domain => { - const domainPath = path.join(templatesPath, domain); - const files = fs.readdirSync(domainPath); - const levels = files - .filter(file => file.endsWith('.md')) - .map(file => file.replace('.md', '')); - - return { - domain, - levels - }; - }); - - res.json({ - success: true, - data: domainsWithLevels - }); - } catch (error) { - console.error('Erreur lors de la lecture des templates:', error); - res.status(500).json({ - success: false, - error: 'Erreur serveur lors de la lecture des templates' + error: 'Server error while reading template' }); } }); diff --git a/templates/business/complet.md b/templates/business/complet.md deleted file mode 100644 index a7a8903..0000000 --- a/templates/business/complet.md +++ /dev/null @@ -1,304 +0,0 @@ -# Journal de Conception - Projet Business (Complet) - -## 1. Introduction -**Présentation du contexte business :** -[Décrire l'écosystème marché, les méga-tendances, les disruptions sectorielles et l'opportunité business identifiée] - -**Idée principale du projet :** -[Résumer la vision entrepreneuriale, le business model innovant et la stratégie de création de valeur] - -**Positionnement concurrentiel :** -[Situer l'entreprise dans son environnement compétitif, identifier les avantages distinctifs et la stratégie de différenciation] - -## 2. Objectifs du projet -**Objectifs principaux :** -- [ ] **Objectif de croissance** : [CA visé, expansion géographique, parts de marché] -- [ ] **Objectif de rentabilité** : [Marges, ROI, cash flow positif] -- [ ] **Objectif stratégique** : [Leadership marché, innovation, sustainability] - -**Vision et mission :** -- **Vision 2030** : [Ambition long terme, impact sociétal] -- **Mission** : [Raison d'être, valeurs fondamentales] -- **Purpose** : [Impact positif, contribution écosystème] - -**OKR (Objectives and Key Results) :** -### Objectif 1 : Conquête marché -- **KR1** : Atteindre [X]% de part de marché en [timeframe] -- **KR2** : Acquérir [Y] clients enterprise en [période] -- **KR3** : Expansion dans [Z] nouveaux pays - -### Objectif 2 : Excellence opérationnelle -- **KR1** : NPS > 70 et churn < 5% -- **KR2** : Marge opérationnelle > 25% -- **KR3** : Time-to-market < 6 mois - -## 3. Organisation du document -Ce journal suit la méthodologie Lean Startup étendue : -- **Sections 1-4** : Strategic foundation (vision, marché, value prop) -- **Sections 5-6** : Business model innovation (monétisation, opérations) -- **Sections 7-8** : Go-to-market & scaling (acquisition, retention) -- **Sections 9-10** : Growth & optimization (KPI, amélioration continue) - -## 4. Présentation et spécifications du projet -**Description stratégique détaillée :** -[Expliquer l'opportunité business, la stratégie concurrentielle et la création de valeur différenciante] - -### 4.1 Analyse marché approfondie -**Sizing et segmentation :** -- **TAM (Total Addressable Market)** : [Taille globale du marché] -- **SAM (Serviceable Addressable Market)** : [Marché adressable] -- **SOM (Serviceable Obtainable Market)** : [Marché atteignable] - -**Segments clients prioritaires :** -1. **Segment primaire** : [Demographics, psychographics, comportements] - - Taille : [Volume, valeur] - - Croissance : [CAGR, drivers] - - Accessibilité : [Canaux, coût d'acquisition] - -2. **Segment secondaire** : [Caractéristiques distinctes] -3. **Segments futurs** : [Expansion roadmap] - -**Analyse concurrentielle 360° :** -| Concurrent | Forces | Faiblesses | Part marché | Stratégie | -|------------|--------|------------|-------------|-----------| -| Leader 1 | [Assets] | [Gaps] | X% | [Approach] | -| Challenger 2| [Strengths] | [Limits] | Y% | [Strategy] | - -### 4.2 Proposition de valeur unique -**Value Proposition Canvas :** -``` -┌─────────────────────────┬─────────────────────────┐ -│ Customer Profile │ Value Map │ -├─────────────────────────┼─────────────────────────┤ -│ Jobs-to-be-done: │ Products & Services: │ -│ • [Job 1] │ • [Product 1] │ -│ • [Job 2] │ • [Service 1] │ -│ │ │ -│ Pains: │ Pain Relievers: │ -│ • [Pain 1] │ • [Relief 1] │ -│ • [Pain 2] │ • [Relief 2] │ -│ │ │ -│ Gains: │ Gain Creators: │ -│ • [Gain 1] │ • [Creator 1] │ -│ • [Gain 2] │ • [Creator 2] │ -└─────────────────────────┴─────────────────────────┘ -``` - -## 5. Fonctionnalités attendues -### 5.1 Business Model Innovation -- [ ] **Revenue Streams** : Diversification et optimisation sources revenus -- [ ] **Pricing Strategy** : Modèles tarifaires value-based, dynamic -- [ ] **Cost Structure** : Optimisation coûts, economies échelle -- [ ] **Unit Economics** : LTV/CAC positif et scaling - -### 5.2 Customer Experience Excellence -- [ ] **Customer Journey** : Parcours optimisé multi-touchpoints -- [ ] **CRM & Automation** : Personalisation à l'échelle -- [ ] **Customer Success** : Réduction churn, expansion accounts -- [ ] **Feedback Loops** : Voice of customer, amélioration continue - -### 5.3 Opérations & Scaling -- [ ] **Process Excellence** : Standardisation, automation, quality -- [ ] **Supply Chain** : Resilience, sustainability, cost optimization -- [ ] **Technology Platform** : Scalable architecture, data-driven -- [ ] **People & Culture** : Talent acquisition, development, retention - -### 5.4 Innovation & R&D -- [ ] **Product Innovation** : Roadmap, features différenciantes -- [ ] **Technology Innovation** : IP development, tech partnerships -- [ ] **Business Model Innovation** : Nouveaux segments, channels -- [ ] **Open Innovation** : Ecosystème partenaires, M&A - -## 6. Conception globale -**Business Architecture :** -``` -Strategy → Business Model → Operating Model → Execution → Performance -``` - -**Ecosystem Design :** -- **Core Business** : Activités principales génératrices valeur -- **Platform Layer** : Infrastructure partagée, APIs, data -- **Partner Network** : Alliances stratégiques, intégrations -- **Innovation Layer** : R&D, ventures, emerging technologies - -### 6.1 Operating Model -**Organizational Design :** -- **Structure** : [Functional/Divisional/Matrix/Network] -- **Governance** : [Decision rights, accountability, controls] -- **Capabilities** : [Core competencies, differentiators] - -**Process Architecture :** -- **Core Processes** : [Value creation, delivery, support] -- **Management Processes** : [Planning, monitoring, improvement] -- **Enabling Processes** : [HR, IT, Finance, Legal] - -## 7. Problématiques identifiées et solutions envisagées -| Challenge Business | Strategic Solutions | -|--------------------|-------------------| -| Product-Market Fit | Lean validation, customer co-creation | -| Scaling Challenges | Process automation, talent development | -| Competitive Pressure | Differentiation, innovation, partnerships | -| Capital Requirements | Fundraising strategy, capital efficiency | - -### 7.1 Risk Assessment & Mitigation -**Risques stratégiques :** -- **Market Risk** : [Demand volatility, substitution threats] -- **Competitive Risk** : [New entrants, price wars] -- **Operational Risk** : [Scaling issues, key person dependency] -- **Financial Risk** : [Cash flow, funding availability] - -**Risk Mitigation Strategies :** -- Diversification (markets, products, revenue streams) -- Strategic partnerships and alliances -- Agile operating model and fast pivoting -- Strong cash management and financial controls - -## 8. Environnement et outils de travail -**Business Intelligence Stack :** -- **Analytics** : Tableau, Power BI, Looker -- **CRM** : Salesforce, HubSpot avec custom integrations -- **ERP** : SAP, Oracle, custom solutions -- **Financial Planning** : Adaptive Planning, Anaplan - -**Growth & Marketing Technology :** -- **Marketing Automation** : Marketo, Pardot, Eloqua -- **Customer Data Platform** : Segment, Tealium -- **A/B Testing** : Optimizely, VWO -- **Attribution** : Multi-touch attribution platforms - -**Operational Excellence Tools :** -- **Process Management** : Nintex, K2, custom workflows -- **Project Management** : Asana, Monday, enterprise tools -- **Collaboration** : Slack, Microsoft Teams, custom apps -- **Knowledge Management** : Confluence, Notion, SharePoint - -## 9. Phases du projet et planification -### Phase 1 - Foundation & Validation (6 mois) -**Mois 1-2 : Market Intelligence & Strategy** -- [ ] Deep market research et competitive analysis -- [ ] Business model design et validation hypothèses -- [ ] Go-to-market strategy et channel optimization - -**Mois 3-4 : Product-Market Fit** -- [ ] MVP development et customer validation -- [ ] Pricing strategy et unit economics optimization -- [ ] Early customer acquisition et feedback loops - -**Mois 5-6 : Operations Foundation** -- [ ] Core team building et organizational design -- [ ] Process documentation et quality systems -- [ ] **Livrable** : Validated business model - -### Phase 2 - Growth & Scaling (12 mois) -**Mois 7-12 : Market Penetration** -- [ ] Sales et marketing engine scaling -- [ ] Customer success program implementation -- [ ] Partnership ecosystem development - -**Mois 13-18 : Operational Excellence** -- [ ] Process automation et efficiency gains -- [ ] Technology platform et data infrastructure -- [ ] International expansion preparation - -### Phase 3 - Scale & Optimize (18 mois) -**Mois 19-24 : Market Leadership** -- [ ] Category creation et thought leadership -- [ ] Advanced analytics et AI integration -- [ ] M&A strategy et ecosystem expansion - -**Mois 25-36 : Sustainable Growth** -- [ ] Innovation pipeline et R&D investment -- [ ] ESG strategy et impact measurement -- [ ] **Livrable** : Market leading position - -## 10. Gestion de projet (Agile Business) -**Governance Model :** -- Board of Directors avec external expertise -- Executive Committee pour décisions opérationnelles -- Innovation Committee pour nouveaux développements -- Risk Committee pour gestion risques - -**Performance Management :** -- OKR cascade avec alignment stratégique -- Balanced Scorecard multi-dimensionnel -- Real-time dashboards et KPI monitoring -- Regular business reviews et course correction - -**Agile Operating Principles :** -- Fast decision making et lean processes -- Customer-centric approach et feedback integration -- Data-driven decisions et experimentation -- Continuous learning et adaptation - -## 11. Conclusion -**Value Creation attendue :** -[Résumer la création de valeur économique, sociale et environnementale] - -**Competitive Advantages :** -[Avantages concurrentiels durables et barrières à l'entrée] - -**Long-term Vision :** -- [ ] Market leadership dans segments clés -- [ ] Platform business avec network effects -- [ ] Innovation continue et differentiation -- [ ] Positive impact et sustainability leadership - -**Exit Strategy Options :** -- IPO timeline et readiness requirements -- Strategic acquisition potentielle -- Management buyout scenarios -- Succession planning et continuity - -## 12. Annexes -### Annexe A - Business Plan Détaillé -**Financial Projections (5 ans) :** -- P&L statements avec assumptions détaillées -- Cash flow projections et funding requirements -- Balance sheet projections et ratios analysis -- Sensitivity analysis et scenario planning - -### Annexe B - Market Research Data -**Primary Research :** -- Customer interviews et surveys data -- Competitive intelligence et benchmarking -- Industry expert interviews -- Focus groups results - -**Secondary Research :** -- Industry reports et market studies -- Financial analysis competitors -- Regulatory environment analysis -- Technology trends assessment - -### Annexe C - Operational Plans -**Go-to-Market Plan :** -- Channel strategy et partner program -- Sales process et enablement tools -- Marketing campaigns et budget allocation -- Customer onboarding et success metrics - -**Technology Roadmap :** -- Platform architecture et scalability -- Integration requirements et API strategy -- Data architecture et analytics capabilities -- Security et compliance requirements - -### Annexe D - Legal & Compliance -**Corporate Structure :** -- Entity formation et ownership structure -- IP protection et licensing strategy -- Regulatory compliance requirements -- Risk management et insurance coverage - -### Annexe E - Team & Organizational Design -**Talent Strategy :** -- Key roles et recruitment plan -- Compensation et equity programs -- Performance management system -- Culture et values definition - ---- -*Journal créé le : [DATE]* -*Dernière mise à jour : [DATE]* -*Funding Round : [Seed/Series A/B/C]* -*Valuation : [Current valuation et trajectory]* \ No newline at end of file diff --git a/templates/business/detaille.md b/templates/business/detaille.md deleted file mode 100644 index 8712b99..0000000 --- a/templates/business/detaille.md +++ /dev/null @@ -1,148 +0,0 @@ -# Journal de Conception - Projet Business (Détaillé) - -## 1. Introduction -**Présentation du contexte business :** -[Décrire le marché, la concurrence, les opportunités identifiées et la problématique économique] - -**Idée principale du projet :** -[Résumer le concept business, la proposition de valeur et l'innovation stratégique] - -## 2. Objectifs du projet -**Objectifs principaux :** -- [ ] **Objectif financier** : [Chiffre d'affaires visé, ROI, rentabilité] -- [ ] **Objectif marché** : [Part de marché, segments ciblés] -- [ ] **Objectif stratégique** : [Positionnement, différenciation, avantage concurrentiel] - -**Fonctionnalités business clés recherchées :** -- **Value Proposition** : Création de valeur unique pour les clients -- **Revenue Model** : Modèle de monétisation et flux de revenus -- **Market Strategy** : Approche de mise sur le marché -- **Operations** : Processus métier et optimisation opérationnelle - -## 3. Organisation du document -Ce journal suit la méthodologie Lean Business Canvas : -- **Sections 1-4** : Vision et analyse marché (fondations stratégiques) -- **Sections 5-6** : Modèle économique et opérations (cœur business) -- **Sections 7-8** : Mise sur le marché et validation (execution) -- **Sections 9-10** : Mesure et optimisation (performance business) - -## 4. Présentation et spécifications du projet -**Description détaillée :** -[Expliquer le concept business, ses enjeux économiques et son contexte de marché] - -**Cahier des charges business :** -- **Problème identifié** : [Pain points clients, besoins non satisfaits] -- **Solution proposée** : [Produit/service, mécanisme de résolution] -- **Marché cible** : [Segmentation, personas, taille de marché] - -**Business Model Canvas :** -``` -┌─────────────────┬─────────────────┬─────────────────┬─────────────────┬─────────────────┐ -│ Partenaires │ Activités clés │ Proposition de │ Relations │ Segments de │ -│ clés │ │ valeur │ clients │ clientèle │ -│ ├─────────────────┤ ├─────────────────┤ │ -│ │ Ressources │ │ Canaux de │ │ -│ │ clés │ │ distribution │ │ -├─────────────────┴─────────────────┴─────────────────┼─────────────────┴─────────────────┤ -│ Structure des coûts │ Sources de revenus │ -└──────────────────────────────────────────────────────┴───────────────────────────────────┘ -``` - -## 5. Fonctionnalités attendues -- [ ] **Analyse de marché** : Étude concurrentielle, sizing, opportunités -- [ ] **Développement produit** : MVP, itérations, product-market fit -- [ ] **Stratégie commerciale** : Pricing, go-to-market, channels -- [ ] **Opérations business** : Processus, KPI, optimisation coûts -- [ ] **Gestion financière** : Business plan, projections, fundraising - -## 6. Conception globale -**Chaîne de valeur business :** -``` -Identification besoin → Développement solution → Mise sur marché → Génération revenus → Optimisation -``` - -**Architecture business :** -- **Couche stratégique** : Vision, mission, objectifs long terme -- **Couche opérationnelle** : Processus, ressources, partenariats -- **Couche commerciale** : Marketing, ventes, relation client -- **Couche financière** : Modèle économique, contrôle de gestion - -## 7. Problématiques identifiées et solutions envisagées -| Problématique business | Solutions envisagées | -|------------------------|---------------------| -| Validation product-market fit | Lean startup, MVP, tests A/B | -| Acquisition clients | Marketing digital, partenariats, referrals | -| Scalabilité business | Automatisation, standardisation processus | -| Compétitivité prix | Optimisation coûts, différenciation valeur | - -## 8. Environnement et outils de travail -**Outils d'analyse business :** -- **Stratégie** : SWOT, Porter, BCG Matrix -- **Finance** : Excel, Google Sheets, QuickBooks -- **CRM** : Salesforce, HubSpot, Pipedrive -- **Analytics** : Google Analytics, Mixpanel, Tableau - -**Frameworks business :** -- Lean Canvas pour modélisation rapide -- Design Thinking pour innovation -- OKR pour pilotage objectifs -- Balanced Scorecard pour performance - -## 9. Phases du projet et planification -**Phase 1 - Discovery & Validation (6 semaines) :** -- [ ] Étude de marché approfondie -- [ ] Validation hypothèses business -- [ ] Développement MVP - -**Phase 2 - Go-to-Market (8 semaines) :** -- [ ] Stratégie commerciale et pricing -- [ ] Lancement marketing et acquisition -- [ ] Mesure product-market fit - -**Phase 3 - Scale & Optimize (12 semaines) :** -- [ ] Optimisation processus commerciaux -- [ ] Expansion marché et segments -- [ ] Amélioration rentabilité - -**Phase 4 - Growth & Expansion (ongoing) :** -- [ ] Développement nouveaux produits/services -- [ ] Expansion géographique ou segments -- [ ] Partenariats stratégiques - -## 10. Gestion de projet (approche Agile Business) -**Méthode itérative :** -- Build → Measure → Learn cycles -- Pivots basés sur données marché -- Validation continue hypothèses business - -**KPI et métriques de suivi :** -- Customer Acquisition Cost (CAC) -- Lifetime Value (LTV) -- Monthly Recurring Revenue (MRR) -- Churn rate et retention - -## 11. Conclusion -**Contributions business attendues :** -[Résumer l'impact économique, l'innovation marché et la création de valeur] - -**Opportunités de croissance :** -[Marchés adjacents, évolutions possibles du business model] - -**Perspectives d'expansion :** -- [ ] Extension gamme produits/services -- [ ] Nouveaux segments de clientèle -- [ ] Partenariats stratégiques et alliances - -## 12. Annexes -**Business Plan détaillé :** -[Plan financier sur 3-5 ans avec hypothèses] - -**Études de marché :** -[Analyses concurrentielles, interviews clients, sizing] - -**Projections financières :** -[P&L prévisionnel, cash flow, bilans projetés] - ---- -*Journal créé le : [DATE]* -*Dernière mise à jour : [DATE]* \ No newline at end of file diff --git a/templates/business/simple.md b/templates/business/simple.md deleted file mode 100644 index 1c2d9f3..0000000 --- a/templates/business/simple.md +++ /dev/null @@ -1,94 +0,0 @@ -# Journal de Conception - Projet Business - -## 1. Introduction -**Contexte du projet :** -[Décrire brièvement l'opportunité business à saisir] - -**Idée principale :** -[Résumer le concept business et la proposition de valeur en une phrase] - -## 2. Objectifs du projet -**Objectifs principaux :** -- [ ] Objectif financier -- [ ] Objectif marché -- [ ] Objectif stratégique - -**Fonctionnalités business clés :** -- Proposition de valeur unique -- Modèle de revenus -- Stratégie d'acquisition clients - -## 3. Présentation et spécifications -**Description détaillée :** -[Expliquer le concept business et ses enjeux économiques] - -**Cahier des charges :** -- **Marché cible** : [Segmentation clients] -- **Problème résolu** : [Pain points adressés] -- **Solution proposée** : [Produit/service développé] - -## 4. Fonctionnalités attendues -- [ ] **Analyse marché** : Étude concurrentielle et positionnement -- [ ] **Business model** : Monétisation et sources de revenus -- [ ] **Go-to-market** : Stratégie commerciale et marketing -- [ ] **Opérations** : Processus métier et delivery - -## 5. Conception globale -**Business model :** -``` -Problème client → Solution → Valeur → Monétisation → Croissance -``` - -**Architecture business :** -- **Segments clients** : Personas et besoins -- **Canaux** : Distribution et acquisition -- **Revenus** : Modèle de pricing -- **Partenariats** : Écosystème et alliances - -## 6. Problématiques et solutions -| Défi business | Solution envisagée | -|---------------|-------------------| -| Product-market fit | Validation lean, MVP | -| Acquisition clients | Marketing digital, SEO | -| Compétitivité | Différenciation, innovation | - -## 7. Environnement et outils -**Outils business :** -- Analyse : Excel, Google Analytics -- CRM : HubSpot, Pipedrive -- Marketing : Mailchimp, réseaux sociaux -- Finance : QuickBooks, Stripe - -**Ressources clés :** -- Équipe et compétences -- Financement initial -- Partenaires stratégiques - -## 8. Phases du projet -**Phase 1 - Validation (2 mois) :** -- [ ] Étude de marché -- [ ] MVP et premiers clients -- [ ] Validation business model - -**Phase 2 - Lancement (4 mois) :** -- [ ] Développement produit -- [ ] Stratégie marketing -- [ ] Première croissance - -**Phase 3 - Croissance (6 mois) :** -- [ ] Scale opérations -- [ ] Expansion marché -- [ ] Optimisation rentabilité - -## 9. Conclusion -**État d'avancement :** -[À compléter au fur et à mesure] - -**Prochaines étapes :** -- [ ] Validation concept auprès du marché -- [ ] Développement MVP -- [ ] Première campagne acquisition - ---- -*Journal créé le : [DATE]* -*Dernière mise à jour : [DATE]* \ No newline at end of file diff --git a/templates/default.md b/templates/default.md new file mode 100644 index 0000000..937dc84 --- /dev/null +++ b/templates/default.md @@ -0,0 +1,104 @@ +# Design Journal - Project Title + +## 1. Introduction + +**Project Context:** +[Briefly describe the problem to solve] + +**Main Idea:** +[Summarize the envisioned solution in one sentence] + +## 2. Project Objectives + +**Main Objectives:** +- [ ] Objective 1 +- [ ] Objective 2 +- [ ] Objective 3 + +**Key Features:** +- Essential feature 1 +- Essential feature 2 + +## 3. Presentation and Specifications + +**Detailed Description:** +[Explain what the project does and its stakes] + +**Requirements:** +- **General Need**: [Problem to solve] +- **Specific Needs**: [List of requirements] + +## 4. Expected Functionality + +- [ ] **User Module**: Registration, login, profile +- [ ] **Main Module**: [Core project functionality] +- [ ] **Admin Module**: Data management +- [ ] **Security Module**: Authentication, authorization + +## 5. Overall Design + +**User View:** +``` +Web Interface → Authentication → Dashboard → Functional Modules +``` + +**Technical Architecture:** +``` +[Client] ↔ [REST API] ↔ [Business Logic] ↔ [Database] +``` + +**Software Architecture:** +- **Frontend**: React/Vue.js + CSS Framework +- **Backend**: Node.js/Python + Web Framework +- **Database**: PostgreSQL/MongoDB +- **API**: REST or GraphQL + +## 6. Problems and Solutions + +| Problem | Technical Solution | +|---------|-------------------| +| Performance | Redis cache + query optimization | +| Security | HTTPS + JWT + input validation | +| Scalability | Microservices architecture | + +## 7. Environment and Tools + +**Development Tools:** +- IDE: VS Code / IntelliJ +- Versioning: Git + GitHub/GitLab +- Project Management: Jira / Trello + +**Tech Stack:** +- Runtime: Node.js / Python +- Framework: Express / Django +- Tests: Jest / Pytest + +## 8. Project Phases + +**Phase 1 - Design (2 weeks):** +- [ ] Finalize architecture +- [ ] Interface mockups +- [ ] Setup development environment + +**Phase 2 - Development (6 weeks):** +- [ ] Backend and API +- [ ] Frontend and interfaces +- [ ] Continuous integration + +**Phase 3 - Testing and Deployment (2 weeks):** +- [ ] Automated tests +- [ ] Production deployment +- [ ] User documentation + +## 9. Conclusion + +**Progress Status:** +[To be completed as you go] + +**Next Steps:** +- [ ] Priority step 1 +- [ ] Priority step 2 + +--- +*Journal created on: [DATE]* +*Last updated: [DATE]* diff --git a/templates/design/complet.md b/templates/design/complet.md deleted file mode 100644 index a883c25..0000000 --- a/templates/design/complet.md +++ /dev/null @@ -1,319 +0,0 @@ -# Journal de Conception - Projet Design (Complet) - -## 1. Introduction -**Présentation du contexte design :** -[Décrire l'écosystème créatif, les tendances design émergentes, les défis d'expérience utilisateur et l'opportunité d'innovation créative] - -**Idée principale du projet :** -[Résumer la vision créative, l'approche design thinking et la stratégie d'expérience différenciante] - -**Positionnement dans l'écosystème créatif :** -[Situer le projet par rapport aux standards industry, identifier les innovations design et les références inspirantes] - -## 2. Objectifs du projet -**Objectifs principaux :** -- [ ] **Objectif créatif** : [Innovation visuelle, signature esthétique, impact émotionnel] -- [ ] **Objectif expérientiel** : [Parcours utilisateur optimal, engagement, satisfaction] -- [ ] **Objectif business** : [Conversion, adoption, différenciation concurrentielle] - -**Design Vision & Principles :** -- **Vision** : [Aspiration créative long terme, impact utilisateurs] -- **Principles** : [Valeurs design guidant les décisions créatives] - - Principe 1 : [ex: Human-centered design] - - Principe 2 : [ex: Inclusive accessibility] - - Principe 3 : [ex: Sustainable design practices] - -**Creative Objectives & Key Results (OKR) :** -### Objectif 1 : Excellence créative -- **KR1** : Design System adoption > 95% across products -- **KR2** : User satisfaction score > 8.5/10 -- **KR3** : Industry recognition awards [X nominations/wins] - -### Objectif 2 : User Experience Excellence -- **KR1** : Task completion rate > 90% -- **KR2** : Time to value < 3 minutes -- **KR3** : Accessibility WCAG AAA compliance - -## 3. Organisation du document -Ce journal suit la méthode Design Thinking augmentée : -- **Sections 1-4** : Discovery & Empathy (user research, insights) -- **Sections 5-6** : Ideation & Concept (creative solutions, prototyping) -- **Sections 7-8** : Design & Validation (implementation, testing) -- **Sections 9-10** : Scale & Evolution (system design, continuous improvement) - -## 4. Présentation et spécifications du projet -**Description créative détaillée :** -[Expliquer le projet design, ses enjeux d'expérience et son contexte d'innovation créative] - -### 4.1 User Research & Insights -**User Personas Détaillées :** - -**Persona 1 : [Nom persona primaire]** -- **Demographics** : [Âge, profession, localisation] -- **Psychographics** : [Valeurs, motivations, lifestyle] -- **Goals** : [Objectifs fonctionnels et émotionnels] -- **Pain Points** : [Frustrations, obstacles, besoins non satisfaits] -- **Technology Comfort** : [Niveau expertise, devices utilisés] -- **Quote** : "[Phrase représentative du persona]" - -**Journey Mapping :** -``` -Awareness → Consideration → Trial → Onboarding → Usage → Mastery → Advocacy - ↓ ↓ ↓ ↓ ↓ ↓ ↓ -[Emotions] [Touch] [Pain] [Joy] [Habit] [Flow] [Share] -``` - -**Research Methodology :** -- **Quantitative** : Analytics, surveys, A/B testing -- **Qualitative** : Interviews, observation, co-creation -- **Mixed Methods** : Card sorting, tree testing, diary studies -- **Continuous** : Voice of customer, support feedback, NPS - -### 4.2 Design Strategy & Direction -**Creative Direction :** -- **Aesthetic Philosophy** : [Modernism/Minimalism/Maximalism/etc.] -- **Emotional Tone** : [Professional/Friendly/Luxurious/Approachable] -- **Visual Language** : [Clean/Bold/Organic/Geometric] -- **Brand Personality** : [Innovative/Trustworthy/Playful/Sophisticated] - -**Competitive Design Analysis :** -| Competitor | Design Strengths | Opportunities | Differentiation | -|------------|-----------------|---------------|----------------| -| Leader 1 | [Visual impact] | [UX gaps] | [Our advantage]| -| Challenger 2| [Innovation] | [Complexity] | [Our approach] | - -## 5. Fonctionnalités attendues -### 5.1 Design System & Standards -- [ ] **Design Tokens** : Couleurs, typography, spacing, shadows systématiques -- [ ] **Component Library** : Atomic design avec variations et states -- [ ] **Pattern Library** : Templates, layouts, common interactions -- [ ] **Guidelines** : Usage, accessibility, brand consistency - -### 5.2 User Experience Design -- [ ] **Information Architecture** : Structure logique, navigation intuitive -- [ ] **Interaction Design** : Micro-interactions, transitions, feedback -- [ ] **Responsive Design** : Multi-device, adaptive layouts -- [ ] **Accessibility** : WCAG compliance, inclusive design practices - -### 5.3 Visual Design Excellence -- [ ] **Visual Hierarchy** : Typography scales, color systems -- [ ] **Iconography** : Cohérent icon set, illustration style -- [ ] **Photography** : Style guide, image treatment -- [ ] **Motion Design** : Animations purposeful, brand coherent - -### 5.4 Prototyping & Validation -- [ ] **Rapid Prototyping** : Low-fi to high-fi progression -- [ ] **Interactive Prototypes** : Clickable demos, user flows -- [ ] **Usability Testing** : Moderated/unmoderated sessions -- [ ] **A/B Testing** : Design variations, performance metrics - -## 6. Conception globale -**Design Process Framework :** -``` -Discover → Define → Ideate → Prototype → Test → Implement → Measure → Iterate -``` - -**Design System Architecture :** -- **Foundation Layer** : Design tokens, brand guidelines -- **Component Layer** : Reusable UI components, patterns -- **Application Layer** : Templates, page layouts, flows -- **Documentation Layer** : Usage guidelines, code examples - -### 6.1 Creative Methodology -**Ideation Techniques :** -- **Divergent Thinking** : Brainstorming, mind mapping, SCAMPER -- **Convergent Thinking** : Dot voting, impact/effort matrix -- **Co-creation** : Design workshops, user collaboration -- **Inspiration** : Mood boards, style tiles, precedent analysis - -**Design Critique Framework :** -- **Objective Assessment** : Usability heuristics, guidelines compliance -- **Subjective Evaluation** : Aesthetic appeal, emotional response -- **User Validation** : Testing feedback, behavioral data -- **Business Impact** : Conversion metrics, engagement analytics - -## 7. Problématiques identifiées et solutions envisagées -| Design Challenge | Creative Solutions | -|------------------|-------------------| -| Multi-platform consistency | Design system with shared tokens | -| Accessibility at scale | Inclusive design process, automated testing | -| Performance vs visual richness | Progressive loading, optimized assets | -| Localization & cultural adaptation | Flexible layouts, cultural research | - -### 7.1 Technical Design Constraints -**Performance Considerations :** -- Image optimization et progressive loading -- CSS efficiency et bundle size -- Animation performance et 60fps target -- Mobile-first responsive approach - -**Accessibility Requirements :** -- WCAG 2.1 AAA compliance strategy -- Screen reader compatibility -- Keyboard navigation support -- Color contrast et visual indicators - -## 8. Environnement et outils de travail -**Design Tool Ecosystem :** -- **Primary Design** : Figma avec plugins spécialisés -- **Prototyping** : Figma, Principle, ProtoPie pour interactions avancées -- **Collaboration** : FigJam, Miro pour workshops créatifs -- **Handoff** : Figma Dev Mode, Zeplin pour développeurs - -**Creative Assets Management :** -- **DAM System** : Centralized asset library -- **Version Control** : Git for design files, abstract workflows -- **Stock Resources** : Unsplash, Pexels, custom photography -- **Icon Libraries** : Custom set + Phosphor/Heroicons backup - -**Testing & Analytics Tools :** -- **Usability Testing** : Maze, UserTesting, Hotjar sessions -- **Analytics** : Google Analytics, Mixpanel, Amplitude -- **Heatmaps** : Hotjar, Crazy Egg, Microsoft Clarity -- **Performance** : Lighthouse, WebPageTest, Core Web Vitals - -## 9. Phases du projet et planification -### Phase 1 - Discovery & Foundation (8 semaines) -**Semaines 1-2 : Research & Insights** -- [ ] User research comprehensive (interviews, surveys, analytics) -- [ ] Competitive analysis et benchmark créatif -- [ ] Stakeholder interviews et business requirements - -**Semaines 3-4 : Strategy & Direction** -- [ ] Creative direction workshops et mood boards -- [ ] Information architecture et site mapping -- [ ] Design principles et guidelines foundation - -**Semaines 5-6 : Concept Development** -- [ ] Initial wireframes et user flows -- [ ] Style exploration et visual directions -- [ ] **Livrable** : Design strategy document - -**Semaines 7-8 : Foundation Systems** -- [ ] Design tokens et color systems -- [ ] Typography scale et component foundations -- [ ] **Livrable** : Design system starter kit - -### Phase 2 - Design & Prototyping (12 semaines) -**Semaines 9-12 : Core Component Design** -- [ ] Atomic components library development -- [ ] Pattern documentation et usage guidelines -- [ ] Accessibility testing et compliance validation - -**Semaines 13-16 : Application Design** -- [ ] Key screens et template designs -- [ ] Interactive prototypes avec realistic content -- [ ] Cross-device responsive validation - -**Semaines 17-20 : Testing & Iteration** -- [ ] Usability testing sessions (moderated + unmoderated) -- [ ] A/B testing setup pour key decisions -- [ ] Design refinements basés sur feedback users -- [ ] **Livrable** : Validated design system - -### Phase 3 - Implementation & Launch (10 semaines) -**Semaines 21-24 : Development Collaboration** -- [ ] Developer handoff avec specifications détaillées -- [ ] QA design review et pixel-perfect validation -- [ ] Performance optimization et asset preparation - -**Semaines 25-28 : Launch Preparation** -- [ ] Staging environment design review -- [ ] User acceptance testing et final adjustments -- [ ] Launch communication et training materials - -**Semaines 29-30 : Go-Live & Monitoring** -- [ ] Launch execution avec design monitoring -- [ ] User feedback collection et analytics setup -- [ ] **Livrable** : Live product with analytics dashboard - -### Phase 4 - Optimization & Evolution (6 semaines) -**Semaines 31-33 : Performance Analysis** -- [ ] User behavior analysis et heatmap review -- [ ] Conversion funnel optimization -- [ ] Accessibility audit complet - -**Semaines 34-36 : Continuous Improvement** -- [ ] Design system evolution et new components -- [ ] Feature enhancement basé sur user feedback -- [ ] **Livrable** : Optimized experience + roadmap - -## 10. Gestion de projet (Design Operations) -**Design Team Structure :** -- **Design Lead** : Vision créative, strategy, stakeholder management -- **UX Designers** : Research, wireframing, user flows -- **UI Designers** : Visual design, component creation -- **Design System Manager** : Consistency, documentation, adoption - -**Collaboration Framework :** -- **Design Reviews** : Structured critique sessions -- **Cross-functional Workshops** : Product, Engineering, Business alignment -- **User Research Cadence** : Regular testing et insights sharing -- **Design Sprint Methodology** : Rapid problem-solving cycles - -**Quality Assurance Process :** -- **Design QA Checklist** : Consistency, accessibility, performance -- **User Testing Pipeline** : Continuous validation workflow -- **Metrics Tracking** : Design KPIs et business impact measurement -- **Design Debt Management** : Systematic improvement backlog - -## 11. Conclusion -**Creative Impact attendu :** -[Résumer l'innovation visuelle, l'amélioration d'expérience et l'impact business] - -**Design System Legacy :** -[Scalabilité future, adoption organisation, influence industry] - -**Évolution créative :** -- [ ] Design language maturity et sophistication -- [ ] New interaction paradigms exploration -- [ ] Emerging technology integration (AR/VR/AI) -- [ ] Accessibility leadership et inclusive design - -**Thought Leadership Opportunities :** -- [ ] Design conference presentations -- [ ] Case study publications -- [ ] Open source design system contributions -- [ ] Industry awards et recognition - -## 12. Annexes -### Annexe A - Design System Documentation -**Component Specifications :** -- Complete component library avec all states -- Usage guidelines et do's/don'ts -- Code snippets et implementation examples -- Accessibility specifications for each component - -### Annexe B - User Research Data -**Research Artifacts :** -- Interview transcripts et insights synthesis -- Survey results avec statistical analysis -- Usability testing videos et findings reports -- Analytics data avec behavior insights - -### Annexe C - Visual Assets -**Creative Deliverables :** -- High-fidelity mockups pour all key screens -- Interactive prototype files (Figma/Principle) -- Asset export package pour development -- Brand guideline document complet - -### Annexe D - Performance & Accessibility Reports -**Technical Validation :** -- Lighthouse performance audits -- WCAG compliance detailed checklist -- Cross-browser compatibility testing results -- Mobile device testing comprehensive report - -### Annexe E - Future Roadmap -**Design Evolution Plan :** -- Next version features et improvements -- Emerging technology integration roadmap -- Design system scaling strategy -- Team growth et capability development plan - ---- -*Journal créé le : [DATE]* -*Dernière mise à jour : [DATE]* -*Design System Version : [v1.0]* -*User Testing Participants : [Total number]]* \ No newline at end of file diff --git a/templates/design/detaille.md b/templates/design/detaille.md deleted file mode 100644 index f68d840..0000000 --- a/templates/design/detaille.md +++ /dev/null @@ -1,154 +0,0 @@ -# Journal de Conception - Projet Design (Détaillé) - -## 1. Introduction -**Présentation du contexte design :** -[Décrire le brief créatif, les enjeux esthétiques et fonctionnels, la problématique d'usage] - -**Idée principale du projet :** -[Résumer le concept créatif, l'approche design et l'innovation visuelle/UX] - -## 2. Objectifs du projet -**Objectifs principaux :** -- [ ] **Objectif esthétique** : [Style visuel, identité graphique, impact émotionnel] -- [ ] **Objectif fonctionnel** : [Usabilité, ergonomie, accessibilité] -- [ ] **Objectif expérientiel** : [Parcours utilisateur, engagement, satisfaction] - -**Fonctionnalités design clés recherchées :** -- **Visual Identity** : Charte graphique, cohérence visuelle -- **User Experience** : Parcours utilisateur optimisé -- **Interface Design** : Interfaces intuitives et attractives -- **Interaction Design** : Micro-interactions et animations - -## 3. Organisation du document -Ce journal suit la méthode Design Thinking : -- **Sections 1-4** : Empathie et définition (compréhension utilisateur) -- **Sections 5-6** : Idéation et prototypage (création solutions) -- **Sections 7-8** : Test et itération (validation design) -- **Sections 9-10** : Implémentation et mesure (design opérationnel) - -## 4. Présentation et spécifications du projet -**Description détaillée :** -[Expliquer le projet design, ses enjeux créatifs et son contexte d'utilisation] - -**Cahier des charges design :** -- **Brief créatif** : [Objectifs, contraintes, public cible] -- **Contraintes techniques** : [Supports, formats, technologies] -- **Guidelines** : [Charte graphique, accessibilité, responsive] - -**Design System Framework :** -``` -┌─────────────────────────────────────────────────────────────┐ -│ DESIGN TOKENS │ -│ Colors • Typography • Spacing • Shadows • Borders │ -├─────────────────────────────────────────────────────────────┤ -│ COMPONENTS │ -│ Atoms • Molecules • Organisms • Templates • Pages │ -├─────────────────────────────────────────────────────────────┤ -│ PATTERNS & GUIDELINES │ -│ Navigation • Forms • Data • Feedback • Content │ -└─────────────────────────────────────────────────────────────┘ -``` - -## 5. Fonctionnalités attendues -- [ ] **Research & Discovery** : User research, personas, journey mapping -- [ ] **Visual Design** : Moodboards, style guides, assets visuels -- [ ] **Prototype & Test** : Wireframes, maquettes, tests utilisateurs -- [ ] **Design System** : Composants réutilisables, documentation -- [ ] **Handoff Development** : Specifications, assets optimisés - -## 6. Conception globale -**Processus de design :** -``` -Research → Ideation → Design → Prototype → Test → Iterate → Deliver -``` - -**Architecture du design :** -- **Couche utilisateur** : Personas, besoins, contextes d'usage -- **Couche expérience** : User flows, wireframes, architecture information -- **Couche interface** : UI components, interactions, micro-animations -- **Couche système** : Design tokens, guidelines, documentation - -## 7. Problématiques identifiées et solutions envisagées -| Problématique design | Solutions envisagées | -|---------------------|---------------------| -| Cohérence visuelle multi-supports | Design system unifié, tokens partagés | -| Accessibilité et inclusion | WCAG guidelines, tests accessibilité | -| Performance et optimisation | Assets optimisés, lazy loading, compression | -| Maintenance et évolutivité | Composants modulaires, documentation vivante | - -## 8. Environnement et outils de travail -**Outils de design :** -- **UI/UX Design** : Figma, Adobe XD, Sketch -- **Prototypage** : InVision, Principle, Framer -- **Collaboration** : Figma, Miro, FigJam -- **Handoff** : Zeplin, Avocode, Figma Dev Mode - -**Ressources créatives :** -- **Inspiration** : Dribbble, Behance, Awwwards -- **Assets** : Unsplash, Pexels, Iconify -- **Fonts** : Google Fonts, Adobe Fonts, Fontshare -- **Couleurs** : Coolors, Adobe Color, Paletton - -## 9. Phases du projet et planification -**Phase 1 - Discovery & Research (3 semaines) :** -- [ ] Audit design existant -- [ ] User research et personas -- [ ] Benchmark concurrentiel - -**Phase 2 - Idéation & Concept (4 semaines) :** -- [ ] Moodboards et directions créatives -- [ ] Wireframes et architecture information -- [ ] Premiers prototypes basse fidélité - -**Phase 3 - Design & Prototype (6 semaines) :** -- [ ] Design system et composants -- [ ] Maquettes haute fidélité -- [ ] Prototypes interactifs - -**Phase 4 - Test & Iterate (3 semaines) :** -- [ ] Tests utilisateurs -- [ ] Itérations basées feedback -- [ ] Validation design final - -**Phase 5 - Production & Handoff (2 semaines) :** -- [ ] Assets production -- [ ] Documentation développeur -- [ ] Suivi implémentation - -## 10. Gestion de projet (Design Ops) -**Approche collaborative :** -- Co-création avec utilisateurs finaux -- Reviews régulières avec stakeholders -- Workshops d'idéation en équipe - -**Métriques design :** -- Task Success Rate -- Time on Task -- System Usability Scale (SUS) -- Net Promoter Score (NPS) - -## 11. Conclusion -**Contributions design attendues :** -[Résumer l'impact visuel, l'amélioration UX et l'innovation créative] - -**Applications design :** -[Déclinaisons possibles, supports additionnels] - -**Perspectives d'évolution :** -- [ ] Évolutions saisonnières et thématiques -- [ ] Adaptation nouveaux supports/devices -- [ ] Enrichissement interactions et animations - -## 12. Annexes -**Style Guide complet :** -[Charte graphique détaillée avec examples d'usage] - -**User Research Data :** -[Interviews, surveys, analytics, heatmaps] - -**Design System Documentation :** -[Composants, guidelines, code snippets] - ---- -*Journal créé le : [DATE]* -*Dernière mise à jour : [DATE]* \ No newline at end of file diff --git a/templates/design/simple.md b/templates/design/simple.md deleted file mode 100644 index e65a578..0000000 --- a/templates/design/simple.md +++ /dev/null @@ -1,94 +0,0 @@ -# Journal de Conception - Projet Design - -## 1. Introduction -**Contexte du projet :** -[Décrire brièvement le brief créatif et les enjeux design] - -**Idée principale :** -[Résumer le concept créatif et la direction artistique en une phrase] - -## 2. Objectifs du projet -**Objectifs principaux :** -- [ ] Objectif esthétique -- [ ] Objectif fonctionnel -- [ ] Objectif utilisateur - -**Fonctionnalités design clés :** -- Identité visuelle cohérente -- Expérience utilisateur optimisée -- Communication efficace - -## 3. Présentation et spécifications -**Description détaillée :** -[Expliquer le projet design et ses enjeux créatifs] - -**Cahier des charges :** -- **Public cible** : [Demographics et personas] -- **Message** : [Communication à transmettre] -- **Contraintes** : [Budget, délais, techniques] - -## 4. Fonctionnalités attendues -- [ ] **Recherche créative** : Moodboards, inspirations, tendances -- [ ] **Concept visuel** : Direction artistique et style guide -- [ ] **Création graphique** : Éléments visuels et déclinaisons -- [ ] **Tests utilisateurs** : Validation et ajustements - -## 5. Conception globale -**Processus créatif :** -``` -Brief → Recherche → Concept → Création → Validation → Livraison -``` - -**Éléments de design :** -- **Couleurs** : Palette principale et secondaire -- **Typographie** : Hiérarchie et lisibilité -- **Iconographie** : Style et cohérence -- **Layout** : Structure et équilibre - -## 6. Problématiques et solutions -| Défi créatif | Solution envisagée | -|--------------|-------------------| -| Cohérence multi-supports | Système de design unifié | -| Lisibilité et accessibilité | Tests et guidelines WCAG | -| Impact visuel | Couleurs et typography forte | - -## 7. Environnement et outils -**Outils créatifs :** -- Design : Adobe Creative Suite, Figma -- Prototypage : InVision, Principle -- Collaboration : Figma, Miro -- Présentation : Keynote, PowerPoint - -**Ressources :** -- Banques d'images : Unsplash, Adobe Stock -- Fonts : Google Fonts, Adobe Fonts -- Inspiration : Dribbble, Behance - -## 8. Phases du projet -**Phase 1 - Recherche (1 semaine) :** -- [ ] Analyse brief et concurrence -- [ ] Moodboard et inspirations -- [ ] Première direction créative - -**Phase 2 - Création (3 semaines) :** -- [ ] Développement concept -- [ ] Éléments graphiques -- [ ] Déclinaisons principales - -**Phase 3 - Finalisation (1 semaine) :** -- [ ] Ajustements client -- [ ] Préparation livrables -- [ ] Guide de style - -## 9. Conclusion -**État d'avancement :** -[À compléter au fur et à mesure] - -**Prochaines étapes :** -- [ ] Validation concept créatif -- [ ] Production éléments graphiques -- [ ] Livraison finale client - ---- -*Journal créé le : [DATE]* -*Dernière mise à jour : [DATE]* \ No newline at end of file diff --git a/templates/informatique/complet.md b/templates/informatique/complet.md deleted file mode 100644 index 4a432e8..0000000 --- a/templates/informatique/complet.md +++ /dev/null @@ -1,162 +0,0 @@ -# Journal de Conception - Projet Informatique (Complet) - -## 1. Introduction -**Présentation du contexte informatique :** -[Décrire l'environnement technologique, les systèmes existants, les défis techniques et la problématique informatique à résoudre] - -**Idée principale du projet :** -[Résumer la solution technique envisagée, l'architecture proposée et l'innovation technologique] - -## 2. Objectifs du projet -**Objectifs principaux :** -- [ ] **Objectif technique** : [Performance, scalabilité, maintainabilité visée] -- [ ] **Objectif fonctionnel** : [Fonctionnalités clés à développer] -- [ ] **Objectif qualité** : [Standards de code, sécurité, tests] - -**Fonctionnalités clés recherchées :** -- **Module core** : Fonctionnalité centrale du système -- **Module utilisateur** : Gestion des comptes et profils -- **Module administration** : Back-office et supervision -- **Module intégration** : APIs et connecteurs externes - -## 3. Organisation du document -Ce journal suit une approche itérative où chaque section évolue avec l'avancement du projet : -- **Sections 1-4** : Vision et spécifications (évoluent peu) -- **Sections 5-6** : Conception technique (ajustements fréquents) -- **Sections 7-8** : Développement et déploiement (mises à jour continues) -- **Sections 9-10** : Résultats et optimisation (analyse continue) - -## 4. Présentation et spécifications du projet -**Description détaillée :** -[Expliquer le projet informatique, ses enjeux techniques et son contexte d'utilisation] - -**Cahier des charges technique :** -- **Exigences fonctionnelles** : [Fonctionnalités attendues, cas d'usage] -- **Exigences non-fonctionnelles** : [Performance, sécurité, disponibilité] -- **Contraintes techniques** : [Technologies imposées, compatibilité] - -**Diagrammes et modélisation :** -``` -Architecture générale : -[Client] ↔ [Load Balancer] ↔ [API Gateway] ↔ [Services] ↔ [Database] - -Flux de données : -Input → Validation → Processing → Storage → Output -``` - -## 5. Fonctionnalités attendues -- [ ] **Module utilisateur** : Authentification, autorisation, profils -- [ ] **Module métier** : Fonctionnalités cœur du domaine -- [ ] **Module administration** : Gestion système, configuration -- [ ] **Module intégration** : APIs, webhooks, connecteurs -- [ ] **Module reporting** : Tableaux de bord, analytics - - -## 6. Conception globale -**Architecture système :** -``` -Client ↔ Load Balancer ↔ API Gateway ↔ Services ↔ Database -``` - -**Architecture logicielle :** -- **Frontend** : React/Vue.js avec state management -- **Backend** : Node.js/Python avec architecture microservices -- **Base de données** : PostgreSQL/MongoDB avec cache Redis -- **Infrastructure** : Docker/Kubernetes sur cloud - -**Patterns de conception :** -- Repository pattern pour l'accès aux données -- CQRS pour la séparation lecture/écriture -- Event sourcing pour l'historique -- Clean Architecture pour l'indépendance - - -## 7. Problématiques identifiées et solutions envisagées -| Problématique technique | Solutions envisagées | -|------------------------|---------------------| -| Scalabilité horizontale | Microservices + Load balancing | -| Performance base de données | Cache Redis + optimisation requêtes | -| Sécurité des données | Chiffrement + authentification forte | -| Maintenance du code | Tests automatisés + CI/CD | - - -## 8. Environnement et outils de travail -**Outils de développement :** -- **IDE** : VS Code avec extensions spécialisées -- **Versioning** : Git avec GitFlow -- **Gestion projet** : Jira/Linear avec méthodologie Agile - -**Stack technique :** -- **Runtime** : Node.js 18+ / Python 3.11+ -- **Frameworks** : Express/FastAPI + React/Next.js -- **Base de données** : PostgreSQL + Redis -- **Testing** : Jest/Pytest + Cypress/Playwright -- **DevOps** : Docker + Kubernetes + GitHub Actions - - -## 9. Phases du projet et planification -**Phase 1 - Architecture et fondations (4 semaines) :** -- [ ] Setup environnement de développement -- [ ] Architecture technique détaillée -- [ ] CI/CD pipeline et infrastructure -- [ ] **Livrable** : Environnement de développement opérationnel - -**Phase 2 - Développement MVP (8 semaines) :** -- [ ] Implémentation modules core -- [ ] Interface utilisateur de base -- [ ] Tests unitaires et intégration -- [ ] **Livrable** : Version MVP fonctionnelle - -**Phase 3 - Fonctionnalités avancées (6 semaines) :** -- [ ] Modules spécialisés et intégrations -- [ ] Optimisations performance -- [ ] Tests de charge et sécurité -- [ ] **Livrable** : Version complète - -**Phase 4 - Production et monitoring (2 semaines) :** -- [ ] Déploiement production -- [ ] Monitoring et alertes -- [ ] Documentation utilisateur -- [ ] **Livrable** : Système en production - - -## 10. Gestion de projet (méthode Agile) -**Approche Scrum :** -- Sprints de 2 semaines avec démonstrations -- Daily standups et rétrospectives -- Product backlog priorisé par valeur métier - -**Indicateurs de progression :** -- Velocity de l'équipe (story points/sprint) -- Code coverage et qualité (SonarQube) -- Performance (temps de réponse, throughput) -- Satisfaction utilisateur (NPS, feedback) - - -## 11. Conclusion -**Contributions techniques attendues :** -[Résumer l'innovation technique, l'amélioration des processus et l'impact organisationnel] - -**Architecture evolutive :** -[Capacité d'adaptation, extensibilité future] - -**Perspectives d'amélioration :** -- [ ] Intégration IA/ML pour l'automatisation -- [ ] Extension mobile native -- [ ] API publique pour écosystème partenaires -- [ ] Migration vers architecture serverless - - -## 12. Annexes -**Architecture détaillée :** -[Diagrammes techniques, modèles de données, spécifications API] - -**Guide de déploiement :** -[Procédures d'installation, configuration, maintenance] - -**Tests et validation :** -[Stratégies de test, scénarios de validation, benchmarks] - ---- -*Journal créé le : [DATE]* -*Dernière mise à jour : [DATE]* \ No newline at end of file diff --git a/templates/informatique/detaille.md b/templates/informatique/detaille.md deleted file mode 100644 index 098a27c..0000000 --- a/templates/informatique/detaille.md +++ /dev/null @@ -1,390 +0,0 @@ -# Journal de Conception - Projet Informatique (Détaillé) - -## 1. Introduction -**Présentation du contexte :** -[Décrire le contexte métier, l'environnement et la problématique identifiée] - -**Idée principale du projet :** -[Résumer la solution technique envisagée et son innovation] - -## 2. Objectifs du projet -**Objectifs principaux :** -- [ ] **Objectif technique** : [Performance, sécurité, scalabilité visée] -- [ ] **Objectif fonctionnel** : [Fonctionnalités clés à développer] -- [ ] **Objectif utilisateur** : [Expérience et valeur apportée] - -**Fonctionnalités clés recherchées :** -- **Module core** : [Fonctionnalité centrale du système] -- **Module utilisateur** : [Gestion des comptes et profils] -- **Module administration** : [Back-office et supervision] -- **Module intégration** : [APIs et connecteurs externes] - -**Critères de réussite :** -- Performance : Temps de réponse < 2s -- Adoption : X utilisateurs actifs en Y mois -- Qualité : Code coverage > 90% - -## 3. Organisation du document -Ce journal suit une approche itérative où chaque section évolue avec l'avancement du projet : -- **Sections 1-4** : Vision et spécifications (évoluent peu) -- **Sections 5-7** : Conception technique (ajustements fréquents) -- **Sections 8-10** : Développement et déploiement (mises à jour continues) -- **Section 11** : Retour d'expérience (enrichie régulièrement) - -## 2. Analyse des besoins - -### 2.1 Besoins fonctionnels -#### RF-001 : [Nom du besoin] -- **Description** : -- **Acteur** : -- **Priorité** : Haute/Moyenne/Basse -- **Critères d'acceptation** : - -#### RF-002 : [Nom du besoin] -- **Description** : -- **Acteur** : -- **Priorité** : -- **Critères d'acceptation** : - -### 2.2 Besoins non-fonctionnels -#### Performance -- Temps de réponse : < 2 secondes -- Charge supportée : X utilisateurs simultanés -- Disponibilité : 99.9% - -#### Sécurité -- Authentification : OAuth 2.0 -- Autorisation : RBAC -- Chiffrement : TLS 1.3 - -#### Compatibilité -- Navigateurs : Chrome, Firefox, Safari, Edge -- Appareils : Desktop, Mobile, Tablette -- OS : Windows, macOS, Linux - -## 3. Architecture système - -### 3.1 Architecture générale -[Diagramme d'architecture global] - -### 3.2 Stack technique - -#### Frontend -- **Framework** : React 18 / Vue 3 / Angular 15 -- **État** : Redux / Pinia / NgRx -- **UI** : Material-UI / Vuetify / Angular Material -- **Build** : Vite / Webpack -- **Tests** : Jest + Testing Library - -#### Backend -- **Framework** : Node.js + Express / Python + FastAPI / Java + Spring -- **API** : REST / GraphQL -- **Authentification** : JWT / OAuth2 -- **Tests** : Jest / pytest / JUnit - -#### Base de données -- **Principale** : PostgreSQL / MySQL / MongoDB -- **Cache** : Redis -- **Recherche** : Elasticsearch (si nécessaire) - -#### Infrastructure -- **Cloud** : AWS / Azure / GCP -- **Conteneurs** : Docker + Kubernetes -- **CI/CD** : GitHub Actions / GitLab CI -- **Monitoring** : Prometheus + Grafana - -### 3.3 Modèle de données - -#### Entités principales - -```sql --- Utilisateurs -CREATE TABLE users ( - id SERIAL PRIMARY KEY, - email VARCHAR(255) UNIQUE NOT NULL, - password_hash VARCHAR(255) NOT NULL, - role VARCHAR(50) DEFAULT 'user', - created_at TIMESTAMP DEFAULT NOW(), - updated_at TIMESTAMP DEFAULT NOW() -); - --- Contenu principal -CREATE TABLE content ( - id SERIAL PRIMARY KEY, - title VARCHAR(255) NOT NULL, - description TEXT, - user_id INTEGER REFERENCES users(id), - status VARCHAR(50) DEFAULT 'draft', - created_at TIMESTAMP DEFAULT NOW(), - updated_at TIMESTAMP DEFAULT NOW() -); -``` - -#### Relations -[Diagramme ERD] - -## 4. Conception détaillée - -### 4.1 Frontend - Composants - -#### Composant App -```jsx -// Structure principale - - -
    - - -
    - - -``` - -#### Composant Dashboard -- **Props** : user, data -- **State** : loading, filters -- **Actions** : loadData, applyFilter - -### 4.2 Backend - API - -#### Endpoints principaux - -``` -GET /api/users - Liste des utilisateurs -POST /api/users - Création utilisateur -GET /api/users/:id - Détail utilisateur -PUT /api/users/:id - Modification utilisateur -DELETE /api/users/:id - Suppression utilisateur - -GET /api/content - Liste du contenu -POST /api/content - Création contenu -GET /api/content/:id - Détail contenu -PUT /api/content/:id - Modification contenu -DELETE /api/content/:id - Suppression contenu -``` - -#### Middlewares -- **Authentication** : Vérification JWT -- **Authorization** : Vérification des rôles -- **Rate limiting** : Limitation des appels -- **Validation** : Validation des données -- **Logging** : Journalisation des requêtes - -### 4.3 Sécurité - -#### Authentification -```javascript -// Flow OAuth2 -1. Redirection vers provider -2. Callback avec code -3. Exchange code -> token -4. Stockage secure du token -5. Utilisation avec Bearer header -``` - -#### Gestion des erreurs -```javascript -// Structure des erreurs -{ - error: { - code: 'USER_NOT_FOUND', - message: 'Utilisateur introuvable', - details: {}, - timestamp: '2025-01-01T12:00:00Z' - } -} -``` - -## 5. Planning détaillé - -### Phase 1 : Setup et fondations (3 semaines) -#### Semaine 1 -- [ ] Setup repository Git -- [ ] Configuration environnements dev/staging/prod -- [ ] Setup CI/CD pipeline -- [ ] Configuration base de données -- [ ] **Livrable** : Environnements opérationnels - -#### Semaine 2 -- [ ] Architecture frontend de base -- [ ] Setup backend avec authentification -- [ ] Intégration base de données -- [ ] Tests unitaires de base -- [ ] **Livrable** : Stack technique fonctionnelle - -#### Semaine 3 -- [ ] Interface utilisateur de base -- [ ] API CRUD principale -- [ ] Tests d'intégration -- [ ] Documentation technique -- [ ] **Livrable** : MVP fonctionnel - -### Phase 2 : Développement core (4 semaines) -#### Semaines 4-5 -- [ ] Implémentation des fonctionnalités principales -- [ ] Interface utilisateur complète -- [ ] Gestion des erreurs -- [ ] **Livrable** : Version alpha - -#### Semaines 6-7 -- [ ] Fonctionnalités avancées -- [ ] Optimisation des performances -- [ ] Tests de charge -- [ ] **Livrable** : Version beta - -### Phase 3 : Finalisation (2 semaines) -#### Semaine 8 -- [ ] Tests utilisateur -- [ ] Corrections de bugs -- [ ] Documentation utilisateur -- [ ] Préparation déploiement production - -#### Semaine 9 -- [ ] Déploiement production -- [ ] Monitoring et alertes -- [ ] Formation utilisateurs -- [ ] **Livrable** : Version 1.0 - -## 6. Tests et Qualité - -### 6.1 Stratégie de tests -- **Tests unitaires** : > 90% de couverture -- **Tests d'intégration** : Tous les endpoints -- **Tests end-to-end** : Parcours utilisateur critiques -- **Tests de performance** : Charge nominale et pics - -### 6.2 Outils de tests -```javascript -// Frontend -- Jest + Testing Library -- Cypress pour E2E -- Lighthouse pour performance - -// Backend -- Jest / pytest -- Supertest pour API -- Artillery pour charge -``` - -### 6.3 Critères de qualité -- **Code coverage** : > 90% -- **Temps de build** : < 5 minutes -- **Temps de déploiement** : < 10 minutes -- **Performance** : Core Web Vitals > 90 - -## 7. Déploiement et Infrastructure - -### 7.1 Environnements -#### Développement -- **URL** : http://localhost:3000 -- **Base** : PostgreSQL locale -- **Données** : Jeu de test - -#### Staging -- **URL** : https://staging.app.com -- **Base** : PostgreSQL cloud -- **Données** : Réplique anonymisée de prod - -#### Production -- **URL** : https://app.com -- **Base** : PostgreSQL cluster -- **Données** : Données réelles - -### 7.2 Architecture cloud -```yaml -# Kubernetes deployment -apiVersion: apps/v1 -kind: Deployment -metadata: - name: app-frontend -spec: - replicas: 3 - selector: - matchLabels: - app: frontend - template: - metadata: - labels: - app: frontend - spec: - containers: - - name: frontend - image: app/frontend:latest - ports: - - containerPort: 80 -``` - -### 7.3 Monitoring -- **Application** : Sentry pour erreurs -- **Infrastructure** : Prometheus + Grafana -- **Logs** : ELK Stack -- **Uptime** : Pingdom / UptimeRobot - -## 8. Maintenance et Evolution - -### 8.1 Maintenance corrective -- **Bugs critiques** : Correction < 4h -- **Bugs majeurs** : Correction < 24h -- **Bugs mineurs** : Correction < 1 semaine - -### 8.2 Maintenance évolutive -- **Mises à jour sécurité** : Mensuelle -- **Nouvelles fonctionnalités** : Trimestrielle -- **Refactoring** : Semestrielle - -### 8.3 Roadmap -#### V1.1 (3 mois) -- [ ] Amélioration UX -- [ ] API v2 -- [ ] Export de données - -#### V2.0 (6 mois) -- [ ] Application mobile -- [ ] Intelligence artificielle -- [ ] Intégrations tierces - -## 9. Documentation - -### 9.1 Documentation technique -- [ ] README détaillé -- [ ] Guide de contribution -- [ ] Documentation API (OpenAPI) -- [ ] Architecture Decision Records (ADR) - -### 9.2 Documentation utilisateur -- [ ] Guide d'utilisation -- [ ] FAQ -- [ ] Tutoriels vidéo -- [ ] Support en ligne - -## 10. Risques et Mitigation - -| ID | Risque | Impact | Probabilité | Mitigation | -|----|--------|---------|-------------|------------| -| R1 | Retard de développement | Élevé | Moyenne | Buffer de temps, équipe élargie | -| R2 | Problème de performance | Moyen | Faible | Tests de charge réguliers | -| R3 | Faille de sécurité | Élevé | Faible | Audits sécurité, code review | -| R4 | Indisponibilité cloud | Moyen | Faible | Multi-zone, backup automatique | - -## 11. Journal de Développement - -### [Date] - Setup initial -[Notes sur la configuration initiale] - -### [Date] - Développement Feature X -[Défis rencontrés et solutions] - -### [Date] - Tests et déploiement -[Résultats des tests et déploiement] - -## 12. Ressources et Références - -### Ressources techniques -- [Documentation React](https://reactjs.org/) -- [Guide Node.js](https://nodejs.org/) -- [Best practices sécurité](https://owasp.org/) - -### Outils utilisés -- [GitHub Repository](https://github.com/user/project) -- [Projet Management](https://trello.com/board) -- [Design System](https://figma.com/file) \ No newline at end of file diff --git a/templates/informatique/simple.md b/templates/informatique/simple.md deleted file mode 100644 index 40c375c..0000000 --- a/templates/informatique/simple.md +++ /dev/null @@ -1,95 +0,0 @@ -# Journal de Conception - Projet Informatique - -## 1. Introduction -**Contexte du projet :** -[Décrire brièvement le problème à résoudre] - -**Idée principale :** -[Résumer la solution envisagée en une phrase] - -## 2. Objectifs du projet -**Objectifs principaux :** -- [ ] Objectif 1 -- [ ] Objectif 2 -- [ ] Objectif 3 - -**Fonctionnalités clés recherchées :** -- Fonctionnalité essentielle 1 -- Fonctionnalité essentielle 2 - -## 3. Présentation et spécifications -**Description détaillée :** -[Expliquer ce que fait le projet et ses enjeux] - -**Cahier des charges :** -- **Besoin général** : [Problème à résoudre] -- **Besoins spécifiques** : [Liste des exigences] - -## 4. Fonctionnalités attendues -- [ ] **Module utilisateur** : Inscription, connexion, profil -- [ ] **Module principal** : [Fonctionnalité cœur du projet] -- [ ] **Module administration** : Gestion des données -- [ ] **Module sécurité** : Authentification, autorisation - -## 5. Conception globale -**Vue utilisateur :** -``` -Interface Web → Authentification → Dashboard → Modules fonctionnels -``` - -**Architecture technique :** -``` -[Client] ↔ [API REST] ↔ [Logique métier] ↔ [Base de données] -``` - -**Architecture logicielle :** -- **Frontend** : React/Vue.js + CSS Framework -- **Backend** : Node.js/Python + Framework web -- **Base de données** : PostgreSQL/MongoDB -- **API** : REST ou GraphQL - -## 6. Problématiques et solutions -| Problématique | Solution technique | -|---------------|-------------------| -| Performance | Cache Redis + optimisation requêtes | -| Sécurité | HTTPS + JWT + validation inputs | -| Scalabilité | Architecture microservices | - -## 7. Environnement et outils -**Outils de développement :** -- IDE : VS Code / IntelliJ -- Versioning : Git + GitHub/GitLab -- Gestion projet : Jira / Trello - -**Stack technique :** -- Runtime : Node.js / Python -- Framework : Express / Django -- Tests : Jest / Pytest - -## 8. Phases du projet -**Phase 1 - Conception (2 semaines) :** -- [ ] Finaliser l'architecture -- [ ] Mockups des interfaces -- [ ] Setup environnement dev - -**Phase 2 - Développement (6 semaines) :** -- [ ] Backend et API -- [ ] Frontend et interfaces -- [ ] Intégration continue - -**Phase 3 - Tests et déploiement (2 semaines) :** -- [ ] Tests automatisés -- [ ] Déploiement production -- [ ] Documentation utilisateur - -## 9. Conclusion -**État d'avancement :** -[À compléter au fur et à mesure] - -**Prochaines étapes :** -- [ ] Étape prioritaire 1 -- [ ] Étape prioritaire 2 - ---- -*Journal créé le : [DATE]* -*Dernière mise à jour : [DATE]* \ No newline at end of file diff --git a/templates/ingenierie/complet.md b/templates/ingenierie/complet.md deleted file mode 100644 index 8a27682..0000000 --- a/templates/ingenierie/complet.md +++ /dev/null @@ -1,301 +0,0 @@ -# Journal de Conception - Projet Ingénierie (Complet) - -## 1. Introduction -**Présentation du contexte d'ingénierie :** -[Décrire l'écosystème industriel, les enjeux technologiques, les défis d'innovation et la problématique d'ingénierie complexe à résoudre] - -**Idée principale du projet :** -[Résumer la vision technique, l'approche d'ingénierie système et l'innovation technologique disruptive] - -**Positionnement technologique :** -[Situer le projet par rapport à l'état de l'art, identifier les ruptures technologiques et les avantages compétitifs] - -## 2. Objectifs du projet -**Objectifs principaux :** -- [ ] **Objectif de performance** : [Breakthrough technique, records de performance] -- [ ] **Objectif d'innovation** : [Propriété intellectuelle, différenciation technologique] -- [ ] **Objectif industriel** : [Time-to-market, compétitivité, scalabilité] - -**Spécifications système critiques :** -- **Performance** : Métriques quantifiées avec tolérances -- **Fiabilité** : MTBF, disponibilité, maintenabilité -- **Sécurité** : Analyses HAZOP, SIL, normes fonctionnelles -- **Économie** : TCO, ROI, business case détaillé - -**Key Performance Indicators (KPI) :** -### KPI Techniques -- **Efficacité** : > X% d'amélioration vs état de l'art -- **Fiabilité** : MTBF > Y heures -- **Sécurité** : SIL Z compliance - -### KPI Business -- **Time-to-Market** : Lancement < A mois -- **Coût cible** : Réduction B% vs solution actuelle -- **Parts de marché** : Capture C% en D années - -## 3. Organisation du document -Ce journal suit l'ingénierie système selon ISO 15288 : -- **Sections 1-4** : Définition des besoins (stakeholder requirements) -- **Sections 5-6** : Architecture système (system requirements & design) -- **Sections 7-8** : Implémentation et intégration (realization & integration) -- **Sections 9-10** : Validation et déploiement (verification & deployment) - -## 4. Présentation et spécifications du projet -**Description système complexe :** -[Expliquer le système d'ingénierie, son environnement opérationnel, ses interactions et sa valeur ajoutée] - -### 4.1 Analyse des besoins stakeholders -**Parties prenantes :** -- **Utilisateurs finaux** : Besoins opérationnels, contraintes d'usage -- **Exploitants** : Maintenance, disponibilité, coûts d'exploitation -- **Régulateurs** : Conformité normative, sécurité, environnement -- **Investisseurs** : ROI, risques techniques, planning - -### 4.2 Exigences système détaillées -**Exigences fonctionnelles :** -- **RF-001** : [Fonction principale avec critères quantifiés] -- **RF-002** : [Fonction secondaire avec interfaces] -- **RF-003** : [Fonction de sécurité avec redondance] - -**Exigences non-fonctionnelles :** -- **Performance** : Débit, précision, temps de réponse -- **Fiabilité** : Taux de panne, mode de défaillance -- **Maintenabilité** : MTTR, accessibilité, diagnostics -- **Sécurité** : Analyses des risques, barrières - -### 4.3 Matrice de traçabilité -``` -Besoin → Exigence → Fonction → Solution → Test → Validation - ↓ ↓ ↓ ↓ ↓ ↓ -[B1] → [REQ-001] → [F1] → [SOL-A] → [T1] → [V-OK] -``` - -## 5. Fonctionnalités attendues -### 5.1 Architecture fonctionnelle -- [ ] **Analyse fonctionnelle** : FAST, SADT, diagrammes de cas d'usage -- [ ] **Décomposition système** : PBS, WBS, interfaces définies -- [ ] **Allocation exigences** : Répartition sur sous-systèmes -- [ ] **Architecture logique** : Modèles comportementaux - -### 5.2 Conception multi-disciplinaire -- [ ] **Mécanique** : Dimensionnement, matériaux, assemblages -- [ ] **Électronique** : Circuits, composants, compatibilité EMC -- [ ] **Software** : Algorithmes, IHM, temps réel -- [ ] **Automatique** : Régulation, supervision, diagnostic - -### 5.3 Intégration et validation -- [ ] **Intégration par étapes** : Sous-systèmes → Système complet -- [ ] **Tests multi-niveaux** : Composants → Sous-systèmes → Système -- [ ] **Validation environnementale** : Climatique, vibratoire, EMC -- [ ] **Certification** : Conformité normes, marquage CE - -## 6. Conception globale -**Architecture système V-Model :** -``` -Besoins → Spécifications → Conception → Intégration → Validation → Exploitation - ↑ ↓ -Définition ←————————————————————————————→ Vérification -``` - -**Décomposition hiérarchique :** -- **Niveau 1** : Système complet avec environnement -- **Niveau 2** : Sous-systèmes principaux et interfaces -- **Niveau 3** : Modules fonctionnels et composants -- **Niveau 4** : Éléments de base et technologies - -### 6.1 Choix technologiques critiques -**Trade-off Analysis :** -| Critère | Solution A | Solution B | Solution C | Décision | -|---------|------------|------------|------------|----------| -| Performance | ★★★ | ★★ | ★★★★ | Solution C | -| Coût | ★★ | ★★★★ | ★★ | Compromis | -| Fiabilité | ★★★★ | ★★ | ★★★ | Solution A | -| Maturité | ★★★ | ★★★★ | ★★ | Solution B | - -### 6.2 Architecture de sécurité -**Analyse HAZOP :** -- Identification des dangers et événements redoutés -- Barrières de prévention et de protection -- Architecture de sécurité avec redondance -- Procédures d'urgence et de maintenance - -## 7. Problématiques identifiées et solutions envisagées -| Défi d'ingénierie complexe | Solutions système avancées | -|----------------------------|----------------------------| -| Couplage multiphysique | Co-simulation, modèles réduits | -| Optimisation multi-objectifs | Algorithmes génétiques, Pareto | -| Incertitudes et robustesse | Monte Carlo, Six Sigma | -| Intégration hétérogène | Middleware, standards ouverts | - -### 7.1 Gestion des risques techniques -**Risk Management selon ISO 31000 :** -- **Identification** : FMEA/FMECA, arbres de défaillance -- **Évaluation** : Probabilité × Impact, matrices de risque -- **Traitement** : Éviter, réduire, transférer, accepter -- **Suivi** : KRI, revues périodiques, plan de contingence - -### 7.2 Innovation et propriété intellectuelle -**Stratégie IP :** -- Veille technologique et analyse antériorités -- Identification des innovations brevetables -- Stratégie de dépôt et protection internationale -- Valorisation et licensing des technologies - -## 8. Environnement et outils de travail -**Plateforme d'ingénierie intégrée :** -- **PLM** : Siemens Teamcenter, Dassault 3DEXPERIENCE -- **CAO/CAE** : CATIA, SolidWorks, Inventor avec simulation intégrée -- **Simulation** : ANSYS Workbench, COMSOL Multiphysics -- **Electronics** : Altium Designer, Cadence, ModelSim - -**Outils de validation :** -- **Prototypage rapide** : Impression 3D métal, usinage 5 axes -- **Instrumentation** : Acquisition haute fréquence, capteurs IoT -- **Tests environnementaux** : Chambres climatiques, vibrateurs -- **Certification** : Laboratoires accrédités, organismes notifiés - -**Infrastructure collaborative :** -- **Gestion configuration** : Git pour code, PLM pour CAO -- **Workflow** : Processus d'approbation automatisés -- **Simulation cloud** : HPC pour calculs intensifs -- **Digital twin** : Modèles connectés pour monitoring - -## 9. Phases du projet et planification -### Phase 1 - Étude système (3 mois) -**Mois 1 : Expression du besoin** -- [ ] Analyse stakeholders et capture requirements -- [ ] Étude de marché et positionnement concurrentiel -- [ ] Faisabilité technique et économique préliminaire - -**Mois 2 : Architecture fonctionnelle** -- [ ] Décomposition fonctionnelle et allocation exigences -- [ ] Architecture logique et interfaces système -- [ ] Analyses de risques et de sécurité initiales - -**Mois 3 : Choix technologiques** -- [ ] Trade-off analysis et sélection technologies clés -- [ ] Dimensionnement préliminaire et budget -- [ ] **Livrable** : Dossier de définition système - -### Phase 2 - Conception détaillée (6 mois) -**Mois 4-5 : Conception sous-systèmes** -- [ ] Spécifications détaillées par sous-système -- [ ] Conception mécanique, électronique, software -- [ ] Simulations multi-physiques et optimisation - -**Mois 6-7 : Intégration virtuelle** -- [ ] Modèles système complets et co-simulation -- [ ] Validation virtuelle et analyses robustesse -- [ ] Plans de tests et procédures de validation - -**Mois 8-9 : Finalisation conception** -- [ ] Optimisation performances et coûts -- [ ] Documentation technique complète -- [ ] **Livrable** : Dossier de conception détaillée - -### Phase 3 - Réalisation et tests (8 mois) -**Mois 10-12 : Prototypage** -- [ ] Fabrication prototypes sous-systèmes -- [ ] Tests unitaires et caractérisation -- [ ] Corrections et optimisations - -**Mois 13-15 : Intégration système** -- [ ] Assemblage et mise au point -- [ ] Tests d'intégration et de performance -- [ ] Validation environnementale - -**Mois 16-17 : Validation finale** -- [ ] Tests de qualification complète -- [ ] Certification et marquage réglementaire -- [ ] **Livrable** : Système qualifié - -### Phase 4 - Industrialisation (4 mois) -**Mois 18-19 : Transfert production** -- [ ] Ingénierie de production et outillages -- [ ] Formation équipes et procédures -- [ ] Pilote de production et optimisation - -**Mois 20-21 : Lancement commercial** -- [ ] Production série et contrôle qualité -- [ ] Support client et maintenance -- [ ] **Livrable** : Produit industrialisé - -## 10. Gestion de projet (Program Management) -**Governance multi-projets :** -- Program Manager avec steering committee -- Work Package Leaders par discipline -- Quality Manager et Risk Manager dédiés -- Customer Interface et Certification Manager - -**Processus d'ingénierie :** -- **Stage-Gate Process** : Jalons avec Go/No-Go -- **Configuration Management** : Contrôle des changements -- **Quality Assurance** : Audits et métriques qualité -- **Knowledge Management** : Capitalisation et REX - -**Métriques de pilotage :** -- **Planning** : % avancement vs plan, écarts délais -- **Budget** : Coûts engagés vs budget, écarts -- **Qualité** : Taux de non-conformité, actions correctives -- **Risques** : Évolution scores risques, plans de mitigation - -## 11. Conclusion -**Breakthrough technologique attendu :** -[Résumer l'innovation d'ingénierie, les performances révolutionnaires et l'impact industriel disruptif] - -**Competitive advantage durable :** -[Barrières technologiques, propriété intellectuelle, écosystème] - -**Roadmap d'évolution :** -- [ ] **Génération 2** : Améliorations incrémentales -- [ ] **Plateforme produits** : Déclinaisons et variantes -- [ ] **Technologies émergentes** : IA, quantique, bio-inspiré -- [ ] **Écosystème partenaires** : Alliances et joint-ventures - -**Impact sociétal et environnemental :** -- [ ] Contribution aux ODD (Objectifs Développement Durable) -- [ ] Réduction empreinte carbone et économie circulaire -- [ ] Création d'emplois qualifiés et formation -- [ ] Rayonnement technologique et attractivité territoriale - -## 12. Annexes -### Annexe A - Spécifications système détaillées -**Requirements Database :** -- Exigences fonctionnelles avec critères d'acceptation -- Exigences non-fonctionnelles et contraintes -- Matrice de traçabilité complète -- Historique des évolutions et justifications - -### Annexe B - Analyses et simulations -**Modèles numériques :** -- Modèles CAO 3D assemblage complet -- Simulations multiphysiques (thermique, mécanique, fluidique) -- Analyses de fiabilité et sûreté de fonctionnement -- Optimisations et études de sensibilité - -### Annexe C - Plan de tests et validation -**Stratégie de validation :** -- Matrice tests vs exigences -- Protocoles détaillés par niveau d'intégration -- Critères d'acceptation et procédures non-conformité -- Planning et ressources tests - -### Annexe D - Business case et valorisation -**Analyse économique :** -- Modèle financier et projections ROI -- Analyse concurrentielle et positionnement marché -- Stratégie de propriété intellectuelle -- Plan de commercialisation et go-to-market - -### Annexe E - Gestion des risques -**Risk Register complet :** -- Identification et évaluation des risques -- Plans de mitigation et actions préventives -- Suivi et reporting des risques critiques -- Procédures de crise et plans de contingence - ---- -*Journal créé le : [DATE]* -*Dernière mise à jour : [DATE]* -*Classification : [Confidentiel/Restreint/Public]* -*Chef de projet : [Nom et contact]* \ No newline at end of file diff --git a/templates/ingenierie/detaille.md b/templates/ingenierie/detaille.md deleted file mode 100644 index 100e635..0000000 --- a/templates/ingenierie/detaille.md +++ /dev/null @@ -1,149 +0,0 @@ -# Journal de Conception - Projet Ingénierie (Détaillé) - -## 1. Introduction -**Présentation du contexte d'ingénierie :** -[Décrire l'environnement technique, les systèmes existants, les défis d'ingénierie et la problématique à résoudre] - -**Idée principale du projet :** -[Résumer la solution d'ingénierie proposée, l'innovation technique et l'approche méthodologique] - -## 2. Objectifs du projet -**Objectifs principaux :** -- [ ] **Objectif de performance** : [Spécifications techniques, rendement, efficacité] -- [ ] **Objectif de fiabilité** : [Durabilité, maintenance, disponibilité] -- [ ] **Objectif d'innovation** : [Avancées techniques, brevets, différenciation] - -**Spécifications techniques recherchées :** -- **Performance** : Caractéristiques quantifiées du système -- **Fiabilité** : MTBF, taux de panne, maintenabilité -- **Sécurité** : Analyses de risque, conformité normative -- **Économie** : Coûts de développement et exploitation - -## 3. Organisation du document -Ce journal suit la méthodologie d'ingénierie système : -- **Sections 1-4** : Expression du besoin et spécifications (cahier des charges) -- **Sections 5-6** : Conception et dimensionnement (solutions techniques) -- **Sections 7-8** : Réalisation et tests (validation expérimentale) -- **Sections 9-10** : Industrialisation et exploitation (déploiement) - -## 4. Présentation et spécifications du projet -**Description technique détaillée :** -[Expliquer le système d'ingénierie, ses fonctions principales et son environnement opérationnel] - -**Cahier des charges technique :** -- **Fonction principale** : [Service rendu par le système] -- **Fonctions contraintes** : [Limites et conditions d'utilisation] -- **Critères de performance** : [Mesures quantitatives de réussite] - -**Diagrammes fonctionnels :** -``` -Environnement → [Système] → Fonction principale - ↑ - Fonctions contraintes -``` - -## 5. Fonctionnalités attendues -- [ ] **Analyse fonctionnelle** : FAST, SADT, cas d'usage système -- [ ] **Conception détaillée** : Dimensionnement, choix technologiques -- [ ] **Simulations** : Modélisation comportementale, validation numérique -- [ ] **Prototypage** : Maquettes, essais, validation expérimentale -- [ ] **Industrialisation** : Processus de fabrication, contrôle qualité - -## 6. Conception globale -**Approche d'ingénierie système :** -``` -Besoin → Spécifications → Conception → Réalisation → Validation → Exploitation -``` - -**Architecture technique :** -- **Sous-système 1** : [Fonction, interfaces, performances] -- **Sous-système 2** : [Fonction, interfaces, performances] -- **Intégration** : [Interfaces, protocoles, synchronisation] -- **Supervision** : [Contrôle, monitoring, maintenance] - -## 7. Problématiques identifiées et solutions envisagées -| Défi d'ingénierie | Solutions techniques | -|-------------------|---------------------| -| Optimisation thermique | Simulation CFD, matériaux haute conductivité | -| Vibrations et bruit | Analyse modale, amortissement actif | -| Fiabilité électronique | Composants qualifiés, redondance | -| Coûts de production | DFM, standardisation, automatisation | - -## 8. Environnement et outils de travail -**Outils de conception :** -- **CAO 3D** : SolidWorks, Inventor, CATIA -- **Calculs** : MATLAB, Python, feuilles de calcul -- **Simulation** : ANSYS (mécanique), COMSOL (multiphysique) -- **PLM** : Gestion du cycle de vie produit - -**Outils de validation :** -- **Prototypage** : Impression 3D, usinage, électronique -- **Mesures** : Oscilloscopes, analyseurs, capteurs -- **Tests** : Bancs d'essais, chambres climatiques -- **Normes** : Standards industriels, certifications - -## 9. Phases du projet et planification -**Phase 1 - Étude de faisabilité (4 semaines) :** -- [ ] Analyse du besoin et spécifications -- [ ] État de l'art technologique -- [ ] Études de faisabilité technique et économique - -**Phase 2 - Conception préliminaire (6 semaines) :** -- [ ] Architecture système et décomposition fonctionnelle -- [ ] Dimensionnement et choix technologiques -- [ ] Simulations numériques et validation théorique - -**Phase 3 - Conception détaillée (8 semaines) :** -- [ ] Conception détaillée des sous-systèmes -- [ ] Plans de fabrication et nomenclatures -- [ ] Analyses de fiabilité et de sécurité - -**Phase 4 - Prototypage et tests (6 semaines) :** -- [ ] Réalisation de prototypes -- [ ] Campagnes d'essais et validation expérimentale -- [ ] Optimisations et corrections - -**Phase 5 - Industrialisation (4 semaines) :** -- [ ] Processus de fabrication et contrôle qualité -- [ ] Documentation technique et maintenance -- [ ] Formation et transfert de compétences - -## 10. Gestion de projet (méthode en V) -**Approche systématique :** -- Cycle en V avec validation à chaque étape -- Reviews techniques avec experts métier -- Gestion des risques techniques et planning -- Traçabilité des exigences et vérifications - -**Indicateurs de progression :** -- Jalons techniques atteints -- Performances mesurées vs spécifications -- Taux de non-conformité et actions correctives -- Respect des délais et budgets - -## 11. Conclusion -**Contributions techniques attendues :** -[Résumer l'innovation d'ingénierie, les performances obtenues et l'impact industriel] - -**Valorisation technique :** -[Brevets, publications, transfert technologique] - -**Perspectives d'amélioration :** -- [ ] Optimisations de performance -- [ ] Réduction des coûts -- [ ] Extensions fonctionnelles -- [ ] Évolutions technologiques - -## 12. Annexes -**Calculs de dimensionnement :** -[Notes de calculs, hypothèses, résultats numériques] - -**Résultats d'essais :** -[Protocoles de tests, mesures, analyses] - -**Plans et spécifications :** -[Dessins techniques, nomenclatures, spécifications fournisseurs] - ---- -*Journal créé le : [DATE]* -*Dernière mise à jour : [DATE]* \ No newline at end of file diff --git a/templates/ingenierie/simple.md b/templates/ingenierie/simple.md deleted file mode 100644 index 364a457..0000000 --- a/templates/ingenierie/simple.md +++ /dev/null @@ -1,94 +0,0 @@ -# Journal de Conception - Projet Ingénierie - -## 1. Introduction -**Contexte du projet :** -[Décrire brièvement le problème d'ingénierie à résoudre] - -**Idée principale :** -[Résumer la solution technique et l'approche d'ingénierie en une phrase] - -## 2. Objectifs du projet -**Objectifs principaux :** -- [ ] Objectif technique -- [ ] Objectif performance -- [ ] Objectif qualité - -**Spécifications clés :** -- Performance requise -- Contraintes techniques -- Standards à respecter - -## 3. Présentation et spécifications -**Description détaillée :** -[Expliquer le projet d'ingénierie et ses enjeux techniques] - -**Cahier des charges :** -- **Fonction principale** : [Besoin technique à satisfaire] -- **Contraintes** : [Limites physiques, budgétaires, normatives] -- **Critères de réussite** : [Métriques de performance] - -## 4. Fonctionnalités attendues -- [ ] **Conception** : Dimensionnement et calculs -- [ ] **Modélisation** : Simulations et analyses -- [ ] **Prototypage** : Tests et validation -- [ ] **Industrialisation** : Mise en production - -## 5. Conception globale -**Cycle en V :** -``` -Spécifications → Conception → Réalisation → Tests → Validation -``` - -**Approche système :** -- **Analyse fonctionnelle** : Expression du besoin -- **Conception détaillée** : Solutions techniques -- **Intégration** : Assemblage et mise au point -- **Validation** : Conformité aux spécifications - -## 6. Problématiques et solutions -| Défi technique | Solution envisagée | -|----------------|-------------------| -| Performance thermique | Simulation CFD, matériaux | -| Fiabilité système | Redondance, tests MTBF | -| Coûts production | Optimisation design, matériaux | - -## 7. Environnement et outils -**Outils d'ingénierie :** -- CAO : SolidWorks, AutoCAD, Inventor -- Simulation : ANSYS, COMSOL, Simulink -- Calculs : MATLAB, Excel, Python -- Gestion : PLM, ERP - -**Normes et standards :** -- Normes industrielles applicables -- Certifications requises -- Réglementations à respecter - -## 8. Phases du projet -**Phase 1 - Étude (3 semaines) :** -- [ ] Analyse du besoin -- [ ] État de l'art technique -- [ ] Avant-projet sommaire - -**Phase 2 - Conception (6 semaines) :** -- [ ] Calculs de dimensionnement -- [ ] Modélisation et simulations -- [ ] Plans et spécifications - -**Phase 3 - Réalisation (4 semaines) :** -- [ ] Prototypage -- [ ] Tests et mesures -- [ ] Optimisations - -## 9. Conclusion -**État d'avancement :** -[À compléter au fur et à mesure] - -**Prochaines étapes :** -- [ ] Validation concept technique -- [ ] Réalisation prototype -- [ ] Tests de performance - ---- -*Journal créé le : [DATE]* -*Dernière mise à jour : [DATE]* \ No newline at end of file diff --git a/templates/math/complet.md b/templates/math/complet.md deleted file mode 100644 index 6f015fe..0000000 --- a/templates/math/complet.md +++ /dev/null @@ -1,322 +0,0 @@ -# Journal de Conception - Projet Mathématiques (Complet) - -## 1. Introduction -**Présentation du contexte mathématique :** -[Décrire le domaine mathématique, les fondements théoriques, les enjeux scientifiques et la problématique formelle à résoudre] - -**Idée principale du projet :** -[Résumer l'approche méthodologique, les innovations théoriques, les modèles envisagés et les contributions attendues] - -**Positionnement dans la littérature mathématique :** -[Situer le travail par rapport aux résultats existants, identifier les gaps théoriques et les défis ouverts] - -## 2. Objectifs du projet -**Objectifs principaux :** -- [ ] **Objectif théorique** : [Développement nouveaux théorèmes, preuves, structures algébriques] -- [ ] **Objectif algorithmique** : [Conception méthodes de calcul, optimisation, complexité] -- [ ] **Objectif appliqué** : [Résolution problèmes concrets, modélisation phénomènes réels] - -**Problèmes mathématiques à résoudre :** -- **Problème principal** : [Énoncé mathématique précis, hypothèses, objectifs] -- **Sous-problèmes** : - - [Lemme 1 : résultat intermédiaire nécessaire] - - [Lemme 2 : cas particulier à établir d'abord] - - [Corollaire : conséquence du résultat principal] - -**Conjectures et hypothèses :** -- **Conjecture principale** : [Énoncé à démontrer avec conditions] -- **Hypothèses de travail** : [Conditions techniques, domaines de validité] -- **Contre-exemples potentiels** : [Cas limites à examiner] - -## 3. Organisation du document -Ce journal suit la démarche mathématique rigoureuse : -- **Sections 1-4** : Fondements théoriques (définitions, état de l'art) -- **Sections 5-6** : Développement mathématique (théorèmes, preuves) -- **Sections 7-8** : Implémentation et validation (algorithmes, tests) -- **Sections 9-10** : Applications et extensions (cas d'étude, généralisations) - -## 4. Présentation et spécifications du projet -**Description mathématique détaillée :** -[Expliquer le problème mathématique, ses enjeux théoriques, son contexte d'application et sa complexité] - -**Formulation mathématique précise :** -### 4.1 Définitions et notations -**Espaces de travail :** -- $X$ : [Espace de définition, structure, propriétés] -- $Y$ : [Espace d'arrivée, topologie, mesure] -- $\mathcal{F}$ : [Classe de fonctions considérées] - -**Opérateurs et fonctionnelles :** -- $T : X \to Y$ : [Opérateur principal étudié] -- $L(f,g) = \int \phi(f,g) \, d\mu$ : [Fonctionnelle objectif] -- $\|\cdot\|_p$ : [Normes utilisées, $1 \leq p \leq \infty$] - -### 4.2 Énoncé du problème principal -**Théorème à démontrer :** -> **Théorème Principal.** *Soit $(X,d)$ un espace métrique compact et $f : X \to \mathbb{R}$ une fonction continue. Alors il existe une constante $C > 0$ telle que pour tout $\epsilon > 0$, on peut trouver $g \in \mathcal{C}^{\infty}(X)$ vérifiant :* -> $$\|f - g\|_{\infty} < \epsilon \quad \text{et} \quad \|g\|_{\text{Lip}} \leq C \|f\|_{\infty}$$ - -**Conditions et hypothèses :** -- $X$ compact métrisable -- $f$ uniformément continue -- $\mathcal{C}^{\infty}(X)$ dense dans $\mathcal{C}(X)$ - -## 5. Fonctionnalités attendues -### 5.1 Développement théorique -- [ ] **Lemmes préparatoires** : Résultats techniques nécessaires -- [ ] **Théorème principal** : Démonstration constructive -- [ ] **Corollaires** : Conséquences et cas particuliers -- [ ] **Applications** : Utilisation dans d'autres contextes - -### 5.2 Analyse de complexité -- [ ] **Complexité temporelle** : Estimation du coût de calcul -- [ ] **Complexité spatiale** : Besoin en mémoire -- [ ] **Optimisations** : Améliorations algorithmiques -- [ ] **Bornes inférieures** : Limites théoriques - -### 5.3 Implémentation numérique -- [ ] **Algorithmes** : Méthodes de calcul effectives -- [ ] **Convergence** : Preuves de convergence, vitesse -- [ ] **Stabilité numérique** : Analyse des erreurs d'arrondi -- [ ] **Tests** : Validation sur exemples théoriques - -### 5.4 Validation et benchmarks -- [ ] **Cas tests** : Exemples dont la solution est connue -- [ ] **Comparaisons** : Avec méthodes existantes -- [ ] **Limites** : Domaines de validité, contre-exemples -- [ ] **Performance** : Métriques de qualité - -## 6. Conception globale -**Démarche mathématique :** -``` -Intuition → Formalisation → Conjectures → Preuves → Algorithmes → Validation -``` - -**Architecture théorique :** -- **Couche fondamentale** : Axiomes, définitions de base -- **Couche structurelle** : Théorèmes généraux, propriétés -- **Couche algorithmique** : Méthodes de calcul, implémentation -- **Couche applicative** : Problèmes concrets, cas d'étude - -### 6.1 Structure des preuves -**Stratégie de démonstration :** -1. **Réduction** : Ramener au cas simple -2. **Construction** : Méthode explicite -3. **Existence** : Argument topologique/algébrique -4. **Unicité** : Caractérisation de la solution - -**Outils mathématiques utilisés :** -- **Analyse fonctionnelle** : Espaces de Banach, opérateurs compacts -- **Topologie** : Compacité, connexité, théorèmes de point fixe -- **Mesure** : Intégration, convergence faible -- **Algèbre** : Structures, morphismes, quotients - -## 7. Problématiques identifiées et solutions envisagées -| Problématique mathématique | Solutions théoriques | -|----------------------------|---------------------| -| Non-unicité des solutions | Critères de sélection, régularisation | -| Convergence lente | Méthodes d'accélération, préconditionnement | -| Instabilité numérique | Reformulation stable, contrôle d'erreur | -| Complexité élevée | Approximations, méthodes hiérarchiques | - -### 7.1 Défis théoriques spécifiques -**Problème de régularité :** -- Solutions généralisées vs solutions classiques -- Conditions de différentiabilité -- Singularités et points critiques - -**Problème d'existence :** -- Compacité des suites minimisantes -- Principe variationnel -- Théorèmes de point fixe appropriés - -## 8. Environnement et outils de travail -**Outils de calcul symbolique :** -- **CAS** : Mathematica, Maple, SageMath -- **Preuves assistées** : Coq, Lean, Isabelle/HOL -- **Visualisation** : Matplotlib, Plotly, GeoGebra - -**Bibliothèques numériques :** -- **Python** : NumPy, SciPy, SymPy, scikit-learn -- **Julia** : DifferentialEquations.jl, Plots.jl -- **R** : Base stats, specialized packages -- **C++** : Eigen, BLAS/LAPACK, custom implementations - -**Rédaction scientifique :** -- **LaTeX** : Avec packages spécialisés (amsmath, theorem) -- **Jupyter/Sage** : Notebooks reproductibles -- **Git** : Versioning des preuves et codes -- **arXiv** : Prépublication et diffusion - -## 9. Phases du projet et planification -### Phase 1 - Fondements théoriques (8 semaines) -**Semaines 1-2 : État de l'art approfondi** -- [ ] Revue littérature exhaustive -- [ ] Analyse des méthodes existantes -- [ ] Identification des gaps théoriques - -**Semaines 3-4 : Formalisation du problème** -- [ ] Définitions précises et notations -- [ ] Énoncé rigoureux des conjectures -- [ ] Étude des cas particuliers simples - -**Semaines 5-6 : Développement des outils** -- [ ] Lemmes techniques nécessaires -- [ ] Contre-exemples et cas limites -- [ ] Stratégie générale de preuve - -**Semaines 7-8 : Premiers résultats** -- [ ] Résultats partiels -- [ ] Validation approche théorique -- [ ] **Livrable** : Note technique préliminaire - -### Phase 2 - Développement principal (12 semaines) -**Semaines 9-12 : Théorème principal** -- [ ] Démonstration détaillée -- [ ] Vérification rigoureuse -- [ ] Analyse des hypothèses - -**Semaines 13-16 : Extensions et corollaires** -- [ ] Généralisations possibles -- [ ] Applications à des cas particuliers -- [ ] Optimisation des constantes - -**Semaines 17-20 : Validation théorique** -- [ ] Peer review interne -- [ ] Vérification indépendante -- [ ] **Livrable** : Preprint arXiv - -### Phase 3 - Implémentation numérique (10 semaines) -**Semaines 21-24 : Algorithmes** -- [ ] Traduction des preuves en algorithmes -- [ ] Analyse de convergence numérique -- [ ] Optimisation des performances - -**Semaines 25-28 : Tests et validation** -- [ ] Batteries de tests exhaustives -- [ ] Comparaison avec méthodes existantes -- [ ] Analyse de robustesse - -**Semaines 29-30 : Documentation** -- [ ] Code documenté et reproductible -- [ ] Manuel utilisateur -- [ ] **Livrable** : Package logiciel - -### Phase 4 - Applications et diffusion (6 semaines) -**Semaines 31-33 : Applications** -- [ ] Cas d'étude concrets -- [ ] Problèmes industriels/scientifiques -- [ ] Retour d'expérience utilisateurs - -**Semaines 34-36 : Publication** -- [ ] Rédaction article journal -- [ ] Soumission conférence internationale -- [ ] **Livrable** : Publications scientifiques - -## 10. Gestion de projet (Mathématiques collaboratives) -**Approche collaborative :** -- Séminaires réguliers équipe -- Reviews par pairs internationaux -- Collaborations inter-institutionnelles -- Workshops spécialisés - -**Validation scientifique :** -- Vérification croisée des preuves -- Implémentation indépendante -- Tests sur benchmarks standards -- Peer review avant publication - -**Métriques de progression :** -- Lemmes démontrés / total -- Tests de convergence validés -- Lignes de code documentées -- Citations et reconnaissance - -## 11. Conclusion -**Contributions mathématiques attendues :** -[Résumer l'avancement théorique, les innovations méthodologiques et l'impact scientifique] - -**Applications et retombées :** -[Domaines d'application, transfert vers l'industrie, enseignement] - -**Perspectives de développement :** -- [ ] Extensions à d'autres espaces fonctionnels -- [ ] Généralisation aux dimensions infinies -- [ ] Applications en physique mathématique -- [ ] Connexions avec d'autres domaines - -**Impact sur la communauté :** -- [ ] Nouvelles méthodes disponibles -- [ ] Outils logiciels partagés -- [ ] Formation doctorants/chercheurs -- [ ] Collaborations renforcées - -## 12. Annexes -### Annexe A - Démonstrations complètes -**Théorème principal :** -*Preuve.* [Démonstration détaillée avec toutes les étapes] - -**Lemmes techniques :** -- Lemme A.1 : [Énoncé et preuve] -- Lemme A.2 : [Énoncé et preuve] -- Corollaire A.3 : [Conséquence directe] - -### Annexe B - Algorithmes détaillés -```python -def algorithm_principal(input_data, tolerance=1e-6): - """ - Implémentation du théorème principal. - - Parameters: - ----------- - input_data : array_like - Données d'entrée satisfaisant les hypothèses - tolerance : float - Précision souhaitée pour la convergence - - Returns: - -------- - solution : array_like - Solution approximative du problème - convergence_info : dict - Informations sur la convergence - """ - # Initialisation - solution = initialize_solution(input_data) - - # Itérations principales - for iteration in range(max_iterations): - # Étape de mise à jour selon le théorème - solution = update_step(solution, input_data) - - # Test de convergence - if convergence_test(solution, tolerance): - break - - return solution, {"iterations": iteration, "converged": True} -``` - -### Annexe C - Benchmarks et performances -**Tests de validation :** -- Cas tests analytiques avec solutions exactes -- Comparaisons avec méthodes de référence -- Analyse de complexité empirique -- Profiling des performances - -**Résultats numériques :** -| Test Case | Our Method | Reference | Speedup | Accuracy | -|-----------|------------|-----------|---------|----------| -| Test 1 | 0.15s | 1.2s | 8.0x | 1e-12 | -| Test 2 | 0.32s | 2.1s | 6.6x | 1e-11 | - -### Annexe D - Code source complet -[Repository Git avec code documenté, tests, exemples] - -### Annexe E - Données expérimentales -[Fichiers de données, scripts de génération, résultats bruts] - ---- -*Journal créé le : [DATE]* -*Dernière mise à jour : [DATE]* -*Statut publication : [Preprint/Submitted/Published]* -*Collaborateurs : [Liste des co-auteurs]* \ No newline at end of file diff --git a/templates/math/detaille.md b/templates/math/detaille.md deleted file mode 100644 index 9143592..0000000 --- a/templates/math/detaille.md +++ /dev/null @@ -1,141 +0,0 @@ -# Journal de Conception - Projet Mathématiques (Détaillé) - -## 1. Introduction -**Présentation du contexte mathématique :** -[Décrire le domaine d'application, les enjeux théoriques ou pratiques et la problématique mathématique] - -**Idée principale du projet :** -[Résumer l'approche méthodologique, les modèles envisagés et l'innovation scientifique] - -## 2. Objectifs du projet -**Objectifs principaux :** -- [ ] **Objectif théorique** : [Développement de nouveaux modèles, preuves, algorithmes] -- [ ] **Objectif appliqué** : [Résolution d'un problème concret par les mathématiques] -- [ ] **Objectif méthodologique** : [Validation ou amélioration de méthodes existantes] - -**Fonctionnalités clés recherchées :** -- **Modélisation** : Représentation mathématique du problème -- **Analyse** : Étude théorique des propriétés du modèle -- **Simulation** : Implémentation et tests numériques -- **Validation** : Vérification sur données réelles ou cas d'étude - -## 3. Organisation du document -Ce journal suit la démarche scientifique mathématique : -- **Sections 1-4** : Cadre théorique et spécifications (fondements solides) -- **Sections 5-6** : Modélisation et développement (cœur mathématique) -- **Sections 7-8** : Implémentation et tests (validation pratique) -- **Sections 9-10** : Résultats et analyse (contributions scientifiques) - -## 4. Présentation et spécifications du projet -**Description détaillée :** -[Expliquer le problème mathématique, ses enjeux et son contexte d'application] - -**Cahier des charges mathématique :** -- **Problème général** : [Formulation mathématique précise] -- **Contraintes spécifiques** : [Conditions aux limites, hypothèses, domaines de validité] -- **Variables et paramètres** : [Définition de l'espace des solutions] - -**Diagrammes et formulations :** -``` -Modèle mathématique : -f: X → Y -où X = domaine d'entrée - Y = espace des solutions -``` - -## 5. Fonctionnalités attendues -- [ ] **Modélisation théorique** : Équations, systèmes, espaces fonctionnels -- [ ] **Algorithmes de résolution** : Méthodes analytiques ou numériques -- [ ] **Simulation numérique** : Implémentation Python/R/Matlab -- [ ] **Validation statistique** : Tests, intervalles de confiance, significativité -- [ ] **Visualisation** : Graphiques, surfaces, animations des résultats - -## 6. Conception globale -**Approche mathématique :** -``` -Problème réel → Modélisation → Analyse théorique → Simulation → Interprétation -``` - -**Architecture de la solution :** -- **Couche théorique** : Définitions, théorèmes, démonstrations -- **Couche algorithmique** : Méthodes de calcul et d'optimisation -- **Couche computationnelle** : Code, simulations, tests numériques -- **Couche validation** : Comparaisons, benchmarks, études de cas - -## 7. Problématiques identifiées et solutions envisagées -| Problématique mathématique | Solutions envisagées | -|----------------------------|---------------------| -| Convergence des algorithmes | Analyse de stabilité, critères d'arrêt | -| Complexité computationnelle | Approximations, méthodes hybrides | -| Validité du modèle | Tests statistiques, validation croisée | - -## 8. Environnement et outils de travail -**Outils mathématiques :** -- **Calcul symbolique** : Mathematica, Maple, SymPy -- **Calcul numérique** : Python (NumPy, SciPy), R, Matlab -- **Visualisation** : Matplotlib, ggplot2, Plotly -- **Rédaction** : LaTeX, Jupyter Notebooks, RMarkdown - -**Bibliothèques spécialisées :** -- Optimisation : scipy.optimize, cvxpy -- Statistiques : statsmodels, scikit-learn -- Calcul parallèle : numba, multiprocessing - -## 9. Phases du projet et planification -**Phase 1 - Étude théorique (4 semaines) :** -- [ ] Revue de littérature et état de l'art -- [ ] Formalisation mathématique du problème -- [ ] Développement théorique initial - -**Phase 2 - Développement méthodologique (6 semaines) :** -- [ ] Conception des algorithmes -- [ ] Preuves de convergence et stabilité -- [ ] Analyse de complexité - -**Phase 3 - Implémentation et tests (4 semaines) :** -- [ ] Programmation des méthodes -- [ ] Tests unitaires et validation -- [ ] Optimisation des performances - -**Phase 4 - Validation et analyse (3 semaines) :** -- [ ] Tests sur cas d'étude -- [ ] Analyse comparative avec méthodes existantes -- [ ] Rédaction des résultats - -## 10. Gestion de projet (méthode scientifique) -**Approche itérative :** -- Hypothèse → Développement → Test → Refinement -- Revue par les pairs à chaque étape majeure -- Documentation continue des résultats intermédiaires - -**Indicateurs de progression :** -- Théorèmes démontrés -- Algorithmes validés -- Tests réussis -- Publications/présentations - -## 11. Conclusion -**Contributions attendues :** -[Résumer les apports théoriques et pratiques du projet] - -**Applications potentielles :** -[Domaines où les résultats peuvent être appliqués] - -**Perspectives d'extension :** -- [ ] Généralisation à d'autres cas -- [ ] Applications à des domaines connexes -- [ ] Développements théoriques futurs - -## 12. Annexes -**Démonstrations détaillées :** -[Preuves mathématiques complètes] - -**Code source :** -[Scripts Python/R avec documentation] - -**Données et résultats :** -[Jeux de données, graphiques, tableaux de résultats] - ---- -*Journal créé le : [DATE]* -*Dernière mise à jour : [DATE]* \ No newline at end of file diff --git a/templates/math/simple.md b/templates/math/simple.md deleted file mode 100644 index e69f69a..0000000 --- a/templates/math/simple.md +++ /dev/null @@ -1,92 +0,0 @@ -# Journal de Conception - Projet Mathématiques - -## 1. Introduction -**Contexte du projet :** -[Décrire brièvement le problème mathématique à résoudre] - -**Idée principale :** -[Résumer l'approche méthodologique envisagée en une phrase] - -## 2. Objectifs du projet -**Objectifs principaux :** -- [ ] Objectif théorique -- [ ] Objectif appliqué -- [ ] Objectif méthodologique - -**Résultats recherchés :** -- Nouveaux théorèmes ou preuves -- Applications pratiques -- Méthodes de calcul - -## 3. Présentation et spécifications -**Description détaillée :** -[Expliquer ce que fait le projet et ses enjeux mathématiques] - -**Cahier des charges :** -- **Problème général** : [Formulation mathématique] -- **Hypothèses** : [Conditions et contraintes] -- **Domaine de validité** : [Espace des solutions] - -## 4. Fonctionnalités attendues -- [ ] **Modélisation** : Représentation mathématique du problème -- [ ] **Analyse théorique** : Étude des propriétés -- [ ] **Calculs numériques** : Algorithmes et implémentation -- [ ] **Validation** : Tests sur cas connus - -## 5. Conception globale -**Approche mathématique :** -``` -Problème → Modélisation → Analyse → Calculs → Validation -``` - -**Méthodes utilisées :** -- **Outils analytiques** : Analyse, algèbre, topologie -- **Outils numériques** : Algorithmes, approximations -- **Logiciels** : Python/Matlab, bibliothèques spécialisées - -## 6. Problématiques et solutions -| Difficulté | Solution envisagée | -|------------|-------------------| -| Complexité théorique | Décomposition en sous-problèmes | -| Convergence numérique | Méthodes adaptatives | -| Validation résultats | Tests sur cas analytiques | - -## 7. Environnement et outils -**Outils mathématiques :** -- Calcul symbolique : Mathematica, Sage -- Calcul numérique : Python (NumPy, SciPy) -- Visualisation : Matplotlib, plots 3D - -**Références :** -- Ouvrages de référence -- Articles scientifiques -- Cours et supports - -## 8. Phases du projet -**Phase 1 - Étude théorique (3 semaines) :** -- [ ] Revue de littérature -- [ ] Formalisation du problème -- [ ] Premiers résultats analytiques - -**Phase 2 - Implémentation (3 semaines) :** -- [ ] Algorithmes de calcul -- [ ] Tests numériques -- [ ] Validation des résultats - -**Phase 3 - Application (2 semaines) :** -- [ ] Cas d'étude -- [ ] Optimisations -- [ ] Documentation finale - -## 9. Conclusion -**État d'avancement :** -[À compléter au fur et à mesure] - -**Prochaines étapes :** -- [ ] Démonstration du théorème principal -- [ ] Implémentation numérique -- [ ] Rédaction des résultats - ---- -*Journal créé le : [DATE]* -*Dernière mise à jour : [DATE]* \ No newline at end of file diff --git a/templates/recherche/complet.md b/templates/recherche/complet.md deleted file mode 100644 index eb8f776..0000000 --- a/templates/recherche/complet.md +++ /dev/null @@ -1,258 +0,0 @@ -# Journal de Conception - Projet de Recherche (Complet) - -## 1. Introduction -**Présentation du contexte scientifique :** -[Décrire le domaine de recherche, l'état de l'art, les verrous scientifiques et la problématique de recherche] - -**Idée principale du projet :** -[Résumer l'hypothèse de recherche, la méthodologie proposée et l'innovation scientifique attendue] - -**Positionnement dans la littérature :** -[Situer la recherche par rapport aux travaux existants, identifier les gaps de connaissance] - -## 2. Objectifs du projet -**Objectifs principaux :** -- [ ] **Objectif scientifique** : [Contribution à la connaissance, théorie à développer/valider] -- [ ] **Objectif méthodologique** : [Nouvelles méthodes, outils, protocoles] -- [ ] **Objectif applicatif** : [Retombées pratiques, transfert technologique] - -**Questions de recherche :** -- **Question principale** : [Problématique centrale de la recherche] -- **Questions secondaires** : - - [Sous-question 1 avec hypothèse associée] - - [Sous-question 2 avec hypothèse associée] - - [Sous-question 3 avec hypothèse associée] - -**Hypothèses de travail :** -- **H1** : [Hypothèse principale avec prédictions testables] -- **H2** : [Hypothèse secondaire avec variables mesurables] -- **H3** : [Hypothèse alternative ou nulle] - -## 3. Organisation du document -Ce journal suit la démarche scientifique rigoureuse : -- **Sections 1-4** : Fondements théoriques (état de l'art, hypothèses) -- **Sections 5-6** : Méthodologie et design expérimental (protocole) -- **Sections 7-8** : Collecte et analyse données (résultats) -- **Sections 9-10** : Interprétation et discussion (contributions) - -## 4. Présentation et spécifications du projet -**Description détaillée :** -[Expliquer le projet de recherche, ses enjeux scientifiques et son contexte académique/industriel] - -**État de l'art approfondi :** -### 4.1 Revue de littérature systématique -- **Domaines connexes** : [Champs disciplinaires impliqués] -- **Travaux fondateurs** : [Références clés et contributions historiques] -- **Recherches récentes** : [Dernières avancées, 2020-2025] -- **Gaps identifiés** : [Manques dans la connaissance actuelle] - -### 4.2 Positionnement théorique -- **Cadre conceptuel** : [Théories et modèles de référence] -- **Paradigme de recherche** : [Approche positiviste/constructiviste/pragmatique] -- **Ancrage disciplinaire** : [Mono/inter/transdisciplinaire] - -**Cahier des charges scientifique :** -- **Objectifs opérationnels** : [Résultats attendus mesurables] -- **Contraintes méthodologiques** : [Limites, biais potentiels, validité] -- **Critères de validation** : [Métriques de success, seuils statistiques] - -## 5. Fonctionnalités attendues -### 5.1 Recherche bibliographique approfondie -- [ ] **Veille scientifique** : Surveillance littérature, alertes -- [ ] **Base de données** : Constitution corpus, classification -- [ ] **Analyse bibliométrique** : Citations, réseaux, tendances - -### 5.2 Design expérimental -- [ ] **Protocole expérimental** : Plans d'expérience, contrôles -- [ ] **Instrumentation** : Outils de mesure, validation métrologique -- [ ] **Échantillonnage** : Stratégie de recrutement, taille échantillon - -### 5.3 Collecte et gestion des données -- [ ] **Data collection** : Protocoles standardisés, formation enquêteurs -- [ ] **Data management** : FAIR principles, stockage sécurisé -- [ ] **Quality assurance** : Validation, nettoyage, documentation - -### 5.4 Analyse et interprétation -- [ ] **Analyses statistiques** : Tests appropriés, puissance, effect size -- [ ] **Modélisation** : Modèles prédictifs, simulation -- [ ] **Visualisation** : Graphiques scientifiques, figures publication - -## 6. Conception globale -**Paradigme de recherche :** -``` -Observation → Théorisation → Hypothèses → Expérimentation → Validation → Généralisation -``` - -**Architecture méthodologique :** -- **Couche épistémologique** : Fondements philosophiques, posture du chercheur -- **Couche théorique** : Cadres conceptuels, modèles explicatifs -- **Couche méthodologique** : Stratégies de recherche, design études -- **Couche opérationnelle** : Techniques collecte/analyse, outils - -### 6.1 Design de recherche -**Type d'étude :** [Expérimentale/Observationnelle/Mixte] -**Devis :** [Longitudinal/Transversal/Cas-témoins] -**Population :** [Critères inclusion/exclusion, stratification] - -### 6.2 Variables d'étude -**Variables indépendantes (VI) :** -- VI1 : [Nom, opérationnalisation, niveaux/modalités] -- VI2 : [Facteur contrôlé, manipulation expérimentale] - -**Variables dépendantes (VD) :** -- VD1 : [Outcome primaire, mesure, unité] -- VD2 : [Outcome secondaire, indicateurs] - -**Variables de contrôle :** -- [Covariables, facteurs confondants, randomisation] - -## 7. Problématiques identifiées et solutions envisagées -| Problématique méthodologique | Solutions scientifiques | -|------------------------------|------------------------| -| Validité interne | Randomisation, contrôles, aveugle | -| Validité externe | Échantillon représentatif, réplication | -| Puissance statistique | Calcul taille effet, analysis plan | -| Biais de publication | Pré-registration, open science | - -### 7.1 Considérations éthiques -- **Comité d'éthique** : [Soumission, approbation] -- **Consentement éclairé** : [Procédure, information participants] -- **Confidentialité** : [Anonymisation, protection données] -- **Risques/bénéfices** : [Évaluation, minimisation risques] - -## 8. Environnement et outils de travail -**Infrastructure de recherche :** -- **Laboratoire** : [Équipements, certifications, sécurité] -- **Plateformes techniques** : [Instruments spécialisés, collaborations] -- **Computing** : [HPC, cloud, logiciels analyse] - -**Outils de recherche :** -- **Référencement** : Zotero, Mendeley, EndNote -- **Analyse qualitative** : NVivo, ATLAS.ti, MAXQDA -- **Analyse quantitative** : R, Python, SPSS, SAS -- **Rédaction** : LaTeX, Word, collaborative tools - -**Gestion projet recherche :** -- **Planning** : Gantt, milestones scientifiques -- **Collaboration** : Git, shared repositories -- **Documentation** : Lab notebooks, protocols.io -- **Partage** : Open Science Framework, repositories - -## 9. Phases du projet et planification -### Phase 1 - Préparation et Design (6 mois) -**Mois 1-2 : Revue littérature approfondie** -- [ ] Recherche bibliographique systématique -- [ ] Analyse bibliométrique et mapping -- [ ] Identification gaps de connaissance - -**Mois 3-4 : Design méthodologique** -- [ ] Élaboration protocole expérimental -- [ ] Validation instruments de mesure -- [ ] Soumission comité d'éthique - -**Mois 5-6 : Préparation opérationnelle** -- [ ] Formation équipe recherche -- [ ] Tests pilotes et ajustements -- [ ] Finalisation procédures - -### Phase 2 - Collecte de données (12 mois) -**Mois 7-12 : Collecte première vague** -- [ ] Recrutement participants -- [ ] Collecte données baseline -- [ ] Monitoring qualité données - -**Mois 13-18 : Collecte follow-up** -- [ ] Mesures longitudinales -- [ ] Gestion attrition -- [ ] Analyses intermédiaires - -### Phase 3 - Analyse et interprétation (6 mois) -**Mois 19-21 : Analyses principales** -- [ ] Nettoyage et préparation données -- [ ] Analyses statistiques planifiées -- [ ] Analyses exploratoires - -**Mois 22-24 : Synthèse et rédaction** -- [ ] Interprétation résultats -- [ ] Discussion implications -- [ ] Rédaction publications - -### Phase 4 - Valorisation (6 mois) -**Mois 25-27 : Publications scientifiques** -- [ ] Rédaction articles peer-review -- [ ] Soumission revues internationales -- [ ] Réponses aux reviewers - -**Mois 28-30 : Diffusion et transfert** -- [ ] Communications congrès -- [ ] Rapport technique final -- [ ] Transfert vers applications - -## 10. Gestion de projet (Recherche collaborative) -**Approche collaborative :** -- Consortium multidisciplinaire -- Réunions régulières équipe -- Advisory board externe -- Partenaires industriels/institutionnels - -**Governance scientifique :** -- Comité de pilotage -- Data Safety Monitoring Board -- Publication policy -- IP management - -**Indicateurs de progression :** -- Milestones scientifiques atteints -- Publications soumises/acceptées -- Présentations congrès -- Citations et impact - -**Risk management :** -- Risques scientifiques (hypothèses non validées) -- Risques opérationnels (recrutement, rétention) -- Risques financiers (coûts, budgets) -- Plans de contingence et alternatives - -## 11. Conclusion -**Contributions scientifiques attendues :** -[Résumer l'avancement des connaissances, les innovations méthodologiques et l'impact scientifique] - -**Impact et applications :** -[Retombées académiques, industrielles, sociétales] - -**Perspectives de recherche :** -- [ ] Extensions méthodologiques -- [ ] Nouvelles hypothèses à tester -- [ ] Collaborations futures -- [ ] Financements de suite - -**Dissémination et Open Science :** -- [ ] Publications open access -- [ ] Données FAIR et partageables -- [ ] Code et méthodes reproductibles -- [ ] Formations et capacity building - -## 12. Annexes -### Annexe A - Protocole expérimental détaillé -[Procédures step-by-step, check-lists, forms] - -### Annexe B - Instruments de mesure -[Questionnaires validés, échelles, grilles observation] - -### Annexe C - Plan d'analyse statistique -[Tests planifiés, assumptions, power analysis] - -### Annexe D - Considérations éthiques -[Approbation comité, consentements, procédures] - -### Annexe E - Budget détaillé -[Personnel, équipement, travel, other costs] - -### Annexe F - Timeline avec milestones -[Gantt chart, deliverables, dependencies] - ---- -*Journal créé le : [DATE]* -*Dernière mise à jour : [DATE]* -*Statut éthique : [Approuvé/En cours/Exempt]* -*Financement : [Source, montant, période]* \ No newline at end of file diff --git a/templates/recherche/detaille.md b/templates/recherche/detaille.md deleted file mode 100644 index 0a02405..0000000 --- a/templates/recherche/detaille.md +++ /dev/null @@ -1,197 +0,0 @@ -# Projet de Recherche - Documentation Détaillée - -## 1. Introduction et Contexte - -### 1.1 Contexte général -[Description du domaine de recherche et du contexte académique/industriel] - -### 1.2 Problématique -[Énoncé précis du problème de recherche] - -### 1.3 Motivations -[Pourquoi cette recherche est-elle importante ?] - -### 1.4 Objectifs -- **Objectif principal** : -- **Objectifs secondaires** : - - - - - - - -### 1.5 Contributions attendues -[En quoi cette recherche apportera-t-elle du nouveau ?] - -## 2. État de l'art et Positionnement - -### 2.1 Revue de littérature -[Analyse détaillée des travaux existants] - -### 2.2 Taxonomie des approches -[Classification des méthodes existantes] - -### 2.3 Analyse critique -#### Forces des approches existantes -- -- - -#### Limitations identifiées -- -- - -### 2.4 Positionnement de notre approche -[Comment notre travail se situe par rapport à l'existant] - -## 3. Méthodologie de Recherche - -### 3.1 Cadre théorique -[Fondements théoriques de l'approche] - -### 3.2 Hypothèses de recherche -- H1 : -- H2 : -- H3 : - -### 3.3 Méthode expérimentale -#### Design expérimental -[Description du protocole] - -#### Variables étudiées -- Variables indépendantes : -- Variables dépendantes : -- Variables de contrôle : - -### 3.4 Outils et technologies -- **Outils de développement** : -- **Outils d'analyse** : -- **Plateformes de test** : - -### 3.5 Jeux de données -[Description des données utilisées] - -## 4. Architecture et Conception - -### 4.1 Vue d'ensemble -[Schéma général de l'approche] - -### 4.2 Composants principaux -#### Composant 1 : [Nom] -- **Fonction** : -- **Entrées** : -- **Sorties** : -- **Algorithme** : - -#### Composant 2 : [Nom] -- **Fonction** : -- **Entrées** : -- **Sorties** : -- **Algorithme** : - -### 4.3 Interfaces et flux de données -[Description des interactions entre composants] - -## 5. Planning Détaillé - -### Phase 1 : Étude préliminaire (Durée : X semaines) -- [ ] Revue exhaustive de littérature -- [ ] Analyse des outils existants -- [ ] Définition précise des spécifications -- [ ] **Livrable** : Rapport d'état de l'art - -### Phase 2 : Conception et prototypage (Durée : X semaines) -- [ ] Conception architecturale -- [ ] Développement du prototype -- [ ] Tests unitaires -- [ ] **Livrable** : Prototype fonctionnel - -### Phase 3 : Développement (Durée : X semaines) -- [ ] Implémentation complète -- [ ] Tests d'intégration -- [ ] Optimisation des performances -- [ ] **Livrable** : Version beta - -### Phase 4 : Validation et évaluation (Durée : X semaines) -- [ ] Tests sur jeux de données réels -- [ ] Évaluation comparative -- [ ] Analyse des résultats -- [ ] **Livrable** : Rapport d'évaluation - -### Phase 5 : Finalisation (Durée : X semaines) -- [ ] Rédaction finale -- [ ] Préparation des publications -- [ ] Documentation utilisateur -- [ ] **Livrable** : Document final - -## 6. Métriques et Évaluation - -### 6.1 Critères de succès -- **Critère 1** : [Métrique] > [Seuil] -- **Critère 2** : [Métrique] < [Seuil] - -### 6.2 Protocole d'évaluation -[Description de la méthode d'évaluation] - -### 6.3 Benchmarks -[Comparaison avec les solutions existantes] - -## 7. Gestion des Risques - -### 7.1 Analyse des risques - -| Risque | Description | Impact | Probabilité | Score | Plan de mitigation | -|--------|-------------|---------|-------------|-------|-------------------| -| R1 | | Élevé | Moyenne | 6 | | -| R2 | | Moyen | Faible | 3 | | -| R3 | | Faible | Élevée | 3 | | - -### 7.2 Plans de contingence -- **Plan A** : [Si risque majeur] -- **Plan B** : [Si retard significatif] - -## 8. Ressources et Budget - -### 8.1 Ressources humaines -- **Chercheur principal** : [Temps alloué] -- **Collaborateurs** : [Temps alloué] - -### 8.2 Ressources matérielles -- **Équipement** : -- **Logiciels** : -- **Infrastructure** : - -### 8.3 Budget estimé -[Si applicable] - -## 9. Livrables et Publications - -### 9.1 Livrables techniques -- [ ] Code source documenté -- [ ] Documentation technique -- [ ] Guide d'utilisation -- [ ] Jeux de test - -### 9.2 Publications visées -- [ ] Conférence internationale : [Nom] -- [ ] Journal : [Nom] -- [ ] Workshop : [Nom] - -## 10. Journal de Bord - -### [Date] - [Étape] -[Description des activités et découvertes] - -### [Date] - [Étape] -[Description des activités et découvertes] - -## 11. Références et Bibliographie - -[1] Auteur, A. (Année). Titre. *Journal*, Volume(Numéro), pages. - -[2] Auteur, B. (Année). *Titre du livre*. Éditeur. - -## Annexes - -### Annexe A : Données complémentaires - -### Annexe B : Code source principal - -### Annexe C : Résultats détaillés \ No newline at end of file diff --git a/templates/recherche/simple.md b/templates/recherche/simple.md deleted file mode 100644 index a5c7dad..0000000 --- a/templates/recherche/simple.md +++ /dev/null @@ -1,95 +0,0 @@ -# Journal de Conception - Projet de Recherche - -## 1. Introduction -**Contexte du projet :** -[Décrire brièvement le domaine de recherche et la problématique scientifique] - -**Idée principale :** -[Résumer l'hypothèse de recherche et la méthodologie envisagée en une phrase] - -## 2. Objectifs du projet -**Objectifs principaux :** -- [ ] Objectif scientifique -- [ ] Objectif méthodologique -- [ ] Objectif applicatif - -**Questions de recherche :** -- Question principale à investiguer -- Sous-questions spécifiques -- Hypothèses à tester - -## 3. Présentation et spécifications -**Description détaillée :** -[Expliquer le projet de recherche et ses enjeux scientifiques] - -**Cahier des charges :** -- **Domaine** : [Champ disciplinaire] -- **Méthodologie** : [Approche quantitative/qualitative] -- **Contraintes** : [Éthique, ressources, temps] - -## 4. Fonctionnalités attendues -- [ ] **Revue littérature** : État de l'art et positionnement -- [ ] **Méthodologie** : Design expérimental et protocoles -- [ ] **Collecte données** : Instruments et procédures -- [ ] **Analyse** : Méthodes statistiques et interprétation - -## 5. Conception globale -**Démarche scientifique :** -``` -Question → Hypothèses → Méthodologie → Données → Analyse → Conclusions -``` - -**Architecture recherche :** -- **Théorique** : Cadre conceptuel et modèles -- **Empirique** : Expériences et observations -- **Analytique** : Traitement et statistiques -- **Synthèse** : Interprétation et implications - -## 6. Problématiques et solutions -| Défi recherche | Solution envisagée | -|----------------|-------------------| -| Accès aux données | Partenariats institutionnels | -| Validité interne | Contrôles expérimentaux | -| Généralisation | Échantillonnage représentatif | - -## 7. Environnement et outils -**Outils de recherche :** -- Bibliographie : Zotero, Mendeley -- Analyse : R, Python, SPSS -- Rédaction : LaTeX, Word -- Collaboration : Git, cloud storage - -**Ressources :** -- Bases de données scientifiques -- Équipements de laboratoire -- Financement recherche -- Réseau collaboratif - -## 8. Phases du projet -**Phase 1 - Préparation (2 mois) :** -- [ ] Revue littérature approfondie -- [ ] Design méthodologique -- [ ] Validation éthique - -**Phase 2 - Collecte (4 mois) :** -- [ ] Recrutement participants -- [ ] Collecte données -- [ ] Monitoring qualité - -**Phase 3 - Analyse (3 mois) :** -- [ ] Traitement statistique -- [ ] Interprétation résultats -- [ ] Rédaction publication - -## 9. Conclusion -**État d'avancement :** -[À compléter au fur et à mesure] - -**Prochaines étapes :** -- [ ] Finalisation protocole expérimental -- [ ] Soumission comité éthique -- [ ] Début collecte données - ---- -*Journal créé le : [DATE]* -*Dernière mise à jour : [DATE]* \ No newline at end of file diff --git a/views/header.js b/views/header.js index 046a3a8..46841ce 100644 --- a/views/header.js +++ b/views/header.js @@ -2,7 +2,7 @@ function getHeader() { return `
    -

    Mon Journal de Conception

    +

    Design Journal

    `; @@ -15,35 +15,16 @@ function getLeftPanel() {
    -

    Templates de Projet

    +

    New Document

    - - -
    - -
    - - +

    Start with a default template for your design journal.

    -
    @@ -59,14 +40,14 @@ function getRightPanel() {
    -

    Outils

    +

    Tools

    @@ -74,9 +55,9 @@ function getRightPanel() { @@ -84,10 +65,10 @@ function getRightPanel() { diff --git a/views/main.js b/views/main.js index ee0ff20..3aec281 100644 --- a/views/main.js +++ b/views/main.js @@ -2,62 +2,62 @@ function getMain() { return `
    -

    📑 Table des matières

    +

    Table of Contents

    -

    📝 Journal de conception

    +

    Design Journal

    - - - + + +
    - +
    - +
    -

    🤖 Assistant IA

    +

    AI Assistant

    - - - -
    - +
    - +
    -