Mode hors-ligne — application autonome

Demande de Véhicule — Moyens Généraux
Version 100 % hors-ligne

Saisissez, enregistrez, suivez et exportez vos demandes de véhicule sans compte Microsoft et sans Internet. Les données restent dans ce navigateur et s'exportent en CSV/Excel.

💾 Aucun serveur — stockage local
📊 Export CSV / Excel
🖨️ Récépissé + formulaire papier
🔌 Aucune installation
🌐 Vérification de la connexion…

Q1→Q8Formulaire de demande

Les mêmes 8 questions que le formulaire Microsoft Forms de l'Exercice 03 — mais sans connexion. Les champs marqués * sont obligatoires.

Indiquez votre nom complet.
Choisissez un service.
Indiquez la date et l'heure souhaitées.
Indiquez la destination.
Indiquez un nombre de passagers valide (1 à 60).
Choisissez un motif.
Adresse e-mail invalide (elle sert au récépissé).

📧Récépissé & e-mail de confirmation

Généré automatiquement à l'enregistrement. Dans le pipeline en ligne, ce texte part par e-mail via Power Automate (Étape 4.6).

Aucune demande enregistrée pour l'instant. Remplissez le formulaire ci-contre puis validez : le récépissé et l'e-mail de confirmation se construiront automatiquement avec vos données.
🆔
Identifiant et colonnes calculées. Comme dans l'Annexe A, l'application calcule pour vous l'ID (VEH-AAAAMMJJ-hhmmss), la priorité (1 à 3), l'échéance de traitement (4 h si Critique, sinon 24 h) et le domaine de l'adresse e-mail. Ces colonnes figurent dans le CSV exporté.

📊Registre local des demandes

Équivalent de la table Excel DemandesVehicules. Changez le statut et attribuez un véhicule directement ici : tout est enregistré localement, sans réseau.

Aucune demande enregistrée pour l'instant. Commencez par l'onglet « 📋 Nouvelle demande ».
🔑
Rappel du cours (Annexe B.3) : pour utiliser plus tard l'action Power Automate « Mettre à jour une ligne », la colonne ID_Demande doit rester unique. C'est le cas ici : chaque ID contient l'horodatage à la seconde.

📥Exporter

Fichiers générés dans votre navigateur (aucun envoi sur Internet).

✅
Le CSV utilise le point-virgule (séparateur francophone) et un BOM UTF-8 : il s'ouvre directement dans Excel en double-cliquant, accents compris. Le bouton « Copier pour Excel » permet un collage direct dans un tableau déjà ouvert (colonnes alignées).
🗂️
Nom du fichier : REGISTRE_VEHICULES_AUTO_AAAA-MM-JJ.csv — même logique que le classeur en ligne, et colonnes A→K identiques pour un import sans retraitement.

📂Importer / Restaurer

Reprenez un CSV exporté depuis cette application, ou une sauvegarde JSON.

⚠️
L'import fusionne les données : un enregistrement dont l'ID_Demande existe déjà est ignoré (pas de doublon). La suppression du registre crée automatiquement une sauvegarde JSON avant d'effacer.

📋Schéma des colonnes exportées

Les 11 premières colonnes sont celles du registre en ligne (Étape 3) ; les 4 suivantes sont les colonnes « avancées » calculées (Annexe A.4).

#ColonneTypeOrigine
AID_DemandeTexte uniqueCalculée : VEH-AAAAMMJJ-hhmmss-xxxx — le suffixe aléatoire garantit que deux demandes saisies dans la même seconde ne se confondent jamais
BDate_SoumissionDate/heureHeure d'enregistrement locale
CNom_DemandeurTexteQuestion 1
DServiceChoixQuestion 2
EDate_MissionDate/heureQuestion 3
FDestinationTexteQuestion 4
GNb_PassagersNombreQuestion 5
HMotifChoixQuestion 6
IUrgenceChoixQuestion 7
JStatutChoixSaisi dans le registre (défaut : En attente)
KVehicule_AssigneTexteSaisi dans le registre
LEmail_DemandeurTexteQuestion 8
MPrioriteNombre 1-3Calculée (Critique=1, Urgent=2, Normal=3)
NEcheance_UTCDate/heureCalculée (+4 h si Critique, sinon +24 h)
ODomaine_EmailTexteCalculée : partie après le @

🖨️Formulaire papier de secours

Pour les agents sans poste informatique ou en cas de panne totale : imprimez, faites remplir à la main, puis saisissez les demandes dans l'onglet « Nouvelle demande » au retour du réseau.

🖨️
L'impression utilise les styles d'impression du navigateur (Ctrl + P) : seuls le formulaire et le cadre d'impression sont imprimés, le reste de la page est masqué. Pensez à désactiver les en-têtes/pieds de page du navigateur pour un rendu propre.

