v1.0 Novembre 2025
2.4

Spécifications Dashboard Partenaire

Interface de gestion pour commerçants — rewapp-partner

Avril 2026
Version reflects actual implementation
Angular 20 + Ionic 8
1

VUE D'ENSEMBLE

1.1Description

Le dashboard partenaire (rewapp-partner) est l'interface web permettant aux commerçants partenaires de REWAPP de gérer leur programme de fidélité : profil, programme de cashback, marketing, statistiques et paramètres.

C'est une application Angular + Ionic avec authentification JWT, permissions par rôle (système d'équipe), et routing protégé par AuthGuard + TeamPermissionsGuard.

1.2Fonctionnalités

  • Dashboard : vue d'ensemble (/dashboard)
  • Profil : informations du commerce (/profile)
  • Programme : configuration du cashback (/programme)
  • Marketing : événements et promotions (/marketing)
  • Statistiques : reporting (/statistics)
  • Informations : infos commerce (/informations)
  • Paramètres : paramètres équipe et compte (/settings)
  • KYB :Know Your Business (/kyb) — pour partenaires en attente de validation
PAS DE SCAN QR CODE DANS LE DASHBOARD

Le scan QR code pour débit de points se fait via l'application mobile du commerçant, PAS via ce dashboard web. Ce dashboard sert uniquement à la configuration et au pilotage.

2

AUTHENTIFICATION & INSCRIPTION

2.1Pages Publiques (sans auth)

Routes publiques

Path Composant Description
/login LoginPage Connexion commerçant
/inscription InscriptionPage Inscription nouveau partenaire
/verify-email VerifyEmailPage Vérification email après inscription
/accept-invite AcceptInvitePage Acceptation invitation membre équipe

2.2Flux d'Inscription

Inscription Nouveau Partenaire
  1. 1

    Remplissage formulaire inscription

    POST /api/auth/register/partner

  2. 2

    Envoi email de vérification

    Lien valable 24h

  3. 3

    Vérification email

    POST /api/auth/verify-email

  4. 4

    Redirection vers KYB

    Processus Know Your Business

  5. 5

    Validation admin

    Compte en pending_approval → approved

  6. 6

    Accès au dashboard

    Sidebar visible selon permissions

3

ARCHITECTURE & NAVIGATION

3.1Structure du Projet

rewapp-partner/src/app/
├── app.component.ts
├── app.config.ts
├── app.routes.ts              # Routes + AuthGuard + TeamPermissionsGuard
├── core/
│   └── guards/
│       ├── auth.guard.ts       # Protection authentification
│       └── team-permissions.guard.ts  # Filtrage par permission
├── pages/
│   ├── login/                 # LoginPage
│   ├── inscription/            # InscriptionPage
│   ├── verify-email/          # VerifyEmailPage
│   ├── accept-invite/         # AcceptInvitePage
│   ├── kyb/                   # KybPage (pending_approval)
│   ├── dashboard/              # DashboardPage
│   ├── profile/               # ProfilePage
│   ├── programme/             # ProgrammePage
│   ├── marketing/             # MarketingPage
│   ├── statistics/            # StatisticsPage
│   ├── informations/          # InformationsPage
│   └── settings/              # SettingsPage
├── services/
└── shared/
    ├── components/
    │   ├── app-shell/         # AppShellComponent
    │   ├── sidebar/           # SidebarComponent
    │   └── user-card/         # UserCardComponent
    └── services/
        └── toast/             # ToastService

3.2Routes

Routes Angular

Path Composant Guard Permission
/login LoginPage Public
/inscription InscriptionPage Public
/verify-email VerifyEmailPage Public
/accept-invite AcceptInvitePage Public
/ redirect → /dashboard AuthGuard
Pages protégées (AppShell)
/kyb KybPage AuthGuard
/dashboard DashboardPage AuthGuard + TeamPermissionsGuard dashboard.view
/profile ProfilePage AuthGuard + TeamPermissionsGuard settings.manage
/programme ProgrammePage AuthGuard + TeamPermissionsGuard settings.manage
/marketing MarketingPage AuthGuard + TeamPermissionsGuard marketing.manage
/statistics StatisticsPage AuthGuard + TeamPermissionsGuard statistics.view
/informations InformationsPage AuthGuard — (tous rôles)
/settings SettingsPage AuthGuard + TeamPermissionsGuard settings.manage

