final-year-project

A decentralized blockchain voting system for Makerere University

https://github.com/wampet/final-year-project

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.7%) to scientific vocabulary
Last synced: 7 months ago · JSON representation ·

Repository

A decentralized blockchain voting system for Makerere University

Basic Info
  • Host: GitHub
  • Owner: wampet
  • License: mit
  • Language: JavaScript
  • Default Branch: main
  • Size: 7.89 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 1
  • Open Issues: 0
  • Releases: 0
Created over 3 years ago · Last pushed over 3 years ago
Metadata Files
Readme License Citation

README.md

Makerere Ethereum Blockchain Voting

A decentralized voting system for Makerere University based on Ethereum blockchain technology.

This is a final year project that has been worked on by Andrew Ssempangi and Wamanga Peter under the supervision of Dr. Ronald Kizito and Ms. Carol Ovon. ```bash

System Workflow

A brief explanation on the basic workflow of the application.

  • The Admin registers with their email and password which are then stored in a Mongo database. Those details are used to sign in to view the dashboard
  • The Admin can then create a voting instance by creating an election and filling in additional information about the election.
  • The Admin is also responsible for adding Candidates who are sent emails that contain login in details
  • The registered user (voter) following the approval from the admin casts their vote to the candidate of interest (from the voting page).
  • After some time, depending on the scale of the election the admin ends the election. As that happens the voting is closed and the results are displayed announcing the winner on the dashboard and also sending out emails to both the candidates and the voters.

Setting up the development environment

Requirements

Thee following are some of the requirements for running the application on your localhost. Follow the links to download the requirements.

install dependencies

npm install

serve with hot reload at localhost:3000

npm start ```

Create your own .env file and the file should contain: bash EMAIL=YOUR_EMAIL_ID PASSWORD=YOUR_PASSWORD_FOR_EMAIL_ID Install MetaMask extension (https://metamask.io/download.html) and make sure to have some Ether to test the application locally. Ether can be fetched from Rinkeby Faucet (https://faucet.rinkeby.io)

Note:

  • Make sure to install Node.js v14.17.3 to make sure the app runs fine. Testing for other node versions is yet to be done.
  • MongoDB must be working in background on localhost:27017

Tech Stack:

  • Solidity/Web3 (for writing/connecting the Blockchain contract)
  • Next.js & Semantic UI React (front-end)
  • MongoDB/ExpressJS/Node.js (back-end)
  • IPFS (file storage for images)

Screenshots of the app:

Owner

  • Name: Wamanga Peter
  • Login: wampet
  • Kind: user
  • Location: Kampala
  • Company: Makerere University

A student for life with a passion for Programming and UI/UX.

Citation (CITATION.cff)

# YAML 1.2
---
authors: 
  -
    family-names: Wamanga 
    given-names: Peter
  -
    family-names: Ssempangi
    given-names: Andrew
  -

cff-version: "1.1.0"
date-released: 2022-08-01
message: "If you use this software, please cite it using these metadata."
repository-code: "https://github.com/wampet/Final-Year-Project"
title: Makerere Blockchain voting
version: "v1.0"
...

GitHub Events

Total
Last Year

Dependencies

package-lock.json npm
  • 1309 dependencies
package.json npm
  • mocha ^6.1.4 development
  • @zeit/next-css ^1.0.1
  • bcrypt ^3.0.8
  • body-parser ^1.18.3
  • chart.js ^2.8.0
  • chartjs ^0.3.24
  • chartjs-plugin-annotation ^0.5.7
  • dotenv ^8.2.0
  • express ^4.16.4
  • fs-extra ^7.0.1
  • ganache-cli ^6.4.1
  • ipfs-api ^26.1.2
  • js-cookie ^2.2.0
  • mongoose ^5.5.1
  • next ^8.0.3
  • next-routes ^1.4.2
  • nodemailer ^6.1.0
  • path ^0.12.7
  • react ^16.8.5
  • react-chartjs-2 ^2.7.6
  • react-dom ^16.8.5
  • react-helmet ^5.2.0
  • semantic-ui-css ^2.4.1
  • semantic-ui-react ^0.86.0
  • solc ^0.4.25
  • truffle-hdwallet-provider ^1.0.5
  • web3 ^1.0.0-beta.52
.github/workflows/heroku-depl.yml actions
  • actions/checkout v1 composite
Dockerfile docker
  • timbru31/node-alpine-git latest build