peer / mind

Decide together.
http://peermind.org
Other
58 stars 12 forks source link
decision-making delegation democracy meteor voting

PeerMind

The goal of this application is to improve how we do group decision making in our communities. Instead of just digitizing current voting practices and moving them online, without much added value, this project aims to explore and improve technologies we use for decision making. Some current ideas:

The project is in early stages. Consider it a beta/prototype. Any feedback is welcome.

You can use it but keep in mind that it has not yet been security audited so you should probably not use it for sensitive or critical decisions and where privacy of data and votes is important.

Development

The application uses Meteor web framework. Install it:

curl https://install.meteor.com/ | sh

Clone the repository:

git clone --recursive https://github.com/peer/mind.git

Run it:

meteor

And open http://localhost:3000/.

Currently you will have to manually create accounts using meteor shell:

var userId = Package['accounts-base'].Accounts.createUser({username: 'admin', password: 'password'});
Package['alanning:roles'].Roles.addUsersToRoles(userId, ['admin', 'moderator', 'manager', 'member']);

Furthermore, currently the app has hard-coded four user roles with hard-coded permissions for them:

After you have created an admin account, you can invite new users into the app. They will get an e-mail with instructions how to setup their password. To invite a user, run the following function in your browser's web console:

Meteor.call('User.invite', 'email@example.com', 'name', console.log.bind(console));

Invited users initially do not belong to any role. Currently this means that effectively they cannot do anything in the app without being added to at least one role. To add them to a role, you can use an admin interface at http://localhost:3000/admin/accounts.

Used technologies

The application is built on top of many other technologies and Meteor packages:

Running

To run the application in production you can use Docker.

The application is provided as peermind/peermind Docker image. It is based on tozd/meteor image for Meteor applications. tozd/meteor-mongodb image is recommended for MongoDB because it creates necessary Meteor MongoDB database configuration automatically.

You can see run.sh file for an example how to run it. You have to adapt the script for your installation. It contains hard-coded values for another installation.

The application is a regular Meteor application, so you can consider also other ways to deploy and run Meteor applications.

Related projects