Proyecto Principal

Atlántida360: cotización y envío de documentos para un negocio de impresiones

Caso de estudio de una plataforma web en evolución que busca simplificar la consulta de servicios, el cálculo de cotizaciones y la recepción segura de documentos PDF.

Frontend publicado · Cotizador funcional · Nueva integración backend en desarrollo

Contexto

Atlántida360 nace para apoyar la digitalización de un negocio real de impresiones, fotocopias, digitalización y anillado en Estación Central. El objetivo del sitio es permitir que los clientes conozcan los servicios disponibles, estimen el valor de un trabajo y envíen la información necesaria antes de acudir al local.

El sitio público presenta servicios, ubicación, medios de contacto y acceso al cotizador online.

Problema

Cotizar documentos puede requerir conocer cuántas páginas contiene cada archivo, cuántas copias necesita el cliente, si la impresión será por una o ambas caras y si requiere anillado. Cuando existen varios archivos PDF, este proceso puede generar errores o intercambios adicionales de mensajes.

Solución

Desarrollé una experiencia web que permite seleccionar uno o varios documentos PDF, obtener automáticamente la cantidad de páginas mediante PDF.js, calcular un valor estimado según las opciones seleccionadas y preparar la información para su envío mediante un formulario.

La aplicación incorpora carga múltiple de archivos, arrastrar y soltar (drag & drop), validación de documentos, detección de PDF ilegibles, resumen de archivos seleccionados y control de errores antes del envío.

Frontend desarrollado

  • HTML semántico y estructura modular.
  • Diseño responsive con CSS.
  • Navegación optimizada para dispositivos móviles.
  • Tema claro y oscuro.
  • Cotizador basado en reglas de tarifas.
  • Carga múltiple de archivos y drag & drop.
  • Integración con PDF.js para lectura de páginas.
  • Mensajes accesibles mediante aria-live.
  • Barra de progreso usando XMLHttpRequest.
  • Metadatos SEO, Open Graph y JSON-LD.
  • robots.txt, sitemap.xml y rutas limpias con Vercel.

Arquitectura en desarrollo

Actualmente el proyecto se encuentra migrándose hacia una arquitectura con API independiente desarrollada en Node.js y Express.

La solución contempla una ruta POST /formularios que recibirá datos del formulario y documentos PDF mediante una única solicitud multipart. Los archivos serán validados en el servidor, almacenados de forma privada y sus metadatos persistidos en PostgreSQL.

El despliegue proyectado considera:

  • Frontend en Vercel.
  • API en Google Cloud Run.
  • Documentos privados en Google Cloud Storage.
  • Persistencia en PostgreSQL.
  • Notificaciones por correo electrónico.

Decisiones técnicas y aprendizajes

  • PDF.js en el cliente: permite obtener páginas antes de calcular una cotización.
  • Validación temprana: evita cotizaciones sobre archivos ilegibles o corruptos.
  • Flujo multipart: simplifica la integración entre frontend y backend.
  • Validación duplicada: el backend vuelve a verificar toda la información recibida.
  • Almacenamiento privado: protege documentos que pueden contener información sensible.
  • Estados de progreso: diferencian el envío del archivo y el procesamiento de la solicitud.

Próximamente

  • Migración definitiva a la nueva API.
  • Persistencia de formularios y documentos.
  • Catálogo de productos y cuadros fotográficos.
  • Registro e inicio de sesión de usuarios.
  • Área privada para consulta de documentos de estudio.