Systeme de Dashboards
3 dashboards adaptes aux roles : Particulier, Professionnel et Administration. Chaque interface est optimisee pour les besoins specifiques de son audience.
Overview
YaniPay propose un systeme de dashboards a 3 niveaux base sur les roles utilisateur. Chaque dashboard est isole, protege par RBAC (Role-Based Access Control) et optimise pour son audience cible.
69 Pages Uniques
40+ pages particulier, 14 pages pro, 15 pages admin
Protection RBAC
Middleware de verification JWT + rate limiting 100 req/min/IP
Redirections Intelligentes
Chaque role est redirige vers son dashboard dedie apres login
Architecture 3-Tiers
Chaque dashboard dispose de sa propre arborescence de routes, ses composants dedies et ses APIs specifiques. Le systeme de navigation s'adapte automatiquement au role de l'utilisateur connecte.
Particulier
PARTICULIER/dashboard
Tableau de bord utilisateur complet avec gestion des paiements, programmes de fidelite, DeFi, cartes et verification d'identite.
Professionnel
PROFESSIONNEL/pro
Outils business pour commercants et entrepreneurs : gestion de programmes de fidelite, base clients et analytics.
Administration
ADMIN/admin
Panel d'administration complet : gestion utilisateurs, revue KYC, monitoring systeme et statistiques globales.
Architecture Server-First
Les dashboards YaniPay utilisent l'architecture Server Components de Next.js 16. Les pages sont rendues cote serveur avec les donnees pre-chargees, et seuls les composants interactifs (formulaires, charts, filtres) sont des Client Components.
Protection des Routes
Toutes les routes dashboard sont protegees par le middleware proxy.tsqui verifie l'authentification JWT et le role de l'utilisateur avant d'autoriser l'acces.
// Role-based route protection
const ROUTE_PERMISSIONS = {
'/dashboard': ['PARTICULIER', 'ADMIN'], // 40+ pages
'/pro': ['PROFESSIONNEL', 'ADMIN'], // 14 pages
'/admin': ['ADMIN'], // 15 pages
};
// Middleware flow:
// 1. Extract JWT from auth-token cookie
// 2. Verify token signature & expiration
// 3. Check user role against route permissions
// 4. Rate limiting: 100 requests/min per IP
// 5. Allow or redirect to /auth/signin
export async function verifyRouteAccess(
pathname: string,
token: string
): Promise<{ allowed: boolean; redirect?: string }> {
const decoded = await verifyJWT(token);
if (!decoded) return { allowed: false, redirect: '/auth/signin' };
const requiredRoles = getRequiredRoles(pathname);
if (!requiredRoles.includes(decoded.role)) {
return { allowed: false, redirect: getRoleRedirect(decoded.role) };
}
return { allowed: true };
}JWT Verification
Token JWT extrait du cookie auth-token, verifie avec signature HMAC-SHA256 et expiration automatique.
Rate Limiting
100 requetes par minute par IP avec sliding window. Protection contre les attaques par force brute et les abus.
Redirections par Role
Apres authentification, chaque utilisateur est automatiquement redirige vers le dashboard correspondant a son role. Un utilisateur qui tente d'acceder a un dashboard non autorise est redirige vers le sien.
| Role | Redirect par Defaut | URL Dashboard | Pages |
|---|---|---|---|
| PARTICULIER | /dashboard | /dashboard/* | 40+ |
| PROFESSIONNEL | /pro | /pro/* | 14 |
| ADMIN | /admin | /admin/* | 15 |
Role ADMIN
Les administrateurs ont acces a tous les dashboards. Ils peuvent naviguer entre le panel admin, le dashboard particulier et le dashboard professionnel pour le support et le debugging.
Explorer les Dashboards
Dashboard Particulier
40+ pages : paiements, fidelite, DeFi, cartes, KYC
Dashboard Professionnel
14 pages : merchant tools, fidelite pro, clients
Panel Administration
15 pages : users, KYC review, monitoring, stats