MmiPdf est un micro-service spécialisé dans la génération de fichiers PDF, développé avec Symfony et intégré avec Gotenberg. Ce service permet aux utilisateurs de créer des documents PDF à partir de différentes sources, comme des URL, des fichiers ou un éditeur WYSIWYG.
Le projet implémente un système d'abonnement à plusieurs niveaux qui limite les fonctionnalités accessibles selon le plan choisi par l'utilisateur. Une interface utilisateur intuitive développée avec Twig facilite la gestion des comptes, la génération de PDF et la consultation de l'historique des documents.
L'architecture en micro-service offre une excellente modularité et permet un déploiement automatisé, garantissant une haute disponibilité et une maintenance simplifiée du service.
Développement futur (v2 - 2025) : Une nouvelle version est actuellement en développement qui permettra de convertir des documents Word, PowerPoint, Excel et des images en PDF, offrant ainsi une solution complète de conversion de documents.
Le code source de MmiPdf v1.0 est disponible sur GitHub. Vous pouvez explorer l'implémentation du micro-service PDF développé avec Symfony et l'intégration avec Gotenberg.
Framework PHP utilisé pour développer l'application principale et le micro-service, avec utilisation de Symfony HttpClient pour l'intégration avec Gotenberg.
Déploiement et orchestration de containers pour Symfony, MySQL, Mailer et Gotenberg, permettant une configuration cohérente et reproductible de l'environnement.
API Docker pour la conversion de documents en PDF, intégrée comme service externe avec un container dédié.
Moteur de templates utilisé pour créer l'interface utilisateur avec des extensions personnalisées pour le comptage de PDF et l'affichage des limites d'abonnement.
Utilisé pour créer des éléments interactifs comme les popups de confirmation, les formulaires dynamiques et les animations de l'interface utilisateur.
Système de gestion de base de données relationnelle déployé dans un container Docker pour le stockage des données utilisateurs, abonnements et historique PDF.
Service d'envoi d'emails conteneurisé pour les notifications, confirmations d'inscription et envoi de PDF générés aux utilisateurs.
Bundle Symfony pour la création rapide d'interfaces d'administration personnalisées pour la gestion des utilisateurs et abonnements.
Framework de test end-to-end permettant de simuler les interactions utilisateur et de valider le fonctionnement de l'interface dans des scénarios réels.
Outil de test et de documentation des API utilisé pour valider les endpoints du micro-service et faciliter l'intégration avec l'application principale.
Service PDF isolé communiquant via API avec l'application principale, permettant une meilleure modularité, scalabilité et facilité de maintenance.
Suite complète de tests avec PHPUnit pour les tests unitaires, Cypress pour les tests end-to-end, et intégration continue via Git Actions déployable localement avec Act.
Architecture prête pour l'extension à la conversion de formats additionnels (Word, Excel, PowerPoint, images) dans la version 2.0 prévue pour 2025.
Analyse continue des vulnérabilités avec Snyk, authentification sécurisée, validation stricte des entrées, et contrôle granulaire des permissions basé sur les abonnements.
Développement d'API RESTful complètes avec API Platform, testées avec Postman et comportant une documentation interactive automatique.
Workflow CI/CD pour le déploiement automatisé de l'application avec tests préalables, réduisant les erreurs et simplifiant les mises à jour.
Conception de l'architecture micro-service, définition des API et interfaces, et configuration de l'environnement de développement avec Symfony et Gotenberg.
Implémentation du système d'inscription, de connexion et de vérification par email, avec récupération de mot de passe et gestion des sessions sécurisées.
Intégration de Gotenberg via Symfony HttpClient pour permettre la génération de PDF à partir de différentes sources, avec optimisation des performances et gestion des erreurs.
Développement du système d'abonnement multiniveau avec limitations fonctionnelles, upgrades/downgrades et alertes utilisateur pour la gestion des limites atteintes.
Mise en place de l'interface administrateur avec EasyAdmin, ajout d'extensions Twig personnalisées pour améliorer l'expérience utilisateur et implémentation des traductions multilingues.
Développement actif de nouvelles fonctionnalités pour la conversion de documents Word, Excel, PowerPoint et images. Implémentation en cours avec refactorisation de l'architecture pour supporter ces nouveaux formats.