Admin Terrain
Accès réservé — entrez le mot de passe d'administration.
Mot de passe ou captcha incorrect
Admin — Terrain Data
public/api/admin-save.php → public_html/api/admin-save.php admin-env.php → public_html/api/admin-env.php À créer Comment créer admin-env.php sur O2Switch
- Ouvrir un terminal et lancer la commande suivante en remplaçant
VOTRE_MOT_DE_PASSE:
node -e "const c=require('crypto'); console.log(c.createHash('sha256').update('VOTRE_MOT_DE_PASSE').digest('hex'));" - Le résultat (64 hex) va dans
admin-env.phpET dansadmin-terrain.js(PASS_HASH)
- Créer
public_html/api/admin-env.phpavec ce contenu :
<?php
define('ADMIN_SECRET', 'coller-ici-le-hash-64-caracteres'); - Dans l'admin, cliquer Publier tout
- Saisir le mot de passe en clair (pas le hash)
- Le navigateur calcule le SHA-256 automatiquement avant envoi
- La session mémorise le mot de passe 1h — pas besoin de ressaisir
Comment fonctionne l'administration en ligne
- Sauvegarder — enregistre dans le navigateur (localStorage). Ne modifie rien en ligne.
- Publier tout — envoie les données au serveur → met à jour
site-data.jsonvisible par tous les visiteurs + déclenche un rechargement automatique des navigateurs connectés. - Public / Privé — bascule la visibilité de la page Terrain pour les visiteurs.
- Importer / Exporter — sauvegarde/restaure un état complet au format JSON (backup local navigateur).
- Cache Radar — purge le cache PHP serveur (Overpass, communes OSM) pour forcer des données fraîches.
- Réinitialiser — efface toutes les données du navigateur (localStorage). Irréversible — faire un export JSON avant.
- Accès page — mot de passe hashé SHA-256 + CAPTCHA + session 1h.
- Publication — mot de passe haché SHA-256 côté navigateur avant envoi. Jamais de mot de passe en clair sur le réseau.
- admin-env.php — fichier secret sur O2Switch uniquement (jamais dans git). Contient le hash SHA-256.
Données du dashboard
Légende — que saisir dans chaque champ ?
- Km parcourus — Distance totale effectivement roulée depuis le départ (mis à jour chaque soir). Affiché dans le widget dashboard.
- Jours de route — Nombre de jours passés à pédaler (hors jours de repos ou préparation). Affiché dans le dashboard.
- Besoins identifiés — Nombre de besoins data/IA détectés lors des rencontres terrain. Compteur visible dans la sidebar.
- Rencontres entreprises — Nombre total d'entreprises rencontrées physiquement. Compteur visible dans la sidebar.
- Km entraînement — Total des km de préparation avant le départ. Affiché dans la metric card d'entraînement du dashboard.
- Étape en cours — Texte libre affiché sous "Actuellement". Ex :
En route vers Dreux,Étape à Lyon. - Prochaine étape — Ville de destination affiché dans l'encart "Prochaine étape →". Sélection parmi les étapes définies.
- Jours prévus — Durée totale estimée du parcours en jours calendaires (pas forcément des jours de route).
- Km total — Distance totale du tracé complet (affiché dans le bandeau hero). Format libre, ex :
~2 500. - Nombre d'étapes — Nombre d'étapes planifiées au total. Affiché comme 11 étapes dans le hero.
- Période — Plage de dates du parcours. Ex :
Avril – Juin 2026.
Infos parcours (hero)
Statuts des étapes (pilote le KPI "Étapes réalisées")
Position actuelle
Gestion des étapes
Cliquez sur une étape pour la modifier. Changez le statut pour marquer une étape comme visitée.
| # | Ville | Région | Km | Statut | Lat | Lng | Visible | Actions |
|---|
Modifier l'étape
Journal du terrain
Nouvelle entrée
Les entrées du journal sont incluses dans Publier tout — aucune action supplémentaire.
Photos du parcours
Les photos sont référencées par leur chemin dans /Images/terrain/.
Uploadez-les via FTP ou le gestionnaire de fichiers O2switch, puis ajoutez le chemin ici.
Ajouter une photo
Fichier :
Chemin qui sera ajouté :
Vidéos Nextcloud par récit
Ajoutez ou retirez les vidéos affichées sur /parcours-immersif, pour chaque récit du journal.
Collez le chemin exact du fichier sur Nextcloud (ex. Photos/PXL_20260419_133104482.mp4) —
il est vérifié automatiquement contre la liste Nextcloud avant l'ajout.
Photos par lieu Nextcloud
Les photos taguées sur un lieu Nextcloud configuré (champ "Lieux Nextcloud" d'une étape, dans /admin-parcours)
s'affichent automatiquement sur /parcours-immersif. Ici, retire une photo précise de l'affichage sans
toucher au lieu ni au fichier sur Nextcloud — clique sur une vignette pour l'ouvrir en grand avant de décider.
Comment fonctionne l'auto-découverte par lieu ▸
- Ça repose sur la fonctionnalité "Places" de l'app Nextcloud Photos : elle regroupe automatiquement toutes les photos du compte (n'importe quel dossier) par géolocalisation EXIF — le GPS embarqué au moment de la prise de vue.
- Techniquement : requête WebDAV
PROPFINDsur/remote.php/dav/photos/{user}/places/{lieu}/— une URL virtuelle générée à la volée par Nextcloud, pas un vrai répertoire (voirpublic/api/nextcloud-places.php).
- Le texte tapé dans "Lieux Nextcloud" (
/admin-parcours, par étape) doit être identique au nom que Nextcloud a lui-même déduit pour cette photo — visible dans l'app Photos → onglet Lieux, sur le web ou l'app mobile Nextcloud. - Une faute d'orthographe ou un nom légèrement différent (ex. accent manquant) ne remontera aucune photo.
- Retirer le lieu entier ferait disparaître toutes ses photos — l'exclusion ici cible une photo précise (par son identifiant Nextcloud) sans toucher au lieu ni au fichier.
Parcours GPX
Importez vos fichiers GPX Garmin / Strava / Komoot. Le tracé sera stocké et affiché directement sur la carte Terrain. Activez/désactivez la visibilité de chaque parcours.
Fichiers GPX enregistrés
Aucun fichier GPX enregistré pour le moment.
Aperçu des données
Voici le JSON complet tel qu'il sera exporté. Vérifiez les données avant de les exporter.
Coordonnées des grandes villes de France
Recherchez une ville puis cliquez sur Copier pour récupérer ses coordonnées.
| Ville | Région | Latitude | Longitude | Action |
|---|
Gérez ici les liens affichés dans l'onglet Liens utiles du Radar. Organisateurs officiels, plateformes de veille, agrégateurs — publiés via Publier tout.
Liens & Sources utiles
| Nom | Catégorie | URL | Description | Actions |
|---|
Nouveau lien
Les liens sont inclus dans Publier tout (bouton en haut) — ils apparaissent dans l'onglet Liens utiles du Radar.
Statut API Strava
Configuration — strava-env.php
Uploader ce fichier sur le serveur via FTP dans public_html/api/strava-env.php.
Ne jamais le committer dans le repo.
<?php $STRAVA_CLIENT_ID = '213901'; $STRAVA_CLIENT_SECRET = 'f0e301f4e8e195e2b66628204fc7da1adfe22fdc'; $STRAVA_REFRESH_TOKEN = 'fe65e09336f38c60c1039816bb9924876dc39623'; $STRAVA_CRON_SECRET = 'op-cron-strava-2026-oceanphenix';
Tag activités TourData 2026
Ajouter ce tag dans le titre de l'activité sur Strava (web ou app mobile) pour qu'elle apparaisse sur la page /strava.
Exemple : "Sortie vélo Bordeaux #Tourdata2026"
Le renommage peut se faire après coup — effectif au prochain chargement de la page (cache 10 min).
Procédure de déploiement
npm run build › 2 Upload dist/ → public_html/ › 3 Vérifier /strava (point vert)
strava-env.php n'est à uploader qu'une seule fois. Il n'est pas inclus dans le build.
Gérez les jalons de la Vision Produit affichés sur la page /concept. Publiés via Publier tout — visibles immédiatement sans rebuild.
Jalons & Vision Produit
| # | Date | Titre | Sous-titre | Statut | Actions |
|---|
Nouveau jalon
Les jalons sont inclus dans Publier tout — la page /concept se met à jour en temps réel sans rebuild.