# Cahier des Charges Techniques & Specifications Fonctionnelles

## Projet

**Systeme d'Information et de Logistique Evenementielle Interconnecte**  
**Client :** Communaute de Communes Des Savanes (CCDS)

## 1. Architecture technique & configuration globale

### 1.1 Exigences environnementales & compatibilite

Le systeme doit fonctionner comme une plateforme web complete, sans imposer l'installation d'une application native externe aux agents techniques ou aux usagers.

Exigences :

- aucune application PWA, APK ou iOS dediee ne doit etre obligatoire ;
- toutes les interactions doivent etre possibles depuis un navigateur web standard ;
- l'interface d'administration doit etre optimisee pour bureau et tablette ;
- l'interface terrain / restitution doit etre concue en approche mobile-first pour des ecrans de 4 a 7 pouces ;
- les emails emis par la plateforme doivent etre compatibles avec Outlook, Gmail, Apple Mail, Yahoo et les principaux webmails.

### 1.2 Gestion de la securite, roles et permissions (RBAC)

La base de donnees et la logique applicative doivent implementer strictement trois niveaux d'acces.

#### Super-administrateur

- acces complet en lecture / ecriture sur l'ensemble du systeme ;
- seul role autorise a creer, suspendre ou supprimer des comptes ;
- seul role autorise a configurer l'inventaire materiel global ;
- seul role autorise a modifier les variables de pilotage du systeme ;
- seul role autorise a definir les stocks plafonds, les valeurs de remplacement et les regles sensibles.

#### Administrateur

- instruction complete des demandes associations ;
- validation / refus des dossiers ;
- affectation des services et agents techniques ;
- pilotage du calendrier, de la logistique et des retours ;
- traitement des dossiers de cautionnement et d'arbitrage en cas de litige ;
- impossibilite de modifier la structure de base de l'inventaire ou les comptes utilisateurs.

#### Utilisateur simple / agent de terrain

- acces limite a ses missions affectees ;
- interface mobile epuree ;
- consultation et cloture de ses seules missions logistiques ;
- absence d'acces aux modules globaux d'administration, stock, comptes, statistiques et reglage.

### 1.3 Journal d'audit inviolable

Le systeme doit integrer un journal d'audit en mode **append-only** :

- aucune modification d'une ligne d'audit ne doit etre possible ;
- aucune suppression d'une ligne d'audit ne doit etre possible, y compris pour le super-administrateur ;
- les ecritures doivent etre ajoutees chronologiquement uniquement.

Chaque enregistrement doit contenir au minimum :

- `timestamp` : date et heure issues exclusivement de l'horloge serveur ;
- `user_id` et `user_role` ;
- `action_type` ;
- `payload` lisible en langage clair ;
- `ip_address`.

Exemple attendu :

`Le 18/05 à 14h22, l'Admin X a accepté la demande #412`

## 2. Specifications des modules back-office

### 2.1 Tableau de bord operationnel

Le tableau de bord est l'ecran d'accueil par defaut apres authentification administrative.

Il doit fonctionner comme un centre de decision et se mettre a jour de facon dynamique sans rechargement complet de page.

Composants attendus :

#### Bandeau d'alertes logistiques

- **Alerte rouge** : nombre de restitutions en retard  
  Condition : `date actuelle > date restitution + 3 jours`
- **Alerte orange** : nombre de litiges / degradations non arbitres
- **Badge bleu** : nouvelles demandes en attente d'instruction

Chaque indicateur doit etre cliquable et appliquer un filtre direct sur les dossiers concernes.

#### Flux operationnel journalier

Deux colonnes :

- **Departs / matin** : mises a disposition ou livraisons du jour
- **Retours / apres-midi** : restitutions attendues au jour J

Chaque ligne doit faire apparaitre :

- l'association ;
- le type de mission ;
- le statut d'assignation ;
- un acces rapide au dossier.

#### Composant de visualisation des stocks

- graphique donut ou barres ;
- quantites disponibles / engagees / bloquees ;
- lecture simple par categorie de materiel.

#### Fil d'activite

- affichage des 5 derniers evenements du journal d'audit ;
- lecture chronologique claire ;
- acces au journal complet.

### 2.2 Module unifie "Dossier & assignation logistique"

Le systeme doit supprimer les blocages de navigation entre consultation et action.

#### Depuis la fiche dossier

La fiche complete d'une demande acceptee doit integrer un bloc :

`Assigner un service recuperateur`

Ce bloc doit permettre :

- de choisir un service ou agent via un menu relie a l'annuaire interne ;
- de valider l'assignation sans quitter la fiche ;
- de declencher le workflow de terrain.

#### Depuis l'ecran d'assignation

Un bouton secondaire :

`Voir la demande`

doit ouvrir un panneau lateral ou une drawer affichant :

- details de l'association ;
- liste complete du materiel ;
- dates ;
- lieu / manifestation ;
- informations utiles a la decision.

### 2.3 Calendrier logistique predictif

Le calendrier doit etre relie a l'inventaire reel.

#### Regle d'indexation stock

Lorsqu'une demande est validee sur une periode donnee :

- les quantites reservees doivent etre deduites du stock global ;
- cette deduction ne s'applique que sur la plage temporelle concernee.

#### Affichage visuel attendu

Chaque dossier doit produire trois phases visibles :

