Outil interne qui importe automatiquement les parcs téléphonie, fibre et vidéosurveillance des clients dans la GMAO Bob! Desk.
- Python
- Flask
- React
- Tailwind CSS
- Vite
- pywebview
- PyInstaller
Contexte
Chez Socacom, chaque nouveau client implique de saisir à la main tout son parc (postes Alcatel-Lucent, lignes Centrex Unyc, liens fibre, caméras) dans Bob! Desk, la GMAO de l'entreprise. Une tâche longue, répétitive et source d'erreurs, à partir d'exports Excel hétérogènes selon le constructeur ou l'opérateur.
Rôle
Conception et développement solo, du besoin terrain jusqu'à l'exécutable livré aux collègues : lecture des exports, mapping vers le référentiel Bob! Desk, client API, interface et packaging.
Défis
Normaliser des sources très différentes (export EDN Alcatel, utilisateurs Unyc, liens FTTH/FTTO par opérateur, NVR/DVR et caméras) vers un même modèle ; éviter les doublons sur des clients déjà saisis ; pouvoir rejouer un import sans risque grâce à un mode Remplacer et un mode test (dry-run) qui n'écrit rien. Côté distribution, empaqueter une interface React et un backend Flask dans un seul .exe Windows sans installation.
Résultat
Un exécutable autonome utilisé en interne, avec détection automatique du type de fichier, anti-doublon, upload des photos d'équipements et rapports CSV/JSON par client. Il a donné naissance à DocsDesk, un second outil sur la même base qui convertit des documents en PDF et les dépose dans la fiche client.
Points clés
- 4 types d'import : Alcatel-Lucent, Unyc/Centrex, liens fibre, vidéosurveillance
- Mode test (dry-run) + mode Remplacer pour des imports rejouables
- Client HTTP Bob! Desk avec auth, retry et pagination
- Livré en .exe Windows autonome (PyInstaller + pywebview)