RTR - Replacing Paper Forms with a Local Server

I built a Windows desktop app that turns an admin's PC into a form server for the company intranet. No cloud, no accounts, no installation for end users.

Intermediate

When I was interning at Akemax, one of the things that stood out to me was how much of the day-to-day reporting still ran on paper. If someone on the factory floor needed to submit a report, they had to walk downstairs, grab a physical form, fill it out by hand, and turn it in. It worked, but it was slow and disruptive. I kept thinking: why not just put the forms on a server?

That idea stuck with me. The people using these forms aren't programmers. They don't want to install software, create accounts, or learn a new tool. They just need to fill out a form and get back to work. So whatever I built had to be dead simple - open a URL, pick a form, fill it out, submit.

That's where RTR (Real-Time Reporting) came from.

Step 1: What RTR Actually Does

Once the app launches, it runs on the administrator's desktop and creates a local server. Users on the same network can visit the administrator's URL and access the form page, where they can select a form, enter the date and required information, and submit it.

From the admin app, the administrator can view submitted forms and create or modify forms as needed.

# 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

Step 2: Why No User Accounts

Rather than using individual user accounts, RTR records the MAC address of the device used to submit each form. Since companies typically have a fixed number of devices connected to their network, this provides a simple way to associate submissions with a device without requiring employees to log in.

I decided to take this approach because, in the spirit of forms, anyone should be able to pick up a form and fill it out without having to create an account or log in first.

Step 3: Security by Network

RTR is designed specifically for use on intranets. It does not accept connections from outside the local network, so its security is essentially dependent on the security of the network it is running on.

The admin panel itself is a native Electron window that communicates exclusively through inter-process communication - no network socket is ever opened for it, making it unreachable from the LAN regardless of firewall settings. The form server binds only to the LAN-facing network adapter and restricts access to whitelisted IP addresses or CIDR ranges.

Step 4: Key Features

  • Form builder - create and modify report forms with different question types
  • Submission browser - view, filter, and search through collected responses
  • CSV export - export submissions for analysis in Excel, Google Sheets, or any data tool
  • IP whitelisting - control exactly which devices can access and submit forms
  • Device tracking - MAC address recording links submissions to devices
  • Fully local - all data stays in SQLite on the admin's machine, no cloud required

Step 5: Tech Stack

RTR is built with:

  • Electron - native desktop shell for the admin panel
  • Node.js + Express - lightweight HTTP server for form distribution
  • SQLite - zero-config local database
  • NSIS - Windows installer packaging

Step 6: Download

DOWNLOAD RTR v0.1.0 (Windows x64)

Or clone and build from source:

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
Note: The installer is for Windows 10/11 (x64). On first launch, Windows Firewall will ask to allow LAN access - accept it so other devices can reach the form server.

While this isn't using any fancy new AI technologies, it kind of reminds me of why I went into computer science in the first place: to use technology to make people's lives easier, help them work more efficiently, and get things done.

If you have some free time, go ahead and check it out. It's MIT-licensed, so anyone can use or modify the code.