Un système CRM propre, développé pour gérer mon activité freelance. Dans le système, je gère les clients, je crée pour eux des projets et des tâches, je suis le temps passé sur les tâches, et le système calcule automatiquement le coût du travail effectué. Les données sont agrégées par tâche, projet et client, ce qui offre une image complète des revenus à tous les niveaux.
Pour l'analytique, un dashboard dédié avec graphiques et diagrammes permet de consulter les données pour chaque jour — quelles tâches ont été réalisées, avec quels projets et clients j'ai travaillé, et combien j'ai gagné par jour, semaine ou mois. En outre, le CRM comprend des modules d'analytique des leads et des offres d'emploi : je peux gérer les leads avec des attributs (froid/chaud, source, etc.) et suivre la conversion en clients, ainsi que gérer les offres d'emploi avec des statuts et des sources afin d'analyser la pertinence des postes par rapport à mes compétences, ma réussite aux entretiens et les canaux de recherche les plus efficaces.
Le système est construit sur Symfony (backend), Vue (frontend), PostgreSQL (base de données principale), Redis (cache et sessions), ElasticSearch (recherche et analytique) et RabbitMQ (traitement asynchrone).
CRM personnel pour freelance
Un système CRM propre, développé pour gérer mon activité freelance. Dans le système, je gère les clients, je crée pour eux des projets et des tâches, je suis le temps passé sur les tâches, et le système calcule automatiquement le coût du travail effectué.
Les données sont agrégées par tâche, projet et client, ce qui offre une image complète des revenus à tous les niveaux. Comme un client peut avoir plusieurs projets, l'agrégation est effectuée à la fois par projet et par client dans son ensemble.
Pour l'analytique, un dashboard dédié avec graphiques et diagrammes permet de consulter les données pour chaque jour — quelles tâches ont été réalisées, avec quels projets et clients j'ai travaillé, et combien j'ai gagné par jour, semaine ou mois.
En outre, le CRM comprend des modules d'analytique des leads et d'analytique des offres d'emploi :
- Leads : ajout de leads avec des attributs (froid/chaud, source, etc.), suivi des statuts et de la conversion en clients. Un onglet dédié dans le dashboard montre combien de leads ont été acquis, leurs statuts et combien ont été convertis en clients. Cela permet d'analyser la performance d'acquisition des leads et d'ajuster les actions.
- Offres d'emploi : gestion des postes avec statuts et sources, analyse de la pertinence des postes par rapport à mes compétences et de ma réussite aux entretiens. Un onglet dédié dans le dashboard aide à comprendre si je cherche correctement des postes, quels canaux fonctionnent le mieux et comment ajuster mon comportement en entretien.
Mon rôle dans le projet
Développeur full-stack et auteur du projet : conception de l'architecture, développement backend sur Symfony, frontend sur Vue, mise en place de l'infrastructure (PostgreSQL, Redis, ElasticSearch, RabbitMQ).
Stack technologique
- Backend : Symfony (PHP)
- Frontend : Vue.js
- Base de données : PostgreSQL
- Cache et sessions : Redis
- Recherche et analytique : ElasticSearch
- Files d'attente : RabbitMQ
Tâches clés
- Conception du modèle de domaine : clients, projets, tâches, temps, tarifs
- Suivi du temps sur les tâches et calcul automatique du coût des travaux
- Agrégation des données par tâche, projet et client
- Dashboard avec graphiques et diagrammes pour l'analytique des revenus
- Module d'analytique des leads avec attributs et conversion
- Module d'analytique des offres d'emploi avec statuts et sources
- Traitement asynchrone des événements via RabbitMQ
- Recherche sur les données via ElasticSearch
- Caching et optimisation de la restitution via Redis
Résultat
Un CRM personnel pleinement fonctionnel qui couvre la gestion des clients, projets et tâches, automatise le calcul des revenus et fournit une analytique sur les revenus, les leads et les offres d'emploi. Le système aide à prendre des décisions basées sur les données : quels canaux d'acquisition de leads sont efficaces, quels postes sont pertinents et combien a été gagné par jour, semaine ou mois.