Skip to content
/ Kyela Public
forked from abienvenu/Kyela

Participation polls for group events

License

AGPL-3.0, AGPL-3.0 licenses found

Licenses found

AGPL-3.0
LICENSE
AGPL-3.0
COPYING
Notifications You must be signed in to change notification settings

68040/Kyela

 
 

Repository files navigation

Kyela

Scrutinizer Code Quality Build Status Code Climate Latest Stable Version License SensioLabsInsight

Participation polls for group events

Features

  • 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

Basic Usage

  • 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!

Server Installation

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).

Docker

The simplest way to get your very own Kyélà instance is to use the Docker image.

Simple container

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

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.

Container with a named volume

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

Native

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

Loading examples

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

Customisation

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

CHANGELOG

  • 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

TODO

  • Timezones ?
  • Sort participants alphabetically ?
  • Make a knpbundles readme
  • Code improvements (see Scrutinizer)

BUGS

FUTURE (MAY BE) FEATURES

  • 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

SensioLabsInsight knpbundles.com

About

Participation polls for group events

Resources

License

AGPL-3.0, AGPL-3.0 licenses found

Licenses found

AGPL-3.0
LICENSE
AGPL-3.0
COPYING

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 76.7%
  • HTML 20.8%
  • CSS 1.7%
  • Other 0.8%