Pipeline ETL • SQLite • API • Streamlit • GitHub Actions
Application Streamlit
https://bdpm-database-wtcybha9ypy6kvege9vxes.streamlit.app/
BDPM Database est un projet de Data Engineering permettant de construire une base analytique à partir de la Base de Données Publique des Médicaments (BDPM).
Le projet met en œuvre une chaîne complète de traitement des données :
- 📥 Téléchargement automatique des données
- 🔄 Pipeline ETL
- 🗄️ Construction d'une base SQLite optimisée
- 🌐 API d'accès aux données
- 📊 Dashboard interactif Streamlit
- ⚙️ Automatisation via GitHub Actions
data.gouv.fr
│
▼
update_bdpm.py
│
▼
Fichiers BDPM (.txt)
│
▼
database.py
(Pipeline ETL)
│
▼
bdpm.db
(SQLite)
├────────► api.py
│
└────────► app.py
(Streamlit)
- Import des fichiers BDPM
- Nettoyage et normalisation
- Conversion des types
- Création automatique des index SQL
- Écriture atomique de la base
- Médicaments
- Présentations commerciales
- Substances actives
- Conditions de prescription
- Groupes génériques
- KPIs du marché
- Analyse des laboratoires
- Analyse des molécules
- Analyse des génériques
- Analyse économique
Exposition des données pour une utilisation externe.
- GitHub Actions
- Mise à jour automatique du dataset
- Exécution manuelle ou planifiée
bdpm-database/
├── .github/
│ └── workflows/
├── .devcontainer/
├── tests/
├── data/
├── screenshot/
├── api.py
├── app.py
├── database.py
├── update_bdpm.py
├── bdpm.db
├── requirements.txt
├── LICENSE.txt
└── README.md
Les données proviennent de la :
Base de Données Publique des Médicaments (BDPM)
https://www.data.gouv.fr/datasets/base-de-donnees-publique-des-medicaments-base-officielle
Le téléchargement est automatisé grâce au script update_bdpm.py.
git clone https://github.com/matthieugraziani/bdpm-database.git
cd bdpm-databasepython -m venv .venvWindows
.venv\Scripts\activateLinux / Mac
source .venv/bin/activatepip install -r requirements.txtpython database.pypython update_bdpm.pystreamlit run app.pypython api.pypytest| Technologie | Usage |
|---|---|
| Python | Développement |
| Pandas | ETL |
| SQLite | Base de données |
| Streamlit | Dashboard |
| Plotly | Visualisations |
| GitHub Actions | CI/CD |
| Pytest | Tests |
- API REST avancée
- Docker
- Recherche plein texte
- Migration vers DuckDB
- Tableau de bord enrichi
Projet personnel / académique sous licence MIT.
