/CESS

Comprehensive Electoral Solutions Suite - made for DEVSOC 2019, an elections suite software which merges RFID and fingerprint recognition with extra layers of security which checks emotion when you vote while securing your transaction via a smart ethereum contract. Passively it also scours the internet for toxic comments which might influence the voters.

Primary LanguageJavaScript

Comprehensive Electoral Solutions Suite (CESS)

About

CESS (Comprehensive Electoral Solutions Suite) is a groundbreaking elections suite software. Designed to revolutionize the electoral process, CESS merges cutting-edge technologies with innovative security measures to ensure secure, transparent, and inclusive voting experiences.

Features

  • RFID and Fingerprint Recognition: CESS leverages RFID and fingerprint recognition technologies to establish a robust authentication system, preventing unauthorized access and ensuring the integrity of every vote cast.

  • Emotion Detection: With its integrated emotion detection feature, CESS captures the emotional state of voters during the voting process, adding an extra layer of authenticity and safeguarding against fraudulent activities.

  • Toxic Comment Monitoring: CESS actively monitors online discourse to identify and mitigate toxic comments that may influence voters, thereby upholding the integrity of the democratic process and promoting fair elections.

  • Ethereum Smart Contracts: Powered by Ethereum smart contracts, CESS ensures transparent and tamper-proof transaction processing, guaranteeing accountability and trust in the electoral system.

Ethereum Integration

CESS utilizes Ethereum smart contracts to ensure transparent and tamper-proof transaction processing, adding an additional layer of security and accountability to the electoral process. Ethereum is a decentralized platform that enables the execution of smart contracts, which are self-executing contracts with the terms of the agreement directly written into code.

In the context of CESS:

  • Smart Contracts: Smart contracts are deployed on the Ethereum blockchain to manage various aspects of the electoral process, such as voter registration, ballot casting, and result tabulation.
  • Transaction Logs: Transaction logs generated by the smart contracts provide a transparent record of all voting transactions, allowing stakeholders to verify the integrity and authenticity of the electoral process.

Web Application

The Elections-react folder contains the main web application for CESS. It is built using React, a popular JavaScript library for building user interfaces, and incorporates several major libraries and frameworks:

  • React: React is used to create reusable UI components and manage the application's state efficiently, providing a seamless user experience.
  • Redux: Redux is employed for state management, enabling predictable state changes and centralized data storage across the application.
  • React Router: React Router is utilized for client-side routing, enabling navigation between different pages of the application without the need for full-page reloads.
  • Material-UI: Material-UI is a React UI framework that provides pre-designed components and styles, allowing for the rapid development of a visually appealing and responsive user interface.
  • Axios: Axios is used for making HTTP requests to interact with external APIs, facilitating communication between the frontend application and the backend server.
  • Web3.js: Web3.js is a JavaScript library that allows interaction with the Ethereum blockchain, enabling the web application to interact with Ethereum smart contracts deployed on the blockchain.
  • Truffle Suite: Truffle Suite is a development environment, testing framework, and asset pipeline for Ethereum, facilitating the development, testing, and deployment of smart contracts within the CESS application. By leveraging these technologies and libraries, the web application provides a user-friendly interface for voters to participate in the electoral process securely and transparently.

Additional Components

Advanced_NLP Folder

The Advanced_NLP folder contains a Flask app responsible for toxicity detection. It utilizes a dataset sourced from Twitter tweets to identify toxic comments.

DEVSOC Facial Emotion Recognition Folder

The DEVSOC Facial Emotion Recognition folder houses emotion_detection.py, which employs DLIB and mini-Xception for facial emotion recognition. DLIB is a popular library for machine learning, computer vision, and facial recognition, while mini-Xception is a lightweight convolutional neural network architecture optimized for facial expression analysis.

Elections-react Folder

The Elections-react folder hosts the main web application for CESS. It is built using React, Redux, React Router, Material-UI, Axios, Web3.js, and Truffle Suite. For detailed information on setup and usage, please refer to the README within the Elections-react directory.

RFID Read, Write, and Enroll

The RFID Read, RFID Write, and RFID Enroll folders contain Arduino code snippets for reading, writing, and enrolling new users' RFID data. These components play a vital role in the RFID authentication process within CESS.

Installation

To install CESS, follow these steps:

  1. Clone the repository:

    git clone https://github.com/smoke-trees/CESS.git
    
  2. Navigate to the project directory:

    cd Elections - React 
    
  3. Install dependencies:

    npm install
    
  4. Start the application:

    npm start
    

Usage

To use CESS, follow these guidelines:

  1. Configure the necessary settings and parameters according to your election requirements.

  2. Run the application and follow the on-screen prompts to initiate the voting process.

  3. Ensure that all voters are authenticated using RFID or fingerprint recognition before casting their votes.

  4. Monitor the application for any detected toxic comments and take appropriate action to maintain the integrity of the electoral process.

  5. Review the transaction logs generated by the Ethereum smart contracts to verify the transparency and security of the voting transactions.

Contributing

We welcome contributions from the community to enhance and improve CESS. If you have any suggestions, bug reports, or feature requests, please feel free to open an issue or submit a pull request.