README.md 3.77 KB
Newer Older
Pierre-Jean CHANCELLIER's avatar
Pierre-Jean CHANCELLIER committed
1
# Wotmap
Pierre-Jean CHANCELLIER's avatar
Pierre-Jean CHANCELLIER committed
2
Exploration de la Toile de Confiance de Duniter utilisant la librairie javascript [SigmaJS en version 1.2](http://sigmajs.org/) pour le front et la bibliothèque [Python Igraph](https://igraph.org/python/) pour interroger un noeud duniter local.
Pierre-Jean CHANCELLIER's avatar
Pierre-Jean CHANCELLIER committed
3

Pierre-Jean CHANCELLIER's avatar
Pierre-Jean CHANCELLIER committed
4
## Tester en ligne
5
- [https://wotmap.duniter.org](https://wotmap.duniter.org)
Pierre-Jean CHANCELLIER's avatar
Pierre-Jean CHANCELLIER committed
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33


![Capture](img/capture.jpg)
## Fonctionnalités

* Importation des données
  * 1 script Python est fourni pour récupérer les données directement depuis la base de données de votre noeud Duniter local ainsi que les photos des membres depuis une instance duniter4j
  * Un fichier JSON avec les noeuds et les liens est fourni
  * Un fichier JSON avec les stats est fourni
* Affichage de la toile de confiance sous forme de graphe
  * Les noeuds sont les membres certifiés
  * La taille de chaque noeud est fonction du nombre de voisins directs.
  * Les liens entre les noeuds représentent les certifications entre chaque membres
* Fonctionnalités
  * Utilisation de la souris pour se déplacer et zoomer sur la wot
  * Cliquez sur un noeud pour ne laisser apparaître que ses voisins directs. Cliquez à nouveau sur le noeud en question pour revenir à l'état initial.
  * Affichage d'un pop-up avec des informations sur le noeud sélectionné
  * Détection de communautés (Label Propagation Algorithm)
  * Double-cliquez sur un noeud pour ne laisser apparaître que sa communauté. Double-cliquez à nouveau sur un noeud pour réafficher l'ensemble de la toile.
  * Faites un clic droit sur un noeud pour masquer sa communauté.
  * Utilisez l'historique de votre navigateur pour revenir sur les noeuds du graphe que vous avez visités
  * Fonction de recherche avec auto-complétion
  * Filtrage des noeuds en fonction du champ référent et/ou en fonction du nombre minimum de voisins (degree)
  * Affichage ou non des avatars cesium+
  * Affichage ou non des noms des membres
  * Affichage ou non des liens pour économiser des ressources machines

## Installation
Pierre-Jean CHANCELLIER's avatar
Pierre-Jean CHANCELLIER committed
34
### I. Installer Python et les paquets nécessaires
Pierre-Jean CHANCELLIER's avatar
Pierre-Jean CHANCELLIER committed
35

Pierre-Jean CHANCELLIER's avatar
Pierre-Jean CHANCELLIER committed
36 37 38
	sudo apt-get update && sudo apt-get install python3 python3-pip
	sudo pip3 install plyvel python-igraph
	
39 40 41 42
En cas d'erreur sur l'installation de python-igraph:

	sudo apt-get install build-essential python3-dev libxml2 libxml2-dev zlib1g-dev
	
Pierre-Jean CHANCELLIER's avatar
Pierre-Jean CHANCELLIER committed
43 44
### II. Récupérer les sources du projet
Rendez-vous dans le dossier HOME de votre utilisateur duniter (par ex : /var/lib/duniter/) et récupérez les sources :
Pierre-Jean CHANCELLIER's avatar
Pierre-Jean CHANCELLIER committed
45

Pierre-Jean CHANCELLIER's avatar
Pierre-Jean CHANCELLIER committed
46
	cd /var/lib/duniter/ && sudo -u duniter git clone https://git.duniter.org/paidge/wotmap.git
Pierre-Jean CHANCELLIER's avatar
Pierre-Jean CHANCELLIER committed
47

Pierre-Jean CHANCELLIER's avatar
Pierre-Jean CHANCELLIER committed
48
### III. Automatisation de la mise à jour des données (CRON)
Pierre-Jean CHANCELLIER's avatar
Pierre-Jean CHANCELLIER committed
49 50 51 52 53 54 55 56
* Créez le dossier qui accueillera les logs (l'utilisateur duniter doit avoir les droits d'écriture) :

		sudo mkdir /var/log/wotmap && chown -R duniter:duniter /var/log/wotmap

* Créez le fichier ***/etc/cron.d/wotmap*** sur votre serveur pour automatiser le lancement du script :

		30 3 * * 0-5 duniter python3 /var/lib/duniter/wotmap/script/wot_json.py >> /var/log/wotmap/wotmap.log 2>&1
		30 3 * * 6 duniter python3 /var/lib/duniter/wotmap/script/wot_json.py -d >> /var/log/wotmap/wotmap.log 2>&1
Pierre-Jean CHANCELLIER's avatar
Pierre-Jean CHANCELLIER committed
57

Pierre-Jean CHANCELLIER's avatar
Pierre-Jean CHANCELLIER committed
58 59
	
### IV. Paramétrage d'Apache
Pierre-Jean CHANCELLIER's avatar
Pierre-Jean CHANCELLIER committed
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
* Créez un virtualhost pour votre nom de domaine

		sudo nano /etc/apache2/sites-available/mondomaine.fr.conf

* Pour y placer votre configuration :

		<VirtualHost *:443>
			ServerName mondomaine.fr
			DocumentRoot /var/lib/duniter/wotmap/
			<Directory /var/lib/duniter/wotmap/>
					Options Indexes FollowSymLinks MultiViews
					AllowOverride all
					Require all granted
					Header set Access-Control-Allow-Origin '*'
			</Directory>
			SSLCertificateFile /etc/letsencrypt/live/mondomaine.fr/fullchain.pem
			SSLCertificateKeyFile /etc/letsencrypt/live/mondomaine.fr/privkey.pem
		</VirtualHost>
	
* Puis activez-le :

		sudo a2ensite mondomaine.fr.conf
		sudo systemctl reload apache2