Desktop Data-Export Tool for a Mobility Platform
A car-sharing / mobility platform
Overview
A cross-platform desktop application for exporting and transforming operational data for a car-sharing / mobility platform. Built on Electron + React + TypeScript, it gives operators a packaged tool for working with fleet/usage data as CSV.
Why It Exists
Operations teams often need a self-contained desktop utility, not a web app, to pull, reshape and export reporting data (here, “SMTC” export sets) into CSV for downstream systems and authorities, with one-click distribution and updates rather than manual installs.
What We Built
An Electron application scaffolded from the Electron-React-Boilerplate, organized into the standard actions / reducers / containers / components / store structure with a typed (TypeScript) main and renderer process. It centers on CSV handling, a full toolkit of csv-parse, csv-parser, csv-stringify and csvtojson, with moment-timezone for correct time handling across regions, Axios for fetching source data, and a Bootstrap/react-bootstrap UI. Desktop concerns are covered by electron-store (settings), electron-log (diagnostics) and electron-updater (auto-updates), and builds run through both Azure Pipelines and GitHub Actions.
Technologies & Approach
Electron + React was chosen to ship a single codebase as a native-feeling desktop app across platforms, while the React/Redux/TypeScript stack kept the UI consistent with the studio’s web work. The deep CSV tooling and timezone handling reflect the tool’s real job: reliable, format-correct data export.
Outcome / Impact
Delivered a packaged, auto-updating desktop export tool for the mobility platform’s operations. Demonstrates building and distributing cross-platform Electron utilities with robust data-transformation capabilities.
Capabilities Demonstrated
- Cross-platform desktop apps with Electron + React + TypeScript
- CSV import / transform / export pipelines
- Timezone-correct data handling
- Auto-updating desktop distribution (electron-updater)
- CI packaging via Azure Pipelines and GitHub Actions