Aller au contenu

Application Utilisateur

L'Application Utilisateur est la partie orientée client d'OvApp, conçue pour les utilisateurs qui utilisent les services d'échange de batteries OVES. Elle fournit un tableau de bord en libre-service pour gérer leur abonnement, trouver des stations d'échange et suivre leur activité.


Authentification et Connexion

Rider Login

Lorsqu'un utilisateur ouvre l'application, elle vérifie d'abord s'il a des identifiants enregistrés :

  • Utilisateur revenant — l'application affiche un écran « Bienvenue à nouveau » avec son nom et son profil, proposant deux options :
    • Continuer — le connecte et commence à pré-charger les données en arrière-plan pour une expérience plus rapide
    • Changer de Compte — efface les identifiants et affiche le formulaire de connexion

Welcome Back Screen

  • Nouvelle session — l'utilisateur voit un écran de connexion où il se connecte avec son numéro de téléphone et son mot de passe

Note

Les utilisateurs ne peuvent pas s'inscrire eux-mêmes directement sur cet écran. Ils peuvent uniquement se connecter avec les identifiants qui leur ont été fournis.


Écran d'Accueil

Rider Home

Une fois connecté, l'utilisateur atterrit sur l'écran d'Accueil, qui comporte quatre sections principales :

Carte Mon Véhicule

Affiche les informations sur le véhicule et l'abonnement de l'utilisateur :

Champ Description
ID du Véhicule Le véhicule assigné à l'utilisateur
Statut de paiement Actif, Renouvellement dû, En retard, etc.
Total des échanges Nombre d'échanges de batteries effectués
Dernier échange Quand le dernier échange a eu lieu

Ces données sont récupérées en appelant la mutation GraphQL identifyCustomer en utilisant leur code d'abonnement, qui retourne les données du plan de service, y compris le véhicule assigné, le nombre d'échanges, la consommation d'énergie et l'état de paiement.

Carte Solde du Compte

Affiche le solde du compte de l'utilisateur dans sa devise de facturation (ex. XOF).

  • Le solde est calculé à partir des données du service d'énergie : énergie restante (quota moins utilisé) multipliée par le prix unitaire
  • Un bouton Recharger permet à l'utilisateur d'ajouter des fonds

Actions Rapides

Bouton Action
Trouver une Station Navigue vers la vue cartographique des Stations
Mon QR Code Ouvre un modal affichant un QR code généré à partir de leur code d'abonnement (les techniciens scannent ceci lors des échanges)

Carte des Stations à Proximité

Une carte Leaflet/OpenStreetMap interactive affichant les stations d'échange à proximité sous forme de marqueurs.

Processus de découverte des stations :

  1. L'application publie une requête MQTT pour obtenir les IDs de flotte associés au plan d'abonnement de l'utilisateur.
  2. Elle interroge un endpoint GraphQL (getFleetAvatarsSummary) avec ces IDs de flotte pour obtenir les emplacements des stations et la disponibilité des batteries.

Chaque station affiche :

  • Nom de la station
  • Distance par rapport à l'utilisateur (calculée en utilisant la formule de Haversine avec GPS)
  • Nombre de batteries entièrement chargées disponibles

Interactions :

  • Appuyer sur une station zoome la carte
  • Appuyer sur la flèche de navigation trace une ligne d'itinéraire depuis la position de l'utilisateur jusqu'à la station

Écran des Stations

Stations

Une vue cartographique plein écran avec toutes les stations d'échange.

Fonctionnalités

  • Barre de recherche pour filtrer les stations par nom
  • Liste de stations sous la carte avec des fiches pour chaque station
  • Chaque fiche de station affiche :
Champ Description
Nom Nom de la station
Coordonnées Emplacement de la station
Distance Distance depuis la position actuelle de l'utilisateur
Batteries disponibles Nombre de batteries à 100% de charge uniquement

