Its a Decentralized Voting smart contract, where anyone can first create a proposal and upload to ipfs to get the CID of the proposal and then using that CID, can register their proposal for voting using this smart contract. Other users can then access the proposal from ipfs by CID and review it. Afterwards, they can cast their vote either in favor or against the proposal.
We used hardhat to develop and deploy the smart contract using solidity language. We deployed it on Scroll alpha test-net. We experienced the deployment of the smart contract on Scroll alpha testnet, which is quite easy to work with. We just had to change the rpc url and private key in the .env file.