International FreightLaravel + ReactMulti-currency

Manify

Un sistema de gestión empresarial especializado para operaciones de transporte internacional de mercancías - gestión de facturas con parámetros específicos de transporte, flujo de caja en múltiples divisas y análisis de rendimiento de transportistas.

MultiFacturación multidivisa
4-stateSeguimiento de pagos
Full-stackLaravel 12 + React
Real-timeFlujo de caja y márgenes
manify Dashboard
Manify dashboard showing revenue, margin, cash flow, top clients and sales status

Descripción general

Diseñado para las particularidades de la facturación de fletes

Manify es un sistema de gestión empresarial diseñado específicamente para empresas de transporte internacional de mercancías. Las herramientas ERP genéricas no se adaptan bien a este dominio: una factura de flete no es solo líneas de artículos y un total. Lleva una referencia de transporte, identificadores de camión y remolque, un coste de barco para el tramo marítimo y una comisión de transportista que afectan directamente al margen.

El sistema gestiona la facturación en múltiples divisas, vincula los costes de compra a las ventas para calcular el margen real, realiza el seguimiento del vencimiento de pagos entre clientes y proporciona análisis de rendimiento por transportista - exactamente los datos que una empresa de transporte necesita para operar de forma rentable.

Objetivo

  • Gestionar facturas con campos específicos de flete - referencia de transporte, camión, remolque, coste de barco y comisión de transportista - directamente en el documento de facturación

  • Gestionar la facturación y los pagos en múltiples divisas con precisión, fundamental para envíos transfronterizos facturados en EUR, MAD u otras divisas

  • Calcular márgenes reales por envío: ingresos menos impuestos, costes de compra, costes de barco y comisiones - no solo los ingresos

  • Mantener una visibilidad clara del flujo de caja: qué está pagado, qué está parcialmente pagado, qué está vencido y desde cuándo

Mi rol

Arquitectura y desarrollo de extremo a extremo

Arquitectura de backend modular

Diseñé 12 módulos de dominio Laravel 12, cada uno con sus propios modelos, capa de servicios, controladores y rutas API. Auth, Business, Client, Finance, Invoices, Purchases, Reports, Sales, Supplier y más.

Modelado de dominio

Modelé entidades específicas de flete: la venta lleva referencia de transporte, camión, remolque, coste de barco y transportista - todos contribuyendo al cálculo preciso del margen por envío.

Frontend SPA React

SPA React + TypeScript completamente desacoplada, desarrollada con Vite - TanStack Router para enrutamiento basado en archivos, Zustand para estado compartido, mapa de endpoints axios tipado en toda la aplicación.

Análisis e informes

Desarrollé cuatro tipos de informes: ventas y beneficios (rango de fechas), estado de pagos con tramos de vencimiento, rendimiento por transportista (costes de barco + comisiones) y análisis por cliente.

Motor de pagos y flujo de caja

Pagos parciales, flujos de anulación/reembolso, múltiples divisas y vencimiento de pagos de 0-30 a 90+ días - todo rastreado contra las fechas de vencimiento de facturas configuradas por cliente.

Stack tecnológico

Laravel 12PHP 8.2+ReactTypeScriptViteTanStack RouterLaravel SanctumMySQLREST APIZustandreact-i18nextSpatie MediaLibraryDomPDFYajra DataTablesTailwind CSSZodReact Hook Form

Funciones principales

Diseñado alrededor de cómo funciona realmente la facturación de fletes

Gestión de facturas

  • Multiestado: borrador, completada, cancelada
  • Seguimiento de pagos en 4 estados: pagado, parcial, impagado, reembolso
  • Facturación en múltiples divisas (EUR, MAD y más)
  • Plazos por cliente con cálculo automático de vencimiento
  • Pagos parciales con saldo actualizado
  • Generación de PDF de facturas bajo demanda

Parámetros de transporte

  • Referencia de transporte en cada factura
  • Identificadores de tracteur y remorque
  • Campo de coste de barco para el tramo marítimo
  • Comisión de transportista registrada por factura
  • Transportistas vinculados (ClientSuppliers) por cliente
  • Compras vinculadas a ventas para el cálculo del margen

Flujo de caja y cobros

  • Vencimiento de pagos: 0-30, 31-60, 61-90, 90+ días
  • Panel de facturas vencidas con importes adeudados
  • Múltiples métodos: efectivo, transferencia, cheque, tarjeta, crédito
  • Correcciones de pagos por anulación y reembolso
  • Entradas vs salidas de caja de un vistazo
  • Seguimiento de cuentas por cobrar y por pagar pendientes

