All Projects → webkom → vote

webkom / vote

Licence: MIT license
Abakus' Voting System

Programming Languages

javascript
184084 projects - #8 most used programming language
Pug
443 projects
typescript
32286 projects
Gherkin
971 projects
stylus
462 projects
go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to vote

angularjs-jest-example
✅ AngularJs with Jest example
Stars: ✭ 13 (-48%)
Mutual labels:  angularjs
frontend-boilerplate
Frontend boilerplate for modern day web applications (update: not that modern anymore, go use React instead)
Stars: ✭ 64 (+156%)
Mutual labels:  angularjs
angular-barcode
An angular directive for lindell's JsBarcode
Stars: ✭ 25 (+0%)
Mutual labels:  angularjs
Angular4-seed
Angular 4 Seed for Angular Forms
Stars: ✭ 37 (+48%)
Mutual labels:  angularjs
rentnride
Rent&Ride is an open source for Car Rental script. Travel to any of your favourite places by availing the services in the Rent & Ride application. Book cars for rental by making use of the flexibility to choose the car of your interest.
Stars: ✭ 37 (+48%)
Mutual labels:  angularjs
chakram
Generic Web App for GDG Events
Stars: ✭ 39 (+56%)
Mutual labels:  angularjs
percy-node
Utilities for visual regression testing in node based testing setups (like Protractor) for use with percy.io
Stars: ✭ 17 (-32%)
Mutual labels:  angularjs
main
Share your personal pronouns and stay updated on your friends' pronouns. Pronouny allows you to update your pronouns and send alerts to your friends.
Stars: ✭ 37 (+48%)
Mutual labels:  angularjs
phosphor-webui
Web-based user interface for managing OpenBMC systems
Stars: ✭ 37 (+48%)
Mutual labels:  angularjs
boilerplate-angular-es6-webpack2
Boilerplate angular 1.x with ES6 and Webpack 2
Stars: ✭ 16 (-36%)
Mutual labels:  angularjs
chord-transitions
Transitioning Chord Diagram Demo with Angular/D3
Stars: ✭ 38 (+52%)
Mutual labels:  angularjs
angular-odoo
Call Odoo webservices from AngularJS
Stars: ✭ 41 (+64%)
Mutual labels:  angularjs
krakendesigner
KrakenD configuration editor.
Stars: ✭ 80 (+220%)
Mutual labels:  angularjs
ADM-treeView
Pure AngularJs TreeView
Stars: ✭ 30 (+20%)
Mutual labels:  angularjs
kodi-angular
A web interface to control and manage Kodi, using AngularJS.
Stars: ✭ 14 (-44%)
Mutual labels:  angularjs
angular-heremaps
AngularJS directive for working with Here Maps
Stars: ✭ 19 (-24%)
Mutual labels:  angularjs
shopnx
Ready to use AngularJS Shopping Cart with all features
Stars: ✭ 71 (+184%)
Mutual labels:  angularjs
angular-keypad
📱🔢 A numerical keypad built for mobile devices.
Stars: ✭ 18 (-28%)
Mutual labels:  angularjs
ng-contenteditable
ng-contenteditable
Stars: ✭ 41 (+64%)
Mutual labels:  angularjs
boomerang
Easy website for your GDG Chapter
Stars: ✭ 74 (+196%)
Mutual labels:  angularjs

vote DroneCI Coverage Status Libraries.io dependency status for GitHub repo GitHub

Digital voting system for Abakus' generral assembly

Irrelevant blog post

vote

Setup

vote assumes you have a MongoDB-server running on mongodb://localhost:27017/vote and a redis-server running as localhost:6379. To change the URL, export MONGO_URL and REDIS_URL as an environment variable.

# Start MongoDB and Redis, both required for development and production
$ docker-compose up -d
# Install all dependencies
$ yarn && yarn start

Usage

Users

Initially you will need to create a moderator and or admin user in order to login

# Create a user via the CLI. You are prompted to select usertype.
$ ./bin/users create-user <username> <cardKey>

Card-readers

vote uses a RFID-reader to register and activate/deactivate users. This is done to make sure that only people that are at the location can vote. The RFID-reader needs to be connected to the computer that is logged in to the moderator panel. See section about using the card reader further down this readme.

Development

Check docs for the environment variable ETHEREAL if you intend to develop email related features

$ yarn start

Environment variables

  • MONGO_URL
    • Url to the database connection
    • default: mongodb://localhost:27017/vote
  • REDIS_URL
    • Hostname of the redis server
    • default: localhost
  • ICON_SRC (optional)
    • Url to the main icon on all pages
    • default: /static/images/Abakule.jpg
  • COOKIE_SECRET
    • IMPORTANT to change this to a secret value in production!!
    • default: in dev: localsecret, otherwise empty
  • FRONTEND_URL
    • The site where vote should run
    • defualt: http://localhost:3000
  • FROM
    • The name we send mail from
    • default: Abakus
  • FROM_MAIL
  • SMTP_URL
  • GOOGLE_AUTH
    • A base64 encoded string with the json data of a service account that can send mail.

See app.js and env.js for the rest

Production

For a production deployment example, see deployment in the deployment folder

$ yarn build
$ ICON_SRC=https://some-domain/image.png NODE_ENV=production GOOGLE_AUTH=base64encoding yarn start

Using the card-readers

Make sure you have enabled Experimental Web Platform features and are using Google Chrome. Experimental features can be enabled by navigating to: chrome://flags/#enable-experimental-web-platform-features. Please check that the USB card reader is connected. When prompted for permissions, please select the card reader (CP210x).

Serial permissions (Linux)

When using the card readers on a linux based system there can be permission problems with google-chrome. Chrome needs access to the ports, and often the ports are controlled by another group, so chrome cannot use them. Therefore you must do one of the following:

  1. Run google-chrome as root
$ sudo google-chrome

OR

  1. Add your user to the dialout group.
    • Check what group the tty(USBPORT) is:
    $ ls -al /dev/ttyUSB* | cut -d ' ' -f 2`
    
    • Check what groups your user is added to:
    $ groups
    • Normally the tty is in the dialout group, so add your user to that group with:
    $ sudo usrmod -a -G dialout $USER

You need to sign in and out to get the new privileges!

Tests

vote uses mocha for the backend tests and cucumber.js/protractor for the frontend tests. To run them all you can do:

$ yarn test
# To run in headless mode:
$ HEADLESS=true yarn test

Vote Occasion

We have a list of every occasion vote has been used. If you or your organization use vote for your event we would love if you made a PR where you append your event to the list.

The list is located at ./usage.yml. Just create a new entry at the bottom. Then run yarn lint to see if your YAML is correct.


MIT © webkom, Abakus Linjeforening

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].