PHPackages                             willscottuk/eurovision - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. willscottuk/eurovision

ActiveLibrary

willscottuk/eurovision
======================

Demo Eurovision App

v2.0(8y ago)06[3 issues](https://github.com/willscottuk/Eurovision/issues)[3 PRs](https://github.com/willscottuk/Eurovision/pulls)MITCSSPHP &gt;=5.6

Since May 15Pushed 3y agoCompare

[ Source](https://github.com/willscottuk/Eurovision)[ Packagist](https://packagist.org/packages/willscottuk/eurovision)[ Docs](https://github.com/eurovision)[ RSS](/packages/willscottuk-eurovision/feed)WikiDiscussions master Synced yesterday

READMEChangelog (3)Dependencies (7)Versions (7)Used By (0)

Eurovision
==========

[](#eurovision)

A simple Eurovision party / voting app based on [CakePHP](http://cakephp.org).

Requirements
------------

[](#requirements)

1. Apache with `mod_rewrite`
2. PHP 5.3 or higher
3. MySQL 4.1 or higher
4. CakePHP requirements: `mcrypt`, `mbstring` and `intl`

Installation using composer
---------------------------

[](#installation-using-composer)

1. `composer create-project willscottuk/eurovision eurovision`
2. `cd eurovision`
3. `composer install`
4. Run `eurovision.sql` on your database to set up the necessary tables
5. Modify `config/app.php` to include your database details.
6. Set `eurovision/webroot` to be your webroot
7. Go to `yourdomain.com/users/add` to create the admin user.

Usage
-----

[](#usage)

We've used this for two years now and v2 is a big backend improvement on 2018.

Steps to make it work:

1. Add the competing countries &amp; 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](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 be `NULL` for all.
2. 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.
3. When the final running order is known, update the `position` column with the running order (where 1 is the first act).
4. 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
5. 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.
6. 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!
7. 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.
8. (There is no step 8 - enjoy!)

How it works
------------

[](#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
----------------

[](#work-in-progress)

TODO:

1. Add emoji support (already changed the databases to UTF-8 in preparation)
2. Add a nicer admin backend
3. Add a way for remote participants to see our voting! Let's make it a bigger thing next year!

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

Top contributor holds 99.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~181 days

Total

3

Last Release

2921d ago

Major Versions

0.0.1 → v2.0-alpha.12018-04-24

### Community

Maintainers

![](https://www.gravatar.com/avatar/1f3d6176787c422eb8fc807ba49094dada411350d5805fc7d3e0fe5877c56384?d=identicon)[willscottuk](/maintainers/willscottuk)

---

Top Contributors

[![willscottuk](https://avatars.githubusercontent.com/u/28684940?v=4)](https://github.com/willscottuk "willscottuk (109 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (1 commits)")

### Embed Badge

![Health badge](/badges/willscottuk-eurovision/health.svg)

```
[![Health](https://phpackages.com/badges/willscottuk-eurovision/health.svg)](https://phpackages.com/packages/willscottuk-eurovision)
```

###  Alternatives

[cakephp/app

CakePHP skeleton app

3831.7M1](/packages/cakephp-app)[bedita/manager

BEdita Manager - official admin webapp for BEdita4 API

131.0k](/packages/bedita-manager)[xety/xeta

A resource to help people starting with Cake3

531.4k](/packages/xety-xeta)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
