Todos los proyectos

Nectum

Un ERP modular en Rust para conectar ventas, stock y contabilidad.

PlataformasEn desarrollo

Sistema de gestión empresarial con módulos de inventario, ventas, compras y contabilidad. Combina una API en Rust con una interfaz React y un cliente TypeScript, manteniendo el contexto de cada empresa en sus operaciones.

El problema

Los pedidos, las existencias y la contabilidad necesitan mantenerse coordinados, mientras los datos y permisos de cada empresa permanecen separados.

La solución

Monolito modular organizado en crates de Rust, con Axum y SQLx. PostgreSQL aplica políticas de acceso por fila dentro de transacciones con contexto de empresa. Los módulos conectan reservas de stock, despachos y asientos contables; React consume la API mediante un SDK TypeScript.

Del pedido al movimiento contable

El ciclo de una venta conecta documentos, reservas y movimientos de inventario. La contabilización automática depende de las cuentas configuradas para la empresa.

  1. PedidoCliente · productos · almacén
  2. ConfirmaciónReserva de stock
  3. DespachoSalida de existencias
  4. ContabilizaciónSi hay cuentas configuradas
El despacho y el asiento automático comparten una transacción. El asiento se genera cuando la empresa tiene sus cuentas contables configuradas.
  1. Crear el pedido

    React · SDK TypeScript · Rust

    El pedido reúne cliente, productos, cantidades y almacén. La API valida los datos y calcula sus importes.

  2. Confirmar y reservar

    SQLx · PostgreSQL

    La confirmación reserva las existencias necesarias y comprueba su disponibilidad dentro de una transacción.

  3. Despachar y registrar

    Inventario · movimientos de stock

    El despacho descuenta las existencias y las reservas, registra los movimientos y actualiza el estado del pedido.

  4. Conectar con contabilidad

    Partida doble · contexto de empresa

    Si existen las cuentas configuradas, el sistema prepara el asiento contable en la misma transacción del despacho. Las operaciones mantienen el contexto de empresa.

Stock trazable

Las reservas y movimientos permiten seguir el efecto de la venta sobre el inventario.

Registro contable

Los asientos conectan la operación comercial con las cuentas y los informes financieros de la empresa.

Los retos detrás del sistema

Conservar el contexto de empresa en cada operación

Las transacciones aplican el contexto del tenant antes de consultar o modificar datos. Las políticas RLS de PostgreSQL utilizan ese contexto para limitar el acceso a las filas de cada empresa.

Coordinar stock y contabilidad

La confirmación reserva existencias y el despacho descuenta stock y registra movimientos. Cuando la empresa tiene sus cuentas configuradas, el despacho genera también el asiento contable dentro de la misma transacción.

Qué permite hacer

  • Inventario multi-almacén, movimientos y reservas de stock.
  • Pedidos de venta, compras y gestión de clientes y proveedores.
  • Contabilidad de partida doble, cobros, pagos e informes financieros.
  • Aislamiento de datos por empresa y permisos por rol.
  • Cliente TypeScript, API documentada con OpenAPI y despliegue Docker.

Cómo funciona

Ventas, inventario, compras y contabilidad comparten una API con datos separados por empresa.

Selecciona una parte del mapa para conocer su función.

Interfaz y cliente tipado

La interfaz utiliza el cliente TypeScript de Nectum para consultar y gestionar los módulos. El SDK centraliza las peticiones y la renovación de sesiones.

API y permisos

Axum expone las rutas de la API sobre Tokio. La autenticación, los roles y el contexto de empresa acompañan las operaciones; OpenAPI documenta sus contratos.

Datos por empresa

SQLx inicia transacciones con el contexto de cada empresa. Las políticas de acceso por fila de PostgreSQL limitan las consultas y cambios a sus datos.

Módulos conectados

Cada módulo reside en su propio crate. Los pedidos reservan stock; los despachos registran movimientos y pueden generar asientos cuando las cuentas de la empresa están configuradas.

¿Encaja con lo que buscas?

Podemos hablar sobre tu equipo y el software que necesitas construir.

Escríbeme