Skip to content

MatysLep/AVoter-SmartContract

Repository files navigation

Projet Voting DApp – Application Décentralisée de Vote

👨‍💻 Auteur

  • Tarik Fellahi
  • Benjamin Zawoda
  • Matys Lepretre

🎥 lien des vidéos (lien WeTransfer expiré depuis le 22/06)

📌 Description du projet

Cette DApp permet :

  • Enregistrement sécurisé des électeurs par un administrateur.
  • Proposition de projets par des électeurs inscrits.
  • Possibilité d'ajout de feedback par les électeurs inscrit pour modifier la proposition par le propriétaire.
  • Vote sécurisé et transparent avec possibilité de délégation.
  • Décompte automatique des votes pour déterminer la proposition gagnante.

🚀 Technologies utilisées

  • Blockchain Ethereum : gestion sécurisée via Smart Contract.
  • Solidity : langage utilisé pour développer le Smart Contract.
  • Hardhat & ethers.js : pour le déploiement et les tests du contrat.
  • React (TypeScript, CSS, TSX) : développement du Front-end utilisateur.

⚙️ Déploiement et tests

Prérequis

Installation

git clone "https://github.com/MatysLep/AVoter-SmartContract.git"
cd AVoter-SmartContract
npm install

Compiler le Smart Contract

npx hardhat compile

Déploiement local

Utiliser Hardhat pour lancer un réseau local :

npx hardhat node

Déployer le contrat sur le réseau local (dans un autre cmd que celui de la commande précédente) :

 npx hardhat ignition deploy ignition/modules/deploy.ts --network localhost

Tests unitaires

Exécuter les tests automatisés :

npx hardhat test

🎥 Démonstration

Les vidéos de démonstration sont disponibles ici :

🔗 Lien WeTransfer vers les vidéos de démonstration


📖 Fonctionnalités détaillées du Smart Contract

Le contrat Voting.sol gère les étapes suivantes :

Étape du Workflow Description rapide
RegisteringVoters Inscription des électeurs par l'administrateur.
ProposalsRegistration Soumission de propositions par les électeurs.
VotingSession Phase active de vote avec délégation possible.
VotesTallied Décompte des votes et publication des résultats.

🧪 Cas de test principaux couverts

  • Enregistrement sécurisé des électeurs
  • Soumission de propositions valides et invalides
  • Transition de workflow sécurisée (contrôlée par l'administrateur)
  • Gestion du vote simple et du vote délégué
  • Vérification des boucles de délégation
  • Décompte précis des votes pour désigner la proposition gagnante

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages