Table of Contents
- User Guidelines
YouVote is an open source web-based application that enables users to create ratings and voting contests, and view the results in real time. It has been developed within the EU-funded ‘Eastern Partnership Civil Society Facility –Regional Actions’ project, for the needs of its annual EaP Civil Society Hackathons. YouVote is free to download and run on your server. It allows the audience vote for contenders live on their smartphones, tablets and desktops, and there is nothing voters need to download or install. YouVote is also designed to make voting results transparent for all parties while keeping individual choices private: after the voting ends, voters will see the average scores for each contender, but not individual votes.
Other features of the YouVote application are:
- user verification / authorisation by email through an invitation link, allowing organisers decide who can vote;
- one-time voting for each users, to avoid inflated ratings;
- unlimited number of contests, contenders and questions or criteria to evaluate them;
- adjustable evaluation scale (from 1 to 100), to make evaluations as precise as needed;
- complete and detailed voting results (total, average and for each contender) that organisers can download in excel format;
- settable voting time for each contest, with voting automatically opening and closing when needed;
- easy-to-use admin dashboard that allows organisers customise each contest with a photo, title and description. As a special feature, the YouVote application allows organisers to disable voting for one’s own project, by adding voter(s) to the relevant project team(s).
YouVote is licensed under GNU General Public License v3.0 / Creative Commons Attribution Share Alike 4.0 as its equivalent: licensees have the right to run, study, share, and modify the software, under the condition of making available the source code of licensed works and modifications under the same conditions. The attribution shall be as follows:
- If you run the YouVote application for your purposes without modifications, or share with other users, we would appreciate that you acknowledge this by adding the phrase: ‘The YouVote application was developed with the financial support of the European Union’.
- If you modify the software and use the modified version for your purposes, or publish it further, we would appreciate that you acknowledge the original product by adding the phrase: ‘This <NAME> application uses the source code of the YouVote application developed with the financial support of the European Union’.
3.1 Server Requirements
Following tools were used to develop the app:
- PHP v7 (Yii2 Framework)
- MySQL v5+ (config file
- MailGun for mail (config file
To check your server configuration against Yii Application requirements, you can run the requirements checker http://localhost/requirements.php to see if anything is missing. A sample of the valid environment can be seen here http://vote.eapcivilsociety.eu/requirements.php. More details on the requirements for the Yii Framework can be found here: https://www.yiiframework.com/doc/guide/2.0/en
Mailgun has a free plan if number of emails sent falls into limit of 10K/month: https://www.mailgun.com/pricing/
Once you download the source code, run
composer install command. If you don't have the Composer app, please install it first.
You can find the initial database in the
db folder at the root directory. Import the database.
If you are using apache, DocumentRoot must show
web folder at the root directory of the project.
<VirtualHost *:80> ServerAdmin firstname.lastname@example.org ServerName voting.app DocumentRoot /var/www/html/voting.app/public_html/web <Directory "/var/www/html/my.ggs.uz/public_html"> AllowOverride All </Directory> </VirtualHost>
main-local.php file under
common/config directory and update database credentials. If that file doesn't exists,
pleas create it and add following code:
<?php return [ 'components' => [ 'db' => [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=localhost;dbname=dbname', 'username' => 'username', 'password' => 'password', 'charset' => 'utf8', ], 'request' => [ // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation 'cookieValidationKey' => '82VpS1Xk8wr-kfvmsIRXrFuEipvrVh-j', ] ] ];