Documentation

Documentation PyVotons! (version web)

Etat du développement

La version web de PyVotons! est plus ou moins en sommeil, en attendant du temps libre (très rare en ce moment…). Elle n’est pas vraiment utilisable : l’interface graphique n’est pas complète, il faut un développeur pour l’installer, il manque beaucoup de fonctionnalités, et les questions de sécurité n’ont pas été complètement traitées.

Merci de l’essayer si vous voulez aider le développement !

Structure

PyVotons est écrit en Python, et utilise la librarie Pyjamas pour l’interface web (qui devrait peut-être être réécrite directement en javascript ? PyJS après son fork n’a pas l’air très vivace aujourd’hui…).

Le côté serveur est un serveur HTTPS Python(code récupéré d’ailleurs, cf code source).
Il y a donc deux parties : le code côté serveur et le code côté client (écrit en python mais traduit en html + javascript + css par Pyjamas).

Tout ceci est inclus dans un module python « pyvotons » qui contient « ui » (code client), « server », « db », « core », et « test ».

Installation

Base de données SQL

Configuration et initialisation de la base de données (BDD) : installer une base de données MySQL (ça devrait fonctionner avec très peu de modification avec toute base de données SQL  comme PostgreSQL, MariaDB…). Créer une base nommée pyvotons, créez un utilisateur et un mot de passe avec l’accès en lecture et écriture sur cette base puis exécutez createTables.sql (dans le répertoire db)

Ceci créera les tables nécessaires et permet d’ajouter un utilisateur s’il n’est pas créé. Il faudrait d’ailleurs modifier les droits de l’utilisateur pour qu’il ne puisse plus qu’ajouter des lignes dans la base et modifier certaines tables, pas modifier le schéma de la base, et le restreindre à une connexion depuis localhost.

Il n’y a pas de distinction utilisateur standard/admin pour l’instant

Serveur

Décompresser le répertoire « pyvotons » devrait suffire pour l’installation dans le répertoire de votre choix. Par contre, il n’y a pas de fichier de configuration, donc il faut éditer directement le code source pour l’adapter à ses besoins (oui, c’est mal…)

Il faut donc éditer le code de JSONserverManik.py pour changer la variable wwwDir (elle doit contenir le chemin versles fichiers web (code client). Si vous voulez que le serveur écoute ailleurs que sur localhost:8000, il vous faudra éditer l’une des dernières lignes :
server = ThreadedHTTPServer((‘localhost’, 8000), ElectionWebServiceHandler)

Il faut également éditer DataService.py dans la fonction connectDB function si vous n’avez pas utilisé ‘pyvotons’  comme nom de base/nom d’utilisateur/mot de passe dans la base de données.

Il faut maintenant générer des clefs HTTPS (lisez le fichier INSTALL_HTTPS du dossier server pour les instructions)

C’est terminé, éditez et exécutez launchServer.sh (il faut modifier la variable PYTHONPATH dans le fichier pour qu’elle pointe vers le dossier d’installation)

Client

Si vous ne voulez pas changer le code, utilisez simplement les fichiers html et javascript déjà définis dans le répertoire pyvotons/ui/pyjamas/output/ (voir Server pour voir comment indiquer ce chemin au serveur).

Si vous voulez modifier le code, allez dans « ui/pyjamas » : tous les fichiers python sont le code source de l’interface. build.sh de compiler ceci vers javascript (script à modifier en fonction de votre installation de Pyjamas). Le répertoire « public » contient les éléments qui seront inclus avec les fichiers de sortie (comme les fichiers CSS pour les styles graphiques)

Utilisation

– Connectez-vous au serveur avec un navigateur web à l’URL https://localhost:8000/MainMenuPage.html
– Créez un compte ou identifiez-vous
– Consultez le menu principal
– Créez un scrutin
– Types of scrutin et de votes possibles

– Expliquez QuickVote/QuickResult (voter à partir d’un clic pour les scrutins non confidentiels)

[… A continuer …]

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*