1 of 18

Fall 2022 Senior Design Project

WebChain

Knight Foundation School of Computing and Information Sciences

Team members: Alec Jean-Herald Joseph, Michael Anthony Ferrer, Ximena Puig, Adriel Molerio, Felix Rodriguez Jr

Product Owner: Alec Jean-Herald Joseph

Mentor: Dr. Masoud Sadjadi

FLORIDA INTERNATIONAL UNIVERSITY

2 of 18

Problem Description

Lack of Security

Online voting systems face many security challenges such as hacking, data tampering, and fraud. These issues may lead to a loss of confidence in the integrity of the voting process, resulting in low voter turnout and a lack of trust in the election results.

Lack of Transparency

A significant challenge in the online voting system is the lack of transparency. Voters can't track their votes once they're cast, and there is no way to know if the vote has been tampered with. This can lead to a lack of trust in the election results.

SOLUTION

Blockchain Technology

COLLEGE OF ENGINEERING AND COMPUTING

FLORIDA INTERNATIONAL UNIVERSITY

3 of 18

Purpose of New System

  • Blockchain technology provides a secure and transparent solution to the problems faced by online voting systems.

  • Blockchain technology ensures that the voting process is tamper-proof and transparent.

  • The decentralized structure of a Blockchain ensures that no single entity controls the voting process, making it more secure and transparent.

COLLEGE OF ENGINEERING AND COMPUTING

FLORIDA INTERNATIONAL UNIVERSITY

4 of 18

Applications

  • Our site can be applied as an example or foundation for polling site software, giving it the necessary transparency that many people want from their voting machines.�
  • It can also make the argument for the integration of Blockchain technology in other pieces of software where the user would want to be able to audit actions occurring on the site.�
  • It could also allow for people to host their own instances, meaning any company or group that wants to host polls and be able to properly audit them can do so using our site.�

FLORIDA INTERNATIONAL UNIVERSITY

COLLEGE OF ENGINEERING AND COMPUTING

5 of 18

Methodology

This project was developed in a semester with the following timeline:

1st Sprint:

❑ Meeting and coordinating with team

❑ Making decisions about the purpose of the project

❑ Create GitHub repo

2nd Sprint:

❑ Download and get familiar with the technologies we will be using.

❑ Began working on design of the system

3rd Sprint:

❑ Continue design and documentation for the system

❑ Figma design for the front-end

❑ Begin coding front-end

4th Sprint:

❑ Research Blockchain technology implementations for a voting website

❑ Continue working on front-end with React

5th Sprint:

❑ Begin Blockchain implementation with Node.js

❑ Rebuilded front-end with HTML and CSS

6th Sprint:

❑ Create Database with MySQL

❑ Continued with front-end development

❑ Began planning for final deliverables

7th Sprint:

❑Work on Final Deliverable: Documentation

❑Work on Final Deliverable: Poster

❑Work on Final Deliverable: Presentation

❑Work on Final Deliverable: Videos

COLLEGE OF ENGINEERING AND COMPUTING

6 of 18

User Stories

User Story #1:

  • As a developer, I want to conduct research that is vital for the development of this project.

User Story #2:

  • As a developer, I want to develop a comprehensive list of the steps and timeline for creating a website with blockchain technology.

User Story #3:

  • As a user, I want the design of the website to be visually pleasing, efficient, and easy to use.

User Story #4:

  • As a developer, I want to have access to the base code and be able to upload my changes of the code.

User Story #5:

  • As a developer, I want the front-end of the website to be up and running.

User Story #6:

  • As a service maintainer, I want to be able to maintain a reproducible build for my service.

User Story #7:

  • As a designer, I want to implement blockchain technology into the website.

User Story #8:

  • As a developer, I want to have a database up and running.

FLORIDA INTERNATIONAL UNIVERSITY

COLLEGE OF ENGINEERING AND COMPUTING

7 of 18

Software and Hardware

The software tools we used to create and design WebChain were

  • Figma to create and design each page of the webpage.
  • GitHub to push and organize our code
  • Visual Studio Code to write our code for the Front End, Blockchain and Back End
    • The frontend was written in HTML and CSS.
    • The Back End and Blockchain were written in JavaScript.

COLLEGE OF ENGINEERING AND COMPUTING

8 of 18

Product design

Create a Ballot design

Search for a Ballot design

COLLEGE OF ENGINEERING AND COMPUTING

9 of 18

Architecture and System Design

