{"id":13549920,"url":"https://github.com/peer/mind","last_synced_at":"2025-04-02T23:31:24.451Z","repository":{"id":67453335,"uuid":"44583002","full_name":"peer/mind","owner":"peer","description":"Decide together.","archived":false,"fork":false,"pushed_at":"2020-08-20T15:12:11.000Z","size":1260,"stargazers_count":58,"open_issues_count":172,"forks_count":12,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-11-03T19:37:23.712Z","etag":null,"topics":["decision-making","delegation","democracy","meteor","voting"],"latest_commit_sha":null,"homepage":"http://peermind.org","language":"CoffeeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/peer.png","metadata":{"files":{"readme":"README.md","changelog":"HISTORY.md","contributing":"CONTRIBUTING.md","funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2015-10-20T04:53:22.000Z","updated_at":"2024-10-04T14:42:40.000Z","dependencies_parsed_at":"2023-02-26T14:01:13.119Z","dependency_job_id":null,"html_url":"https://github.com/peer/mind","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peer%2Fmind","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peer%2Fmind/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peer%2Fmind/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peer%2Fmind/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/peer","download_url":"https://codeload.github.com/peer/mind/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246910958,"owners_count":20853652,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["decision-making","delegation","democracy","meteor","voting"],"created_at":"2024-08-01T12:01:27.015Z","updated_at":"2025-04-02T23:31:22.807Z","avatar_url":"https://github.com/peer.png","language":"CoffeeScript","funding_links":[],"categories":["CoffeeScript","others"],"sub_categories":[],"readme":"# \u003cimg src=\"https://cdn.rawgit.com/peer/mind/master/packages/peermind/layout/logo.svg\" width=\"24\" height=\"24\" /\u003e PeerMind #\n\nThe goal of this application is to improve how we do group decision making in our communities.\nInstead of just digitizing current voting practices and moving them online, without much added value,\nthis project aims to explore and improve technologies we use for decision making. Some current ideas:\n* support for communities which meet offline, but want to use online tools to augment their decision making\n* tools for better facilitation of discussions\n* score voting for better multiple-choices decision making\n* dynamic statistical quorum\n* vote delegation\n* visual feedback on decision making process and progress\n\nThe project is in early stages. Consider it a beta/prototype. Any feedback is welcome.\n\nYou can use it but keep in mind that it has not yet been security audited so you should\nprobably not use it for sensitive or critical decisions and where privacy of data and votes is\nimportant.\n\n## Development ##\n\nThe application uses [Meteor](https://www.meteor.com/) web framework. Install it:\n\n```bash\ncurl https://install.meteor.com/ | sh\n```\n\nClone the repository:\n\n```bash\ngit clone --recursive https://github.com/peer/mind.git\n```\n\nRun it:\n\n```bash\nmeteor\n```\n\nAnd open [http://localhost:3000/](http://localhost:3000/).\n\nCurrently you will have to manually create accounts using `meteor shell`:\n\n```javascript\nvar userId = Package['accounts-base'].Accounts.createUser({username: 'admin', password: 'password'});\nPackage['alanning:roles'].Roles.addUsersToRoles(userId, ['admin', 'moderator', 'manager', 'member']);\n```\n\nFurthermore, currently the app has hard-coded four user roles with hard-coded permissions for them:\n* `member`s can add discussion items, add comments to them, propose motions, upvote content, and vote on motions\n* `moderator`s can make points, and edit content of others\n* `manager`s can add discussion items, comment, and propose motions\n* `admin`s can manage user accounts\n* `guest`s can comment\n\nAfter you have created an admin account, you can invite new users into the app. They will get an\ne-mail with instructions how to setup their password. To invite a user, run the following function\nin your browser's web console:\n\n```javascript\nMeteor.call('User.invite', 'email@example.com', 'name', console.log.bind(console));\n```\n\nInvited users initially do not belong to any role. Currently this means that effectively they cannot do anything\nin the app without being added to at least one role. To add them to a role, you can use an admin interface at\n[http://localhost:3000/admin/accounts](http://localhost:3000/admin/accounts).\n\n### Used technologies ###\n\nThe application is built on top of many other technologies and Meteor packages:\n\n* [Blaze](https://guide.meteor.com/blaze.html) for rendering HTML through [Blaze Components](http://components.meteorapp.com/) abstraction.\n* [MongoDB](https://www.mongodb.com/) through [PeerDB](https://github.com/peerlibrary/meteor-peerdb) abstraction.\n* [CoffeeScript](http://coffeescript.org/).\n* [Material Design](https://material.google.com/) through [Materialize](http://materializecss.com/).\n* [job-collection](https://github.com/vsivsi/meteor-job-collection/) for background tasks through [Classy Job](https://github.com/peerlibrary/meteor-classy-job) abstraction.\n\n## Running ##\n\nTo run the application in production you can use [Docker](https://www.docker.com/).\n\nThe application is provided as [peermind/peermind](https://hub.docker.com/r/peermind/peermind/) Docker image.\nIt is based on [tozd/meteor](https://hub.docker.com/r/tozd/meteor/) image for Meteor applications.\n[tozd/meteor-mongodb](https://hub.docker.com/r/tozd/meteor-mongodb/) image is recommended for MongoDB because\nit creates necessary Meteor MongoDB database configuration automatically.\n\nYou can see [`run.sh`](https://github.com/peer/mind/blob/master/run.sh) file for an example how to run it.\n**You have to adapt the script for your installation.** It contains hard-coded values for another installation.\n\nThe application is a regular Meteor application, so you can\n[consider also other ways to deploy and run Meteor applications](https://guide.meteor.com/deployment.html).\n\n## Related projects ##\n\n* https://www.loomio.org/\n* http://democracy.earth/\n* https://airesis.eu/\n* https://consider.it/\n* https://decidim.org/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeer%2Fmind","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpeer%2Fmind","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeer%2Fmind/lists"}