Code Monkey home page Code Monkey logo

dapp-voting's Introduction

Alyra-Projet3

Repo made with hardhat, next, viem, wagmi, rainbowkit, openzepplin, ...

Présentation :

Ce projet est le résultat d'une collaboration antérieur au projet 3. Lors des semaines consacré à l'apprentissage de Solidity nous avions déjà travaillé sur la conception d'une architecture commune de projet comprenant la partie backend réalisé avec Hardhat et le front-end réalisé avec NextJs.

Sur cette base nous avions donc créé initialement une Application décentralisée de voting chacun de notre coté. qui nous ont par la suite servi à realiser le projet 3.

Les repos de ces projets sont disponibles à ces addresses:

Nous présentons donc ici un projet qui s'avère etre la fusion de nos projet respectifs, comprenant les améliorations apportés à ces dernières. (refonte graphique, déploiement et écoute d'evenements sur le réseau sepolia, correction de la faille de sécurité)

Cette DApp couvre les cas d'utilisation du contrat voting.sol:

  • L'affichage diffère selon le profile connecté
    • Ecran réservé aux personnes externes à l'organisatio (redirection des personnes non whitelisté vers cet écran)
    • neon sous la navbar suivant un code couleur selon le profil utilisateur
  • Un affichage theme sombre / clair
  • On peut se connecté avec son wallet grâce à rainbowkit, wagmi, et viem
  • Le owner peut enregistrer des nouvelles address en voter
  • Des watchers sont utilisés pour déclencher des fonctions de rafraichissement de l'application à l'écoutes des évents.
  • les voters peuvent récupérer les informations des voter, et des proposals.
  • Le owner peut changer les différents status du contrat de voting depuis le BO
  • Les voters peuvent soummettre une proposal
  • les voters peuvent voter selon le status du contrat
  • Une comptabilisation des votes est faites par le owner

Pour l'exercices nous devions corriger la faille DOS_GAS_LIMIT de la fonction tally_vote:

  • plus d'info ici ./packages/hardhat-project/test/Voting_DOS_GAS_LIMIT.md
  • le contrat corrigé est ici ./packages/hardhat-project/contracts/Voting-v-2.0.sol

Le script de déploiement à été changer:

const Voting = await hre.ethers.getContractFactory("VotingV2");
Les tests uintaires suivent toujours le meme fonctionement.
  • plus d'info ./packages/hardhat-project/test/Voting.js

Lien vers la vidéo de présentation de la dapp

Présentation vidéo


Lien vers l'application déployée en production

https://alyra-projet3-dapp.vercel.app


Installation

git clone https://github.com/Elie-Mendy/Alyra-Projet3/tree/main
cd Alyra-Projet3
yarn

Or in 1 line

git clone https://github.com/Elie-Mendy/Alyra-Projet3/tree/main; cd Alyra-Projet3; yarn;
Run Blockchain localhost:8545 (hardhat)
yarn blockchain
Run Front

(new terminal), ctrl+shift+t

yarn dapp:dev
Run Test / Deploy contract / ...

(new terminal), ctrl+shift+t

yarn sc:test
yarn sc:coverage
yarn sc:deploy:local
yarn sc:deploy:sepolia

Create architecture

mkdir Alyra-Projet3
cd  Alyra-Projet3
mkdir hardhat-project
cd hardhat-project
npx hardhat
cd ..
npx create-next-app dapp

Or in 1 line

mkdir Alyra-Projet3; cd  Alyra-Projet3; mkdir hardhat-project; cd hardhat-project; npx hardhat; cd ..; npx create-next-app dapp;

About

  • Workspace is created in ./packages for manage multi-packages node easily.

Docs


Created By Elie-Mendy & xDrKush

dapp-voting's People

Contributors

xdrkush avatar elie-mendy avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Forkers

xdrkush

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.