ERP de Gestión para Tapicería

Desarrollo full-stack · Backend · TFC de DAM Dual Software empresarial TFC de DAM Dual · Finalizado Java · Spring Boot · React · Electron · PostgreSQL

Trabajo de Fin de Ciclo: aplicación de escritorio para digitalizar y centralizar la gestión integral de un negocio de tapicería.

01 — Contexto

Un negocio real gestionado a mano

El taller de tapicería gestionaba su operativa diaria con Excel, papel y memoria. Presupuestos, pedidos, materiales y clientes vivían en sitios separados y sin conexión entre ellos.

Cada encargo es diferente: cambia el mueble, la tela, el relleno y las horas de mano de obra. Eso generaba errores en cotizaciones, poca trazabilidad y mucho tiempo invertido en tareas administrativas que se repetían a diario.

02 — Necesidades

Qué necesitaba el negocio

Presupuestos fiables Cotizaciones precisas que tengan en cuenta las variables del encargo: tipo de trabajo, materiales y tiempos.
Control de trabajos Estados visibles para todo el taller y seguimiento de cada encargo sin depender de la memoria del equipo.
Información centralizada Clientes, telas, tarifas y el histórico de cada proyecto accesible desde un solo sitio.
Facturación y documentación Generación de documentos PDF y facturación electrónica integrada, sin recurrir a herramientas externas.
Sin configuración técnica Una aplicación que funcione en Windows sin que el usuario tenga que instalar o configurar Java, PostgreSQL ni ningún entorno de desarrollo.

03 — Solución

Funcionalidades del ERP

Clientes y trabajos Gestión centralizada de clientes, trabajos de tapicería y su histórico completo. Estados y seguimiento de cada encargo.
Presupuestos y documentos PDF Creación de presupuestos con reglas de cálculo según materiales y tiempos. Generación de documentos PDF listos para entregar al cliente.
Facturación electrónica Facturación electrónica integrada en la aplicación.
Catálogo textil y tarifas Gestión de artículos, productos y precios. Catálogos textiles con importación de tarifas desde Excel.
Autenticación y seguridad Sistema de autenticación con JWT y cifrado de contraseñas con BCrypt.
Castellano y gallego Internacionalización completa en los dos idiomas del negocio.
Aplicación instalable Producto de escritorio para Windows con persistencia local. El usuario instala y utiliza sin configurar nada.

04 — Arquitectura

Cómo está construido

Backend

Java + Spring Boot API REST JPA / Hibernate PostgreSQL local Flyway para migraciones JWT + BCrypt

Frontend / Desktop

React + TypeScript Electron Generación de PDF Importación de Excel App empaquetada para Windows

La aplicación integra frontend, backend, base de datos y runtime en un mismo instalador de escritorio. El usuario ejecuta la aplicación directamente, sin instalar Java, PostgreSQL, Node ni ningún entorno de desarrollo.

05 — Retos técnicos

Complejidad del proyecto

01

Integración React + Electron + Spring Boot

Coordinar el frontend React dentro de Electron con un backend Spring Boot que arranca y se detiene junto con la aplicación de escritorio. Gestionar el ciclo de vida del backend desde el proceso principal de Electron.

02

PostgreSQL local y persistencia

Incluir PostgreSQL como base de datos local dentro de la aplicación empaquetada. Flyway se encarga de las migraciones para que la estructura evolucione junto con las actualizaciones del software.

03

Empaquetado y distribución

Empaquetar todas las dependencias necesarias (Java runtime, PostgreSQL, frontend y backend) en un instalador de Windows que funcione en equipos sin entorno de desarrollo preparado.

04

Importación y procesamiento de datos

Procesamiento de tarifas textiles desde archivos Excel y generación de documentos PDF desde la lógica de negocio del backend.

05

Seguridad y facturación

Autenticación con JWT y cifrado BCrypt. Integración de facturación electrónica dentro del flujo de gestión de la aplicación.

06 — Resultado

Un sistema empresarial completo

El resultado es una aplicación de escritorio que centraliza la operativa del taller —presupuestos, trabajos, clientes, catálogo y facturación— en una única herramienta instalable.

El proyecto me obligó a trabajar en arquitectura, modelado de datos, seguridad, integración entre procesos, persistencia local, empaquetado y distribución, además del desarrollo backend y frontend.

07 — Aprendizajes

Qué me llevé del proyecto

01

Pensar en dominio, no en CRUD

Modelar las reglas de un negocio real obliga a entender el dominio. Cada excepción del taller se convierte en una regla de software que hay que resolver limpiamente.

02

Construir un producto, no solo código

Empaquetar, distribuir e instalar una aplicación para un usuario final cambia por completo cómo piensas en la arquitectura y en las dependencias del proyecto.

03

Backend con consecuencias reales

Un error en un presupuesto o en una factura no es un bug de clase: afecta a un cliente y a la operativa del negocio. Eso cambia cómo diseño validaciones, modelos y flujos.

Volver a proyectos