Marchés publics

Ce document recense les élements de travail du projet de visualisation des données des marchés publics en BFC

Persona

Acheteur public lui-même :

  • est-ce que pour les mêmes achats j'ai obtenu de bon prix par rapport à mes homologues ?
  • comment mieux anticiper et lisser les actes d'achat dans le temps ? (grandes collectivités)
  • comment évoluent mes indicateurs dans le temps : nb de consultations, volume d'achats, % des entreprises locales (grandes collectivités)

Entreprises :

  • quel est l'historique d'achat d'une collectivité ?
  • quelle est l'entreprise qui a remporté le marché auquel j'ai candidaté et dans quelles conditions ?
  • comment se situent les prix par rapport à mon domaine d'activités dans mon périmètre géographique ?
  • quels sont les domaines porteurs ?

Société civile :

  • quel sont les projets dans les tuyaux / comment est dépensé l'argent de ma collectivité ?
  • comment se positionner cet organisme public par rapports à d'autres territoires ?
  • certaines entreprises sont*elles choisies plus souvent que d'autres

Stratégie

1. API en temps réel

Le premier reflèxe est de créer une appli en temps réel qu'utilise l'API de la SDM.

Problème : Au niveau régional, ce fonctionnement peut être difficile car on a besoin des données de tous les organismes : le fichier modèle d'Atexo pour un contrat fait 2Ko. Sur une année on aura 4.5K consultations qui peuvent donner lieu à X2 contrats. On peut avoir donc avoir potentiellement 2Ko x 10 000 contrats = 20Mo de données à télécharger.

On ajoute à cela le temps nécessaire pour tout parser et aditionner, puis la génération de la dataviz.

2. Dépôt régulier et pré-traitement

On utiliserait l'API de la SDM pour charger notre BDD avec des données pré*traitées. On ferait une couche API adapté à nos besoins : p.e on télécharge seulement les totaux régionales. On part sur cette idée.

3. Données live via API spécifique

Une fois l'outil rodé, on pourra envisager une évolution de l'API d'atexo, afin qu'elle fournise des données déjà traitées qui permettent une vision en temps réel.

Récupération de données

On part sur le stockage sur le labo.

Option API SDM

  1. S’authentifier auprès du service afin d'obtenir un token
    • {url_ws_auth} = http://{hostname}/api.php/ws
    • {url_ws_auth}/authentification/connexion/{login}/{MotDePasse}
    • TODO : demander login et mot de passe
  2. URL d’accès au WebService symfony : {url_ws_sf} = http://{hostname}/app.php/api/{version}
  3. Récupération des données essentielles au format pivot (3.3.2.2 du PDF API)
    • Requête HTTP POST {url_ws_sf}/donnees*essentielles/contrat/format*pivot
    • Paramètres obligatoires : Token = token récupéré, Version = v1
    • Paramètres optionnels : date_notif_min, date_notif_max

Fréquence

Dans un premier temps on lancera la récupération manuellement. Puis le script de traitement.

A moyen terme, lancement en cron.

A long terme, données en live.

Traitement et insertion en BDD

Fait 09/11/2018: Pour pouvoir simuler ce flux de travail il faut transformer les marchés exportés par WL en CSV en XML.

Fait 16/11/2018: Parseur du XML et insertion en BDD.

Les données reçues via l'API sont des XML. La séquence serait la suivante :

  1. Itération sur chaque marché
  2. Calcul et mise à jour des totaux régionaux
  3. Mise à jour des marchés

Intégration codes CPV

Fait 26/11/2018 : importation des codes CPV en BDD