3.2. Besoins techniques
3.2.1. Architecture globale
Le système repose sur une architecture client-serveur
modulaire, combinant des technologies web, mobile et cloud pour garantir
performance, scalabilité et sécurité :
Frontend :
· Mobile : Flutter (multiplateforme Android/iOS) pour
une interface fluide et native.
· Web : ReactJS (pour les tableaux de bord des
autorités et administrateurs) avec Material UI pour un design
moderne.
Backend :
· Node.js + Express : API REST pour gérer les
requêtes (création d'incidents, authentification,
notifications).
· JWT (JSON Web Token) : Authentification
sécurisée avec rafraîchissement des tokens.
Base de données :
· PostgreSQL : Modèle relationnel pour les
données structurées (utilisateurs, incidents, validations).
· MongoDB (optionnel) : Stockage flexible pour les
données non structurées (logs, statistiques).
Services externes :
· Firebase Cloud Messaging (FCM) : Notifications push en
temps réel.
· Google Maps API : Géolocalisation
précise et affichage des incidents sur une carte interactive.
· AWS S3 / Firebase Storage : Hébergement des
médias (photos, vidéos).
Schéma d'architecture :

[Mobile (Flutter)] ? [API REST (Node.js)] ? [Base de
données (PostgreSQL)]
[Web (ReactJS)] ? [API REST] ? [Services externes (Firebase,
Google Maps)]
3.2.2. Exigences de sécurité
La protection des données sensibles (localisation,
identité des utilisateurs) est une priorité absolue :
1. Authentification renforcée :
· OTP (One-Time Password) : Vérification à
deux facteurs (email + SMS).
· JWT : Tokens expirant toutes les 15 minutes, avec
mécanisme de rafraîchissement sécurisé.
2. Cryptage des données :
· AES-256 : Chiffrement des données au repos (base
de données).
· TLS 1.3 : Communication sécurisée entre
client et serveur.
3. Protection contre les attaques :
· Validation des entrées : Filtres anti-injections
SQL/XSS.
· Limitation des requêtes : 3 signalements/h par
utilisateur pour éviter le spam.
4. Gestion des rôles :
· RBAC (Role-Based Access Control) : Accès
différencié selon le rôle (citoyen, autorité,
admin).
3.2.3. Contraintes techniques
Les défis techniques résident dans la gestion
des données géospatiales, la latence des notifications et
l'adaptation aux infrastructures locales :
1. Géolocalisation :
· Précision exigée : #177; 50 mètres
(via Google Maps ou Mapbox).
· Gestion des zones à faible connectivité :
Utilisation de la
géolocalisation par réseau mobile (cell ID) en
cas de perte du signal GPS.
|