v1.0 Novembre 2025
4.4

Architecture Frontend
(Mobile + Web)

La solution de cashback nouvelle génération

24 novembre 2025
Version 1.0
1

VUE D'ENSEMBLE FRONTEND

1.1 Présentation Générale

L'architecture frontend de REWAPP couvre quatre applications distinctes, chacune optimisée pour son contexte d'utilisation et son audience cible. Toutes les applications partagent des principes communs de performance, sécurité et expérience utilisateur.

Applications Frontend

Application Technologie Type Utilisateurs Cibles
Application Mobile Angular + Ionic App Native iOS/Android Clients finaux
Site Vitrine Angular 20 + TailwindCSS v4 SPA Web (pas SSR) Prospects, SEO
Dashboard Admin Angular 20 + Ionic 8 PWA Équipe REWAPP
Dashboard Partenaire Angular 20 + Ionic 8 PWA Commerçants partenaires

1.2 Principes Architecturaux Frontend

L'architecture frontend de REWAPP suit plusieurs principes fondamentaux pour garantir performance, maintenabilité et expérience utilisateur optimale.

Séparation Des responsabilités
<100ms Temps réponse UI
Security By Design
WCAG 2.1 Niveau AA
  • Séparation des responsabilités : Chaque application frontend a un rôle spécifique et utilise les technologies les plus adaptées à son contexte.
  • Performance First : Optimisation du temps de chargement, réduction de la consommation de données mobiles et fluidité des interactions.
  • Security by Design : Authentification robuste via JWT, protection des données sensibles et conformité RGPD intégrée.
  • Responsive Design : Adaptation automatique à tous les types d'écrans et orientations (mobile, tablette, desktop).
  • Accessibilité : Conformité WCAG 2.1 niveau AA pour garantir l'accessibilité à tous les utilisateurs.
  • Maintenabilité : Code modulaire, réutilisable, testé et documenté avec couverture de tests minimale de 80%.

1.3 Communication avec le Backend

Toutes les applications frontend communiquent avec le backend via l'API REST sécurisée.

Configuration Communication

Élément Description Configuration
Load Balancer Point d'entrée unique (Traefik) Routage, auth, rate limiting
Authentification JWT avec refresh token Access: 15min, Refresh: 7 jours
Format de données JSON pour toutes les communications UTF-8, gzip compression
Gestion des erreurs Format standardisé avec codes HTTP Codes métier personnalisés
WebSockets Mises à jour temps réel (dashboards) Server-Sent Events (SSE), polling REST

1.4 Schéma d'Architecture Frontend Globale

Architecture
+------------------+     +------------------+     +------------------+
|   App Mobile     |     |   Site Vitrine   |     |   Dashboards     |
| Angular + Ionic  |     | Angular + Tailwind|    | Angular + Ionic  |
+--------+---------+     +--------+---------+     +--------+---------+
         |                        |                        |
         |        HTTPS/TLS 1.3   |                        |
         +------------------------+------------------------+
                                  |
                    +-------------+-------------+
                    |      Traefik             |
                    |   (Routing, TLS, Rate)   |
                    +-------------+-------------+
                                  |
                    +-------------+-------------+
                    |   Backend Monolithe       |
                    |      Modulaire            |
                    |      (NestJS)             |
                    +---------------------------+
2

ARCHITECTURE APPLICATION MOBILE (ANGULAR + IONIC)

2.1 Stack Technique Mobile

L'application mobile REWAPP utilise Angular avec Ionic et Capacitor pour permettre un développement cross-platform efficace tout en maintenant des performances natives.

Technologies Mobile

Technologie Version Rôle
Angular 20.x Framework enterprise-grade
Ionic Framework 8.x Composants UI natifs, cross-platform
Capacitor 8.x Build natif iOS/Android, APIs natives
Angular Services 20.x State management réactif via services
Ionic Router 8.x Navigation et routing
RxJS 7.x Programmation réactive
@capacitor/geolocation Latest Géolocalisation
Firebase Latest Push notifications

2.2 Structure des Dossiers

Structure Mobile
src/
├── app/                        # Module racine Angular
│   ├── core/                   # Services singleton, guards
│   │   ├── services/
│   │   ├── guards/
│   │   └── interceptors/
│   ├── shared/                 # Composants partagés
│   │   ├── components/
│   │   ├── directives/
│   │   └── pipes/
│   ├── features/               # Modules fonctionnels
│   │   ├── auth/               # Authentification
│   │   │   ├── login/
│   │   │   ├── register/
│   │   │   └── forgot-password/
│   │   ├── home/               # Page d'accueil
│   │   ├── transactions/       # Transactions
│   │   ├── qr-code/            # Scanner QR
│   │   ├── rewards/            # Récompenses
│   │   └── profile/            # Profil utilisateur
│   ├── app.component.ts
│   ├── app.module.ts
│   └── app-routing.module.ts
├── environments/               # Configuration par environnement
├── theme/                      # Variables Ionic/SCSS
├── assets/                     # Images, polices, etc.
└── main.ts                     # Point d'entrée

2.3 Gestion d'État (Services Angular)

L'application utilise les services Angular injectables avec RxJS (BehaviorSubject, Observable) pour la gestion d'état. Aucune bibliothèque NgRx n'est utilisée.

Services Angular

Service Données Gérées Méthodes Principales
AuthService Tokens JWT, état connexion login(), logout(), refreshToken()
UserService Profil utilisateur, préférences updateProfile(), getProfile()
PointsService Solde, historique, paliers getBalance(), generateQRCode()
TransactionsService Liste transactions, filtres getTransactions(), filterByDate()
TypeScript
// services/auth.service.ts
import { Injectable } from '@angular/core';
import { BehaviorSubject, Observable } from 'rxjs';
import { Storage } from '@ionic/storage-angular';
import { HttpClient } from '@angular/common/http';

@Injectable({ providedIn: 'root' })
export class AuthService {
  private authState$ = new BehaviorSubject<boolean>(false);
  private user$ = new BehaviorSubject<User | null>(null);

  constructor(
    private storage: Storage,
    private http: HttpClient
  ) {
    this.initStorage();
  }

  async initStorage() {
    await this.storage.create();
    const token = await this.storage.get('access_token');
    this.authState$.next(!!token);
  }

  isAuthenticated(): Observable<boolean> {
    return this.authState$.asObservable();
  }

  async login(credentials: LoginDto): Promise<void> {
    const response = await this.http.post<AuthResponse>('/api/auth/login', credentials).toPromise();
    await this.storage.set('access_token', response.accessToken);
    await this.storage.set('refresh_token', response.refreshToken);
    this.authState$.next(true);
  }
}

2.4 Navigation (Ionic Router)

Ionic Router (basé sur Angular Router) gère toute la navigation de l'application mobile avec une structure modulaire et lazy loading.

Structure Navigation
AppRoutingModule
├── AuthModule (lazy loaded, non connecté)
│   ├── /login → LoginPage
│   ├── /register → RegisterPage
│   ├── /forgot-password → ForgotPasswordPage
│   └── /verify-email → VerifyEmailPage
└── MainModule (lazy loaded, connecté + guards)
    ├── TabsModule (ion-tabs)
    │   ├── /home → HomePage
    │   ├── /transactions → TransactionsPage
    │   ├── /qr-code → QRCodePage
    │   ├── /rewards → RewardsPage
    │   └── /profile → ProfilePage
    └── Modal Pages
        ├── TransactionDetailPage
        ├── WithdrawalPage
        ├── SettingsPage
        └── NotificationsPage

Deep Linking

L'application supporte les deep links pour permettre la navigation depuis les notifications push ou les liens externes.

Schémas URL

Schéma URL Écran Cible Paramètres
rewapp://login LoginScreen redirect?
rewapp://transaction/:id TransactionDetailScreen id (UUID)
rewapp://qrcode QRCodeScreen amount?
rewapp://rewards RewardsScreen -
rewapp://settings SettingsScreen section?

2.5 Écrans Principaux

2.5.1 Écran d'Accueil (HomeScreen)

L'écran d'accueil affiche une vue d'ensemble du compte utilisateur avec les informations essentielles.

  • Solde de recoins avec valeur en euros (conversion 1 recoin = €0.20 soit 5 recoins/€)
  • Palier de fidélité actuel et progression
  • Dernières transactions (3-5 plus récentes)
  • Campagnes partenaires actives (featured)
  • Bouton d'action rapide vers génération QR code

2.5.2 Écran QR Code (QRCodeScreen)

COMPORTEMENT CRITIQUE

QR Code valide 15 minutes, usage UNIQUE. Animation couleur : vert (15-5min) → orange (5-2min) → rouge (2-0min)

  • Saisie du montant en points (minimum 10 points)
  • Validation du solde suffisant
  • Génération QR code avec signature HMAC-SHA256
  • Compteur visuel à rebours de 15 minutes
  • Expiration automatique avec déblocage des points

2.5.3 Écran Récompenses (RewardsScreen)

  • Affichage solde disponible et valeur en euros
  • Demande de virement (minimum €10.00)
  • Historique des demandes de virement
  • Statut des demandes (En attente, En cours, Effectué)
  • Estimation du délai de traitement (2-3 semaines)

2.6 Sécurité Mobile

Stockage Sécurisé

Donnée Stockage Méthode
Access Token Keychain (iOS) / Keystore (Android) Chiffré, secure enclave
Refresh Token Keychain / Keystore Chiffré, secure enclave
Préférences utilisateur Ionic Storage Non sensible
Cache API Ionic Storage TTL, invalidation

Certificate Pinning

Implémentation du certificate pinning pour prévenir les attaques MITM (Man-in-the-Middle).

Certificats pinnés

api.rewapp.fr (API principale) • cdn.rewapp.fr (CDN assets)

2.7 Performance Mobile

Optimisations Implémentées

Technique Description Gain
Ionic Capacitor Runtime natif optimisé pour les plugins Accès APIs natives
Lazy Loading Chargement différé des écrans non visibles -30% bundle initial
Image Caching Cache images avec Ionic/Capacitor Réduction bande passante
Memoization OnPush, trackBy, Pure Pipes Évite re-renders inutiles
List Virtualization FlatList avec windowSize optimisé Scroll fluide listes longues

Métriques Cibles

< 2s Démarrage à froid
< 500ms Démarrage à chaud
60 FPS Frame rate constant
< 50MB Taille app iOS
3

ARCHITECTURE SITE VITRINE (ANGULAR)

3.1 Stack Technique Site Vitrine

Le site vitrine REWAPP utilise Angular 20 avec TailwindCSS v4 en mode SPA. C'est une application web single-page, sans rendu serveur (SSR).

Technologies Web

Technologie Version Rôle
Angular 20.x Framework frontend TypeScript
Tailwind CSS 4.x Framework CSS utility-first
TypeScript 5.x Typage statique
Angular Router 20.x Routing SPA avec lazy loading

3.2 Structure des Dossiers

Structure Angular
src/
├── app/                        # Application Angular
│   ├── app.component.ts        # Composant racine
│   ├── app.routes.ts           # Routing Angular
│   ├── pages/
│   │   ├── home/              # Page d'accueil
│   │   ├── partenaires/       # Liste partenaires
│   │   │   └── [slug]/        # Fiche partenaire
│   │   ├── a-propos/          # Page à propos
│   │   ├── contact/           # Page contact
│   │   └── faq/               # FAQ
│   ├── core/                   # Services, guards, interceptors
│   └── shared/                # Composants réutilisables
│   ├── mentions-legales/page.tsx
│   ├── cgu/page.tsx
│   └── politique-confidentialite/page.tsx
├── components/
│   ├── layout/                 # Header, Footer, Navigation
│   ├── home/                   # Hero, Features, HowItWorks
│   ├── partners/               # PartnerCard, PartnerGrid
│   └── common/                 # Button, Card, SEO
├── lib/                        # API, utils
├── types/                      # Types TypeScript
└── public/                     # Images, icons, fonts

3.3 Stratégie de Rendu

Le site vitrine est une SPA Angular (single-page application). Toutes les pages sont servies côté client avec lazy loading par route.

Stratégies par Page

Page Stratégie Justification
Page d'accueil SPA + pré-rendu Contenu semi-statique, SEO critique
Liste partenaires SPA Données dynamiques via API
Fiche partenaire SPA Données via API partenaire
FAQ SPA Contenu statique lazy loaded
Pages légales SPA Contenu très stable

3.4 Optimisation SEO

Configuration SEO
// app.config.ts - Angular Meta service
export const appConfig: ApplicationConfig = {
  providers: [
    provideMeta({
      title: 'REWAPP - Cashback nouvelle génération',
      description: 'REWAPP transforme chaque achat en récompense. Cashback bancaire direct.',
      keywords: 'cashback, fidélité, remboursement, points, récompenses',
      openGraph: {
        type: 'website',
        locale: 'fr_FR',
        url: 'https://rewapp.fr',
        siteName: 'REWAPP',
      },
      twitter: { card: 'summary_large_image' },
      robots: { index: true, follow: true },
    }),
  ],
};

Éléments SEO Implémentés

  • Meta tags optimisés par page (title, description, keywords)
  • Sitemap XML généré automatiquement (/sitemap.xml)
  • Robots.txt configuré (/robots.txt)
  • Structured data JSON-LD (Organization, LocalBusiness, FAQ)
  • Balises Open Graph pour réseaux sociaux
  • URLs canoniques et balises hreflang

3.5 Performance Site Vitrine

Core Web Vitals Cibles

Métriques Performance

Métrique Cible Seuil "Bon"
LCP (Largest Contentful Paint) < 1.5s < 2.5s
FID (First Input Delay) < 50ms < 100ms
CLS (Cumulative Layout Shift) < 0.05 < 0.1
TTFB (Time to First Byte) < 200ms < 600ms

Optimisations Implémentées

  • Images : Angular img loading lazy, formats WebP, srcset responsive via HTML standard
  • Fonts : Préchargement Google Fonts avec font-display: swap, subset français uniquement
  • CSS : Tailwind CSS v4 avec purge automatique, critical CSS inline
  • JavaScript : Code splitting automatique par route Angular, tree shaking, minification
  • Caching : Headers cache optimisés, CDN Traefik
4

ARCHITECTURE DASHBOARD ADMIN (ANGULAR SPA)

4.1 Stack Technique Dashboard Admin

Le Dashboard Admin est une Angular SPA optimisée pour la gestion complète de la plateforme REWAPP.

Technologies Dashboard Admin

Technologie Version Rôle
Angular 20.x Framework UI
Ionic Framework 8.x Composants UI natifs (web components)
Angular Services 20.x State management et appels API
Angular Router 20.x Routing SPA avec guards
Chart.js 4.x Graphiques et visualisations
Angular Reactive Forms 20.x Gestion formulaires

4.2 Gestion d'État

Angular Services pour Données Serveur

Les services Angular injectables gèrent tout le cache serveur et la synchronisation des données avec le backend via RxJS.

TypeScript
// services/user.service.ts
@Injectable({ providedIn: 'root' })
export class UserService {
  private apiUrl = '/admin/users';

  constructor(private http: HttpClient) {}

  getUsers(filters?: UserFilters): Observable<PaginatedResponse<User>> {
    return this.http.get<PaginatedResponse<User>>(this.apiUrl, { params: filters as HttpParams });
  }

  updateUser(id: string, data: Partial<User>): Observable<User> {
    return this.http.put<User>(`${this.apiUrl}/${id}`, data);
  }
}

Services Angular avec RxJS

State Management (Services)

Store Données Persistance
authStore User admin, tokens, permissions localStorage (chiffré)
uiStore Sidebar collapsed, theme, langue localStorage
filtersStore Filtres tables (temporaires) Non

4.3 Modules Fonctionnels

Tableau de Bord Principal

KPIs affichés en temps réel :

  • Nombre total d'utilisateurs (avec variation période)
  • Nombre de partenaires actifs
  • Volume de transactions (jour/semaine/mois)
  • Revenus générés (commissions)
  • Points distribués vs utilisés

Gestion des Utilisateurs

  • Liste paginée avec tri et filtres
  • Recherche par nom, email, téléphone
  • Détail complet du profil utilisateur
  • Actions : bloquer, débloquer, supprimer (RGPD)
  • Export CSV des utilisateurs

Gestion des Partenaires

  • Liste des partenaires avec statut (en attente, validé, suspendu)
  • Workflow de validation des nouveaux partenaires
  • Configuration des taux de cashback
  • Gestion des abonnements premium

4.4 Sécurité Dashboard Admin

AUTHENTIFICATION RENFORCÉE OBLIGATOIRE

Email + mot de passe fort (12 caractères min) • 2FA obligatoire (TOTP) • Session timeout : 30 minutes

Contrôle d'Accès RBAC

Rôles et Permissions

Rôle Permissions
Super Admin Accès complet, configuration système, gestion des admins
Admin Gestion utilisateurs, partenaires, transactions, reporting
Support Consultation uniquement, support utilisateurs
5

ARCHITECTURE DASHBOARD PARTENAIRE (ANGULAR)

5.1 Stack Technique

Le Dashboard Partenaire est une Progressive Web App (PWA) Angular optimisée pour une utilisation mobile et desktop par les commerçants. Même stack technique que le Dashboard Admin.

Technologies PWA

Technologie Version Rôle
Angular 20.x Framework UI
Ionic Framework 8.x Composants UI natifs (web components)
TailwindCSS 4.x Framework CSS utility-first
Angular Services 20.x State management et appels API
Chart.js 4.x Graphiques et visualisations
Firebase Latest Push notifications

5.2 Fonctionnalités PWA

Capacités Offline (Service Worker)

Disponibilité Offline

Fonctionnalité Disponible Offline Synchronisation
Scan QR code Oui Auto à reconnexion
Consultation stats Oui (cache) Background sync
Transactions récentes Oui (cache) Temps réel online
Configuration Non Online uniquement

Installation PWA

  • Prompt d'installation sur mobile et desktop
  • Icône personnalisée REWAPP
  • Splash screen au lancement
  • Mise à jour automatique en arrière-plan

5.3 Module de Scan QR Code

Flux de Scan

  1. 1
    Ouverture Scanner

    Partenaire ouvre le scanner (accès caméra)

  2. 2
    Scan QR Code

    Scan du QR code présenté par le client

  3. 3
    Validation Serveur

    Validation côté serveur (signature, expiration, solde)

  4. 4
    Confirmation

    Affichage du résultat et confirmation par le partenaire

  5. 5
    Débit Points

    Débit instantané des points + notification push au client

Gestion des Erreurs Scan

Erreurs et Actions

Erreur Message Affiché Action
QR expiré "QR code expiré. Demandez au client de régénérer." Nouveau scan
QR déjà utilisé "QR code déjà scanné." Nouveau scan
Solde insuffisant "Solde client insuffisant." Annulation
Erreur réseau "Connexion impossible. Scan mis en file d'attente." Queue offline
QR invalide "QR code non reconnu." Nouveau scan

5.4 Statistiques Partenaire

Métriques affichées :

  • Nombre de transactions du jour/semaine/mois
  • Volume de points acceptés
  • Panier moyen des clients REWAPP
  • Nouveaux clients vs clients fidèles
  • Comparaison avec la période précédente
6

COMPOSANTS PARTAGÉS ET DESIGN SYSTEM

6.1 Bibliothèque de Composants

Une bibliothèque de composants partagés assure la cohérence visuelle entre les dashboards.

Composants Communs

Composant Description Utilisé Dans
DataTable Tableau avec tri, filtres, pagination Admin, Partenaire
MetricCard Carte affichant une métrique avec variation Admin, Partenaire
LineChart Graphique en ligne configurable Admin, Partenaire
StatusBadge Badge de statut coloré Admin, Partenaire
ConfirmDialog Modal de confirmation d'action Admin, Partenaire
EmptyState État vide avec illustration Tous
LoadingSpinner Indicateur de chargement Tous

6.2 Tokens de Design

Couleurs

Palette de Couleurs

Token Valeur Usage
--primary #6366F1 Actions principales, liens
--primary-dark #4F46E5 Hover actions principales
--secondary #10B981 Succès, cashback, positif
--warning #F59E0B Alertes, attention
--error #EF4444 Erreurs, danger
--neutral-50 #F9FAFB Backgrounds clairs
--neutral-900 #111827 Textes principaux

Typographie

Échelle Typographique

Élément Taille Poids Usage
Heading 1 32px 700 Titres de page
Heading 2 24px 600 Titres de section
Heading 3 20px 600 Sous-titres
Body 16px 400 Texte courant
Small 14px 400 Textes secondaires
Caption 12px 400 Labels, métadonnées

6.3 Responsive Design

Breakpoints

Breakpoint Taille Appareils Cibles
xs < 576px Mobiles portrait
sm ≥ 576px Mobiles paysage, petites tablettes
md ≥ 768px Tablettes
lg ≥ 992px Laptops, petits écrans
xl ≥ 1200px Desktops
xxl ≥ 1600px Grands écrans
7

GESTION DES ASSETS ET RESSOURCES

7.1 Images et Médias

Optimisation Images

Plateforme Format Optimisation
Mobile WebP, PNG Compression, @2x/@3x
Site Vitrine WebP, AVIF Angular img loading, lazy loading natif
Dashboards SVG, WebP Sprites icons, lazy load

CDN et Distribution

CDN Traefik

URL : cdn.rewapp.fr • Cache : 1 an pour assets versionnés • Compression : gzip, brotli • Invalidation automatique au déploiement

7.2 Icônes

Bibliothèques d'Icônes

Application Bibliothèque Raison
Mobile Ionicons Icônes natives Ionic
Site Vitrine Heroicons Cohérence Tailwind
Dashboards Ionicons Icônes Ionic natives (same stack)

7.3 Polices

Polices utilisées :

  • Titres : Inter (Google Fonts)
  • Corps : Inter (Google Fonts)
  • Code : JetBrains Mono (monospace)

Chargement optimisé avec font-display: swap et préchargement.

8

BUILD ET DÉPLOIEMENT FRONTEND

8.1 Environnements

Environnements

Environnement URL Usage
Development localhost:3000 Développement local
Staging staging.rewapp.fr Tests et validation
Production rewapp.fr / app.rewapp.fr Production

8.2 Build Mobile

iOS

  • Build via Capacitor + Xcode
  • Signing avec certificates Apple Developer
  • Distribution : App Store Connect

Android

  • Build via Capacitor + Android Studio
  • Signing avec keystore sécurisé
  • Distribution : Google Play Console
app.config.ts
export default {
  name: process.env.APP_ENV === 'production' ? 'REWAPP' : 'REWAPP Dev',
  extra: {
    apiUrl: process.env.API_URL,
    environment: process.env.APP_ENV,
  },
};

8.3 Build Web

Site Vitrine (Angular)

Bash
# Build Angular SPA
npm run build

# Déploiement vers CapRover
caprover deploy --appName rewapp-vitrine
# Cache invalidation automatique via CapRover

Dashboards (Angular)

Bash
# Build production
npm run build

# Déploiement via Docker
docker build -t rewapp-dashboard-admin .
docker push registry.rewapp.com/rewapp-dashboard-admin

8.4 CI/CD Frontend

Pipeline GitLab CI/CD :

Pipeline CI/CD

Étape Action Déclencheur
Lint ESLint + Prettier Push toute branche
Tests Jest + Angular Testing Library Push toute branche
Build Build de production Push main/develop
Deploy Staging Déploiement staging Push develop
Deploy Production Déploiement production Tag release
9

MONITORING ET ANALYTICS FRONTEND

9.1 Error Tracking

Sentry est intégré dans toutes les applications frontend pour le tracking des erreurs.

  • Source maps uploadés pour debugging
  • Alertes email pour erreurs critiques
  • Contexte utilisateur (ID anonymisé)
  • Breadcrumbs pour reproduction

9.2 Analytics Utilisateur

Outils Analytics

Outil Usage Données Collectées
Google Analytics 4 Trafic web, conversions Pages vues, events, goals
Mixpanel Analytics produit avancé Funnels, cohortes, rétention
Firebase Analytics Analytics mobile Sessions, events, crashes

9.3 Performance Monitoring

Mobile

  • Temps de démarrage (cold/warm start)
  • Frame rate et animations
  • Consommation batterie
  • Utilisation mémoire

Web

  • Core Web Vitals (LCP, FID, CLS)
  • Time to Interactive (TTI)
  • First Contentful Paint (FCP)
10

CONCLUSION

10.1 Récapitulatif de l'Architecture Frontend

L'architecture frontend de REWAPP est conçue pour offrir une expérience utilisateur optimale sur toutes les plateformes :

Mobile Angular + Ionic
Vitrine Angular 20 SPA
Admin Angular + Ionic
Partenaire Angular + Ionic PWA
  • Application Mobile : Angular 20 + Ionic 8 avec Capacitor 8 pour un développement cross-platform efficace avec performances natives, gestion d'état via Services Angular (RxJS), et sécurité renforcée (certificate pinning).
  • Site Vitrine : Angular 20 SPA avec TailwindCSS v4, pas de SSR. SEO via meta tags Angular, design responsive, Core Web Vitals optimisés.
  • Dashboard Admin : Angular 20 + Ionic 8 pour une interface professionnelle, gestion d'état via Services Angular, et sécurité renforcée (2FA obligatoire).
  • Dashboard Partenaire : Angular 20 + Ionic 8 PWA pour une utilisation mobile et desktop avec capacités offline, scan QR code via navigateur, et installation comme application native.

10.2 Évolutions Futures

L'architecture frontend est conçue pour supporter les évolutions suivantes :

  • Évolution vers Angular 21 et Signals
  • Micro-frontends pour isolation des dashboards
  • Design system unifié avec Storybook
  • Tests E2E automatisés avec Playwright