A cross-platform desktop application for managing elevator maintenance operations, built with Electron and TypeScript.
Hera Flow is a desktop management system designed for elevator service and maintenance companies. It centralizes the tracking of customers, maintenance contracts, elevator equipment, and service history in a single application backed by a MongoDB database.
The application solves the operational problem of managing recurring maintenance schedules, warranty periods, and on-demand repair tasks across a large portfolio of customers and equipment. It also automates the generation of official maintenance report documents (.docx) directly from within the application, eliminating manual document preparation.
- Customer management: Create, view, update, and soft-delete customer records including company name, address, contract signing dates, acceptance dates, warranty expiration, and inspection dates.
- Maintenance contract management: Associate one or more time-bounded maintenance contracts with each customer, tracking contract numbers, start/end dates, and linked elevator equipment.
- Elevator equipment tracking: Record elevator specifications (load capacity, number of stops, quantity) per contract.
- Warranty and service history: Log every service visit against a customer with a sequential record number, visit date, task type (maintenance, warranty, customer-requested repair, company-requested repair, or other), maintenance checklist contents, and notes.
- Maintenance report generation: Generate pre-filled
.docxmaintenance report documents from a Word template in batch. Multiple reports are merged into a single output file separated by page breaks. - Active contract dashboard: Identify all customers with currently active maintenance contracts or active warranty periods at a glance.
- Trash and recovery: Soft-deleted customers and contracts are moved to a recycle bin. Records can be restored individually or permanently deleted. Deleting a customer cascades soft-deletion to its contracts, and restoring the customer restores those contracts.
- Configurable database connection: The MongoDB connection URL is configurable at runtime through the application UI and is persisted locally for subsequent launches.
- Node.js v18 or later (LTS recommended)
- npm v9 or later (bundled with Node.js)
- MongoDB v6 or later — a running instance accessible from the machine (local or remote)
-
Clone the repository:
git clone <repository-url> cd hera-flow
-
Install dependencies:
npm install
-
Create a
.envfile in the project root. This file is used to pre-configure the MongoDB connection URL:MONGO_URL=mongodb://localhost:27017/hera-flow
The connection URL can also be set or changed at any time through the application's settings screen.
Starts the Electron application with Vite HMR enabled for the renderer process:
npm run dev# Check all processes
npm run typecheck
# Check main and preload processes only
npm run typecheck:node
# Check renderer process only
npm run typecheck:web# Run ESLint
npm run lint
# Format all files with Prettier
npm run formatType-check the entire project and build all processes before packaging:
# Build (type-check + compile, no installer)
npm run build
# Build and package for the current platform
npm run build:win # Windows — produces an NSIS installer
npm run build:mac # macOS — produces a DMG
npm run build:linux # Linux — produces AppImage, Snap, and DEB packagesPackaged output is placed in the dist/ directory.
On first launch, the application will prompt for a MongoDB connection URL if one has not been saved. Enter the connection string for your MongoDB instance and the application will connect and persist the URL for future session