# Kadenios

## Installation

L'installation se fait pour l'instant manuellement.

### Installation manuelle

Il est fortement conseillé d'utiliser un environnement virtuel pour Python.

Il vous faudra installer pip, les librairies de développement de python ainsi
que sqlite3, un moteur de base de données léger et simple d'utilisation. Sous
Debian et dérivées (Ubuntu, ...) :

    sudo apt-get install python3-pip python3-dev python3-venv sqlite3

Si vous décidez d'utiliser un environnement virtuel Python (virtualenv;
fortement conseillé), déplacez-vous dans le dossier où est installé GestioCOF
(le dossier où se trouve ce README), et créez-le maintenant :

    python3 -m venv venv

Pour l'activer, il faut taper

    . venv/bin/activate

depuis le même dossier.

Vous pouvez maintenant installer les dépendances Python depuis le fichier
`requirements-devel.txt` :

    pip install -U pip  # parfois nécessaire la première fois
    pip install -r requirements-devel.txt

Nous avons un git hook de pre-commit pour formatter et vérifier que votre code
vérifie nos conventions. Pour bénéficier des mises à jour du hook, préférez
encore l'installation *via* un lien symbolique:

    ln -s ../../.pre-commit.sh .git/hooks/pre-commit

#### Fin d'installation

Il ne vous reste plus qu'à initialiser les modèles de Django :

    ./manage.py migrate

Il vous faut ensuite créer un superutilisateur :

    ./manage.py createsuperuser

Vous êtes prêts à développer ! Lancer Kadenios en faisant

    python manage.py runserver

## Fonctionnalités

### Implémentées

- Posibilité de créer des élections, ainsi que de les administrer
- Système de vote très simple
- Un début d'Access Control

### TODO

- Permettre d'importer une liste de votants
- Brancher AuthENS ?
- Access Control complet
- Un système de référenda Condorcet