💻

JULIEN

Développeur Web & Expert IT

🌐 js-info.fr
📍 Alsace Centrale
🎸 Guitariste

CRM Personnalisé Symfony 7.3

Développement d'un CRM sur mesure pour gérer l'ensemble des activités de JS Info : gestion clients, suivi des interventions, facturation, et statistiques. Ce projet représente à la fois un outil professionnel indispensable et un challenge technique majeur dans mon apprentissage de Symfony.

L'objectif est de créer une solution complètement adaptée à mes besoins métier, sans les limitations des CRM du marché, tout en appliquant les meilleures pratiques de développement moderne.

Symfony 7.3 PHP 8.3 Doctrine ORM MySQL 8 Twig API REST

Fonctionnalités Principales

👥

Gestion Clients

Fiche client complète avec historique des interventions, coordonnées, notes personnalisées. Recherche avancée et filtres multicritères. Segmentation client pour actions ciblées.

CRUD complet Relations Doctrine Recherche Ajax
🔧

Suivi des Interventions

Planification et suivi des interventions terrain. Statuts personnalisés (en attente, en cours, terminé). Temps passé, matériel utilisé, photos avant/après. Génération automatique de rapports d'intervention.

Workflow métier Upload fichiers PDF automatique
💰

Facturation

Création de devis et factures depuis les interventions. Calcul automatique TVA, remises. Numérotation séquentielle. Export PDF avec template personnalisable. Suivi des paiements et relances.

DomPDF Templates Twig Validation métier
📊

Tableau de Bord

Vue d'ensemble de l'activité : chiffre d'affaires mensuel, interventions en cours, clients actifs. Graphiques d'évolution. Indicateurs de performance. Alertes factures impayées.

Chart.js KPI métier Temps réel
📦

Gestion Stock

Inventaire des pièces et matériel. Suivi des entrées/sorties. Alertes stock minimum. Liaison automatique avec les interventions pour déduire le matériel utilisé.

Gestion quantités Alertes auto Historique
📅

Planning

Calendrier interactif des interventions. Vue jour/semaine/mois. Drag & drop pour reprogrammer. Code couleur par type d'intervention. Synchronisation avec Google Calendar (à venir).

FullCalendar.js API REST Drag & Drop

Stack Technique

Backend - Symfony 7.3
Framework PHP Moderne

Architecture MVC : Séparation claire des responsabilités avec Controllers, Services, Repositories. Injection de dépendances pour un code testable et maintenable.

Doctrine ORM : Mapping objet-relationnel pour la base de données. Migrations versionnées. Relations complexes (OneToMany, ManyToMany). Requêtes optimisées avec QueryBuilder et DQL.

Symfony Forms : Formulaires typés avec validation côté serveur. DataTransformers pour les champs personnalisés. Form Events pour la logique métier complexe.

Security : Authentification utilisateur, rôles et permissions (ROLE_USER, ROLE_ADMIN). Protection CSRF. Hashage bcrypt des mots de passe.

Frontend - Twig & JavaScript
Interface Utilisateur Moderne

Templates Twig : Héritage de templates avec base.html.twig. Composants réutilisables. Filtres et fonctions personnalisés. Intégration Webpack Encore pour les assets.

JavaScript Vanilla : Interactions dynamiques sans framework lourd. Requêtes Ajax pour mise à jour sans rechargement. Validation côté client en complément.

CSS Moderne : Reprise du design néon de mon CV. Variables CSS. Animations fluides. Grid et Flexbox. Mobile-first responsive.

Base de Données - MySQL 8
Modélisation Relationnelle

Entités principales : Client, Intervention, Facture, Produit, Utilisateur. Relations optimisées avec clés étrangères et index.

Performance : Index sur colonnes de recherche fréquente. Eager/Lazy loading selon les besoins. Pagination des listes importantes.

Développements Sur Mesure

📄 Générateur PDF Intelligent

Système de génération de PDF pour devis et factures avec template Twig personnalisable. Gestion automatique des sauts de page pour les longues listes. Intégration logo, mentions légales et conditions générales.

🔢 Numérotation Automatique

Service dédié à la génération de numéros séquentiels pour factures et devis selon format personnalisé (ex: FAC-2025-001). Gestion des collisions et transactions atomiques. Reset annuel automatique.

📧 Notifications Email

Système de notifications automatiques : confirmation de RDV client, rappels d'intervention, alertes factures impayées. Templates HTML responsive. Envoi asynchrone avec Symfony Messenger.

