Chronométrage des temps de parole
Documentation technique & utilisateur — v2 MVP
Outil de chronométrage collaboratif des temps de parole lors de sessions.
Chronag permet à des organisations d'orchestrer des événements (assemblées, débats, conférences…) en mesurant précisément le temps de parole de chaque participant lors de tours de parole successifs.
Le chronomètre est synchronisé en temps réel entre tous les postes connectés à une même session grâce au protocole Mercure, permettant à un opérateur de démarrer/arrêter le compteur pendant qu'un présentateur surveille son propre temps sur un autre écran.
En fin d'événement, un rapport consolidé cumule les temps de parole de toutes les sessions pour fournir une vue analytique complète.
Hiérarchie des entités principales gérées par Doctrine ORM.
Organisation ← entité racine (slug unique) └── Evenement ← créé par un organisateur ├── Participant[] ← liste fixe, import CSV ├── EventUser[] ← comptes ayant accès └── Session[] ← tour de parole └── SpeechEntry[] ├── participant → Participant ├── startedAt DateTime ├── stoppedAt DateTime|null └── duration int (secondes)
Entité racine identifiée par un slug (ex. mairie-de-lyon). Regroupe les événements et les membres (Membership).
Conteneur principal. L'organisateur y ajoute les participants (manuellement ou via CSV) et accorde des accès aux opérateurs (EventUser).
Une session = un tour de parole. Chaque intervention (SpeechEntry) enregistre le participant, les horodatages et la durée calculée.
Trois niveaux d'accès indépendants — plateforme, organisation, événement.
Accès à /admin/**. Compte créé manuellement, non accessible au public.
Rôle au niveau de l'organisation (via Membership).
Accès limité à un événement spécifique (via EventUser).
/setup/{token} est envoyé à l'utilisateur pour qu'il définisse son mot de passe.Modules couverts par la documentation utilisateur.
Création, configuration, liste des membres. Chaque organisation dispose d'un espace dédié accessible via son slug.
Création d'un événement, ajout de participants (formulaire ou import CSV), attribution d'accès aux opérateurs.
Liste fixe définie par l'organisateur. Import en masse via fichier CSV. Export possible pour archivage.
Interface dédiée par session. Démarrage / arrêt / remise à zéro synchronisés via Mercure (SSE) sur tous les clients connectés.
Création d'une session, sélection du participant actif, enregistrement automatique de chaque intervention.
Vue consolidée au niveau de l'événement : cumul des temps de parole par participant sur l'ensemble des sessions.
Scénario nominal de bout en bout pour la documentation utilisateur.
Référence rapide pour l'équipe technique.
| Méthode | Chemin | Nom de route | Accès requis | Description |
|---|---|---|---|---|
| GET | /login |
app_login |
Public | Formulaire de connexion |
| GET | / |
app_dashboard |
ROLE_USER | Tableau de bord utilisateur |
| GET | /organisations/{slug}/evenements/{id} |
app_evenement_show |
ROLE_USER | Page d'un événement |
| POST | /organisations/{slug}/evenements/nouveau |
app_evenement_new |
Organisateur | Créer un événement |
| GET | /organisations/{slug}/evenements/{eid}/sessions/{sid} |
app_session_show |
EventUser | Détail d'une session |
| GET | /organisations/{slug}/evenements/{eid}/sessions/{sid}/chrono |
app_timer |
EventUser | Interface chronomètre temps réel |
| GET | /organisations/{slug}/evenements/{id}/rapport |
app_report_show |
EventUser | Rapport consolidé de l'événement |
| GET | /admin |
app_admin_dashboard |
ROLE_SUPER_ADMIN | Tableau de bord d'administration |
| GET | /setup/{token} |
app_setup |
Token | Définition du mot de passe (premier accès) |
Technologies utilisées — informations pour l'équipe documentation technique.
Prérequis et commandes pour faire tourner Chronag en local.
# 1. Démarrer les services Docker (BDD, Mercure, Mailpit) docker compose up -d # 2. Installer les dépendances PHP composer install # 3. Appliquer les migrations de base de données php bin/console doctrine:migrations:migrate # 4. (Optionnel) Charger les fixtures de démonstration php bin/console doctrine:fixtures:load # 5. Démarrer le serveur de développement symfony server:start
/admin/users.