# 🚀 VCP Repérages
> **Pilotage Intelligent & Repérage Terrain pour la Logistique Presse.**
---
## 🎯 Vision & Intention
**VCP Repérages** est une solution "Data-First" conçue pour combler le fossé entre la planification logistique (LG Presse) et la réalité du terrain. Face à la complexité de la gestion de milliers d'adresses et de tournées, ce projet remplace les processus manuels par une architecture centralisée.
L'objectif est double : **fiabiliser la donnée** via des algorithmes de parsing et de géocodage (API BAN), et **fluidifier l'opérationnel** grâce à une interface mobile dédiée aux porteurs. C'est un outil de décision tactique transformant des fichiers bruts (RNC, Cartoway) en actions concrètes.
## 🛠️ Tech Stack
Une stack robuste, orientée performance et maintenabilité :
* **Backend :** Python 3.10+, Flask (Blueprints architecture), SQLAlchemy (ORM), Pandas (Data Engineering).
* **Frontend :** HTML5, Bootstrap 5 (Custom Slate Theme), JavaScript (ES6+).
* **Cartographie :** Leaflet.js, Folium, MarkerCluster, API Adresse Data.gouv.
* **Services :** Flask-Mail (SMTP Gmail), OVH (SMS), ReportLab (Génération PDF), SweetAlert2 (UX).
* **Database :** SQLite (Production-ready pour ce volume de données).
## ✨ Fonctionnalités Clés
### 📡 Tour de Contrôle (Admin)
* **Dashboard KPI :** Suivi temps réel des taux de succès, refus et progression globale.
* **Cartographie Décisionnelle :** Heatmaps de densité, évolution temporelle des repérages et filtrage par statut.
* **Parsing Universel :** Moteur d'ingestion compatible RNC & Cartoway.
* **Gestion des Tournées :** Affectation dynamique, filtrage par secteurs et relances mails automatisées.
* **Édition Listings :** Génération de PDF vectoriels pour les feuilles de route (Repérage/Confirmation).
* **Communication :** Envoi de SMS unitaires, relances emails et historique des échanges.
* **Sécurité & Audit :** Dashboard dédié aux logs de connexion, alertes d'intrusion et gestion des sessions inactives (Timeout 60min).
* **Emails de Notification :** Paramétrage centralisé des destinataires pour les rapports de départs, les alertes terrain des chauffeurs et les rappels d'oubli d'importation (Cron).
### 📱 Application Mobile (Terrain)
* **UX "App-Like" :** Interface épurée, gros boutons d'action, mode sombre/clair via CSS variables.
* **Navigation Assistée :** Intégration Google Maps avec confirmation de sécurité (SweetAlert2).
* **Géolocalisation Avancée :** Cartes interactives (Plan/Satellite), clustering des points, affichage des abonnés voisins (SAPESO).
* **Intelligence Spatiale (v4.0) :** Moteur de clustering K-Means (Turf.js) et routage OSRM hybride gérant +300 points d'arrêts fluides.
* **Validation BAN :** Audit automatique de la qualité des adresses via l'API nationale.
* **Sécurité :** Accès par tokens uniques sécurisés (pas de login complexe pour les livreurs).
* **Mode JADE :** Verrouillage automatique (Lecture Seule) des dossiers validés administrativement et archivage visuel.
* **Alerte Terrain :** Bouton d'alerte rapide permettant au chauffeur de signaler un incident au bureau (panne, retard, omission) en précisant les VCP concernés, transmis par email.
### ⚙️ Automatisation & Data
* **Géocodage de masse :** Script dédié (`geocode_abonnes.py`) pour l'enrichissement spatial.
* **RBAC :** Gestion des utilisateurs et rôles (Admin/Opérateur).
* **Design System :** Interface de connexion "Split Screen" et composants UI modernes (Bootstrap 5).
* **Logs :** Traçabilité complète des actions critiques (Import, Suppression, Login, Déconnexion).
### 🧩 L'Écosystème OPTIMA HUB (Modules Principaux)
L'interface a été entièrement réorganisée autour d'un Hub centralisant 11 modules clés, dans l'ordre suivant :
1. **SMS Transport :** Automatisation des notifications de départ, alertes terrain des chauffeurs, gestion centralisée des emails d'administration, envois de SMS exceptionnels/massifs, gestion multi-fournisseurs (Sweego/OVH) et suivi du solde de crédits.
2. **VCP Repérages :** Le cœur opérationnel (Tour de contrôle, édition des listings, application mobile, reporting global).
3. **Gestion Cartographique (Géo-Pilote) :** Studio de création de secteurs, IA spatiale de clustering, simulateur de rentabilité hybride (Scooter/VAE), synchronisation Cartoway, et génération dynamique de feuilles de route.
4. **Gestion Invendus :** Importation des données, envoi des liens de déclaration, suivi des saisies clients, correspondances et intégration progiciel.
5. **Caisse & Rapports :** Interface de saisie des espèces (billets/pièces, suggestions de solde automatiques), suivi financier par VCP/Opérateur et exports.
6. **Optima Fleet :** Gestion de la flotte de véhicules motorisés (Teltonika OBD II). Tracking GPS en temps réel, télémétrie moteur (niveau de carburant, température), alertes matérielles et maintenance prédictive automatique.
7. **Ordonnanceur :** Tri géographique, fusion RNC/Cartoway et optimisation spatiale des tournées.
8. **Indexation Carburant :** Calculateur dynamique pour l'indexation de la flotte VUL basé sur les indices du CNR.
9. **Pilote Mobi-Portage :** Sondage & test prototype V2.10 sur l'avenir des tournées VAE.
10. **Citibike :** Gestion, pointage et suivi en temps réel des tournées Citibike.
11. **Validation JADE :** Verrouillage automatique des dossiers validés administrativement, gestion des abandons et export facilité.
## 🚀 Installation & Usage
### Prérequis
* Python 3.x
* Navigateur moderne (Support ES6)
### Démarrage Rapide
1. **Installation des dépendances :**
```bash
# Dépendances Python (Backend)
pip install flask flask-sqlalchemy flask-login flask-mail pandas folium reportlab requests openpyxl
# Dépendances Node.js (Frontend / Tailwind)
npm install
```
2. **Initialisation de la Base de Données :**
```bash
python init_db.py
# Ou pour une migration de schéma : python migrate_db.py
```
3. **Lancement de l'Environnement de Développement :**
```bash
npm run dev
```
*Cette commande lance simultanément le serveur Flask et la compilation Tailwind CSS en parallèle.*
*L'application sera accessible sur `http://localhost:5000` (ou `0.0.0.0:5000` en réseau).*
4. **Accès Admin par défaut :**
* User: `admin`
* Pass: `admin` *(À changer immédiatement)*
## 📦 Versioning Strict
Ce projet suit un cycle de versioning rigoureux automatisé.
* **Fichier maître :** `version.txt`
* **Automation :** Le script `version_up.py` gère l'incrémentation (SemVer), le commit Git et le tagging automatique.
```bash
# Pour publier une nouvelle version :
python version_up.py
```
### Flux du Projet (v4.0)
```mermaid
graph LR
A[Python Logic] -->|Données JSON| B(Interface JS)
B --> C{Validation}
C -->|OK| D[Rendu HTML Pro]
C -->|Erreur| E[Error Lens Alert]
```
---
*Développé pour LG Presse - Architecture VCP Core v12.0*
<div align="center">
<img src="https://www.lg-presse.fr/gallery/logo%20LG%20Presse.jpg?ts=1764695219" alt="Logo LG Presse" width="80">
<p>
• 5 rue Falcon 33700 Merignac<br>
Contact : g.leveque@lg-presse.com
</p>
</div>