2025-04-30 21:29:54 +02:00
2025-04-30 21:29:54 +02:00
2025-04-30 21:29:54 +02:00
2025-04-27 11:27:56 +02:00
2025-04-30 21:29:54 +02:00
2025-04-30 21:29:54 +02:00
2025-05-01 11:34:20 +02:00
2025-04-30 21:29:54 +02:00

Chaîne de fabrication du numérique

La chaîne de fabrication du numérique, qui s'étend de l'extraction des matières premières à l'assemblage final, joue un rôle central dans les activités économiques et sociétales.

Pourtant, cette chaîne reste insuffisamment étudiée dans son entièreté. De nombreuses analyses existantes portant sur la « criticité » des minerais ne vont pas au-delà d'une approche macroéconomique, souvent focalisée sur la seule rareté d'un métal ou sur le degré de concentration de sa production.

Or, dans le contexte actuel de « polycrise globale », marqué par des tensions géopolitiques, des aléas climatiques et une croissance rapide de la demande hors numérique (transition énergétique, défense, etc.), ces approches généralistes révèlent leurs limites.

L'objectif de ce projet est de proposer à la fois des données les plus complètes possibles sur cette chaîne, et de fournir les outils nécessaires pour la visualisation des relations, les analyses, la lecture des fiches des opérations (assemblage, fabrication, extraction, …).

Le code proposé répond à la partie outillage.

Principe général

Le projet est bâti sur un backeng Gitea pour la gestion des fiches et des tickets d'évolution. (Accéder au backend)[https://fabnum-git.peccini.fr/FabNum/Fiches]

Le serveur qui héberge l'application héberge aussi le service Gitea, ce qui permet d'éliminer les temps de latence dus au réseau.

L'application est écrite en python et utilise majoritairement streamlit.

Les données du code

Requirements

Le fichier requirements.txt permet d'installer tout ce qui est nécessaire pour l'application.

python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Environnement

Le fichier .env n'est pas dans le dépôt car il contient la clé pour accéder au backend.

Pour l'environnement de pré-production, (https://fabnum-dev.peccini.fr)[https://fabnum-dev.peccini.fr] :

ENV=dev
PORT=8502
GITEA_URL = "https://fabnum-git.peccini.fr/api/v1"
GITEA_TOKEN = "LE_TOKEN_POUR_ACCEDER_A_GITEA"
ORGANISATION = "fabnum"
DEPOT_FICHES = "fiches"

Pour l'environnement de production, (https://fabnum.peccini.fr)[https://fabnum.peccini.fr], le fichier est identique sauf pour :

ENV=public
PORT=8501

dev et public sont les deux branches officielles du dépôt.

L'application se lance simplement sous la forme :

streamlit run fabnum.py --server.port 8502

launch-fabnum.py

Ce script permet de lancer l'application en prenant en compte le fichier .env

Pour automatiser le lancement, il est intégré dans systemd :

/etc/systemd/system/multi-user.target.wants/fabnum-dev.service

[Unit]
Description=Fabnum Dev - Streamlit App
After=network.target

[Service]
WorkingDirectory=/home/fabnum/fabnum-dev
ExecStart=/home/fabnum/fabnum-dev/launch_fabnum.sh
Restart=always
RestartSec=5
User=fabnum
Environment=PYTHONUNBUFFERED=1

[Install]
WantedBy=multi-user.target

fabnum.py

Le cœur du fonctionnement. C'est ce script qui permet de proposer l'interface de navigation, les analyses, les visualisations graphiques et l'accès aux fiches.

Il se connecte au backend Gitea pour récupérer le fichier schema.txt contenant tous les nœuds et toutes les relations entre eux pour décrire la chaîne complète.

Il s'y connecte aussi pour récupérer les fiches et les présenter.

tickets_fiche.py

Ce script est invoqué par fabnum.py pour assurer la coopération avec les internautes. Il permet de se connecter au backend Gitea pour récupérer les tickets associés à une fiche, les présenter ou en créée un nouveau.

Description
No description provided
https://fabnum.peccini.fr/
Readme 7.2 MiB
Languages
Python 97.8%
CSS 1.1%
Shell 1%