System decomposition

  1. User Interface: Provides the frontend application that the user interacts with.�
  2. Application Layer: The server-side layer that provides the logic for the voting system.

  1. Blockchain Network: The underlying blockchain network that stores the votes and ensures their immutability.

  1. Data Storage Layer: The storage layer that stores all the data needed by the system.

Architecture patterns used

  1. Layered Architecture: The system is divided into multiple layers, each with a distinct role, which ensures the separation of concerns and easy maintenance.�
  2. Client-Server Architecture: The client (user interface) sends requests to the server (application layer), which processes them and responds accordingly.�
  3. Blockchain Architecture: The blockchain network provides a secure and immutable ledger to store the votes, ensuring transparency and integrity in the voting process.

Identify design patterns used�

  1. Observer Pattern: The blockchain explorer module acts as an observer, monitoring the blockchain network for new transactions and updating the UI accordingly.

  1. Proxy Pattern: The application layer acts as a proxy between the user interface and the blockchain network, providing an additional layer of security and abstraction.

Class Diagram

Package Diagram

COLLEGE OF ENGINEERING AND COMPUTING

FLORIDA INTERNATIONAL UNIVERSITY

10 of 18

System Design: Deployment and Persistent Data

Deployment Diagram

Entity-Relationship Diagram

The ER diagram shows the database schema for the system. It includes two tables: Ballot and Vote. The Ballot table stores information about the ballots, including their unique id, title, question, answer choices, privacy and any additional info. The Vote table stores information about the votes, including their unique id, the id of the ballot the vote is being cast on, and what choice the vote has selected. �

The deployment diagram shows the physical deployment of the system. The Front-end Web Server is deployed on the client-side, while the Back-end Web Server and the database are deployed on the server-side.

COLLEGE OF ENGINEERING AND COMPUTING

11 of 18

Use Case

Diagram

The use case diagram shows the different actions that the user can perform in the system. The user can access the page to search for a ballot to search for a particular ballot using a link or a ballot’s title and they can access the page to create a ballot or copy the link for a ballot. These use cases are depicted in the diagram.

COLLEGE OF ENGINEERING AND COMPUTING

12 of 18

Sequence Diagram

  1. Ballot is created by the user.
  2. Blockchain will verify all of its hashes for each block before adding the new block with the poll’s creation action marked behind it.
  3. Block is added after verification.
  4. After the block is added, it is then added to a Database.
  5. A new ballot is created as a result and shown to the user.

COLLEGE OF ENGINEERING AND COMPUTING

13 of 18

Screenshots of Front-end

COLLEGE OF ENGINEERING AND COMPUTING

FLORIDA INTERNATIONAL UNIVERSITY

14 of 18

Screenshots of Blockchain and Database

Code for the Database in MySQL

Code for the Blockchain

COLLEGE OF ENGINEERING AND COMPUTING

FLORIDA INTERNATIONAL UNIVERSITY

15 of 18

Test Cases

  • User creates a poll and votes in their own poll.�
  • Incoming user votes on a poll that’s been shared with them.�
  • User creates a poll, votes on it, but then tries to change their vote.�
  • User votes on a poll shared with them, but tries to change their vote.

Thus, the user will create another poll to cast another ballot.�

Which will repeat the process again and whole host of new questions.

User will get determined how to make decision with poll without intrusion from the large companies or government entities.�

They’ll get make their decision with data as well as create poll to conduct any democratic process in regards to decision making.�

For example, a voting application will use to conduct elections for West Virginia, Denver and Japan.

FLORIDA INTERNATIONAL UNIVERSITY

COLLEGE OF ENGINEERING AND COMPUTING

16 of 18

Conclusion and next steps

In conclusion, we have:

  • Designed a Voting Website designed with our own Blockchain in the Back-End.
  • Laid out the groundwork for expansion on our project in the future when it comes to scaling and total completion.
  • Come up with a process and demonstrated how we designed or intended to design our Voting Website’s processes and how the process will play out for the user.
  • Started on our Database for storing the blockchain itself, but still need to complete it due to time constraints.

COLLEGE OF ENGINEERING AND COMPUTING

FLORIDA INTERNATIONAL UNIVERSITY

17 of 18

Thank you :)

COLLEGE OF ENGINEERING AND COMPUTING

FLORIDA INTERNATIONAL UNIVERSITY

18 of 18

References

FLORIDA INTERNATIONAL UNIVERSITY

COLLEGE OF ENGINEERING AND COMPUTING