Un sistema CRM propio, desarrollado para gestionar mi actividad freelance. En el sistema gestiono clientes, creo para ellos proyectos y tareas, registro el tiempo en las tareas y el sistema calcula automáticamente el coste del trabajo realizado. Los datos se agregan por tarea, proyecto y cliente, lo que ofrece una imagen completa de los ingresos en todos los niveles.
Para la analítica hay un dashboard dedicado con gráficos y diagramas: puedo consultar los datos de cada día — qué tareas se realizaron, con qué proyectos y clientes trabajé y cuánto gané por día, semana o mes. Además, el CRM incluye módulos de analítica de leads y de ofertas de empleo: puedo gestionar leads con atributos (frío/caliente, fuente, etc.) y seguir la conversión en clientes, así como gestionar ofertas de empleo con estados y fuentes para analizar la relevancia de los puestos respecto a mis habilidades, el éxito en las entrevistas y los canales de búsqueda más eficaces.
El sistema está construido sobre Symfony (backend), Vue (frontend), PostgreSQL (base de datos principal), Redis (caché y sesiones), ElasticSearch (búsqueda y analítica) y RabbitMQ (procesamiento asíncrono).
CRM personal para freelance
Un sistema CRM propio, desarrollado para gestionar mi actividad freelance. En el sistema gestiono clientes, creo para ellos proyectos y tareas, registro el tiempo en las tareas y el sistema calcula automáticamente el coste del trabajo realizado.
Los datos se agregan por tarea, proyecto y cliente, lo que ofrece una imagen completa de los ingresos en todos los niveles. Como un cliente puede tener varios proyectos, la agregación se realiza tanto por proyecto como por cliente en su conjunto.
Para la analítica hay un dashboard dedicado con gráficos y diagramas: puedo consultar los datos de cada día — qué tareas se realizaron, con qué proyectos y clientes trabajé y cuánto gané por día, semana o mes.
Además, el CRM incluye módulos de analítica de leads y de analítica de ofertas de empleo:
- Leads: alta de leads con atributos (frío/caliente, fuente, etc.), seguimiento de estados y conversión en clientes. Una pestaña dedicada en el dashboard muestra cuántos leads se adquirieron, sus estados y cuántos se convirtieron en clientes. Esto permite analizar el rendimiento de adquisición de leads y ajustar las acciones.
- Ofertas de empleo: gestión de puestos con estados y fuentes, análisis de la relevancia de los puestos respecto a mis habilidades y del éxito en las entrevistas. Una pestaña dedicada en el dashboard ayuda a entender si estoy buscando correctamente los puestos, qué canales funcionan mejor y cómo ajustar mi comportamiento en las entrevistas.
Mi rol en el proyecto
Desarrollador full-stack y autor del proyecto: diseño de la arquitectura, desarrollo backend en Symfony, frontend en Vue, configuración de la infraestructura (PostgreSQL, Redis, ElasticSearch, RabbitMQ).
Stack tecnológico
- Backend: Symfony (PHP)
- Frontend: Vue.js
- Base de datos: PostgreSQL
- Caché y sesiones: Redis
- Búsqueda y analítica: ElasticSearch
- Colas: RabbitMQ
Tareas clave
- Diseño del modelo de dominio: clientes, proyectos, tareas, tiempo, tarifas
- Seguimiento del tiempo en tareas y cálculo automático del coste del trabajo
- Agregación de datos por tarea, proyecto y cliente
- Dashboard con gráficos y diagramas para la analítica de ingresos
- Módulo de analítica de leads con atributos y conversión
- Módulo de analítica de ofertas de empleo con estados y fuentes
- Procesamiento asíncrono de eventos mediante RabbitMQ
- Búsqueda sobre los datos mediante ElasticSearch
- Caching y optimización de la salida mediante Redis
Resultado
Un CRM personal plenamente funcional que cubre la gestión de clientes, proyectos y tareas, automatiza el cálculo de ingresos y ofrece analítica sobre ingresos, leads y ofertas de empleo. El sistema ayuda a tomar decisiones basadas en datos: qué canales de adquisición de leads son eficaces, qué puestos son relevantes y cuánto se ganó por día, semana o mes.