🔐 API REST Sécurisée

API REST pour interactions Ajax et possibilité d'intégration future (app mobile). Authentification par JWT. Endpoints CRUD complets. Sérialization groupes pour contrôler les données exposées.

📊 Système de Statistiques

Calculs et agrégations complexes : CA mensuel, évolution client, interventions par catégorie. Mise en cache des résultats coûteux. Export CSV pour analyse externe.

🔄 Système d'Events

Utilisation des Events Symfony pour découpler le code : envoi email automatique à la création de facture, mise à jour stock lors d'intervention. Listeners personnalisés pour logique métier transverse.

Apprentissage & Progression

Ce projet CRM est avant tout un projet d'apprentissage intensif de Symfony. N'ayant pas suivi de formation formelle sur ce framework, j'ai adopté une approche d'auto-formation structurée combinant documentation officielle, tutoriels et surtout : la pratique.

Compétences Symfony acquises :

Architecture & Concepts fondamentaux
✅ Maîtrisé : Structure MVC, Routing, Controllers, Services, Dependency Injection, Configuration YAML
Base de données & Doctrine
✅ Maîtrisé : Entités, Relations, Migrations, Repositories, QueryBuilder, DQL basique
🔄 En cours : Optimisations avancées, agrégations complexes, pagination performante
Formulaires & Validation
✅ Maîtrisé : Form Types, Validation contraintes, Rendering Twig, CSRF protection
🔄 En cours : DataTransformers, Form Events, Collections dynamiques
Sécurité & Authentification
✅ Maîtrisé : Authentication, Authorization, Voters, Rôles hiérarchiques
🔄 En cours : Two-factor authentication, Remember me, API tokens
API & Serialization
🎯 Prévu : API Platform, JSON responses, Serializer groupes avancés, HATEOAS
Tests & Qualité
🎯 Prévu : PHPUnit, Tests fonctionnels, Tests d'intégration, PHPStan analyse statique

« Ce projet me permet d'apprendre en conditions réelles, avec des besoins métier concrets et des défis techniques stimulants. Chaque fonctionnalité développée enrichit ma compréhension de Symfony. »

État d'Avancement

Gestion Clients 85%

CRUD complet, recherche fonctionnelle. Reste : export Excel

Interventions 70%

Création et suivi OK. Reste : photos, rapports PDF

Facturation 60%

Structure en place. Reste : génération PDF, envoi email

Tableau de Bord 40%

KPI de base. Reste : graphiques, optimisation requêtes

Gestion Stock 30%

Modèle créé. Reste : intégration interventions, alertes

Planning 20%

Phase de conception. Reste : tout à développer

API REST 25%

Endpoints basiques. Reste : authentification, documentation

Tests Unitaires 0%

Non démarré. À intégrer après fonctionnalités principales

Hébergement & Déploiement

Serveur Plesk Personnel
Environnement de Production

Infrastructure : Le CRM sera hébergé sur mon serveur Plesk dédié (2 cœurs, 8 Go RAM, 260 Go) sur un sous-domaine sécurisé de js-info.fr

Configuration : PHP 8.3, MySQL 8, Apache. SSL Let's Encrypt. Sauvegardes automatiques quotidiennes. Monitoring Plesk intégré.

Déploiement : Git pour versionner le code. Déploiement manuel via FTP/SFTP actuellement. À terme : automatisation avec Git hooks ou déploiement continu.

Évolutions Futures

📱

Application Mobile

Développement d'une app mobile (React Native ou Flutter) pour consultation en déplacement. Accès rapide aux fiches clients, ajout d'interventions, photos terrain. Synchronisation temps réel via l'API REST.

🤖

Automatisations IA

Intégration d'IA pour suggestions de diagnostic basées sur symptômes client. Prédiction de durée d'intervention. Analyse des récurrences pour maintenance préventive. Chatbot support client.

🔗

Intégrations Externes

Connexion avec services tiers : comptabilité (export vers logiciels compta), paiement en ligne (Stripe/PayPal), SMS notifications, signature électronique devis, synchronisation Google Workspace.

Questions sur ce Projet ?

Je serais ravi de discuter des détails techniques de ce CRM Symfony, de partager mon expérience d'apprentissage du framework, ou d'échanger sur vos propres projets de développement.

Ce projet démontre ma capacité à apprendre en autonomie, à structurer une application complexe et à développer des solutions métier sur mesure.