v1.0 Novembre 2025
2.3

Spécifications Dashboard Admin

Interface d'administration Angular + Ionic

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

VUE D'ENSEMBLE

1.1Description

Le dashboard admin (rewapp-admin) est l'interface web permettant aux administrateurs de gérer l'ensemble de la plateforme REWAPP : utilisateurs, commerçants, transactions, événements, abonnements, facturation et analytique.

C'est une application Angular + Ionic avec un système d'authentification (JWT), une navigation par sidebar, et un routing protégé par AuthGuard.

1.2Fonctionnalités Principales

  • Dashboard : vue d'ensemble de l'activité (raccourci vers /dashboard)
  • Commerçants : liste, création, modification, détail partenaire (/merchants, /partner/:id)
  • Utilisateurs : liste, détail, gestion (/users, /user/:id)
  • Analytics : tableaux de bord analytiques (/analytics)
  • Statistiques : reporting détaillé (/statistics)
  • Events : gestion des événements (/events, /event/:id)
  • Transactions : historique des transactions (/transactions)
  • Demandes : détail d'une demande (/request-detail/:id)
  • Notifications : gestion des notifications (/notifications)
  • Commercial Discounts : remises commerciales (/commercial-discounts)
  • Billing : facturation (/billing)
  • Tarifs : plans d'abonnement (/subscription-plans)
  • Paramètres : configuration admin (/settings)
2

ARCHITECTURE & NAVIGATION

2.1Structure du Projet

rewapp-admin/src/app/
├── app.component.ts
├── app.config.ts
├── app.routes.ts           # Routes + AuthGuard
├── core/
│   └── guards/
│       └── auth.guard.ts   # Protection des routes authentifiées
├── pages/                   # Une sous-dossier par page
│   ├── login/              # LoginPage
│   ├── dashboard/           # DashboardPage
│   ├── partner/:id         # PartnerPage
│   ├── statistics/          # StatisticsPage
│   ├── settings/            # SettingsPage
│   ├── request-detail/:id/  # RequestDetailPage
│   ├── notifications/      # NotificationsPage
│   ├── users/               # UsersPage
│   ├── user/:id/            # UserDetailPage
│   ├── merchants/           # MerchantsPage
│   ├── analytics/           # AnalyticsPage
│   ├── events/             # EventsPage
│   ├── event/:id/           # EventDetailPage
│   ├── transactions/         # TransactionsPage
│   ├── commercial-discounts/ # CommercialDiscountsPage
│   ├── billing/             # BillingPage
│   └── subscription-plans/   # SubscriptionPlansPage
├── services/
└── shared/
    └── components/
        ├── app-shell/       # AppShellComponent (sidebar + layout)
        ├── sidebar/         # SidebarComponent (navigation)
        └── user-card/       # UserCardComponent (profil admin)

2.2Routes

Routes Angular

Path Composant Guard
/login LoginPage Public
/ redirect → /dashboard AuthGuard
** redirect → /dashboard AuthGuard
Pages protégées (dans AppShell)
/dashboard DashboardPage AuthGuard
/partner/:id PartnerPage AuthGuard
/statistics StatisticsPage AuthGuard
/settings SettingsPage AuthGuard
/request-detail/:id RequestDetailPage AuthGuard
/notifications NotificationsPage AuthGuard
/users UsersPage AuthGuard
/user/:id UserDetailPage AuthGuard
/merchants MerchantsPage AuthGuard
/analytics AnalyticsPage AuthGuard
/events EventsPage AuthGuard
/event/:id EventDetailPage AuthGuard
/transactions TransactionsPage AuthGuard
/commercial-discounts CommercialDiscountsPage AuthGuard
/billing BillingPage AuthGuard
/subscription-plans SubscriptionPlansPage AuthGuard

Redirects (anciennes routes)

Les routes /configuration, /security, /notification-settings, /marketing, /reports, /assistance-requests, /system-status, /profile, /change-password, /about redirigent toutes vers /settings.

2.3Sidebar Navigation

L'AppShellComponent wrap toutes les pages protégées et affiche la sidebar.

Navigation Principale

ID Label Icône Route
dashboard Tableau de bord home.svg /dashboard
merchants Commerçants shop.svg /merchants
users Utilisateurs group.svg /users
analytics Analytics chart-bars.svg /analytics
statistics Statistiques chart-trend.svg /statistics
subscription-plans Tarifs discount.svg /subscription-plans

Navigation du Bas

ID Label Icône Route
settings Paramètres settings.svg /settings
3

AUTHENTIFICATION

3.1Login

  • Route : /loginLoginPage
  • Accessible publiquement (pas de AuthGuard)
  • Service : AuthService
  • APrès login réussi → redirection vers /dashboard
  • Logout → suppression token + redirection /login

3.2Protection des Routes

  • AuthGuard dans core/guards/auth.guard.ts
  • Vérifie la présence et validité du token JWT
  • Si non authentifié → redirection vers /login
  • Toutes les routes enfants de AppShellComponent sont protégées
4

PAGES DU DASHBOARD

4.1Tableau de Bord

Route : /dashboard | Composant : DashboardPage

Page d'accueil après login. Affiche les KPIs principaux et les dernières activités.

4.2Commerçants

Pages

Route Composant Usage
/merchants MerchantsPage Liste des commerçants
/partner/:id PartnerPage Détail d'un partenaire

4.3Utilisateurs

Pages

Route Composant Usage
/users UsersPage Liste des utilisateurs
/user/:id UserDetailPage Détail d'un utilisateur

4.4Analytics & Statistiques

Pages

Route Composant Usage
/analytics AnalyticsPage Tableaux de bord analytiques
/statistics StatisticsPage Reporting détaillé

4.5Événements

Pages

Route Composant Usage
/events EventsPage Liste des événements
/event/:id EventDetailPage Détail d'un événement

4.6Autres Pages

Pages restantes

Route Composant Usage
/transactions TransactionsPage Historique des transactions
/request-detail/:id RequestDetailPage Détail d'une demande
/notifications NotificationsPage Gestion des notifications
/commercial-discounts CommercialDiscountsPage Remises commerciales
/billing BillingPage Facturation
/subscription-plans SubscriptionPlansPage Plans d'abonnement (Tarifs)
/settings SettingsPage Paramètres admin (accueille aussi les anciennes routes)
5

STACK TECHNIQUE

5.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
Notifications ToastService DOM-based
Déploiement CapRover rewapp-admin container

5.2Architecture

  • Routing avec lazy-loading (chaque page est un chunk séparé)
  • AppShellComponent = layout wrapper avec sidebar — ne se recharge pas au change de route
  • Icons SVG dans src/assets/icons/
  • Services Angular dans src/app/services/
  • Modèles TypeScript dans src/app/models/
  • Sidebar collapsible (mobile)