Architecture Technique
Stack technique, déploiement Cloudflare et performances
🏗️ Vue d'Ensemble de l'Architecture
L'IFPB Platform est construite sur une architecture Serverless Edge-native, déployée entièrement sur Cloudflare. Le frontend SvelteKit sert depuis Cloudflare Pages (CDN mondial), l'API HonoJS tourne sur Cloudflare Workers, et les données sont stockées dans D1/R2/KV. Résultat : latence minimale, scalabilité infinie, coût prévisible.
📐 Composants Architecturaux
🖥️ Frontend SvelteKit
Interface utilisateur performante avec SSG/SSR hybride. Thème sombre, responsive, PWA.
🚀 Cloudflare Pages Edge
🔌 API HonoJS
API REST légère et rapide sur Cloudflare Workers. Endpoints pour CRUD, recherche, exports.
🚀 Cloudflare Workers
💾 Base de Données
D1 pour données structurées, R2 pour fichiers/documents, KV pour cache et sessions.
🚀 Cloudflare Platform
📱 PWA & Hors-ligne
Fonctionnalité complète hors-ligne. Synchronisation intelligente lors de la reconnexion.
🚀 Navigateur Client
🧱 Stack Technique Complète
| Catégorie | Technologie | Version | Rôle |
|---|---|---|---|
| Framework Frontend | SvelteKit 2.x | ^2.10.0 | UI/SSR/SSG |
| Langage | TypeScript | ^5.6.0 | Typage statique |
| Styling | TailwindCSS | ^3.4.0 | Utilitaires CSS |
| API Framework | Hono | ^4.6.0 | API REST Workers |
| Hosting | Cloudflare Pages | - | Edge deployment frontend |
| Serverless | Cloudflare Workers | - | Runtime API |
| Database SQL | Cloudflare D1 | - | SQLite edge |
| Storage | Cloudflare R2 | - | Objets/Fichiers |
| Cache | Cloudflare KV | - | Key-value store |
| CDN | Cloudflare CDN | - | Cache statique global |
| CI/CD | Wrangler CLI | ^3.88.0 | Déploiement |
| Collecte Données | KoboToolbox | - | Formulaires mobiles |
🔌 API REST - Endpoints
API HonoJS déployée sur Cloudflare Workers
/api/contribuables AUTH/api/contribuables/:id AUTH/api/contribuables AUTH/api/contribuables/:id AUTH/api/contribuables/:id ADMIN/api/paiements AUTH/api/paiements/stats AUTH/api/fiscal/calculer AUTH/api/kobo/formulaires AUTH/api/kobo/soumissions API KEY/api/recherche?q= AUTH/api/exports/:type AUTH⚡ Objectifs de Performance
Time to First Byte (TFB)
✅Cible: < 100ms
First Contentful Paint (FCP)
✅Cible: < 1.8s
Largest Contentful Paint (LCP)
✅Cible: < 2.5s
Cumulative Layout Shift (CLS)
✅Cible: < 0.1
Total Bundle Size
✅Cible: < 200KB
Lighthouse Score
✅Cible: > 90
🔒 Mesures de Sécurité
Cloudflare WAF
Protection contre attaques DDoX, SQL Injection, XSS au niveau Edge
Authentification JWT
Tokens JWT signés avec rotation automatique des refresh tokens
CORS Restreint
Origines autorisées configurées. Pas de wildcard en production
Chiffrement TLS 1.3
Communications chiffrées bout-en-bout. Certificats automatiques
Audit Trail Complet
Toutes les actions logguées avec timestamp, utilisateur, IP
Backups Automatiques
Snapshots D1 quotidiens. Rétention 90 jours. Restoration testée
🚀 Pipeline de Déploiement
# 1. Installer les dépendances
$ npm install
# 2. Build production
$ npm run build
# 3. Déployer sur Cloudflare Pages (frontend)
$ npx wrangler pages deploy dist --project-name=ifpb-platform
# 4. Déployer Workers (API)
$ npx wrangler deploy
# 5. Migrations D1 (si nécessaire)
$ npx wrangler d1 execute ifpb-db --file=./migrations/001_initial.sql
# 6. Preview locale (développement)
$ npm run dev -- --open