- **Sortie / livraison** : bleu
- **Manifestation / indisponibilite stock** : phase d'utilisation
- **Alerte restitution** : jaune

#### Interactions attendues

Au clic sur un evenement du calendrier :

- consulter l'agent ou service affecte ;
- reassigner la mission ;
- telecharger le PDF finalise si disponible.

### 2.4 Cartographie interactive & implantation territoriale

La cartographie doit etre connectee a la base de donnees et servir a la fois le grand public et l'administration.

Technologies recommandees :

- Leaflet.js
- ou Mapbox GL JS

Traitements attendus :

- geocodage automatique des adresses via `api-adresse.data.gouv.fr` ou `Nominatim`
- stockage des coordonnees geographiques
- clustering obligatoire pour eviter la surcharge visuelle

Filtres attendus :

- annuaire public par thematique ;
- vue logistique admin ;
- heatmap / densite ;
- filtres territoriaux sur Iracoubo, Kourou, Saint-Elie, Sinnamary.

## 3. Specifications du workflow mobile terrain

### 3.1 Declenchement & routage

Un traitement planifie quotidien doit verifier les dossiers.

Pour tout dossier dont la restitution theorique est a **J-4** :

- generer un jeton d'acces securise temporaire ;
- construire une URL unique ;
- injecter cette URL dans l'email du service ou agent affecte.

Exemple de forme attendue :

`https://ccds.fr/restitution/v1?token=sha256_unique_hash`

### 3.2 Interface mobile & gestion non bloquante

Lors de l'ouverture sur smartphone :

- les donnees de mise a disposition sont pre-remplies et figees ;
- l'agent ne modifie pas les donnees source de la demande ;
- le constat terrain se fait sur l'etat reel de restitution.

#### Bloc "Restitution de materiel"

Boutons radio exclusifs :

- `Conforme`
- `Non conforme / Partiel`

Comportement attendu :

- `Conforme` valide globalement le retour ;
- `Non conforme / Partiel` active obligatoirement le bloc observations.

#### Bloc "Observations contradictoires"

Cases a cocher :

- equipement manquant
- accessoires / visserie manquants
- armature deformee
- toile / bache dechiree
- impact / choc majeur
- restitution sale
- materiel humide

Des qu'une case est cochee :

- le champ texte libre devient obligatoire.

### 3.3 Double signature, horodatage et resilience GPS

#### Horodatage certifie

Le backend doit ecraser toute date / heure issue de l'appareil.

La date officielle est generee exclusivement par le serveur au moment de la soumission.

#### Gestion robuste de la geolocalisation

Le script `navigator.geolocation` doit :

- fonctionner en asynchrone ;
- comporter un timeout strict de `5000 ms` ;
- ne jamais bloquer la validation finale.

Scenarios :

- **Succes** : les coordonnees sont jointes a la soumission
- **Echec** : la valeur `Non disponible` est enregistree, mais la validation continue normalement

#### Signature tactile

Le systeme doit integrer :

- une zone de signature pour l'agent ;
- une zone de signature pour l'emprunteur ;
- les qualites associees ;
- un rendu suffisamment fluide pour un usage doigt / stylet.

### 3.4 Generation dynamique du PDF & archivage

Apres validation finale :

- le serveur compile le document officiel ;
- fusionne les donnees, signatures et metadonnees ;
- applique le logo CCDS ;
- produit un PDF A4 sur une page si le contenu le permet.

Contraintes de sortie :

- CSS imprimee calibree ;
- signatures visibles ;
- mise en page stable ;
- envoi automatique en piece jointe :
  - a l'association ;
  - a la DSU ;
- mise a jour du statut en base.

## 4. Protocole expeditif automatise : gestion des litiges

Si la restitution est saisie comme `Non conforme / Partiel` ou `Mauvais etat` :

### 4.1 Rupture de flux & gel logistique

Le dossier passe en :

`LITIGE / ATTENTE ARBITRAGE`

Le materiel concerne doit etre marque indisponible pour :

- bloquer son retour dans le calendrier ;
- empecher sa relocation par erreur.

### 4.2 Interface d'arbitrage financier

La fiche admin du dossier doit permettre :

- de saisir le cout d'un devis ;
- de saisir un cout interne ;
- ou d'appliquer la valeur de remplacement a neuf issue de l'inventaire.

### 4.3 Notification & cloture

Le systeme doit proposer :

- un bouton `Generer courrier de litige`
- un document pre-rempli pour notifier l'association

Le dossier ne peut etre cloture definitivement qu'apres arbitrage explicite parmi :

- retenue partielle sur caution
- encaissement total
- classement sans suite

La decision doit :

- mettre a jour le stock ;
- liberer ou non le materiel ;
- etre ecrite dans le journal d'audit.

## 5. Vision d'ensemble

La plateforme doit etre comprise comme un **ecosysteme logistique connecte et predictif**.

Elle doit permettre :

- de centraliser la gestion associative ;
- de piloter le materiel dans le temps ;
- de fluidifier les workflows terrain ;
- de proteger juridiquement et financierement la collectivite ;
- d'offrir a la direction un vrai centre de controle.

## 6. Resultat attendu

Le systeme final ne doit pas etre un simple outil de gestion administrative.

Il doit devenir :

- une plateforme de service public numerique ;
- un centre de pilotage logistique ;
- un outil de tracabilite ;
- un support de decision ;
- et un cadre fiable pour l'arbitrage, le stock et les operations terrain.
