Caso técnico · Symfony y Vue

Cómo construí Atila Money con Symfony, Vue 3 y API REST

Atila Money nació para convertir registros financieros dispersos en una plataforma web clara y mantenible. Este caso explica las decisiones de arquitectura detrás del dashboard, los movimientos, presupuestos, reportes y control de combustible.

El problema: datos financieros sin una vista común

Cuando los movimientos, cuentas, presupuestos y reportes viven en archivos separados, la operación pierde tiempo conciliando información antes de poder decidir. Atila Money se planteó como una plataforma web para reunir esos datos en un flujo más ordenado: registrar operaciones, relacionarlas con cuentas y categorías, y convertirlas en indicadores que se puedan revisar desde un dashboard.

Una arquitectura cliente-servidor para evolucionar sin mezclar responsabilidades

El frontend está construido con Vue 3, Vue Router, Axios y Vite. Su responsabilidad es presentar la información, guiar el registro y consumir servicios del backend. El backend está desarrollado con Symfony, API Platform y Doctrine ORM. Esta separación permite que reglas de negocio, seguridad y persistencia se mantengan en el servidor, mientras la interfaz puede evolucionar sin duplicar lógica crítica.

API REST y recursos para operaciones reales

La API expone recursos para movimientos, cuentas, categorías, personas, actividades, presupuestos y registros de combustible. Además incorpora endpoints específicos para dashboard, reportes, perfil y recuperación de contraseña. No todo se resuelve con un CRUD genérico: los indicadores financieros y los reportes requieren agregaciones y reglas que se calculan en el backend para entregar respuestas consistentes a la interfaz.

Autenticación JWT y separación de datos por usuario

El acceso se protege con autenticación JWT. Las entidades financieras se asocian al usuario autenticado y la capa de acceso filtra las lecturas para evitar que una persona consulte registros de otra. También existen validaciones para impedir referencias cruzadas entre recursos de diferentes usuarios. Este enfoque es importante cuando un sistema deja de ser una hoja personal y empieza a manejar información operativa que necesita permisos y trazabilidad.

Dashboard, presupuestos y reportes: convertir registros en decisiones

El dashboard presenta saldo consolidado, ingresos, gastos, balance mensual, presupuesto, categorías relevantes y movimientos recientes. Los reportes permiten revisar periodos y categorías a partir de datos reales registrados. Los presupuestos mensuales y por categoría ayudan a comparar planificación y ejecución. El objetivo no es mostrar más gráficos, sino dar una lectura rápida de qué está ocurriendo y dónde conviene revisar.

Control de combustible integrado a la operación

El módulo de combustible registra fecha, kilometraje, litros, tipo de combustible, monto y cuenta de pago. A partir de esos registros se calculan indicadores como costo por kilómetro, rendimiento, precio promedio y comparación por tipo de combustible. Integrarlo con los movimientos evita capturar el mismo gasto dos veces y ofrece un ejemplo concreto de cómo una necesidad operativa puede conectarse con el control financiero general.

Qué aporta Vue 3 a la experiencia de uso

La interfaz organiza el trabajo en vistas claras: dashboard, movimientos, presupuestos, reportes, catálogos, cuentas y perfil. Los componentes reutilizables para tarjetas, alertas, formularios y estados de carga ayudan a mantener una experiencia coherente. El diseño responsive permite consultar información desde distintos tamaños de pantalla sin convertir una tarea administrativa simple en una navegación compleja.

Lecciones para proyectos empresariales similares

El valor de una plataforma así no está solo en elegir Symfony o Vue. Está en modelar el proceso real, definir quién es dueño de cada dato, aplicar seguridad desde el backend y entregar pantallas que ayuden a actuar. El mismo enfoque puede adaptarse a control de gastos, operaciones de campo, mantenimiento, logística o procesos administrativos que hoy dependen de Excel y coordinación manual.