JULIEN

Développeur Web & Expert IT

Disponible pour de nouvelles opportunités CDI en remote ou en Alsace

js-info.fr
Alsace Centrale
Guitariste

CRM Personnalisé Symfony 8.1

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 8.1 PHP 8.5 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 8.1
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.

Auto-formation & Architecture

Développé en totale autonomie, ce CRM démontre ma capacité à maîtriser rapidement un framework robuste comme Symfony 8.1. Loin d'être un simple exercice technique, c'est un outil de production pensé pour être évolutif, maintenable et répondre à de vraies problématiques métier.

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. »

Statut des Modules (V1)

Gestion Clients Opérationnel

Module cœur déployé (CRUD, recherche, filtres). Évolution prévue : export Excel.

Interventions Opérationnel

Création, suivi des statuts, génération rapports OK. Évolution : gestion avancée des photos.

Facturation Opérationnel

Génération PDF (DomPDF) et numérotation OK. Évolution : relances email auto.

Tableau de Bord En Bêta

Indicateurs clés fonctionnels. Évolution : graphiques dynamiques Chart.js.

Gestion Stock En Développement

Modèle de données prêt. En cours : liaison automatique avec les interventions.

Planning & API Roadmap

Prochaines étapes majeures de l'application (FullCalendar, API REST complète).

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.5, 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.