Author: | Pierre-Yves Chibon <[email protected]> |
---|
Nuancier is a web-based voting application for the supplementary wallpapers of Fedora.
On github: https://github.com/fedora-infra/nuancier
Documentation: http://nuancier.rtfd.org
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
You can either set up a development environment manually, or using Ansible with Vagrant.
The best way to set up a development enviroment is to use Vagrant. 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.
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
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
This project is licensed GPLv2+.