willscottuk / eurovision
Demo Eurovision App
Installs: 6
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 6
Language:CSS
Requires
- php: >=5.6
- cakephp/cakephp: 3.4.*
- cakephp/migrations: ~1.0
- cakephp/plugin-installer: *
- mobiledetect/mobiledetectlib: 2.*
Requires (Dev)
- cakephp/bake: ~1.1
- cakephp/debug_kit: ~3.2
- psy/psysh: @stable
Suggests
- cakephp/cakephp-codesniffer: Allows to check the code against the coding standards used in CakePHP.
- markstory/asset_compress: An asset compression plugin which provides file concatenation and a flexible filter system for preprocessing and minification.
- phpunit/phpunit: Allows automated tests to be run without system-wide install.
This package is auto-updated.
Last update: 2025-02-18 12:27:05 UTC
README
A simple Eurovision party / voting app based on CakePHP.
Requirements
- Apache with
mod_rewrite
- PHP 5.3 or higher
- MySQL 4.1 or higher
- CakePHP requirements:
mcrypt
,mbstring
andintl
Installation using composer
composer create-project willscottuk/eurovision eurovision
cd eurovision
composer install
- Run
eurovision.sql
on your database to set up the necessary tables - Modify
config/app.php
to include your database details. - Set
eurovision/webroot
to be your webroot - Go to
yourdomain.com/users/add
to create the admin user.
Usage
We've used this for two years now and v2 is a big backend improvement on 2018.
Steps to make it work:
- Add the competing countries & their act details into the
countries
database. The Flag column should contain the 2 letter ISO Alpha-2 codes (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). If you're doing this early (as I normally do) then position at this stage will beNULL
for all. - Edit the 'settings' table to put your values in - there are fields for the year, host country and city as well as your URL and guest wifi details.
- When the final running order is known, update the
position
column with the running order (where 1 is the first act). - The experience is made a lot better by having the "second screen" - I used an old monitor hooked up to my laptop for the 2018 Eurovision. To get to this, you need to go to yourdomain.com/screen
- During the night, someone needs to let the app know when each song starts. To do this, you need "God Mode" - yourdomain.com/control/god. Just as the song starts, hit the big "next" button and within 5 seconds (see below for how it works) the second screen will update with the 3 minute timer.
- Once the 3 minute timer elapses, a summary of the votes and comments entered will display on the screen. Make sure to tell people their votes need to be in by the time the song ends!
- NB - this bit is currently hard-coded so would need to be tweaked if there are more/less than 26 finalists. Once all acts have performed and you've been through the voting for all, God mode will start a 5 minute countdown to the final results - these show the 12, 10, 8, 7, 6, 5, 4, 3, 2, 1 points as if you were a national jury.
- (There is no step 8 - enjoy!)
How it works
The control table will increment from default (0,0 - shows the rotating welcome screen) to (1,1 - shows the voting screen for act 1) to (1,2 - shows the result screen for act 1) to (2,1 - voting for act 2) etc.
The screen view (yourdomain.com/screen) uses jquery to ping out every 5 seconds to see if the control table has changed. If it has, it'll refresh to the new display. At the end of the 3 minute voting timer, a status like (2,1) will automatically be updated to (2,2) therefore showing the results.
At the start of a new song, it's up to the user of God Mode to hit that button to move from e.g (2,2) to (3,1).
Work in progress
TODO:
- Add emoji support (already changed the databases to UTF-8 in preparation)
- Add a nicer admin backend
- Add a way for remote participants to see our voting! Let's make it a bigger thing next year!