# đź’š PayMe Africa
> Application POS (Point of Sale) simple et rapide pour petits commerçants d'Afrique de l'Ouest.
> MVP ciblant le Sénégal — Wave, Orange Money, Espèces.
---
## 🎯 Vision
Permettre à n'importe quel vendeur de marché, gargote ou boutique de quartier d'encaisser ses clients en moins de 30 secondes, de suivre ses ventes et d'obtenir une preuve de transaction — sans avoir besoin d'une formation technique.
---
## 📱 Stack technique
| Couche | Technologie |
|---|---|
| Mobile | React Native + Expo |
| Backend | Node.js + Express |
| Base de données | PostgreSQL 15 |
| Cache / Sessions | Redis 7 |
| Auth | JWT + OTP SMS (Africa's Talking) |
| Paiements | Pattern Adaptateur (Wave, Orange Money, Cash) |
| Containerisation | Docker Compose |
---
## 🚀 Installation et lancement
### Prérequis
- Docker + Docker Compose
- Node.js 20+
- Expo CLI (`npm install -g expo-cli`)
### 1. Cloner et configurer
```bash
git clone
cd payme-africa
cp .env.example .env
# Éditez .env si nécessaire (les valeurs par défaut fonctionnent en dev)
```
### 2. Démarrer le backend
```bash
make start
# ou manuellement :
docker compose up -d
```
Services démarrés :
- PostgreSQL → `localhost:5432`
- Redis → `localhost:6379`
- API → `
localhost`
### 3. Vérifier que l'API tourne
```bash
make health
# ou :
curl
localhost
```
### 4. Démarrer l'application mobile
```bash
make mobile
# ou :
cd mobile && npm install && npx expo start
```
Scannez le QR code avec **Expo Go** (Android/iOS) ou appuyez sur `a` pour Android, `i` pour iOS simulateur.
---
## đź§Ş Comptes de test
### Marchand seed (pré-créé)
```
Téléphone : +221 77 123 45 67
Commerce : Boutique Aminata
Ville : Dakar
```
En mode développement, le code OTP est affiché dans :
1. Les logs du backend (`make logs-api`)
2. La réponse JSON de l'API (champ `devCode`)
3. Directement pré-rempli dans l'écran OTP de l'app
### Créer un compte de test
```bash
make test-register
# Puis récupérer l'OTP …