Digster
Comparer le prix d'une même course d'un VTC à l'autre oblige à ouvrir les applications une par une et à saisir le même trajet à chaque fois — alors que l'écart de prix entre deux d'entre elles dépasse souvent 30 %.
Une seule saisie du trajet, tous les prix affichés côte à côte en quelques secondes, et un renvoi direct vers l'app choisie. Développée seul de bout en bout : mobile, API et infrastructure de cartographie.
RésultatApp solo de bout en bout, publiée sur l'App Store et Google Play (build EAS).
Tous les VTC comparés en une saisie
Un seul trajet renseigné, et Digster renvoie les prix côte à côte — puis ouvre directement l'application choisie.
Comment ça marche
L'app interroge les APIs des VTC en parallèle via un backend FastAPI que j'ai développé et hébergé (Render), pendant qu'elle affiche la carte en direct — MapLibre en natif, avec ses propres tuiles servies par un Worker Cloudflare plutôt que par Google Maps. Front Expo / React Native, l'ensemble développé avec Cursor.
Un trajet, tous les prix en parallèle
L'adresse de départ et d'arrivée est géocodée une fois (Photon, Nominatim en secours), l'itinéraire calculé par OSRM, puis le backend interroge les fournisseurs en parallèle : estimation Uber exacte via OAuth quand le compte est lié, estimations et deep links pour Bolt, Heetch, Citygo, G7. Les prix reviennent groupés et s'affichent côte à côte sur la carte.
Sa propre pile de cartes, sans Google
La carte tourne sur MapLibre en natif, alimentée par des tuiles servies via un Worker Cloudflare (tiles.digster-app.com) qui relaie OpenFreeMap — pas de facturation Google au chargement, pas de SDK propriétaire embarqué. RN Maps reste en repli si MapLibre échoue sur un appareil.
Lecture des reçus VTC en cascade OCR
Deux entrées : l'API Gmail (OAuth lecture seule, échange de jeton côté backend) qui récupère les mails de reçus tout seul, ou un PDF / une photo déposés à la main. pypdf et Pillow préparent le document, puis une cascade d'OCR monte en puissance seulement si besoin — Tesseract en local, OCR.space, Google Vision, Gemini Flash — jusqu'à ce qu'un montant fiable sorte. receipt_parser isole le prix, le fournisseur et la date, et la course rejoint l'historique.
Auth Digster et VTC, cloisonnées
Firebase Auth gère le compte Digster (Apple, Google, email, téléphone), les jetons vivent dans le SecureStore de l'appareil. Rattacher un compte VTC est une étape à part : l'OAuth Uber passe par auth.uber.com et transite par le backend, l'app ne détient jamais les secrets Uber. Les boucles OAuth se referment sur des deep links digster://.







