Skip to content

dtc-innovation/dataviz-finances-montreuil

 
 

Repository files navigation

Dataviz finances Montreuil Deploiement sur GitHub Pages

Contribuer

Au vu du scope du projet et de sa spécificité franco-française, il est décidé que le readme, les issues, pull requests et messages de commit sont à écrire en français.

Le code et les commentaires sont à écrire en anglais.

Documents de travail

Présentation de l'outil

L’outil créé est une application 100% front-end chargée à partir de fichiers statiques HTML, CSS, JS, images, etc. Cette application utilise la bibliothèque React.js.

Le code source de référence est actuellement sur github à l’adresse suivante : github.com/dtc-innovation/dataviz-finances-montreuil.

L'outil est composé comme suit :

Capture d'écran de l'outil de visualisation des comptes administratifs

Intégration sur un site web

<div class="finance-dataviz-container"></div>
<link rel="stylesheet" href="https://dtc-innovation.github.io/dataviz-finances-montreuil/build/public.css">
<script defer crossorigin="anonymous" src="https://polyfill.io/v3/polyfill.min.js?flags=gated&features=Map%2CSet%2CIntl%2CArray.prototype.flat%2CArray.prototype.flatMap%2Ces2017%2Ces2016%2Ces2015"></script>
<script defer src="https://dtc-innovation.github.io/dataviz-finances-montreuil/build/dataviz-finance-bundle.js"></script>

Compatibilité navigateur

Minima:

Installer le projet

L'installation de node@>=14 est nécessaire avant de continuer.

Il faut (forker et) cloner ce dépôt pour procéder à l'installation des dépendances du projet :

npm install

Faire fonctionner le projet sur son ordinateur

La commande suivante reconstruit les fichiers d'interface dès qu'un fichier source est modifié. Les composants web sont visualisables dans un navigateur web :

npm start

Deux adresses sont ensuite accessibles :

Anatomie des répertoires

  • ./build : fichiers de données et de l'application web
  • ./data
  • ./fonctions.html : outil de visualisation des fonctions
  • ./images : ressources iconographiques
  • ./index.html : squelette de la visualisation nature/fonction
  • ./public/index.html : squelette de l'exploration éditorialisée
  • ./src
    • ./src/finance-overview : composants pour la visualisation nature/fonction
    • ./src/public : composants de l'exploration éditorialisée
    • ./src/shared : composants partagés
  • ./tests : assurance qualité de calculs critiques
  • ./tools : outils en ligne de commande pour transformer des documents source en données optimisées

Intégration continue

L'intégration continue est automatise les éléments suivants :

  • exécution des tests sur chaque branche ;
  • déploiement de la démo depuis la branche main ;

Le suivi des builds est assuré par GitHub Actions.

Déploiement

Remarque : les étapes de la section Installer le projet doivent avoir été suivies au préalable.

Il existe 2 environnements :

  • démo autonome : npm run build (construite par l'intégration continue)
  • développement : npm start
Variable d'environnement Valeur par défaut Utilité
BASE_URL https://dtc-innovation.github.io/dataviz-finances-montreuil Explicite où sont hébergées les données et assets de l'application.
NODE_ENV undefined Optimise les artéfacts lorsque la valeur est production.

Mise à jour des données financières

Les actions nécessaires à la mise à jour des contenus sont de plusieurs nature :

  • mise à jour des labels finances
  • mise à jour des données budgétaires
  • mise à jour des règles d'agrégats

Les labels finances

Actuellement les labels des articles de la norme comptable sont stockés dans un fichier csv. Ce fichier est mis à disposition par la direction des finances au format Excel.

Ce fichier Excel se convertit en CSV à l'aide de csvkit :

in2csv --skip-lines 1 \
        --no-inference \
        --sheet "Table_Natures" \
        "data/NATURES - FONCTIONS v9_2.xlsx" > "data/agrégation-montreuil.csv"

Les données budgétaires

Pour mettre à jour l'exercice budgétaire rendu visible dans la page d'accueil les étapes suivantes sont actuellement nécessaires

  1. Anonymiser le fichier XML du nouveau CA via l'outil dédié en ligne.
  2. Mettre le fichier XML anonymisé dans data/finances/CA.
  3. Lancer la commande npm run dl:plans-de-compte pour ajouter automatiquement le bon plan de compte dans data/finances/planDeComptes [^plan-de-compte].
  4. Vérifier que l'aggrégation Fonction-Nature ne contient pas de lignes non-utilisées, ni de lignes utilisées plus qu'une fois.

Les données d'agrégats

La dataviz finances est basé sur plusieurs éléments contribuant à son interopérabilité et à sa réutilisabilité :

  • appui sur la norme comptable M14 et le plan de compte associé
  • appui sur le schéma XSD ToTem
  • déploiement continu d'une SPA (Single page application) qui peut être intégré à n'importe quel type de publication (site web autonome, page dans un gestionnaire de contenu)

En plus des présentations par fonctions ou nature M52, le Département de la Gironde présente ses comptes sous un format dit “agrégé”. Ils s’agit d’une centaine de catégories. Il existe (à une petite exception près) une association qui permet de passer d’un document budgétaire en M52 à un document agrégé.

Pour faciliter la gestion actuelle, un tableur numérique collaboratif permet l'écriture des formules en langage métier

https://docs.google.com/spreadsheets/d/1vb9YLAcjjkW1QA5bkuOpYOmD9y34YHwJAcgzepnLXxw/edit#gid=568066882

Cette association est encodée en JavaScript dans les deux fichier suivants :

https://github.com/datalocale/dataviz-finances-gironde/blob/master/src/shared/js/finance/m52ToAggregated.js https://github.com/datalocale/dataviz-finances-gironde/blob/master/src/shared/js/finance/hierarchicalAggregated.js

Par ailleurs, il a été découvert début octobre 2017 que dans de rares cas, un montant associé à une même ligne M52 (fonction/article) se découpe dans 2 agrégats différents. Pour résoudre ce cas, un fichier de “correction” a été ajouté. Il peut être trouvé ici : https://github.com/datalocale/dataviz-finances-gironde/blob/master/data/finances/corrections-agregation.csv

Dans ce fichier CSV, chaque ligne correspond à l’assignation d’une ligne M52 à un agrégat pour un exercice donné

Pour réduire la charge de travail nécesaire, un prototype d'outil permettant de visualiser le résultat des formules a été développé

https://davidbruant.github.io/formule-doc-budg/

Avec quelques évolutions, il pourrait permettre d'enregistrer les formules saisies directement dans le code de l'application.

Les données éditoriales

L’outil contient des pages dites “focus” qui permettent au Département de créer du contenu plus éditorialisé pour mettre en valeur ses actions et parler un peu moins de finance et un peu plus de l’action qui en découle.

Licence

MIT