nuancier

Created
Was maintained by pingou
A light web application for voting on supplementary wallpapers of Fedora
git clone
nuancier
========
.. image:: /nuancier/raw/master/f/http://shieldkins.elrod.me/fedora/nuancier
:Author: Pierre-Yves Chibon <pingou@pingoured.fr>
Nuancier is a web-based voting application for the supplementary
wallpapers of Fedora.
Get this project:
-----------------
On github: https://github.com/fedora-infra/nuancier
Documentation: http://nuancier.rtfd.org
Dependencies:
-------------
.. _python: http://www.python.org
.. _Flask: http://flask.pocoo.org/
.. _python-flask: http://flask.pocoo.org/
.. _python-flask-wtf: http://packages.python.org/Flask-WTF/
.. _python-wtforms: http://wtforms.simplecodes.com/docs/1.0.1/
.. _SQLAlchemy: http://www.sqlalchemy.org/
.. _python-sqlalchemy: http://www.sqlalchemy.org/
.. _Pillow: https://pypi.python.org/pypi/Pillow
.. _python-pillow: https://pypi.python.org/pypi/Pillow
.. _dogpile.cache: https://pypi.python.org/pypi/dogpile.cache
This project is a `Flask`_ application. The calendars and meetings are
stored into a relational database using `SQLAlchemy`_ as Object Relational
Mapper (ORM).
The application relies on `Pillow`_ to generate thumbnails of the pictures in
order to increase the loading speed of the pages.
The dependency list is therefore:
- `python`_ (2.5 minimum)
- `python-flask`_
- `python-flask-wtf`_
- `python-wtforms`_
- `python-sqlalchemy`_
- `python-pillow`_
- `dogpile.cache`_
Running a development instance:
-------------------------------
You can either set up a development environment manually, or using Ansible
with Vagrant.
Vagrant
^^^^^^^
The best way to set up a development enviroment is to use `Vagrant <https://vagrantup.com/>`_.
Vagrant provisions a new virtual machine and then runs the Ansible playbook on it automatically.
To get started, install Vagrant::
    $ sudo dnf install vagrant libvirt vagrant-libvirt vagrant-sshfs ansible
Next, clone the repository and copy the example Vagrantfile from ``Vagrantfile.example``::
    $ git clone https://github.com/fedora-infra/nuancier.git
    $ cd nuancier
    $ cp Vagrantfile.example Vagrantfile  # Edit Vagrantfile to your heart's content
    $ vagrant up
    $ vagrant reload
    $ vagrant ssh
All done! The VM contains all the required dependencies pre-installed.
Manual
^^^^^^
Clone the source::
 git clone https://github.com/fedora-infra/nuancier.git
Create the database scheme::
 python createdb.py
Run the server::
 python runserver.py
You should be able to access the server at http://localhost:5000
.. note:: To tweak the configuration, you may either change
   ``default_config.py`` in the nuancier module, or copy the file
   ``utility/nuancier.cfg.sample`` into ``nuancier.cfg`` and run the
   application using::
     NUANCIER_CONFIG=nuancier.cfg python runserver.py
Testing:
--------
This project contains unit-tests allowing you to check if your server
has all the dependencies correctly set.
To run them::
 ./runtests.sh
.. note:: To stop the test at the first error or failure you can try:
   ::
    ./runtests.sh -x
License:
--------
This project is licensed GPLv2+.