Application Blazor Server pour la génération et la gestion de documents techniques : DOE (Dossier d'Ouvrages Exécutés), Dossiers Techniques et Mémoires Techniques.
- DOE (Dossier d'Ouvrages Exécutés) : Compilation des fiches techniques des matériaux installés
- Dossiers Techniques : Compilation des fiches techniques des matériaux prévus
- Mémoires Techniques : Présentation de la société, méthodologies et produits
- ✅ Génération PDF réelle avec PuppeteerSharp + PDFSharp
- ✅ Pages de garde personnalisables
- ✅ Table des matières dynamique
- ✅ Intégration de fiches techniques PDF
- ✅ Sections personnalisables avec éditeur HTML riche
- ✅ Pied de page automatique avec pagination globale
- 📁 Gestion complète des chantiers
- 📑 Bibliothèque de fiches techniques
- 🎨 Éditeur HTML WYSIWYG pour sections personnalisées
- 🖼️ Upload et gestion d'images
- 🔍 Système d'autocomplétion avancé
- 📊 Interface de configuration centralisée
- 🗂️ Explorateur de fichiers intégré
- 🧹 Système de maintenance et nettoyage des fichiers orphelins
- Framework : ASP.NET Core 8.0
- UI : Blazor Server
- Base de données : Entity Framework Core 8.0
- SQL Server (développement)
- PostgreSQL (production)
- Génération PDF :
- PuppeteerSharp 15.1.0 (HTML → PDF)
- PDFSharp 6.1.1 (Assembly et optimisation)
- Logging : Serilog
- Framework UI : Radzen Blazor 5.6.4
- Styling : Bootstrap 5
- Éditeur HTML : Radzen HTML Editor
- Drag & Drop : SortableJS 1.15.0
- Conteneurisation : Docker + Docker Compose
- CI/CD : GitHub Actions
- Registry : GitHub Container Registry (GHCR)
- Orchestration : Portainer CE
- Serveur : Linux (Debian/Ubuntu)
# Cloner le dépôt
git clone https://github.com/zaytar68/GenerateurDOE.git
cd GenerateurDOE/GenerateurDOE
# Restaurer les dépendances
dotnet restore
# Appliquer les migrations
dotnet ef database update
# Lancer l'application
dotnet runL'application sera accessible sur https://localhost:5001
# Cloner le dépôt
git clone https://github.com/zaytar68/GenerateurDOE.git
cd GenerateurDOE/GenerateurDOE
# Lancer avec Docker Compose
docker compose -f docker-compose.postgresql.yml up -d
# Vérifier les logs
docker logs generateur-doe-app -fL'application sera accessible sur http://localhost:5000
Le projet utilise un pipeline CI/CD complet :
main → production → GitHub Actions → GHCR → Portainer → Production
Documentation complète :
-
Créer la branche production
git checkout main git checkout -b production git push -u origin production
-
Configurer le webhook Portainer
- Suivre le guide : docs/PORTAINER_SETUP.md
-
Déployer
git checkout production git merge main git push origin production
→ GitHub Actions build et déploie automatiquement ! 🎉
GenerateurDOE/
├── Components/ # Composants Blazor réutilisables
│ ├── Shared/ # Composants partagés (AutoComplete, etc.)
│ └── Layout/ # Layouts de l'application
├── Controllers/ # API Controllers (Files, ImageUpload)
├── Data/ # DbContext et Migrations EF Core
├── Models/ # Modèles de données
├── Pages/ # Pages Blazor
├── Services/ # Services métier
│ ├── Interfaces/ # Interfaces de services
│ └── Implementations/ # Implémentations
├── wwwroot/ # Ressources statiques
├── docs/ # Documentation
├── scripts/ # Scripts utilitaires
└── .github/workflows/ # GitHub Actions CI/CD
| Service | Description |
|---|---|
IDocumentGenereService |
Génération et gestion des documents |
IPdfGenerationService |
Génération PDF avec PuppeteerSharp + PDFSharp |
IHtmlTemplateService |
Templates HTML pour documents |
IFicheTechniqueService |
Gestion des fiches techniques |
IChantierService |
Gestion des chantiers |
IConfigurationService |
Configuration application |
ISectionLibreService |
Sections personnalisables |
IDeletionService |
Maintenance et nettoyage |
- ✅ Repository Pattern : Optimisations EF Core avec projections DTO
- ✅ DbContextFactory : Gestion de la concurrence Blazor Server
- ✅ Dependency Injection : Services Scoped pour performances
- ✅ Strategy Pattern : Formats d'export multiples
- Guide de démarrage rapide (à créer)
- Manuel utilisateur (à créer)
Le projet suit le Semantic Versioning 2.0.0 : MAJOR.MINOR.PATCH
# Script de versioning interactif
./scripts/update-version.sh
# Ou spécifier directement la version
./scripts/update-version.sh 2.2.0Le script synchronise automatiquement :
- ✅
GenerateurDOE.csproj - ✅
appsettings.json - ✅
docker-compose.postgresql.yml - ✅
changelog.md - ✅ Tag Git
- Fork le projet
- Créer une branche de feature (
git checkout -b feature/AmazingFeature) - Commiter les changements (
git commit -m 'feat: add amazing feature') - Pousser vers la branche (
git push origin feature/AmazingFeature) - Ouvrir une Pull Request vers
main
Le projet utilise Conventional Commits :
feat: nouvelle fonctionnalité
fix: correction de bug
docs: mise à jour documentation
style: formatage code
refactor: refactorisation sans changement fonctionnel
test: ajout de tests
chore: tâches de maintenance
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
- Radzen Blazor - Framework UI
- PuppeteerSharp - Génération PDF
- PDFSharp - Manipulation PDF
- Entity Framework Core - ORM
- Serilog - Logging
- 🐛 Issues : GitHub Issues
- 📧 Email : cedric.tirolf@multisols.com
- 🏢 Société : Multisols
| Statut | Description |
|---|---|
| ✅ Phase 1 | Génération PDF réelle (PuppeteerSharp + PDFSharp) |
| ✅ Phase 2 | Migration lots + Repository Pattern |
| ✅ Phase 2.5 | Migration complète DbContextFactory |
| ⚡ Phase 3 | Optimisations performances (en cours) |
| 📋 Phase 4 | Tests automatisés et CI/CD |
Consultez le CLAUDE.md pour la roadmap complète.
Développé avec ❤️ par l'équipe Multisols
Version actuelle : 2.1.3 Dernière mise à jour : 2025-09-26