Spécifications Dashboard Admin
Interface d'administration Angular + Ionic
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)
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 |
AUTHENTIFICATION
3.1Login
- Route :
/login→LoginPage - Accessible publiquement (pas de AuthGuard)
- Service :
AuthService - APrès login réussi → redirection vers
/dashboard - Logout → suppression token + redirection
/login
3.2Protection des Routes
AuthGuarddanscore/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
AppShellComponentsont protégées
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) |
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)