LilyByte

PayWise

Diseño de productoIngeniería frontendBackend y APIDatos y multi-tenancyAuth y acceso por rolDocumentos PDFAlmacenamiento cloudDevOps (previsto)

PayWise (internamente FedimiBustePaga) es una plataforma completa de nóminas y gestión de personal que LilyByte diseñó y construyó para Fedimi, una asesoría laboral. Reúne toda una operación de nóminas (la asesoría, sus contables, las empresas clientes y cada uno de sus empleados) en un solo sistema consciente de los roles. Los contables gestionan la plantilla de las empresas asignadas, registran los movimientos, generan y distribuyen las nóminas y llevan el control de presencia; la asesoría y los titulares de la plataforma ven toda la red desde arriba.

El producto está construido sobre el derecho laboral italiano al que sirve: convenios colectivos (CCNL), códigos ATECO, números de IVA, contratos temporales e indefinidos, y los documentos formales que acompañan a cada alta, baja, dimisión, prórroga o cambio de contrato. LilyByte entregó el producto de principio a fin: un frontend Next.js y una API Express/MongoDB con una cadena documental apoyada en S3.

El reto

El software de nóminas no perdona: es multi-tenant por naturaleza, está lleno de documentos por ley, y cada número en pantalla tiene que cuadrar con una relación laboral real. Varias cosas lo hacían difícil.

Muchos roles, una jerarquía. Una asesoría de nóminas es un árbol: el titular de la plataforma supervisa asesorías, cada asesoría a sus contables, cada contable a un grupo de empresas clientes, y cada empresa a sus empleados. Cada rol necesita un panel distinto, permisos distintos y una porción distinta de los mismos datos, todo desde un único acceso.

Un documento por cada movimiento. En la práctica laboral italiana un alta, una baja, una dimisión, una prórroga o una transformación no son un simple cambio de estado: detrás de cada una hay un PDF formal. La plataforma tenía que recoger esos movimientos y sus documentos, y conservarlos de forma fiable.

Nóminas a escala. El entregable central es la nómina mensual. PayWise tenía que generar, guardar y distribuir los PDF por empresa y por asesoría, y hacerlos recuperables en cualquier momento.

Presencia que respeta el calendario. La presencia mensual tiene que contemplar horas trabajadas, vacaciones, bajas, descansos y festivos (que en Italia cambian de una localidad a otra) para cada empleado.

Una lectura operativa siempre viva. El panel de cada rol tenía que convertir los registros en cifras mensuales (plantilla, altas, bajas, dimisiones y transformaciones) siempre coherentes con los datos de debajo.

La solución

PayWise une un frontend Next.js consciente de los roles con una API Express/MongoDB y una cadena documental sobre S3, unificados por un modelo de permisos multi-tenant protegido con JWT.

001

Un frontend Next.js consciente de los roles

El cliente está construido sobre Next.js 15 (App Router) con React 19, el sistema de componentes NextUI y Tailwind CSS. Una sola carcasa autenticada muestra una barra lateral, un conjunto de páginas y una vista de datos distintos para cada uno de los seis roles: master de la plataforma, asociación, contable, empresa, autónomo y onboarding. Las estadísticas mensuales listas para gráficos se calculan en el servidor y se presentan con tarjetas resumen y tablas limpias; date-holidays alimenta un calendario de presencia correcto.

002

Una API de nóminas y documentos

El backend es una API REST Express sobre MongoDB vía Mongoose, protegida con JWT y bcrypt. Los documentos de nómina son ciudadanos de primera: nóminas y formularios de movimiento se generan como PDF (jsPDF / pdf-lib) y se guardan en Amazon S3 mediante una cadena Multer–S3, mientras que el correo transaccional (Nodemailer) y el registro estructurado (Winston) completan la superficie operativa.

003

Un solo modelo de datos multi-tenant

Un único conjunto de colecciones (usuarios, empresas, empleados, movimientos, nóminas y presencia) está acotado por asesoría y por la asignación contable–empresa. Los mismos registros alimentan el panel de cada rol: el contable ve los movimientos mensuales de las empresas que lleva, la asesoría ve a sus contables y empresas agregados, y el master ve toda la plataforma, todo reconciliado desde una única fuente de verdad.

Funciones clave

Paneles por rol

Cada rol aterriza en un panel ajustado a su lugar en la jerarquía. La asesoría ve a sus contables asociados, las empresas clientes y la plantilla total, además de los movimientos mensuales por empresa. El contable ve solo las empresas que tiene asignadas, con altas, bajas, dimisiones y transformaciones del mes. El master de la plataforma ve todas las asesorías, empresas y empleados de la red, con informes descargables.

Gestión de personal

Para cada empresa el contable trabaja sobre un registro de empleados siempre al día: nombres, tipo y nivel de contrato, y estado. Desde ahí registra todos los movimientos: un alta mediante un formulario guiado, o una baja, una dimisión, una prórroga o una transformación sobre un empleado existente, cada una recogida junto a su documento PDF.

Control de presencia

La presencia se registra en una cuadrícula mensual, un empleado cada vez: horas trabajadas y tipo de jornada para cada día del mes, con herramientas de relleno rápido y totales corrientes de días trabajados, vacaciones, bajas y otras ausencias. Los festivos se resuelven solos desde el calendario, así el mes refleja siempre los días no laborables reales.

