Git Product home page Git Product logo

sistema-de-votacion-electronica-con-blockchain's Introduction

Sistema de Votación Electrónica con Blockchain

Descripción del Proyecto

Este proyecto desarrolla un sistema de votación electrónica seguro y transparente utilizando tecnología blockchain. El sistema permite la participación de diferentes roles de usuario y asegura que los resultados de la votación se mantengan confidenciales hasta el cierre oficial de la elección por parte del Administrador Electoral.

Detalles del Sistema

Creación de Elección

El flujo del sistema comienza con la creación de una elección por parte del Administrador Electoral. La elección puede ser para una posición de cargo específica, como presidente de una organización. El Administrador Electoral configura los detalles de la elección, incluyendo la fecha de inicio y cierre de la votación.

Registro de Usuarios

Una vez creada la elección, los usuarios pueden registrarse en el sistema, eligiendo uno de los dos roles disponibles: candidato o votante. Un usuario no puede registrarse en ambos roles simultáneamente.

Registro de Candidatos

Los usuarios que desean postularse para la posición de presidente se registran como candidatos. Su registro incluye información relevante que será verificada y aprobada por el Administrador Electoral.

Registro de Votantes

Los usuarios que desean participar en la elección como votantes se registran proporcionando su información personal. Esta información será verificada y aprobada por el Administrador Electoral para asegurar que solo los votantes autorizados puedan participar en la elección.

Roles de Usuario

El sistema contempla tres roles principales:

  • Administrador Electoral: Responsable de configurar las elecciones, verificar los registros de votantes y candidatos, generar reportes y gestionar el sistema en su totalidad. Tiene la autoridad para aprobar o rechazar registros y configurar los parámetros de cada elección.
  • Candidato: Los individuos que se postulan para la posición de presidente. Pueden registrarse y presentar su candidatura para ser votados por los electores.
  • Votante: Los usuarios que emitirán su voto en la elección. Cada votante registrado y aprobado tendrá la capacidad de votar de manera segura y anónima.

Proceso de Votación

  • Inicio de la Elección: La votación comienza una vez alcanzada la fecha de inicio configurada por el Administrador Electoral.
  • Fin de la Elección: La votación se cierra al llegar a la fecha de fin configurada, pero los resultados no son visibles hasta que esto suceda.
  • Conteo y Publicación de Resultados: Los votos serán contados y los resultados serán publicados de manera transparente, mostrando el número de votos recibidos por cada candidato y los resultados finales.

Ocultación de Resultados

Para garantizar que los resultados no sean visibles hasta el cierre de la elección y asegurar el anonimato de los votos, no se podrá conocer o calcular la votación hasta que la elección haya concluido.

Generación de Reportes

El sistema genera varios reportes desde otro contrato con los permisos pertinentes:

  • Reporte de Registro de Votantes: Detalla los votantes registrados y aprobados para una determinada elección.
  • Reporte de Participación: Indica la cantidad de votos emitidos y el porcentaje de participación, una vez cerrada la elección.
  • Reporte de Resultado: Muestra el número de votos recibidos por cada candidato y los resultados finales, una vez cerrada la elección. Este reporte muestra de manera descendente los votos, donde el primer candidato es el ganador de la elección.

Requisitos

  • Cobertura del 85% en ambos contratos.
  • Todo el código debe incluir documentación estándar.
  • Las direcciones (address) de ambos contratos deben estar desplegadas y probadas, es decir, funcionales.
  • Testnet: Rococo.
  • Adrres contrato Reporte: 0x777a7c782b33e6bad6e3d6c0cce906c8471819e7e687bc84b556b5b2df4901e7
  • Adrres contrato Sistema Votacion: 0x716a3f381346fdeeafa18aec3bf1e23476a84df9bb7ab6763558b5d2f4bf0588

Instalación

  1. Clonar el repositorio:
    git clone https://github.com/NahuelArn/Sistema-de-Votacion-Electronica-con-Blockchain.git
    cd Sistema-de-Votacion-Electronica-con-Blockchain/
  2. Instalar las dependencias:
    cargo build

Uso

  1. Desplegar los contratos:
    cargo contract build
  2. Configurar y crear una elección.
  3. Registrar candidatos y votantes.
  4. Iniciar y finalizar la votación según las fechas configuradas.
  5. Generar y revisar los reportes.

Recursos Adicionales

Licencia

Este proyecto está licenciado bajo los términos de la MIT License.

sistema-de-votacion-electronica-con-blockchain's People

Contributors

nahuelarn avatar faku45 avatar mbgv avatar danteromero avatar

Watchers

 avatar

Forkers

pruebaharn

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.