79 lines
3.2 KiB
Markdown
79 lines
3.2 KiB
Markdown
# Project Open Data
|
|
|
|
Création d'une API unifié pour accéder à l'ensemble des données dont P4Pillon a besoin.
|
|
|
|
Le principe du projet est de pouvoir intérroger les données de l'open data depuis un réseau local et ainsi s'affranchir des pannes d'internet ou des APIs. Les données pourront être mise à jour régulièrement pour permettre d'avoir les dernières mise à jour.
|
|
|
|
|
|
## Liens
|
|
|
|
- [Source du projet](https://forge.p4pillon.org/P4Pillon/data)
|
|
- [Gestion des tâches](https://projets.p4pillon.org/projects/20/kanban#share-auth-token=wRsBFUyDFfKpcoadOezJjDesIyOtulPAMwwkqMHY)
|
|
- [API de P4Pillon](https://data.p4pillon.org)
|
|
- [Interface Swagger pour l'API](https://ui.data.p4pillon.org)
|
|
- [Support et questionnement](https://matrix.to/#/!UXjiUOiWQMEsMgMNMN:converser.eu)
|
|
|
|
## Données
|
|
|
|
Voici les données qui nous impotés.
|
|
|
|
### ✅ FINESS
|
|
|
|
Informations sur les établissements sanitaires, sociaux, médico-sociaux, et de formation aux professions de ces secteurs.
|
|
|
|
Liens :
|
|
- [Site web](https://finess.esante.gouv.fr/)
|
|
- [Page web sur l'Open Data du gouvernement](https://www.data.gouv.fr/fr/datasets/finess-extraction-du-fichier-des-etablissements/)
|
|
|
|
### ✅ INPI
|
|
|
|
L'Institut national de la propriété industrielle, abrégé par le sigle INPI, est un établissement public à caractère administratif, placé sous la tutelle du ministère français de l'Économie, de l'Industrie et du Numérique.
|
|
|
|
Il y a 2 posibilités pour récupérer les données de l'ensemble des entreprises française :
|
|
- depuis l'API
|
|
- depuis [des fichiers](https://www.data.gouv.fr/fr/datasets/base-sirene-des-entreprises-et-de-leurs-etablissements-siren-siret/)
|
|
|
|
|
|
## Composants logiciels du projet
|
|
|
|
- Base de données : [PostgreSQL](https://www.postgresql.org/)
|
|
- API : [PostgREST](https://postgrest.org/) ([Documentation](https://postgrest.org/en/stable/explanations/install.html#docker))
|
|
- UI : [Swagger UI](https://swagger.io/tools/swagger-ui/)
|
|
- Virtualisation : [Docker](https://docs.docker.com/)
|
|
- Orchestrateur : [Docker Compose](https://docs.docker.com/compose/)
|
|
|
|
|
|
## Script
|
|
|
|
Un script permet d'initialiser le projet en téléchargeant les dépendences, les données de l'Open Data ainsi que de transformer ses données en fichiers CSV.
|
|
|
|
Il faut avoir Docker d'installé et executer cette commande :
|
|
|
|
```bash
|
|
bash build.sh
|
|
```
|
|
|
|
### Docker Compose
|
|
|
|
Nous utilisons Docker Compose pour la mise en place des différents services.
|
|
|
|
Le projet propose 3 fichiers permettant une execution local ou sur un serveur ayant un serveur Traefik de configuré.
|
|
|
|
La configuration se fait à l'aide d'un fichier `.env`, vous devez modifier les valeurs du fichier `.env.template`.
|
|
|
|
Voici quelques commandes possibles :
|
|
|
|
```bash
|
|
docker compose --env-file .env up -d # Création des conteneurs
|
|
docker compose --env-file .env down -v # Suppresion des conteneurs ainsi que des données
|
|
```
|
|
|
|
### PostgreSQL
|
|
|
|
La fonction `COPY` est utilisé dans les fichiers SQL du dossier `./initdb` permettant d'importer les données d'un fichier CSV dans une base de données.
|
|
|
|
### PostgREST
|
|
|
|
- Pour la configuration : https://postgrest.org/en/latest/configuration.html#environment-variables
|
|
- Pour requêter des données : https://postgrest.org/en/stable/references/api/tables_views.html#horizontal-filtering-rows
|