Interactions

  • Appuyer sur une station la met en évidence sur la carte
  • Le bouton Naviguer trace un itinéraire depuis la position actuelle de l'utilisateur jusqu'à la station sélectionnée
  • Nécessite la permission de localisation — affiche un fallback ou une invite si GPS est désactivé
  • Se met à jour dynamiquement avec les changements de localisation

Écran d'Activité

Activity

Un historique des transactions affichant tous les échanges et paiements, regroupés par date (Aujourd'hui, Hier, ou des dates spécifiques).

Source des Données

Les activités sont récupérées depuis l'endpoint GraphQL servicePlanActions, qui retourne les deux :

  • Actions de paiement — recharges, paiements d'abonnement
  • Actions de service — échanges de batteries, consommation d'électricité

Affichage

Chaque entrée affiche :

  • Icône de type — flèches d'échange, symbole monétaire, etc.
  • Titre — description de l'action
  • Montant — valeur de la transaction
  • Horodatage — quand cela s'est produit

Onglets de Filtrage

  • Tous — affiche tout
  • Échanges — historique des échanges de batteries uniquement
  • Paiements — historique des paiements et des recharges uniquement

État Vide

Affiche « Aucune activité trouvée » lorsque aucun enregistrement n'existe.


Écran de Profil

Profile

Affiche les informations personnelles de l'utilisateur et les paramètres du compte.

Informations Affichées

  • Avatar et nom complet de l'utilisateur
  • Numéro de téléphone
  • Solde du compte
  • Total des échanges
  • Nom du plan d'abonnement et date de validité
  • Informations sur le véhicule
  • Statut de paiement

Éléments du Menu

Élément Description
Détails du Compte Voir les informations personnelles ; changer le mot de passe via l'API Odoo
Mon Véhicule Identité et détails d'immatriculation du véhicule
Plan d'Abonnement Voir et gérer le plan et la facturation
Méthodes de Paiement Options de paiement liées
Aide et Support FAQ et contact du support / page de tickets
Déconnexion Se déconnecter de la session utilisateur

Un flux en plusieurs étapes pour ajouter des fonds au compte de l'utilisateur :

  1. Sélectionner le montant — choisir un montant prédéfini ou en saisir un personnalisé
  2. Choisir la méthode de paiement — choisir la méthode de paiement
  3. Saisir l'ID de transaction — fournir la référence de paiement
  4. Confirmer — soumettre la recharge

En cas de succès :

  • Le solde se met à jour immédiatement
  • Une nouvelle entrée d'activité apparaît dans l'historique

Permet à l'utilisateur de changer son mot de passe :

  1. Saisir le mot de passe actuel
  2. Saisir le nouveau mot de passe
  3. Confirmer

Après un changement réussi, l'application déconnecte l'utilisateur pour qu'il puisse se reconnecter avec les nouveaux identifiants.


Une barre de navigation en bas persistante avec quatre onglets pour basculer rapidement entre les écrans :

Onglet Écran
Accueil Tableau de bord avec carte véhicule, solde, actions rapides et stations à proximité
Stations Carte plein écran avec toutes les stations d'échange
Activité Historique des transactions avec filtres
Profil Informations personnelles, paramètres et gestion du compte

Résumé du Flux de Données

Lors de la connexion, l'application lance plusieurs appels API en parallèle pour la rapidité :

Appel API Données Retournées
API tableau de bord Odoo Résumé des paiements
API des abonnements Détails de l'abonnement actif
Mutation GraphQL identifyCustomer Véhicule, nombre d'échanges, solde énergétique
Requête GraphQL servicePlanActions Historique des activités
Requête MQTT + requête GraphQL getFleetAvatarsSummary Emplacements des stations et disponibilité des batteries

Chaque appel met à jour sa propre partie de l'IU indépendamment, ainsi l'utilisateur voit les données apparaître progressivement plutôt que d'attendre que tout se charge.