# 🚆 Ferrovia Panel - Administration Régionale Bienvenue sur le **Ferrovia Panel**, l'interface d'administration centralisée dédiée à la gestion des exploitations ferroviaires régionales. Cette application React permet de piloter l'intégralité du système d'information voyageurs, des plans de transport, et de la communication interne. --- ## 🛠️ Technologies Utilisées - **Frontend** : React 19 (Create React App) - **UI Kit** : SNCF Web Components (WCS) - **Backend / Base de données** : Supabase (PostgreSQL, Auth, RPC) - **Déploiement ciblé** : Vercel / Netlify --- ## 🚀 Installation & Démarrage ### 1. Prérequis - **Node.js** (version 18 ou supérieure recommandée) - **NPM** (ou Yarn) - Une instance **Supabase** active avec la base de données Ferrovia configurée. ### 2. Cloner et installer ```bash git clone cd ferrovia-panel npm install ``` ### 3. Configuration de l'environnement Créez un fichier `.env.local` à la racine du projet et renseignez vos clés d'API Supabase : ```env REACT_APP_SUPABASE_URL=https://votre-projet.supabase.co REACT_APP_SUPABASE_ANON_KEY=votre_cle_anonyme_publique ``` > **Note :** Si vous utilisez le mode de développement local de test (Mock Login), définissez `REACT_APP_ENABLE_MOCK_LOGIN=true`. ### 4. Démarrage en environnement de développement ```bash npm start ``` L'application sera accessible sur [http://localhost:3000](http://localhost:3000). --- ## 📦 Déploiement en Production Le projet a été nettoyé et optimisé pour le déploiement. Pour générer les fichiers statiques de production : ```bash npm run build ``` Le dossier `build/` généré peut être déployé sur n'importe quel hébergeur statique (Vercel, Netlify, serveurs Nginx, etc.). --- ## 🗺️ Tour d'horizon des Fonctionnalités Le panel est structuré autour de grands modules accessibles via la barre de navigation latérale et le menu régional, soumis à un contrôle d'accès (RBAC) précis : ### 🚉 1. Exploitation & Transport - **Gestion des Gares** : Création, modification, détails des services (guichets, PMR), et gestion des correspondances intermodales (bus, tram, etc.). - **Quais & Voies** : Paramétrage des règles de voies, et attribution en temps réel des quais d'arrivée/départ. - **Matériel Roulant** : Catalogue des types de trains (TER, TGV, etc.) et composition dynamique des rames (voitures, motrices). - **Horaires & Circulations** : - Édition des plans de transport. - Gestion calendaire complexe (Jours de circulation, jours fériés, périodes personnalisées). - Gestion des substitutions de matériel. - Importation GTFS (module expérimental). ### ⚠️ 2. Perturbations & Travaux - **Centre des Perturbations** : Déclaration d'incidents, gestion des modifications de parcours et des retards. - **Gestion des Travaux** : Programmation des fenêtres de travaux de maintenance avec recalcul automatique de l'impact sur les circulations et attributions de cars de substitution. ### 📢 3. Information Voyageurs & CMS - **Info Trafic** : Diffusion d'alertes en temps réel sur les canaux voyageurs. - **Actualités & Événements** : Rédaction d'articles et mise en avant de manifestations régionales. - **Menu Régional & Pages** : Éditeur de contenu dynamique permettant de personnaliser des pages vitrines par région. ### 🔊 4. SIV (Annonces Sonores) - **Banque de mots** : Gestion et stockage des fichiers audios pré-enregistrés. - **Templates d'Annonces** : Création de séquences sonores dynamiques. - **Génération & Diffusion** : Paramétrage des annonces enregistrées (synthèse vocale ou assemblages) et déclenchement ciblé en gare. ### 💶 5. Commercial - **Tarification** : Gestion des grilles tarifaires régionales (prix plancher, prix par kilomètre, âge maximum). ### 💬 6. Collaboration Interne - **Messagerie** : Chat interne permettant aux agents de communiquer en temps réel. - **Notifications** : Centre d'alertes système pour suivre les opérations asynchrones. ### ⚙️ 7. Administration - **Gestion des Utilisateurs** : Création de profils (administrateurs, agents, etc.), gestion des accès par module. - **Paramètres** : Configuration globale de la plateforme ferroviaire. --- ## 🔒 Sécurité - Toute communication backend est opérée via le client Supabase. - Les identifiants de session expirés sont gérés (`credentials: 'omit'`). - RLS (Row Level Security) est implémenté en base de données pour protéger l'intégrité des opérations (les droits d'accès sont définis dans le schéma PostgreSQL de Ferrovia).