Aller au contenu

Système Agents

Le système agents de Urbafix comprend deux composants principaux :

  1. Application Mobile : Application Android native pour les agents terrain
  2. Gestion Backoffice : Interface d'administration pour créer et gérer les comptes agents

Gestion Backoffice

Interface web permettant aux administrateurs de créer et gérer les comptes agents.

Caractéristique Valeur
URL /agents.php
Permissions Admin, Gestionnaire
API /api/admin/agents/*

Fonctionnalités :

  • ✅ Création de comptes agents avec génération automatique de mot de passe
  • ✅ Modification des informations agent (nom, rôle, statut)
  • ✅ Réinitialisation de mot de passe
  • ✅ Activation/Désactivation de comptes
  • ✅ Filtres et recherche
  • ✅ Gestion des permissions par rôle

📖 Documentation complète de la gestion backoffice


Application Mobile Android

Application Android native pour les agents de collectivités permettant la gestion terrain des incidents signalés par les citoyens via Urbafix.

Vue d'ensemble

Caractéristique Valeur
Package fr.urbafix.agents
Min SDK 26 (Android 8.0)
Target SDK 34 (Android 14)
Langage Kotlin 1.9.20
UI Jetpack Compose (Material3)

Fonctionnalités principales

Authentification

  • Connexion par email/mot de passe
  • Tokens JWT (access 1h, refresh 7j)
  • Stockage sécurisé (EncryptedSharedPreferences)
  • Verrouillage par code PIN (4 chiffres) aux reprises de l'app, sans re-saisie des identifiants
  • Effacement de la session après 5 échecs de PIN consécutifs
  • Déconnexion avec invalidation des tokens

Notifications push

  • Enregistrement UnifiedPush (distributeur recommandé : ntfy)
  • Notification à l'affectation d'un incident à l'agent
  • Permission POST_NOTIFICATIONS demandée au premier lancement, indépendamment du suivi de position

Tableau de bord

  • Statistiques en temps réel
  • Compteurs par statut (nouveau, assigné, en cours, attente, résolu, clos)
  • Compteur des incidents assignés à l'agent, tuile cliquable → bascule vers l'onglet Incidents avec le filtre "Assigné à moi" pré-appliqué
  • Liste des 5 derniers incidents

Gestion des incidents

  • Liste complète des incidents de la collectivité
  • Filtrage par statut (dont ATTENTE), priorité et "Assigné à moi"
  • Recherche textuelle (adresse, description)
  • Mise en avant visuelle des incidents assignés à l'agent (liste et carte)
  • Pull-to-refresh

Statut ATTENTE

  • Motif obligatoire (motifs_attente, configurable par mairie) + note libre + intervenant contacté optionnel
  • Relance automatique côté serveur si le délai configuré par la mairie est dépassé (scripts/relance_attente.php, cron horaire)
  • Historique des périodes de mise en attente fusionné dans le fil de l'incident

Priorité éditable

  • Modification de la priorité par l'agent depuis la fiche incident, conditionnée au réglage mairies.priorite_agents_autorise
  • Revalidation systématique côté serveur (le flag client n'est qu'un indice UI)

Carnet de contacts (intervenants)

  • Onglet "Contacts" : liste des intervenants actifs de la mairie (ou de toutes les mairies de la collectivité pour un agent EPCI)
  • Sélecteur d'intervenant contacté proposé lors du passage en statut ATTENTE

Détail d'incident

  • Vue complète avec mini-carte (point de l'incident) et bouton "S'y rendre" (ouverture de l'application de navigation installée ; message si aucune n'est disponible)
  • Équipe assignée : plusieurs agents par incident, avec un référent désigné
  • Galerie photos
  • Liste des commentaires
  • Modification du statut et de la priorité
  • Ajout de commentaires (publics ou internes)
  • Ajout de photos d'intervention

Carte

  • Affichage des incidents sur OpenStreetMap
  • Marqueurs colorés par priorité
  • Géolocalisation de l'agent
  • Click sur marqueur pour voir le détail

Mode hors-ligne

  • Base de données locale SQLCipher
  • File d'attente des actions
  • Synchronisation automatique (WorkManager, 15 min)
  • Indicateur visuel du mode offline

Types de collectivités

L'application supporte différents types de collectivités territoriales :

Type Description
MAIRIE Commune
COMMUNAUTE_COMMUNES Communauté de communes
COMMUNAUTE_AGGLOMERATION Communauté d'agglomération
METROPOLE Métropole
DEPARTEMENT Conseil départemental
REGION Conseil régional
LoginScreen → DashboardScreen
                ├── IncidentListScreen → IncidentDetailScreen
                ├── MapScreen
                ├── ContactsScreen
                └── ProfileScreen