Etats-Unis : une proposition de loi pour le vote par approbation

Article intéressant sur Slashdot (en anglais) au sujet d’une proposition de loi aux Etat-Unis qui, si elle est adoptée, modifierait le mode de scrutin utilisé dans le New Hampshire en faveur du vote par approbation (inclus dans PyVotons, version locale pour l’instant).

Dans la discussion, après des commentaires positifs pour la plupart, un commentateur affirme préférer la Méthode Schulze qui a de nombreux avantages et un gros inconvénient : il est difficile pour les électeurs de comprendre comment est calculé le résultat du scrutin.

Cette méthode devrait cependant être implémentée dans PyVotons! au même titre que les autres systèmes de vote.

Publié dans Politique & société | 2 commentaires

Protocole de communication client-serveur

Première tentative pour définir le protocole de communication client-server.

Principe

Le client envoie des requêtes au serveur comprenant un ID et reçoit une réponse mentionnant l’ID. Chaque requête est un objet JSON, en python un dictionnaire de la forme : {‘type’:’typeRequete’, ‘data’:mesParametres}

Types de requêtes

Liste des requêtes possibles (première version) du client au serveur :

  1. ‘Auth’:identification de l’utilisateur
  2. ‘CreateUser’: création d’un utilisateur
  3. ‘CreateScrutin’: création d’un scrutin,
  4. ‘GetScrutin’: récupération des informations sur un scrutin,
  5. ‘UpdateScrutin’: modification d’un scrutin existant,
  6. ‘GetVoteTemplate’: récupération d’un scrutin et des questions associées pour présenter une page de vote,
  7. ‘CheckAndRegisterVote’: vérification de la validité d’un vote et enregistrement,
  8. ‘GetResults’: récupèration des résultats d’un scrutin,
  9. ‘ListScrutins’: liste les scrutins accessibles à l’utilisateur (en cours, terminés…),
  10. ‘UserGroupManagement’: Gestion des groupes et des droits des utilisateurs

Paramètres par type de requête

– Auth :

data = {‘login’:login,  ‘pass’:mot de passe}

ATTENTION : il faut gérer un salt à l’enregistrement d’un nouveau user et donc stocker le login, le salt, et le hash SHA/MD5 de la concaténation (mot de passe + salt). Continuer la lecture

Publié dans Development | Laisser un commentaire

PyVotons! : Un prototype de logiciel de vote

  1. Présentation générale

    PyVotons! est un logiciel libre pour l’organisation de scrutins.

    Il fait partie d’un projet plus large (Propositions) dont le but est de permettre le travail en commun, l’élaboration de propositions, le débat et la prise de décision collective.

    Au cours des réflexions sur ces thématiques, nous avons pensé à développer un logiciel permettant de voter par internet en utilisant des méthodes de votes alternatives.

    Comme je n’avais pas les compétences (et surtout l’intérêt) pour la réalisation d’une interface de vote web, j’ai réalisé un prototype simple d’un système de vote pour l’élection de candidats qui nécessite l’utilisation de bureaux de votes ou l’installation du logiciel chez chaque personne souhaitant voter.  C’est la version classique de PyVotons, utilisable bien qu’incomplète.

La nouvelle version Web de PyVotons est en cours de développement. Elle permettra à chaque électeur de voter sur le site internet où sera installé PyVotons!

  1. Objectifs de PyVotons!

    Le but de ce logiciel est de :

    • démontrer la faisabilité d’un système de vote par internet pour une démocratie plus directe au sein d’une association ou d’un parti politique.
    • permettre d’expérimenter des systèmes de vote plus représentatifs des opinions des électeurs que ceux en vigueur dans nos démocraties
  2. Téléchargement

    La version web ne fonctionne pas encore. Des éléments d’interface graphique, une structure de base de données ont été développés. Un dépôt GIT permet de gérer les versions du logiciel, il n’est pas en ligne pour l’instant.

    Quelques pages présentant la nouvelle interface sont accessibles ici.

  3. Anciennes versions

    Seul le code source est disponible (pas de paquetage ou d’exécutable).

    Le programme doit fonctionner sous Linux, Windows et MacOS, mais seul Linux a été testé.

    Pour utiliser le logiciel, il faut avoir une installation fonctionnelle de Qt 4, PyQt 4 et Python.

    Téléchargez la dernière version locale de PyVotons!, puis décompressez le fichier dans un répertoire.

    Vous pouvez alors exécuter CreerScrutin.py, Vote.py, et CalculResultatsDialog.py pour démarrer un scrutin, enregistrer les votes et calculer les résultats. Pour plus de détails, reportez-vous à la documentation.

  4. Documentation

    Documentation pour les utilisateurs

    Documentation pour les développeurs

  5. Outils, licence et copyright

    Ce logiciel fonctionne grâce à d’excellents outils libres qui ont permis un développement rapide et efficace :

    • Le langage Python;
    • La bibliothèque Qt développée par Trolltech puis Nokia pour l’interface graphique et le réseau;
    • PyQt qui permet d’utiliser la librairie C++ Qt avec Python, par Riverbank computing
    • Pyjamas pour la version web.

    PyVotons! est un logiciel libre, développé en 2009, 2010 et 2011 par Manik Bhattacharjee (manik-listes at altern.org), diffusé sous la licence GNU GPL version 3 (version locale) et Affero GPL version 3 (version web)

    GPL v3

  6. Développements futurs

    Fonctionnalités à ajouter et suggestions :

    • CreerScrutin ne permet pas de rentrer un titre et des commentaires (pourtant stockés dans les fichiers).Il faut ajouter cette possibilité dans l’interface
    • Impression du bulletin de vote pour permettre un recomptage manuel des voix
    • Serveur d’enregistrement des votes et protocole de communication avec les bureaux de vote
    • Ajouter d’autres méthodes de vote
    • Revoir les formats de fichier
    • Modification du code (noms des variables et des fonctions) vers l’anglais pour permettre une diffusion internationale du logiciel
    • Utiliser les fonctions de traduction de PyQt pour pouvoir afficher une version anglaise et une française.

Seul le code source est disponible (pas de paquetage ou d’exécutable).

Le programme doit fonctionner sous Linux, Windows et MacOS, mais je ne dispose que de Linux pour les tests.

Pour utiliser le logiciel, il faut avoir une installation fonctionnelle de Qt 4, PyQt 4 et Python.

Téléchargez la dernière version de PyVotons!, puis décompressez le fichier dans un répertoire.

Vous pouvez alors exécuter CreerScrutin.py, Vote.py, et CalculResultatsDialog.py pour démarrer un scrutin, enregistrer les votes et calculer les résultats. Pour plus de détails, reportez-vous à la documentation.

Publié dans Documentation | Laisser un commentaire

PyVotons : un nouveau site

Bienvenue sur le nouveau site du projet PyVotons !

Le contenu du site précédent sera progressivement intégré dans cette nouvelle version…

Publié dans news | Laisser un commentaire