You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
8.3 KiB
8.3 KiB
Exigences Non Fonctionnelles - BricoLoc Moderne
Version : 1.0
Date : 31 Octobre 2025
Projet : BricoLoc - Application Moderne de Location d'Outils
1. Performance
1.1 Temps de Réponse
| Opération | Objectif | Maximum Acceptable |
|---|---|---|
| Chargement page d'accueil | < 1s | 2s |
| Recherche d'outils | < 500ms | 1s |
| Affichage catalogue | < 1s | 2s |
| Création de réservation | < 1.5s | 3s |
| Mise à jour profil utilisateur | < 800ms | 2s |
1.2 Capacité et Charge
- Utilisateurs simultanés : Support de 1000 utilisateurs actifs simultanés
- Transactions par seconde : Minimum 100 TPS en charge normale
- Temps de réponse sous charge : Dégradation maximale de 20% sous charge maximale
- Base de données : Support de 100,000+ outils dans le catalogue
- Réservations : Gestion de 50,000+ réservations actives simultanées
1.3 Optimisation Frontend
- First Contentful Paint (FCP) : < 1.5s
- Largest Contentful Paint (LCP) : < 2.5s
- Time to Interactive (TTI) : < 3.5s
- Cumulative Layout Shift (CLS) : < 0.1
- First Input Delay (FID) : < 100ms
1.4 Optimisation Backend
- Query Database : < 100ms pour les requêtes simples
- API Response Time : < 200ms (P95)
- Connection Pool : Minimum 20 connexions PostgreSQL
- Caching : Redis pour données fréquemment consultées (catégories, entrepôts)
2. Sécurité
2.1 Authentification et Autorisation
- Authentification : OAuth 2.0 / JWT via Supabase Auth
- Multi-facteur (MFA) : Recommandé pour les comptes admin
- Session Management :
- Durée de session : 24h par défaut
- Refresh token : 30 jours
- Logout automatique après inactivité : 1h
- Password Policy :
- Minimum 8 caractères
- Au moins 1 majuscule, 1 minuscule, 1 chiffre
- Pas de mots de passe communs (liste OWASP)
2.2 Protection des Données
- Encryption at Rest : AES-256 pour données sensibles
- Encryption in Transit : TLS 1.3 obligatoire
- Row Level Security (RLS) : Activé sur toutes les tables Supabase
- Données Personnelles :
- Conformité RGPD
- Anonymisation des données après 3 ans d'inactivité
- Droit à l'oubli respecté (suppression complète en 30 jours)
2.3 Sécurité Applicative
- SQL Injection : Prévention via paramètres Supabase
- XSS : Protection via Content Security Policy (CSP)
- CSRF : Tokens CSRF sur toutes les mutations
- Rate Limiting :
- API : 100 requêtes/minute par IP
- Auth : 5 tentatives de login/minute
- Recherche : 30 requêtes/minute
2.4 Audit et Logging
- Activity Logs : Conservation 90 jours
- Security Events : Alertes temps réel
- Access Logs : Conservation 1 an
- SIEM Integration : Prêt pour intégration future
3. Fiabilité et Disponibilité
3.1 Disponibilité
- Uptime : 99.5% (SLA cible)
- Temps d'arrêt planifié : Maximum 4h/mois (maintenance)
- Fenêtre de maintenance : Dimanche 2h-6h (heure locale)
3.2 Récupération
- RTO (Recovery Time Objective) : < 4h
- RPO (Recovery Point Objective) : < 1h
- Backup :
- Base de données : Daily automatic (Supabase)
- Retention : 30 jours
- Test de restauration : Mensuel
3.3 Résilience
- Error Handling : Gestion gracieuse des erreurs
- Circuit Breaker : Protection contre services défaillants
- Retry Logic : Retry exponentiel (max 3 tentatives)
- Fallback Strategies : Mode dégradé fonctionnel
4. Scalabilité
4.1 Scalabilité Horizontale
- Frontend : Serverless via Vercel (auto-scaling)
- Backend API : Supabase auto-scale
- Base de données : Supabase PostgreSQL (vertical scale)
- Storage : Supabase Storage (illimité)
4.2 Scalabilité Verticale
- Database : Support jusqu'à 8GB RAM (plan Pro)
- Compute : Serverless Edge Functions illimitées
- Bandwidth : 250GB/mois (plan Pro)
4.3 CDN et Caching
- CDN : Vercel Edge Network (monde entier)
- Static Assets : Mise en cache 1 an
- API Responses : Cache HTTP intelligent
- Images : Optimisation automatique (Next.js Image)
5. Maintenabilité
5.1 Code Quality
- Test Coverage : Minimum 80%
- Code Complexity : Cyclomatic complexity < 10
- Documentation : JSDoc pour toutes les fonctions publiques
- Linting : ESLint strict activé
- Formatting : Prettier configuré
5.2 Architecture
- Modularity : Architecture microservices (6 services)
- Loose Coupling : Event-driven communication
- Clean Architecture : 3 couches (Domain, Application, Infrastructure)
- SOLID Principles : Respect des principes SOLID
5.3 Versioning
- API Versioning : Versioning sémantique (v1, v2...)
- Git Flow : Main, Develop, Feature branches
- Changelog : Keep a Changelog format
- Release Notes : Pour chaque version majeure
5.4 Monitoring et Debugging
- Application Monitoring : Vercel Analytics
- Error Tracking : Sentry (à configurer)
- Performance Monitoring : Web Vitals tracking
- Logs : Structured logging (JSON format)
6. Utilisabilité
6.1 Interface Utilisateur
- Responsive Design : Mobile-first (breakpoints: 640px, 768px, 1024px, 1280px)
- Accessibility : WCAG 2.1 AA compliance
- Browser Support :
- Chrome 90+
- Firefox 88+
- Safari 14+
- Edge 90+
- Progressive Enhancement : Fonctionne sans JavaScript (pages statiques)
6.2 Expérience Utilisateur
- Feedback : Indicateurs de chargement pour actions > 500ms
- Error Messages : Messages clairs et actionnables
- Help System : Tooltips contextuels
- Internationalisation : Prêt pour i18n (français par défaut)
6.3 Accessibilité
- Keyboard Navigation : Support complet
- Screen Readers : Semantic HTML + ARIA labels
- Color Contrast : Ratio minimum 4.5:1
- Focus Indicators : Visibles et clairs
7. Portabilité
7.1 Environnements
- Development : Local avec Docker Compose (futur)
- Staging : Vercel Preview Deployments
- Production : Vercel Production
7.2 Infrastructure as Code
- Deployment : Vercel CLI + GitHub Actions
- Configuration : Environment variables
- Secrets Management : Vercel Environment Variables
8. Conformité et Légal
8.1 RGPD
- Consentement : Cookie banner conforme
- Données Personnelles : Collecte minimale
- Droit d'accès : Export des données utilisateur
- Droit à l'oubli : Suppression complète en 30 jours
- Portabilité : Export JSON des données
8.2 Cookies
- Cookies essentiels : Session, auth
- Cookies analytiques : Opt-in requis
- Durée de conservation : Maximum 13 mois
8.3 CGU et Mentions Légales
- CGU : Acceptation obligatoire à l'inscription
- Mentions Légales : Accessibles en footer
- Politique de Confidentialité : Accessible et claire
9. Métriques de Succès
9.1 KPIs Techniques
| Métrique | Cible | Mesure |
|---|---|---|
| Uptime | 99.5% | Mensuelle |
| Response Time (P95) | < 2s | Hebdomadaire |
| Error Rate | < 1% | Quotidienne |
| Test Coverage | > 80% | Continue (CI) |
| Core Web Vitals | Tous "Good" | Hebdomadaire |
9.2 KPIs Métier
| Métrique | Cible | Mesure |
|---|---|---|
| Temps de réservation | < 3 min | Mensuelle |
| Taux de conversion | > 5% | Mensuelle |
| Taux d'abandon panier | < 30% | Hebdomadaire |
| Satisfaction utilisateur | > 4/5 | Trimestrielle |
10. Contraintes et Limitations
10.1 Contraintes Techniques
- Budget : Plan gratuit Supabase (500MB DB, 1GB bandwidth/mois)
- Vercel : Plan hobby (100GB bandwidth/mois)
- Pas de serveur dédié : Architecture serverless uniquement
10.2 Limitations Acceptées
- Recherche avancée : Pas de recherche full-text complexe (phase 1)
- Analytics : Analytics basiques uniquement
- Notifications push : Web push uniquement (pas de mobile natif)
- Paiement : Stripe uniquement (pas d'autres providers)
Conclusion
Ces exigences non fonctionnelles définissent le cadre de qualité pour l'application BricoLoc Moderne. Elles seront revues et ajustées au fur et à mesure de l'évolution du projet.
Prochaine révision : Semaine 10 (après première release)