Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

E-Voting System auf Bloxberg

Vorbereitung

1. Wallet-Adresse und Test-BERG-Tokens

  • Sie benötigen eine Wallet-Adresse sowie Test-Tokens (Bergs), um das System zu testen.
  • Beantragen Sie Test-Bergs über das Bloxberg Faucet: Bloxberg Faucet.
  • Erstellen Sie mehrere Accounts: Einen für das Wahlamt und weitere für Studenten oder Admins.

2. .env-Datei konfigurieren

  • Öffnen Sie die .env-Datei und fügen Sie die MNEMONIC Ihrer Wallet ein.
  • Geben Sie die Adresse für das Wahlamt in der .env-Datei an.

3. Truffle-Konfiguration anpassen

  • Bearbeiten Sie die truffle-config.js und fügen Sie ebenfalls die MNEMONIC Ihrer Wallet ein.

4. Datenpfade anpassen

  • Alle Dateipfade im src-Ordner sind aktuell noch hartcodiert. Sie müssen diese anpassen, damit sie zu Ihrer Umgebung passen.
  • Eine dynamische Konfiguration kann nachträglich implementiert werden. Das Programm befindet sich derzeit noch in einer Testphase und ist nicht vollends benutzerfreundlich.

Deployment der Smart Contracts

5. Smart Contracts kompilieren und migrieren

  • Nach der Konfiguration können Sie die Smart Contracts mit den folgenden Befehlen deployen:
    truffle compile
    truffle migrate
  • Kopieren Sie die vier Adressen der Smart Contracts und fügen Sie diese in die Datei contractAdressesConfig.js ein.

Verbindung zur Datenbank herstellen

6. MongoDB starten

  • Starten Sie die MongoDB-Datenbank mit:
    node startMongoDB.js
  • Stellen Sie die Verbindung zur Datenbank mit:
    node ConnectDB.js

7. Wählerdaten generieren

  • Nutzen Sie die generateStudentVoters.js, um 20 zufällige Wähler in die Datenbank zu laden:
    node generateStudentVoters.js
  • Alternativ können Sie einzelne Studenten über die Datei addStudent.http im Verzeichnis /test/MongoDB hinzufügen, entfernen oder verifizieren.

Rollen und Rechte verwalten

8. Rollen einnehmen

  • Sie können entweder als Wahlamt, Admin oder als Student agieren.

9. Admin-Rechte verwalten

  • Vergeben oder entfernen Sie Admin-Rechte mit:
    node add_Admin.js
    node remove_Admin.js
  • Stellen Sie sicher, dass die richtigen Account-Adressen in den Dateien angegeben sind.
  • Hinweis: Das Wahlamt hat aktuell noch kein Benutzerinterface.

Wahlprozess starten

10. Wahlzettel hochladen und Wahl starten

  • Starten Sie die Wahl und laden Sie den Wahlzettel mit:
    node setupBallot.js

Nutzung als Student

11. Voter-App starten

  • Führen Sie die Voter-App mit folgendem Befehl aus:
    node {Pfad zur VoterApp.js}

12. Anmeldefenster

  • Geben Sie Ihren Vor- und Nachnamen ein. Falls der Name in der Datenbank existiert, erhalten Sie Zugang zur App.

13. Verifikation des Wählers

  • Wählen Sie im Menü die Option 1 zur Verifikation.
  • Geben Sie Ihre Matrikelnummer ein, um sich zu verifizieren.
  • Nach erfolgreicher Verifikation werden Ihre Wallet-Adresse und Ihr Wahltoken im Terminal angezeigt.
  • Hinweis: Die Wallet wird nur dann zur Verfügung gestellt, wenn:
    • Sie in MetaMask einen Account erstellt haben.
    • Die Adresse in der blockchain.js korrekt eingetragen ist.
    • Der Account mindestens 0.01 Bergs besitzt.

14. Zugriff auf Wählerdaten

  • Über Menüpunkt 2 können Sie Ihre Wallet-Adresse und Ihren Token jederzeit einsehen.

15. Abstimmung

  • Wenn die Abstimmung gestartet wurde und der Wahlzettel hochgeladen ist, können Sie Ihre Stimme abgeben.

16. Stimmenverfolgung

  • Nach der Stimmabgabe wird ein Tracking-Hash generiert.
  • Sie können Ihre Stimme über Menüpunkt 5 verfolgen.

Beendigung der Wahl

17. Wahl beenden und Ergebnisse anzeigen

  • Beenden Sie die Wahl durch Ausführung von:
    node {Pfad zu endElection.js}
  • Nach Beendigung der Wahl werden die Ergebnisse ausgewertet und veröffentlicht.
  • Die Studenten können die Ergebnisse unter Menüpunkt 4 einsehen.

18. Wahl zurücksetzen

  • Vor dem Start einer neuen Wahl muss das System zurückgesetzt werden:
    node {Pfad zu resetElection.js}
  • Das System ist nun zurückgesetzt und bereit für eine neue Wahl.

Support

Bei Fragen zur Ausführung des Programms wenden Sie sich bitte per E-Mail an: andrejart@gmx.de.


About

Blockchain based Voting System for universities.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages