Participation polls for group events
- Create one or many polls
- Each poll has a randomized URL; only people who get the link can have access
- Suggest one or many dates
- Customize the choices (text and color), add more choices
- User comments
- Simple usage, no authentication
- Mobile friendly
- No ad, no fee, no spying, just OpenSource
- Point your browser to a website hosting the Kyélà application, like http://kyela.net
- Create a new poll
- Bookmark the URL of the poll
- Add participants and events
- Share the URL of the poll with your friends
- Enjoy!
Maybe you want your own private Kyélà server firewalled somewhere to protect your super-secret meetings. Or Maybe you want to run a customized, cooler version, for your private team of even for the public. Anyway, your are free to do it in the frame of the AGPL license, and you have two options: Docker (the easy one), or native (for more experienced admins).
The simplest way to get your very own Kyélà instance is to use the Docker image.
This is the very simplest way to have Kyélà running, suitable for test or demo purpose:
- Install docker
- Download and run the application :
$ docker run -d --name kyela -p 8042:80 abienvenu/kyela
- Point your browser to http://localhost:8042/
After a reboot, you may want to start the application again:
$ docker start kyela
To update the code to the latest Symfony and Kyélà version, run:
$ docker commit kyela # in case the update goes wrong
$ docker exec kyela composer update
NOTE: In this case, all the data lives inside the container, including polls created by your users. Good point: if you move the container somewhere else, the data goes with it. However, if you remove the container, the data is DELETED.
Using a named volume is more suitable for production use. You should also set the CONTACT_EMAIL environment variable, so your instance users can contact you through the contact form.
$ docker volume create --name kyela-data
$ docker run -d --name kyela -p 8042:80 -v kyela-data:/var/www/kyela/data -e [email protected] --restart always abienvenu/kyela
The named volume can be easily backed up (cf. https://docs.docker.com/engine/tutorials/dockervolumes/#/backup-restore-or-migrate-data-volumes). This technique enables you to pull newer Docker images of the kyela application, remove the old container, and instanciate a new one using the same data volume:
$ docker pull abienvenu/kyela
$ docker stop kyela
$ docker rm kyela
$ docker run -d --name kyela -p 8042:80 -v kyela-data:/var/www/kyela/data -e [email protected] --restart always abienvenu/kyela
You can install Kyélà like in the good old days. This is quiet a longer way though...
- Install Symfony 2.8
- Install Composer
- In the folder where you installed Symfony, edit composer.json and add in the "config" section:
"component-dir": "web/components"
- Download and install the Kyélà bundle :
$ composer require "abienvenu/kyela dev-master"
- Add the bundle and its depedencies in your AppKernel.php :
// app/AppKernel.php
public function registerBundles()
{
$bundles = array(
// ...
new Symfony\Bundle\AsseticBundle\AsseticBundle(),
new Abienvenu\KyelaBundle\KyelaBundle(),
);
}
- Include the route from your app/config/routing.yml :
kyela:
resource: "@KyelaBundle/Resources/config/routing.yml"
prefix: /kyela
- Configure your database parameters in app/config/parameters.yml
- Include the config from your app/config/config.yml :
imports:
- { resource: "@KyelaBundle/Resources/config/config.yml" }
- Add Kyela to the bundles handled by assetic in app/config/config.yml :
assetic:
bundles: [ 'KyelaBundle' ]
filters:
cssrewrite: ~
- Dump the assets :
$ app/console assetic:dump
Fixtures are available to automatically load examples (concert and picnic).
- Install DoctrineFixturesBundle :
$ composer require "doctrine/doctrine-fixtures-bundle ^2.2"
- Register the bundle :
// app/AppKernel.php
public function registerBundles()
{
$bundles = array(
// ...
new Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle(),
);
}
- Load the fixtures :
$ php app/console doctrine:schema:create
$ php app/console doctrine:fixtures:load --append
To edit or extend the FAQ or About page, you just have to add entries in Resources/translations/faq.en.yml (or about.en.yml).
For further customisation, you have to edit the templates or the code. Because of the licence (GNU Affero GPL-3.0), you must publish the modified code as soon as your project is publicly online. If you made cool features, feel free to send pull request to the project: https://github.com/abienvenu/Kyela
- 1.6.3 :
- Added German translation (thanks to NoodleBB)
- 1.6.2 :
- Bootstrap and Jquery are no longer included in the source code, but fetched via composer
- 1.6.1 :
- The email contact is now configurable via an environment variable
- Fix for empty event names
- 1.6.0 :
- Participations are now set using AJAX, without reloading the whole poll page
- 1.5.10 :
- Fixed the Head lines and Bottom lines that would be reset to blank as soon as you edit a poll
- Unit tests are now in Dockerfile, so we should not have any more broken Docker images
- Removed deprecated code
- 1.5.8 :
- Embedded Dockerfile with the application source code
- v1.5.6 :
- Bugfix for date comparison with Sqlite
- v1.5.5 :
- Added limit for "Archives" to avoid memory outages
- v1.5.4 :
- Better documentation
- Docker compatibility
- v1.5.0 :
- Code refactoring: replaced traits by controller inheritance
- v1.4.2 :
- Fix : do not display "add comment" if there is no participant
- v1.4.1 :
- Added protection against dumb crawlers
- Explained cookie policy
- v1.4 :
- Content enhancements on Homepage/Faq/About
- New example: holidays
- Ability to add dates without specifying name nor time
- v1.3 :
- Added placeholders
- Date and time are now optional
- v1.2 :
- Added ability to add an icon for each choice
- Removed the idea of a separate file about-me.en.yml and faq-me.en.yml - just edit the files
- v1.1 : Many small improvements
- Ability to add a participant directly from poll view
- Hide Choice priority, this is purely internal data
- Better ergonomy for choice reordering
- Fixed the bug when creating a Poll/Comment/Participant/Event with only spaces
- Fixed choice ordering in poll view
- v1.0 : Added ability to add comments
- v0.9 : Added ability to lock a poll
- v0.8 : Added ability to add custom HTML above and below the poll
- v0.7.1 : Critical fix for creating choices
- v0.7 : Added access to past events
- v0.6 : Added fixtures and images for examples
- v0.5 : Added ability to reorder choices
- v0.4 : Added ability to switch language English/French
- v0.3.2 : Added time widget
- v0.3 : Added deletion confirmation, autofocus, fixed poll deletion
- v0.2 : Added contact page, default URL and choices for new polls
- v0.1 : First (mostly) working release
- Timezones ?
- Sort participants alphabetically ?
- Make a knpbundles readme
- Code improvements (see Scrutinizer)
- No known yet, file a github issue if you find one https://github.com/abienvenu/Kyela/issues
- Descriptive placeholders
- Put Glyphicons on every button, including standard "Save", "Cancel"...
- For a Poll, customize "Total" color cell at certain thresholds
- Notification subscriptions
- Syndication
- Easy integration from remote websites
- Aggregate/Anonymous mode, for events with lots of participants: the grid only displays total numbers, you can add yourself, then you get a personal link to modify/delete your participation
- Integration with personal agendas (Google, Yahoo...)
- Make a logo, a decent favicon
- Integrate to Travis-CI