© Made by Adam Bellanger

Internal tool that automatically imports customers' telephony, fibre and CCTV equipment into the Bob! Desk maintenance software.

Stack

Languages
  • Python
Front-end
  • React
  • Tailwind CSS
  • Vite
  • pywebview
Back-end
  • Flask
Tools & APIs
  • PyInstaller

Context

At Socacom, every new customer meant typing their whole installed base (Alcatel-Lucent phones, Unyc Centrex lines, fibre links, cameras) into Bob! Desk, the company's maintenance management software, by hand. A slow, repetitive, error-prone job, working from Excel exports that differ by manufacturer and carrier.

Role

Solo design and development, from the field need to the executable handed to colleagues: reading the exports, mapping them to the Bob! Desk data model, API client, interface and packaging.

Architecture

  1. Excel exports

    Alcatel EDN · Unyc · fibre · CCTV

  2. React interface

    Vite + Tailwind, pywebview window

  3. Local Flask API

    Type detection, YAML mapping, de-duplication

  4. Bob! Desk API

    Auth, retries, pagination

    Reports

    CSV + JSON per customer

Everything ships as a single Windows .exe (PyInstaller), no installation needed.

Challenges

Normalising very different sources (Alcatel EDN export, Unyc users, FTTH/FTTO links per carrier, NVR/DVR and cameras) into a single model; avoiding duplicates for customers already entered; making imports safe to replay with a Replace mode and a dry-run mode that writes nothing. On the distribution side, packaging a React interface and a Flask backend into a single Windows .exe that needs no installation.

Outcome

A standalone executable used in-house, with automatic file-type detection, duplicate protection, equipment photo upload and per-customer CSV/JSON reports. It led to DocsDesk, a second tool on the same foundation that converts documents to PDF and files them in the customer record.

Highlights

  • 4 import types: Alcatel-Lucent, Unyc/Centrex, fibre links, CCTV
  • Dry-run and Replace modes for replayable imports
  • Bob! Desk HTTP client with auth, retries and pagination
  • Shipped as a standalone Windows .exe (PyInstaller + pywebview)
Next projectHetzner infra / Homelab →