Projets GitHub
Des outils open source nés de besoins réels en production : intégration de l'API Uber Eats, génération d'interfaces CRUD et outillage pour Symfony.
- 3.1
Pepprio
SaaS de gestion des commandes pour restaurants : Uber Eats, Deliveroo, Just Eat et Glovo sur une seule tablette, caisse, écran cuisine, borne et litiges automatiques.
- PHP 8.4
- Symfony 7
- GraphQL
- Vue 3
- TypeScript
- MySQL
- Redis
- Stripe
- Docker
- Traefik
- 3.2
OrpiHub
Plateforme data du réseau ORPI (projet interne) : pilotage commercial, cartographie, exports, audits d'agence et assistant métier IA avec serveur MCP et RAG.
- Symfony
- PHP 8
- React
- TypeScript
- GraphQL
- SQL Server
- MySQL
- PostgreSQL
- BigQuery
- Docker
- 3.3
UberEat PHP SDK
SDK PHP pour l'intégration de l'API UberEat
- Intégration complète de l'API UberEat
- Gestion des commandes et des menus
- Documentation détaillée et exemples
- PHP
- REST APIs
- PHPUnit
- GitHub Actions
- 3.4
Symfony CRUD Template Bundle
Bundle Symfony pour générer rapidement des interfaces CRUD
- PHP
- Symfony
- Twig
- JavaScript
- 3.5
Symfony Mouse Tracker
Bundle pour le suivi des interactions utilisateur
- PHP
- Symfony
- React
- VueJS
- TypeScript
- 3.6
Symfony Diagram Bundle
Générateur de diagrammes pour projets Symfony
- PHP
- Symfony
- Doctrine
- React
- VueJS
- TypeScript
- 3.7
Symfony Audit Bundle
Audit des modifications des entités Doctrine avec retour arrière, interface web et API REST.
- PHP
- Symfony
- Doctrine
- Twig
- REST APIs
- 3.8
AuthX Bundle
Authentification et autorisation pour Symfony : JWT, OpenID Connect, gestion des utilisateurs, journal d'audit et abonnements.
- PHP
- Symfony
- JWT
- OpenID Connect
- Twig
- 3.9
Omnimail MCP
Serveur MCP open source multi-comptes mail (iCloud, Gmail, Outlook, Yahoo, Proton, Infomaniak, IMAP), sous Docker, conforme RGPD.
- MCP
- IMAP
- Docker
- 3.10
Portfolio benmacha.tn
Ce site : un livre technique trilingue (FR / EN / AR) en Nuxt 3, rendu à l'avance, avec des figures isométriques.
- Nuxt
- VueJS
- TypeScript
- GitHub Actions
Pourquoi ces projets open source
Chacun de ces projets est né d'un besoin rencontré en production : une intégration à écrire, une tâche répétitive à automatiser ou une information difficile à obtenir. Plutôt que de garder le code dans un seul projet, je l'ai extrait, documenté et publié sur GitHub et Packagist pour qu'il serve à d'autres développeurs PHP et Symfony.
Ces dépôts couvrent plusieurs générations de Symfony, des premiers bundles écrits en 2017 aux versions récentes maintenues pour Symfony 7. Ils montrent aussi ma façon de travailler : un code typé, des outils d'analyse statique, une intégration continue et une documentation lisible dès la page d'accueil du dépôt.
UberEats PHP SDK : intégrer l'API Uber Eats proprement
Le SDK UberEats est un client PHP moderne pour l'API Uber Eats, compatible PHP 7.4 et plus. Il gère l'authentification, les commandes, les magasins et les livraisons, ainsi que les webhooks. Les requêtes et les réponses sont représentées par des objets typés, ce qui évite de manipuler des tableaux associatifs fragiles.
Le projet s'appuie sur Guzzle pour le HTTP et accepte un logger PSR-3 optionnel. La qualité est vérifiée automatiquement : style de code PSR-12 avec PHP CS Fixer, PHPStan au niveau maximal et tests exécutés en intégration continue sur GitHub Actions. Il s'installe avec Composer via le paquet ubereats/php-sdk.
Les bundles Symfony
Template Bundle (benmacha/templatebundle) fournit une interface d'administration prête à l'emploi et une commande, benmacha:generate:crud, qui génère un CRUD complet avec son entrée de menu. C'est un gain de temps réel pour les back-offices internes où l'on crée beaucoup d'écrans de gestion similaires.
MouseTrackerBundle (benmacha/mousetracker) est un traqueur de souris auto-hébergé pour Symfony 5.4, 6.4 et 7.x, sur PHP 8.1 et plus. Il enregistre les mouvements, les clics, le défilement et des instantanés du DOM dans votre propre base de données, pour produire des cartes de chaleur et des replays de session sans envoyer les données de vos utilisateurs à un service tiers. La version 2 ne dépend plus de jQuery.
DiagramBundle (benmacha/diagram-bundle), publié sous licence MIT, dessine les entités d'une base de données et les relations qui les relient. Il aide à comprendre rapidement le modèle de données d'un projet Symfony existant, par exemple lors d'une reprise de code ou de l'arrivée d'un nouveau développeur.
Utiliser ou contribuer
Tous ces paquets s'installent avec Composer et leur documentation se trouve directement dans le dépôt GitHub. Les issues et les pull requests sont les bienvenues : un rapport de bug précis ou une amélioration de la documentation est déjà une contribution utile. Pour un besoin plus spécifique autour de Symfony ou d'une intégration d'API, vous pouvez aussi me contacter directement.