CRM y análisis

  • Perfiles de clientes con datos de plazo y país
  • Base de datos de proveedores y transportistas
  • Rendimiento por transportista: costes, comisiones, media/envío
  • Análisis por cliente: gasto, beneficio, historial de pagos
  • Principales clientes por ingresos con filtrado por rango de fechas
  • Margen real por envío tras todos los costes de transporte
Atlas Import Co.

Atlas Import Co.

ICE 001234567890001

Active

41

Invoices

184K

Revenue

3

Overdue

Souss Export Ltd

ICE 002345678901002

28 invoices

Maghreb Transit SARL

ICE 003456789012003

15 invoices

All data is fully isolated per business

Multi-empresa

Varias empresas, una sola instalación

Manify permite gestionar varias empresas completamente independientes bajo un único despliegue. Cada empresa tiene su propio conjunto de datos aislado - cambiar de contexto en la barra de navegación circunscribe inmediatamente cada factura, cliente, proveedor, pago e informe a la empresa seleccionada.

  • Aislamiento total de datos

    Un scope de consulta global en cada modelo filtra por business_id automáticamente - sin necesidad de scope manual en ningún punto del código.

  • Cambio de contexto instantáneo

    El selector de empresa envía X-Business-ID en cada petición API. Cambiar de empresa invalida el router - todos los datos se actualizan sin recargar la página.

  • Marca por empresa

    Cada empresa configura su propio logo, sello, tema de color, número fiscal, ICE y RIB. Los PDFs y facturas llevan la marca de la empresa automáticamente.

  • Selección persistente

    La empresa seleccionada se guarda en localStorage. Los usuarios llegan al contexto de empresa correcto cada vez que regresan.

Capturas de pantalla

Un vistazo a la plataforma

manify · Invoices
Invoice list

Invoices

manify · New Invoice
Invoice creation form

New Invoice

manify · Reports
Reports and analytics

Reports

Arquitectura

API desacoplada + SPA, backend modular

El backend es una API Laravel 12 organizada en 12 módulos autocontenidos. El frontend es una SPA React TypeScript completamente desacoplada - se comunica íntegramente mediante REST, asegurada con Laravel Sanctum. Ambas capas pueden evolucionar de forma independiente.

Backend

  • 12 módulos de dominio Laravel 12
  • Patrón de capa de servicios - controladores delgados
  • Autenticación API con Laravel Sanctum
  • DomPDF para generación de PDFs de facturas en servidor
  • Spatie MediaLibrary para adjuntos
  • Yajra DataTables para listados paginados

Frontend

  • SPA React + TypeScript con Vite
  • TanStack Router para enrutamiento basado en archivos
  • Stores Zustand para datos compartidos
  • React Hook Form + validación Zod
  • Soporte multilingüe con react-i18next
  • Mapa de endpoints axios tipado centralizado

Conclusiones clave

Nicho > Genérico

Una herramienta especializada que modela el dominio real - ref. de transporte, camión, remolque, coste de barco - vale infinitamente más que una herramienta genérica que fuerza soluciones alternativas.

El margen es la métrica real

Los ingresos solos son engañosos en el transporte. Beneficio real = ingresos de la venta − impuestos − costes de compra − coste de barco − comisión. El sistema calcula esto por envío, automáticamente.

La multidivisa es una decisión de diseño, no una función

Las operaciones internacionales facturan en EUR, cobran en MAD y pagan a transportistas en divisas mixtas. Tratar la divisa como algo fundamental desde el primer día evita costosas reescrituras posteriores.

Los frontends desacoplados dan sus frutos

Construir la SPA React como un consumidor completamente separado de la API permitió una iteración de UI más rápida sin tocar el backend - y dejó la puerta abierta para una futura aplicación móvil.

Impacto

Claridad operativa para empresas de transporte

Facturación de fletes precisa

Cada factura captura el cuadro de costes completo de un envío - no solo la línea de servicio, sino las tasas de barco, comisiones de transportista y datos del camión.

Visibilidad real del margen

El beneficio por envío se calcula automáticamente deduciendo todos los costes de transporte de los ingresos - los propietarios saben exactamente cómo están.

Control de cobros

Los informes de vencimiento de pagos muestran exactamente qué facturas están vencidas y desde cuándo - priorizar los cobros se vuelve sencillo.

Rendición de cuentas del transportista

Los informes de rendimiento de transportistas revelan cuáles cuestan más por envío - permitiendo negociaciones y decisiones de enrutamiento basadas en datos.

Trabaja conmigo

¿Tienes un proyecto similar en mente?

Ya sea una herramienta de negocio específica de dominio, una plataforma SaaS o un sistema que necesita modelar operaciones reales complejas - te ayudo a determinar el enfoque correcto antes de escribir una línea de código.