Cette application décentralisée (DApp) permet de gérer un système de vote transparent sur la blockchain Ethereum.
Cette application décentralisée (DApp) permet de gérer un système de vote transparent sur la blockchain Ethereum. Elle implémente un processus de vote complet, depuis l'enregistrement des électeurs jusqu'au dépouillement des résultats.
## Fonctionnalités
- Inscription des électeurs sur liste blanche par l'administrateur
- Enregistrement des propositions par les électeurs inscrits
- Vote pour les propositions préférées
- Vote pour les propositions
- Délégation de vote à d'autres électeurs
- Comptabilisation automatique des votes
- Vérification des résultats accessible à tous
- Période limitée pour l'enregistrement des propositions et le vote
-`test/` : Tests automatisés pour les smart contracts
## Installation
## Prérequis
- Node.js v16+
- npm v8+
- MetaMask ou un autre portefeuille Ethereum installé dans votre navigateur
## Installation et démarrage
1.**Cloner le dépôt et installer les dépendances**
```bash
git clone <url-du-repo>
cd voting-dapp
npm install
```
2.**Compiler les smart contracts**
```bash
npm run compile
```
3.**Démarrer un nœud Ethereum local**
```bash
# Installer les dépendances
npm run node
```
Ce nœud local s'exécutera à l'adresse `http://127.0.0.1:8545`.
4.**Déployer le contrat sur le nœud local**
Dans un nouveau terminal, exécutez:
```bash
npm run deploy
```
Notez l'adresse du contrat déployé, vous en aurez besoin pour configurer le frontend.
5.**Configurer et démarrer le frontend Angular**
```bash
cd frontend-angular
npm install
```
Pour configurer l'adresse du contrat, ouvrez le fichier `src/app/services/contract.service.ts` et modifiez la ligne suivante avec l'adresse de votre contrat déployé: