Architecture Frontend
(Mobile + Web)
La solution de cashback nouvelle génération
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 17 + Tailwind CSS |
SSR/SSG Web | Prospects, SEO |
| Dashboard Admin | Angular 17 + Angular Material |
SPA | Équipe REWAPP |
| Dashboard Partenaire | Angular + Ionic (PWA) |
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 : 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 |
|---|---|---|
| API Gateway | Point d'entrée unique (Kong) | 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) | Socket.io, heartbeat 30s |
1.4 Schéma d'Architecture Frontend Globale
+------------------+ +------------------+ +------------------+
| App Mobile | | Site Vitrine | | Dashboards |
| Angular + Ionic | | Angular | | Angular |
+--------+---------+ +--------+---------+ +--------+---------+
| | |
| HTTPS/TLS 1.3 | |
+------------------------+------------------------+
|
+-------------+-------------+
| Kong API Gateway |
| (Auth, Rate Limiting) |
+-------------+-------------+
|
+-------------+-------------+
| Backend Microservices |
| (NestJS) |
+---------------------------+
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 |
17.x | Framework enterprise-grade |
Ionic Framework |
7.x | Composants UI natifs, cross-platform |
Capacitor |
5.x | Build natif iOS/Android, APIs natives |
NgRx / Services |
17.x | State management réactif |
Ionic Router |
7.x | Navigation et routing |
RxJS |
7.x | Programmation réactive |
@capacitor/camera |
Latest | Scan QR codes |
2.2 Structure des Dossiers
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 / NgRx)
L'application utilise les services Angular avec RxJS et optionnellement NgRx pour la gestion d'état global, offrant une architecture réactive et maintenable.
Services Angular
| Service | Données Gérées | Méthodes Principales |
|---|---|---|
AuthService |
Tokens JWT, état connexion, biométrie | login(), logout(), refreshToken() |
UserService |
Profil utilisateur, préférences | updateProfile(), getProfile() |
PointsService |
Solde, historique, paliers | getBalance(), generateQRCode() |
TransactionsService |
Liste transactions, filtres | getTransactions(), filterByDate() |
// 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.
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 points avec valeur en euros (conversion 1 point = 0,10€)
- 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 60 secondes, usage UNIQUE. Animation couleur : vert (60-30s) → orange (30-10s) → rouge (10-0s)
- 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 60 secondes
- Expiration automatique avec déblocage des points
2.5.3 Écran Récompenses (RewardsScreen)
- Affichage solde disponible et valeur en euros
- Demande de virement (seuil minimum : 100 points = 9,50€)
- 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é, biométrie optionnelle |
| Refresh Token | Keychain / Keystore | Chiffré, secure enclave |
| Préférences utilisateur | Ionic Storage | Non sensible |
| Cache API | Ionic Storage | TTL, invalidation |
Authentification Biométrique
- Face ID (iOS) et Touch ID (iOS)
- Fingerprint (Android) et Face Recognition (Android)
- Activation optionnelle par l'utilisateur
- Fallback vers code PIN en cas d'échec
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
ARCHITECTURE SITE VITRINE (NEXT.JS)
3.1 Stack Technique Site Vitrine
Le site vitrine REWAPP utilise Angular 17 avec Angular Universal pour un SEO optimal et des performances maximales.
Technologies Web
| Technologie | Version | Rôle |
|---|---|---|
Angular |
17.x | Framework SSR/SSG avec Angular Universal |
Angular |
17.x | Bibliothèque UI |
Tailwind CSS |
3.4.x | Framework CSS utility-first |
TypeScript |
5.x | Typage statique |
next/image |
Intégré | Optimisation images automatique |
next-seo |
6.x | Gestion meta tags SEO |
3.2 Structure des Dossiers
src/
├── app/ # Modules Angular 17
│ ├── layout.tsx # Layout racine
│ ├── page.tsx # Page d'accueil
│ ├── globals.css # Styles globaux Tailwind
│ ├── partenaires/
│ │ ├── page.tsx # Liste partenaires
│ │ └── [slug]/page.tsx # Fiche partenaire
│ ├── a-propos/page.tsx # Page à propos
│ ├── contact/page.tsx # Page contact
│ ├── faq/page.tsx # FAQ
│ ├── blog/
│ │ ├── page.tsx # Liste articles
│ │ └── [slug]/page.tsx # Article détail
│ ├── 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 utilise différentes stratégies de rendu selon le type de page pour optimiser performance et SEO.
Stratégies par Page
| Page | Stratégie | Revalidation | Justification |
|---|---|---|---|
| Page d'accueil | SSG | 1 heure | Contenu semi-statique, SEO critique |
| Liste partenaires | SSG + ISR | 10 minutes | Mise à jour fréquente |
| Fiche partenaire | SSG | 1 heure | Contenu dynamique modéré |
| Blog | SSG | 6 heures | Contenu éditorial stable |
| FAQ | SSG | 24 heures | Contenu rarement modifié |
| Pages légales | SSG | 7 jours | Contenu très stable |
3.4 Optimisation SEO
// app/layout.tsx
export const metadata: Metadata = {
title: {
default: 'REWAPP - Cashback nouvelle génération',
template: '%s | REWAPP',
},
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 : next/image avec lazy loading, formats WebP/AVIF automatiques, srcset responsive
- Fonts : Préchargement Google Fonts avec font-display: swap, subset français uniquement
- CSS : Tailwind CSS avec purge automatique, critical CSS inline
- JavaScript : Code splitting automatique par route, tree shaking, minification
- Caching : Headers cache optimisés, CDN Nginx/Traefik intégré
ARCHITECTURE DASHBOARD ADMIN (REACT SPA)
4.1 Stack Technique Dashboard Admin
Le Dashboard Admin est une Single Page Application Angular optimisée pour la gestion complète de la plateforme REWAPP.
Technologies Dashboard Admin
| Technologie | Version | Rôle |
|---|---|---|
Angular |
17.x | Bibliothèque UI |
Material-UI (MUI) |
5.x | Framework composants UI |
Angular HttpClient |
17.x | Cache serveur et synchronisation |
Angular Router |
17.x | Routing SPA |
Chart.js |
4.x | Graphiques et visualisations |
Angular Reactive Forms |
17.x | Gestion formulaires |
Zod |
3.x | Validation schémas |
4.2 Gestion d'État
Angular Services pour Données Serveur
Les services Angular et HttpClient gèrent tout le cache serveur et la synchronisation des données avec le backend.
// hooks/useUsers.ts
export const useUsers = (filters: UserFilters) => {
return useQuery({
queryKey: ['users', filters],
queryFn: () => userService.getUsers(filters),
staleTime: 5 * 60 * 1000, // 5 minutes
cacheTime: 30 * 60 * 1000, // 30 minutes
});
};
export const useUpdateUser = () => {
const queryClient = useQueryClient();
return useMutation({
mutationFn: userService.updateUser,
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['users'] });
},
});
};
Zustand pour État Local
Stores Zustand
| 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 |
ARCHITECTURE DASHBOARD PARTENAIRE (REACT PWA)
5.1 Stack Technique
Le Dashboard Partenaire est une Progressive Web App (PWA) optimisée pour une utilisation mobile et desktop par les commerçants.
Technologies PWA
| Technologie | Version | Rôle |
|---|---|---|
Angular |
17.x | Bibliothèque UI |
Vite |
5.x | Build tool ultra-rapide |
Ant Design |
5.x | Framework composants UI |
Angular HttpClient |
17.x | Cache serveur |
Workbox |
7.x | Service Worker PWA |
html5-qrcode |
2.x | Scan QR codes navigateur |
5.2 Fonctionnalités PWA
Capacités Offline
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
Ouverture Scanner
Partenaire ouvre le scanner (accès caméra)
-
2
Scan QR Code
Scan du QR code présenté par le client
-
3
Validation Serveur
Validation côté serveur (signature, expiration, solde)
-
4
Confirmation
Affichage du résultat et confirmation par le partenaire
-
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
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 |
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 | next/image automatique |
| Dashboards | SVG, WebP | Sprites icons, lazy load |
CDN et Distribution
CDN Nginx/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 | Material Icons (MUI) |
Intégré MUI |
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.
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
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)
# Build statique
npm run build
npm run export
# Déploiement vers volume CapRover
aws s3 sync out/ s3://rewapp-vitrine --delete
aws cloudfront create-invalidation --distribution-id XXX --paths "/*"
Dashboards (Angular)
# Build production
npm run build
# Déploiement via Docker
docker build -t rewapp-dashboard-admin .
docker push xxx.dkr.ecr.eu-west-3.amazonaws.com/rewapp-dashboard-admin
8.4 CI/CD Frontend
Pipeline GitHub Actions :
Pipeline CI/CD
| Étape | Action | Déclencheur |
|---|---|---|
| Lint | ESLint + Prettier | Push toute branche |
| Tests | Jest + Angular Testing | Push toute branche |
| Build | Build de production | Push main/develop |
| Deploy Staging | Déploiement staging | Push develop |
| Deploy Production | Déploiement production | Tag release |
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)
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 :
- Application Mobile : Angular + Ionic avec Capacitor pour un développement cross-platform efficace avec performances natives, gestion d'état réactive (Services/NgRx), et sécurité renforcée (biométrie, certificate pinning).
- Site Vitrine : Angular 17 avec SSR pour un SEO optimal et des performances maximales (Core Web Vitals excellents), design responsive avec Tailwind CSS.
- Dashboard Admin : Angular SPA avec Angular Material pour une interface professionnelle, gestion d'état réactive avec Services/NgRx, et sécurité renforcée (2FA obligatoire).
- Dashboard Partenaire : Angular + Ionic 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 Signals et standalone components
- Implémentation de Server-Side Rendering Angular
- Micro-frontends pour isolation des dashboards
- Design system complet avec Storybook
- Tests E2E automatisés avec Playwright