3.3Sidebar Navigation

L'AppShellComponent wrap les pages protégées et affiche la sidebar. La navigation est filtrée dynamiquement selon les permissions du membre connecté.

Navigation Principale

ID Label Icône Route Permission
dashboard Tableau de bord home.svg /dashboard dashboard.view
profile Profil shop.svg /profile settings.manage
programme Programme discount.svg /programme settings.manage
marketing Marketing calendar.svg /marketing marketing.manage
statistics Statistiques chart-bars.svg /statistics statistics.view

Navigation du Bas

ID Label Icône Route Permission
informations Informations info.svg /informations Tous (pas de filtre)
settings Paramètres settings.svg /settings settings.manage

Filtrage dynamique : la sidebar affiche/masque les liens selon les permissions du membre connecté (récupérées live depuis le backend, pas depuis le JWT). Un membre avec uniquement dashboard.view verra seulement Dashboard + Informations.

4

PAGES DU DASHBOARD

4.1Dashboard

Route : /dashboard | Composant : DashboardPage

Page d'accueil après connexion. KPIs principaux, dernières transactions, alertes.

4.2Profil

Route : /profile | Composant : ProfilePage

Gestion des informations du commerce : nom, adresse, horaires, logo, coordonnées.

4.3Programme

Route : /programme | Composant : ProgrammePage

Configuration du programme de cashback : taux de fidélisation, paliers, bonus, programme d'établissement.

4.4Marketing

Route : /marketing | Composant : MarketingPage

Gestion des événements et promotions. Créer, modifier, activer/désactiver des événements.

4.5Statistiques

Route : /statistics | Composant : StatisticsPage

Reporting détaillé : transactions, points émis, évolution du programme, performances par période.

4.6Autres Pages

Pages restantes

Route Composant Usage
/informations InformationsPage Informations du commerce (visible par tous les membres)
/settings SettingsPage Paramètres : équipe, invitations, sécurité
/kyb KybPage Know Your Business — pour partenaires en attente de validation
5

PERMISSIONS & ÉQUIPE

5.1Système de Permissions

Chaque membre d'équipe possède des permissions spécifiques. Le TeamPermissionsGuard vérifie la permission requise avant d'afficher une page.

Permissions

Permission Description Pages accessibles
dashboard.view Vue dashboard Dashboard
settings.manage Gestion paramètres et programme Profil, Programme, Paramètres
marketing.manage Gestion marketing et événements Marketing
statistics.view Consultation des statistiques Statistiques

5.2Gestion d'Équipe

  • Invitation par email de nouveaux membres (/accept-invite)
  • Affectation de permissions par rôle
  • Révoquer l'accès à un membre
  • Filtrage dynamique de la sidebar selon permissions live
6

STACK TECHNIQUE

6.1Technologies

Stack

Catégorie Technologie Version
Framework Angular 20.x (standalone components)
UI Ionic 8.x
Styling SCSS Composant-scoped
Auth JWT Via AuthService
Routing Angular Router Lazy-loaded pages
HTTP HttpClient Angular
Notifications ToastService DOM-based
Déploiement CapRover rewapp-partner container

6.2Architecture

  • Routing avec lazy-loading (chaque page = chunk séparé)
  • AppShellComponent = layout wrapper avec sidebar
  • Icons SVG dans src/assets/icons/
  • Services Angular dans src/app/services/
  • Modèles TypeScript dans src/app/models/
  • Sidebar collapsible (mobile)
  • Permissions filtrées live depuis le backend (pas juste JWT)