{"id":21730182,"url":"https://github.com/nventive/conuhacks-2022","last_synced_at":"2026-04-09T10:40:07.215Z","repository":{"id":44703580,"uuid":"451979310","full_name":"nventive/ConuHacks-2022","owner":"nventive","description":null,"archived":false,"fork":false,"pushed_at":"2022-01-30T07:37:17.000Z","size":1169,"stargazers_count":2,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-13T00:14:39.966Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nventive.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-01-25T17:39:40.000Z","updated_at":"2022-02-15T02:29:23.000Z","dependencies_parsed_at":"2022-09-07T11:41:55.726Z","dependency_job_id":null,"html_url":"https://github.com/nventive/ConuHacks-2022","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nventive%2FConuHacks-2022","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nventive%2FConuHacks-2022/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nventive%2FConuHacks-2022/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nventive%2FConuHacks-2022/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nventive","download_url":"https://codeload.github.com/nventive/ConuHacks-2022/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248647274,"owners_count":21139086,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-26T04:13:19.223Z","updated_at":"2026-04-09T10:40:02.186Z","avatar_url":"https://github.com/nventive.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ConuHacks 2022 Challenge. Decentralized Election Platform\n\n![image](https://user-images.githubusercontent.com/7029537/151643230-170bedd3-71b7-4d22-8663-ae325affa348.png)\n\n## Objective\nBuild a decentralized election platform everyone in the galaxy would use to vote.\n\u003e This is a decentralized voting system based on Blockchain technology, which is distributed over a network using smart contracts.\n\n## Guidelines\n- This github repo contains a full README to help you get started (see below) and a fully functional smart contract with voting capabilities, it's a good starting point! Use it or start from scratch, your choice!\n- Try to follow the theme\n- Have fun with it! Try things.\n- Provide a submission video (showcase) showing what you built, you should also present your ideas for future improvements.\n- Come hang out in the Gathertown (nventive, in career fair section), we have debug rooms where developers can help you get started!\n\n## Ideas of things to add/improve\n\u003e don't limit yourself to this list\n- Improve the way to identify yourself, possibly via metamask.\n- Improve overall security of the React app and smart contract\n- Improve the UX/UI, make it easy to vote for everyone\n- Integrate your smart contract in the Ropsten test network\n\n# README\n## Getting Started - Setup\n\n### _Additionnal step on Windows_:\n\nIf you get the following error while running any script:\n![](./screenshots/WindowsError.png)\n\nYou'll need to run `Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass`.\n\n### Building the smart contract\n\n1. First, you'll need truffle to interact with the smart contract :\n\n```\nnpm i -g truffle\n```\n\n2. Truffle gives you a development environment with 10 accounts with Ethereum so you can interact with the contract, under the `/contracts` directory, run:\n\n```\ntruffle develop\n```\n\n3. Also, to compile the smart contract, under the `/contracts` directory, run:\n\n```\ntruffle migration\n```\n\n4. Update the `backend.py` file with the contract address that `truffle migrate` generates you. Also, update the private key list to the private keys given by `truffle develop` environment.\n\nHere's some screenshots to help you with this step:\n\n|            truffle migration            |            Verify private keys            |\n| :-------------------------------------: | :---------------------------------------: |\n| ![](./screenshots/truffleMigration.png) | ![](./screenshots/trufflePrivateKeys.png) |\n\n### Backend\n\nFor the backend, you'll need Python and pip. If you don't have it, follow the instructions on https://www.python.org/downloads/.\n\n1. Let's create a virtual env for our project's dependencies on the root of the project:\n\n```\npip install virtualenv\nvirtualenv venv\nsource venv/bin/activate -\u003e .\\Scripts\\activate on Windows\npip install -r requirements.txt\n```\n\n2. You can now run the backend by running:\n\n```\npython backend.py\n```\n\n### Frontend\n\nThe frontend is a React app. To run it, first go to the `/frontend` directory and run:\n\n```\nyarn install\nyarn start\n```\n\nYou should see the login screen :\n![](./screenshots/Login.png)\n\nYou can also access the voting results by accessing the http://localhost:3000/admin link. Username is `test` and password is `test123`:\n\n![](./screenshots/AdminLogin.png)\n\n## Possible improvements\n\n- Add Metamask integration in the login page, currently to login, you simply enter a number from 0 to 9 that links to the proper account from the truffle environment.\n- Improve overall security of the React app/smart contract\n- Clean the frontend code, many components could be reused.\n- Add methods to the smart contract other than vote (vote delegation for example).\n- Integrate this smart contract in the Ropsten test network. You'll also need to use the Ropsten Ethereum Faucet to add test Ethereum to your accounts.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnventive%2Fconuhacks-2022","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnventive%2Fconuhacks-2022","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnventive%2Fconuhacks-2022/lists"}