RTR - Reemplazando formularios en papel con un servidor local

Construí una aplicación de escritorio para Windows que convierte la PC de un administrador en un servidor de formularios para la intranet de la empresa. Sin nube, sin cuentas, sin instalación para los usuarios finales.

Intermediate

Cuando estaba haciendo prácticas en Akemax, una de las cosas que más me llamó la atención fue cuánto del trabajo diario de reportes todavía se hacía en papel. Si alguien en la planta de producción necesitaba enviar un informe, tenía que bajar las escaleras, tomar un formulario físico, llenarlo a mano y entregarlo. Funcionaba, pero era lento y disruptivo. Yo seguía pensando: ¿por qué no simplemente poner los formularios en un servidor?

Esa idea se me quedó grabada. Las personas que usan estos formularios no son programadores. No quieren instalar software, crear cuentas ni aprender una herramienta nueva. Solo necesitan llenar un formulario y volver al trabajo. Así que lo que construyera tenía que ser extremadamente simple - abrir una URL, elegir un formulario, llenarlo, enviarlo.

De ahí nació RTR (Real-Time Reporting).

Paso 1: Qué hace RTR realmente

Una vez que la aplicación se inicia, se ejecuta en el escritorio del administrador y crea un servidor local. Los usuarios en la misma red pueden visitar la URL del administrador y acceder a la página de formularios, donde pueden seleccionar un formulario, ingresar la fecha y la información requerida, y enviarlo.

Desde la aplicación de administración, el administrador puede ver los formularios enviados y crear o modificar formularios según sea necesario.

# The architecture in a nutshell:
┌─────────────────────┐     IPC only     ┌──────────────┐
│   Admin Panel (UI)  │ ◄──────────────► │   Main Process│
│   Electron Window   │                  │   (Node.js)   │
└─────────────────────┘                  └──────┬───────┘
                                                │
                                         ┌──────┴───────┐
                                         │  Express HTTP │
                                         │  Port 8080    │
                                         │  LAN only     │
                                         └──────┬───────┘
                                                │
                              ┌─────────────────┼─────────────────┐
                              │                 │                 │
                         Phone/Tablet      Desktop PC       Any Browser
                         on the LAN        on the LAN       on the LAN

Paso 2: Por qué no hay cuentas de usuario

En lugar de usar cuentas de usuario individuales, RTR registra la dirección MAC del dispositivo utilizado para enviar cada formulario. Dado que las empresas generalmente tienen un número fijo de dispositivos conectados a su red, esto proporciona una forma sencilla de asociar los envíos con un dispositivo sin requerir que los empleados inicien sesión.

Decidí tomar este enfoque porque, siguiendo el espíritu de los formularios, cualquier persona debería poder tomar un formulario y llenarlo sin tener que crear una cuenta o iniciar sesión primero.

Paso 3: Seguridad por red

RTR está diseñado específicamente para su uso en intranets. No acepta conexiones desde fuera de la red local, por lo que su seguridad depende esencialmente de la seguridad de la red en la que se ejecuta.

El panel de administración en sí es una ventana nativa de Electron que se comunica exclusivamente a través de comunicación entre procesos - nunca se abre un socket de red para él, lo que lo hace inaccesible desde la LAN independientemente de la configuración del firewall. El servidor de formularios se vincula únicamente al adaptador de red orientado a la LAN y restringe el acceso a direcciones IP o rangos CIDR incluidos en la lista blanca.

Paso 4: Características principales

  • Constructor de formularios - crea y modifica formularios de reporte con diferentes tipos de preguntas
  • Navegador de envíos - visualiza, filtra y busca entre las respuestas recopiladas
  • Exportación CSV - exporta los envíos para análisis en Excel, Google Sheets o cualquier herramienta de datos
  • Lista blanca de IP - controla exactamente qué dispositivos pueden acceder y enviar formularios
  • Rastreo de dispositivos - el registro de direcciones MAC vincula los envíos a los dispositivos
  • Completamente local - todos los datos se almacenan en SQLite en la máquina del administrador, sin necesidad de nube

Paso 5: Stack tecnológico

RTR está construido con:

  • Electron - shell de escritorio nativo para el panel de administración
  • Node.js + Express - servidor HTTP ligero para la distribución de formularios
  • SQLite - base de datos local sin configuración
  • NSIS - empaquetado del instalador de Windows

Paso 6: Descarga

DESCARGAR RTR v0.1.0 (Windows x64)

O clona y compila desde el código fuente:

git clone https://github.com/petermurrayx/RTR--Real-Time-Reporting.git
cd RTR--Real-Time-Reporting
npm install
npm start        # development mode
npm run build    # build the installer
Nota: El instalador es para Windows 10/11 (x64). En el primer inicio, el Firewall de Windows pedirá permitir el acceso a la LAN - acéptalo para que otros dispositivos puedan acceder al servidor de formularios.

Aunque esto no utiliza ninguna tecnología nueva y sofisticada de inteligencia artificial, me recuerda por qué elegí estudiar ciencias de la computación en primer lugar: usar la tecnología para facilitar la vida de las personas, ayudarlas a trabajar de manera más eficiente y lograr que las cosas se hagan.

Si tienes algo de tiempo libre, adelante y échale un vistazo. Tiene licencia MIT, así que cualquiera puede usar o modificar el código.