Chapitre 03

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.

  1. 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
    www.pepprio.com ↗
  2. 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
    www.orpi.com ↗
  3. 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
    github.com/pepprio/uber-eats-sdk-php ↗
  4. 3.4

    Symfony CRUD Template Bundle

    Bundle Symfony pour générer rapidement des interfaces CRUD

    • PHP
    • Symfony
    • Twig
    • JavaScript
    github.com/BenMacha/Templatebundle ↗
  5. 3.5

    Symfony Mouse Tracker

    Bundle pour le suivi des interactions utilisateur

    • PHP
    • Symfony
    • React
    • VueJS
    • TypeScript
    github.com/BenMacha/mouseTracker ↗
  6. 3.6

    Symfony Diagram Bundle

    Générateur de diagrammes pour projets Symfony

    • PHP
    • Symfony
    • Doctrine
    • React
    • VueJS
    • TypeScript
    github.com/BenMacha/diagram-bundle ↗
  7. 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
    github.com/BenMacha/audit-bundle ↗
  8. 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
    github.com/BenMacha/authx-bundle ↗
  9. 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
    github.com/BenMacha/omnimail-mcp ↗
  10. 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
    github.com/BenMacha/benmacha.github.io ↗

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.