👀Aperçu du document imprimé

RÉPUBLIQUE — MINISTÈRE / STRUCTURE
Direction des Moyens Généraux — Demande de véhicule de service
Nom et prénoms du demandeur 
Service / Direction 
Adresse e-mail 
Date et heure souhaitées 
Destination 
Nombre de passagers 
Motif de la mission 
Niveau d'urgence☐ Normal   ☐ Urgent (24h)   ☐ Critique
Observations 
Date et signature du demandeur : ______________________     Visa du chef de service : ______________________

ℹ️Comment fonctionne le mode hors-ligne

1. Vous saisissez une demande dans l'onglet « Nouvelle demande ». L'application vérifie les champs obligatoires, puis calcule l'ID, la priorité, l'échéance et le domaine e-mail.

2. Elle enregistre la demande dans le stockage local de ce navigateur : hors ligne, sans serveur, sans compte.

3. Vous exportez quand vous le souhaitez : CSV pour Excel, copier-coller direct, ou sauvegarde JSON — et vous pouvez réimporter un export à tout moment.

⚠️
Limites à connaître :
  • les données restent dans ce navigateur, sur cet appareil : pas de synchronisation entre collègues ;
  • vider le cache du navigateur efface tout → exportez régulièrement ;
  • en navigation privée, le stockage peut être refusé (un avertissement s'affiche) ;
  • aucun e-mail n'est envoyé automatiquement : le récépissé se copie ou s'imprime.

🔗Comment le raccorder au pipeline de l'Exercice 03

Le mode hors-ligne ne remplace pas Power Automate : il le complète quand le réseau ou le compte Microsoft manque.

🌐
Le réseau revient ? Exportez le CSV, puis dans Excel Online : Données → À partir d'un texte/CSV, et faites rejoindre la table DemandesVehicules. L'historique revient dans le registre central.
⚡
Vous voulez automatiser l'envoi ? Créez un flux instantanné qui lit le classeur et envoie le récépissé aux adresses de la colonne Email_Demandeur — exactement le modèle de la sous-étape 4.6.
📊
Vous voulez les statistiques ? L'onglet « 📊 Registre » affiche déjà les indicateurs. Pour aller plus loin, importez le CSV dans Power BI Desktop (qui fonctionne hors ligne) et reprenez les mesures DAX de l'Annexe B.7.

🔒Confidentialité

Aucune donnée n'est transmise : l'application n'effectue aucune requête réseau. Les enregistrements sont stockés en clair dans le stockage local du navigateur — sur un poste partagé, exportez le CSV puis videz le registre en fin d'utilisation.

🔄Envoi automatique vers le serveur

Chaque demande est conservée en local, puis transmise toute seule dès que le réseau revient : c'est le principe offline-first, celui des applications de collecte terrain (enquêtes, recensements, relevés).

🗺️Comment ça marche

📝 Saisie hors ligne → 🕓 File d'attente locale → 📶 Retour du réseau → 🔄 Envoi automatique → 🗄️ Registre serveur → 📊 Excel / Power BI
📴
En zone blanche : rien ne se perd. Chaque demande porte l'état « 🕓 en attente » dans le registre, qui reste complet, modifiable et exportable.
📶
Au retour du réseau : l'application envoie en une seule fois toutes les demandes en attente, le serveur les dédoublonne par identifiant et répond la liste de celles qu'il a acceptées. L'état passe alors à « ✅ envoyé ».

🔐Ce que devient la donnée (à savoir avant d'activer)

  • Le serveur empile les lignes dans un fichier CSV aux mêmes 15 colonnes que votre export (séparateur « ; », BOM UTF-8) : il s'ouvre directement dans Excel.
  • Ce fichier est stocké hors de la racine web : il n'est pas téléchargeable depuis Internet (testé : réponse 404).
  • L'envoi est idempotent : un identifiant n'est jamais enregistré deux fois, même si l'application renvoie toute sa file d'attente après une coupure.
  • Un journal d'audit conserve l'heure, l'adresse IP et le nombre de lignes de chaque envoi.
  • Un jeton partagé et une limite d'envois par heure et par adresse protègent le service des envois accidentels.
⚠️
Le jeton n'est pas un secret : il est visible dans le code de cette page. C'est un garde-fou, pas une authentification forte. Pour un usage en production, passez plutôt par un déclencheur HTTP Power Automate (authentifié) ou une vérification d'identité côté serveur. Sans adresse configurée, l'application reste 100 % locale : utilisez alors l'export CSV.
🖥️
Application ouverte depuis une clé USB ? Saisissez l'adresse complète (https://…/sync.php) : l'envoi automatique fonctionne aussi depuis un simple fichier local.