- Visualisation des résultats sous forme de cartographie, flux d'actualité, ou résultats détaillés par circonscription ou ville
- Saisie des résultats par bureau de vote pour les personnes ayant le droit de saisie et administrateurs
- Gestion des élections :
- création du modèle d'une élection (découpage en circonscription, ville puis bureau)
- gestion des listes de candidats par circonscription
- gestion des tendances politiques
- plannification des tours
- validation des résultats
- identification des candidats pouvant poser problème (cumul de mandat) et possibilité de supprimer les candidats refusant leur élection pour prendre automatiquement le suivant.
## Démarrage pour tests / dev
### Identifiants de démonstration
Trois comptes de démonstrations permettent de tester l'application avec trois profils différent : `admin` (rôle d'administrateur), `capturer` (rôle de saisisseur), et `visualizer` (rôle de visualiseur). Ces trois comptes ont pour mot de passe `password`
Trois comptes de démonstrations permettent de tester l'application avec trois profils différents : `admin` (rôle d'administrateur), `capturer` (rôle de saisisseur), et `visualizer` (rôle de visualiseur). Ces trois comptes ont pour mot de passe `password`
### Avec VS Code
...
...
@@ -60,14 +70,14 @@ La démo est accessible avec l'url https://elections.127.0.0.1.nip.io
### Utilisateurs et droits
**Utilisateurs techniques**
Les utilisateurs techniques permettent de s'authentifier à l'application et d'accéder aux API en fonction du rôle de l'utilisateur qui définit alors ses droits.
La source de création et d'authentification des utilisateurs technique est double. Elle peut soit provenir directement de la base de donnée locale d'utilisateurs de l'application (./data/users.db) ou d'un fournisseur d'identité avec le protocole OAuth2.
La source de création et d'authentification des utilisateurs technique est double. Elle peut soit provenir directement de la base de donnée locale d'utilisateurs de l'application (./data/users.db) ou d'un fournisseur d'identité avec le protocole OAuth2 (configuré dans le fichier .env).
Dans le cas d'une connexion avec OAuth2, l'utilisateur est crée dans la base locale d'utilisateurs avec son identifiant OAuth2 qui permet de faire le lien avec l'utilisateur technique. Dans le cas d'une connexion avec OAuth2, l'utilisateur doit obligatoirement faire parti d'un groupe applicatif autorisé (cf variable d'envrionnement ADMIN_GROUP et VISUALIZER_GROUP) Un rôle différent est attribué automatiquement à l'utilisateur en fonction de son groupe.
> ATTENTION : le rôle "ADMIN" est obligatoire dans l'application car permet de gérer les utilisateurs et leurs droits. Sans celui-ci est sans utilisateurs ayant ce rôle dans la base, il est impossible de créer de nouveaux utilisateurs !
> ATTENTION : le rôle "ADMIN" est obligatoire dans l'application car permet de gérer les utilisateurs et leurs droits. Sans celui-ci est sans utilisateurs ayant ce rôle dans la base, il est impossible de gérer les utilisateurs !
**Utilisateurs applicatif**
Les utilisateurs applicatifs sont créé dans la base locale de données (./data/test.db) avec l'identifiant de l'utilisateur technique qui permet de faire la jointure entre un utilisateur applicatif et un utilisateur technique.
Les utilisateurs applicatifs sont créés dans la base locale de données (./data/test.db) avec l'identifiant de l'utilisateur technique qui permet de faire la jointure entre un utilisateur applicatif et un utilisateur technique.
Les utilisateurs techniques sont :
- les administrateurs `admin` qui créent le modèle de donnée des élections, valident les votes et crée les utilisateurs en leur affectant des droits.