Gestión de nóminas

El área de nóminas es donde vive el resultado del trabajo: los PDF mensuales organizados por empresa y a nivel de asesoría, generados y guardados en almacenamiento cloud y descargables a demanda. Es la superficie compartida entre la asesoría y sus empresas clientes.

Alta de una nueva empresa

Las nuevas empresas clientes entran en el sistema con un registro estructurado (como sociedad o como autónomo) que recoge domicilio social y operativo, número de IVA, código ATECO, el CCNL aplicable y los documentos de apoyo. Las empresas pueden registrarse solas, y el contable puede darlas de alta directamente.

Tecnologías

001

Frontend

  • Next.js 15 (App Router) with a single role-aware dashboard shell
  • React 19
  • NextUI component system + Tailwind CSS for a consistent, responsive design
  • Chart.js (react-chartjs-2) for statistics · Framer Motion · lucide-react / react-icons · react-hot-toast
  • date-holidays for an accurate, locale-aware attendance calendar

002

Backend y API

  • Node.js with Express: REST API
  • MongoDB with Mongoose ODM: multi-tenant, role-scoped data model
  • JWT authentication with bcrypt-hashed credentials; role-based access control
  • Nodemailer transactional email · Winston (+ Loggly) structured logging

003

Documentos y almacenamiento

  • jsPDF / jspdf-autotable and pdf-lib for payslip and report generation
  • Amazon S3 via Multer–S3 (AWS SDK v3) for payslip and workforce-document storage
  • Busboy / Multer upload handling for supporting PDFs on every payroll action

Áreas de trabajo

El trabajo cubrió todo el ciclo de vida del producto, en estos frentes:

001

Diseño de productopaneles y flujos para seis roles bajo un solo sistema de diseño.

002

Ingeniería frontendcliente Next.js por roles, vistas de estadísticas y calendario de presencia.

003

Backend y APIservicios REST en Express y lógica de negocio de nóminas.

004

Datos y multi-tenancyesquema MongoDB acotado por asesoría y asignación.

005

Auth y control de accesosesiones JWT, hash de contraseñas y enrutado por rol.

006

Cadena documental y cloudgeneración de PDF y gestión documental sobre S3.

007

DevOps y despliegueplan de puesta en producción (abajo).

Producción y despliegue

PayWise se entregó a Fedimi y se está desplegando entre los contables de la asesoría y sus empresas clientes. A continuación, la arquitectura de producción prevista y los objetivos operativos fijados para ella.

001

Arquitectura de despliegue

El frontend se publica en una plataforma edge gestionada (Vercel) con optimización de imágenes, mientras que la API Express corre como servicio en contenedor detrás de un balanceador. Los datos viven en MongoDB Atlas con copias automáticas; los PDF de nómina se sirven desde Amazon S3 tras una CDN con URL firmadas y caducas, de modo que los documentos nunca son direccionables públicamente. Una tubería de GitHub Actions se encarga de CI/CD, y el stack está instrumentado con registro Winston/Loggly, seguimiento de errores y monitorización de disponibilidad. El acceso queda cerrado con un origen CORS estricto y sesiones JWT.

002

Endurecimiento para datos de nómina reales

Como la plataforma maneja datos personales de empleados y documentos legales, el despliegue añade cifrado en reposo de los PDF guardados, limitación de peticiones y saneamiento de entradas en el borde de la API, cookies de sesión seguras y no legibles desde JavaScript, y un rastro de auditoría completo sobre cada movimiento. Las consultas acotadas por rol garantizan que un contable nunca pueda alcanzar empresas distintas de las asignadas, y los enlaces a las nóminas son de vida corta y de un solo inquilino. La conservación y la exportación siguen los criterios del RGPD.

Objetivos previstos

Los objetivos del despliegue se plantearon como metas concretas:

Todo en uno

Clientes y contables, unificados

Llevar a una sola plataforma toda la cartera de empresas clientes de la asesoría y a sus contables.

Autoservicio

Nóminas por su cuenta, en cada empresa

Sustituir el reparto manual de nóminas por descargas a demanda, por su cuenta, para cada empresa.

<1 min

Para registrar un movimiento

Bajar de un minuto el tiempo para registrar un alta, una baja o un cambio de contrato, documento incluido.

<1 sec

Agregaciones en toda la red

Agregaciones mensuales del panel por debajo del segundo, en toda la red de empresas y empleados.

99.9%

Disponibilidad, con vuelta atrás automática

99,9% de disponibilidad prevista, con copias automáticas, documentos cifrados y vuelta atrás en un clic.

Nota: la arquitectura de despliegue y las cifras de esta sección describen la instalación de producción prevista y los objetivos operativos, no resultados medidos.

LilyByte

Creamos el producto. Tú creas el negocio.

Tú pones la idea. Nosotros el equipo, el proceso y la experiencia para hacerla real.

Email

info@lilybyte.com

Teléfono

+393514397419

Redes sociales

Instagram

LinkedIn

Aviso legal y privacidad

©2026. Todos los derechos reservados