RTR - Remplacer les formulaires papier par un serveur local

J'ai créé une application de bureau Windows qui transforme le PC d'un administrateur en serveur de formulaires pour l'intranet de l'entreprise. Pas de cloud, pas de comptes, pas d'installation pour les utilisateurs finaux.

Intermediate

Lorsque je faisais mon stage chez Akemax, l'une des choses qui m'avait frappé, c'était à quel point une grande partie du reporting quotidien reposait encore sur le papier. Si quelqu'un sur le sol de l'usine devait soumettre un rapport, il devait descendre, prendre un formulaire papier, le remplir à la main et le remettre. Ça fonctionnait, mais c'était lent et perturbant. Je me disais sans cesse : pourquoi ne pas simplement mettre les formulaires sur un serveur ?

Cette idée m'est restée en tête. Les personnes qui utilisent ces formulaires ne sont pas des programmeurs. Elles ne veulent pas installer de logiciel, créer des comptes ou apprendre un nouvel outil. Elles ont juste besoin de remplir un formulaire et de retourner au travail. Donc, ce que je construirais devait être d'une simplicité absolue - ouvrir une URL, choisir un formulaire, le remplir, le soumettre.

C'est de là qu'est né RTR (Real-Time Reporting).

Étape 1 : Ce que fait réellement RTR

Une fois l'application lancée, elle s'exécute sur le bureau de l'administrateur et crée un serveur local. Les utilisateurs sur le même réseau peuvent visiter l'URL de l'administrateur et accéder à la page de formulaires, où ils peuvent sélectionner un formulaire, saisir la date et les informations requises, puis le soumettre.

Depuis l'application d'administration, l'administrateur peut consulter les formulaires soumis et créer ou modifier des formulaires selon les besoins.

# 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

Étape 2 : Pourquoi pas de comptes utilisateur

Plutôt que d'utiliser des comptes utilisateur individuels, RTR enregistre l'adresse MAC de l'appareil utilisé pour soumettre chaque formulaire. Comme les entreprises ont généralement un nombre fixe d'appareils connectés à leur réseau, cela fournit un moyen simple d'associer les soumissions à un appareil sans obliger les employés à se connecter.

J'ai décidé d'adopter cette approche car, dans l'esprit des formulaires, n'importe qui devrait pouvoir prendre un formulaire et le remplir sans avoir à créer un compte ou à se connecter au préalable.

Étape 3 : La sécurité par le réseau

RTR est conçu spécifiquement pour être utilisé sur des intranets. Il n'accepte pas les connexions provenant de l'extérieur du réseau local, donc sa sécurité dépend essentiellement de la sécurité du réseau sur lequel il fonctionne.

Le panneau d'administration lui-même est une fenêtre Electron native qui communique exclusivement par communication inter-processus - aucun socket réseau n'est jamais ouvert pour celui-ci, le rendant inaccessible depuis le LAN quels que soient les paramètres du pare-feu. Le serveur de formulaires se lie uniquement à l'adaptateur réseau côté LAN et restreint l'accès aux adresses IP ou plages CIDR autorisées.

Étape 4 : Fonctionnalités clés

  • Constructeur de formulaires - créez et modifiez des formulaires de rapport avec différents types de questions
  • Navigateur de soumissions - consultez, filtrez et recherchez parmi les réponses collectées
  • Export CSV - exportez les soumissions pour analyse dans Excel, Google Sheets ou tout outil de données
  • Liste blanche IP - contrôlez précisément quels appareils peuvent accéder aux formulaires et les soumettre
  • Suivi des appareils - l'enregistrement des adresses MAC lie les soumissions aux appareils
  • Entièrement local - toutes les données restent dans SQLite sur la machine de l'administrateur, aucun cloud nécessaire

Étape 5 : Stack technique

RTR est construit avec :

  • Electron - shell de bureau natif pour le panneau d'administration
  • Node.js + Express - serveur HTTP léger pour la distribution des formulaires
  • SQLite - base de données locale sans configuration
  • NSIS - packaging de l'installateur Windows

Étape 6 : Téléchargement

TÉLÉCHARGER RTR v0.1.0 (Windows x64)

Ou clonez et compilez depuis les sources :

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
Remarque : L'installateur est pour Windows 10/11 (x64). Au premier lancement, le pare-feu Windows demandera d'autoriser l'accès LAN - acceptez-le pour que les autres appareils puissent atteindre le serveur de formulaires.

Bien que cela n'utilise aucune nouvelle technologie d'IA à la mode, cela me rappelle pourquoi je me suis lancé dans l'informatique : utiliser la technologie pour simplifier la vie des gens, les aider à travailler plus efficacement et à accomplir leurs tâches.

Si vous avez un peu de temps libre, n'hésitez pas à y jeter un oeil. Le projet est sous licence MIT, donc tout le monde peut utiliser ou modifier le code.