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
- 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
- URL d’accès au WebService symfony :
{url_ws_sf} = http://{hostname}/app.php/api/{version}
- 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
- Requête HTTP POST
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 :
- Itération sur chaque marché
- Calcul et mise à jour des totaux régionaux
- Mise à jour des marchés
Intégration codes CPV
Fait 26/11/2018 : importation des codes CPV en BDD