Skip to main content
L’application watt.ma est construite avec Expo (React Native) côté mobile et FastAPI + MongoDB côté serveur. Cette page couvre l’installation locale complète et le fonctionnement du Mock Mode qui vous permet de tester l’app sans backend.

Prérequis

  • Node.js v20 ou supérieur
  • Python 3.10 ou supérieur
  • MongoDB en local ou une URL de base cloud

1. Backend FastAPI

1

Se placer dans le dossier backend

2

Créer et activer l'environnement virtuel Python

3

Installer les dépendances

4

Copier et configurer le fichier d'environnement

Renseignez au minimum MONGO_URL dans le fichier .env.
5

Lancer le serveur FastAPI

La documentation interactive Swagger est disponible sur http://127.0.0.1:8000/docs. La documentation développeur en production est hébergée sur docs.watt.ma.

2. Frontend Expo (React Native)

1

Se placer dans le dossier frontend

2

Installer les paquets npm

3

Copier la configuration d'environnement

4

Lancer Expo

Utilisez le menu développeur :
  • i pour ouvrir le simulateur iOS
  • a pour ouvrir l’émulateur Android
  • Scannez le QR code du terminal avec l’app Expo Go sur un appareil physique

Mock Mode vs Production

L’application dispose d’un bascule global Mock Mode. Quand EXPO_PUBLIC_MOCK_MODE=true dans la config frontend :
  • Aucun serveur backend ni MongoDB n’est requis.
  • Les codes OTP sont validés automatiquement (n’importe quels 6 chiffres passent).
  • Les top-ups du portefeuille sont crédités instantanément pour les cartes de test.
  • Les métriques de session de recharge (kWh délivrés, temps écoulé, coût) sont incrémentées et mises à jour localement chaque seconde.
Passer EXPO_PUBLIC_MOCK_MODE=false redirige tout le trafic vers le serveur FastAPI configuré dans frontend/services/api.ts.

Matrice de configuration

Pour un premier test rapide, laissez EXPO_PUBLIC_MOCK_MODE=true : vous verrez immédiatement les écrans d’authentification, la carte des bornes et une session simulée sans installer MongoDB ni configurer Stripe.