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

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)