e-Voting - Web - Suceava - Lucrari 2015 Nationala

Informatii generale

Descriere

Mi-am propus prin acest site, să creez o platformă online pentru a ușura și a revoluționa votul.Principalul motiv a fost diminuarea fraudei și mărirea numărului de persoane care votează.

Sistemul funcționează astfel:

  1. Cetățeanul trebuie să se prezinte la primăria locală cu buletinul, certificatul de naștere și adresa de email personală.

  2. Personalul angajat la primărie are obligația de a înregistra datele despre cetățean pe platformă, în prezența cetățeanului în cauză.

  3. Cetățeanul va primi un email pe adresa de email personală cu o parolă. De pe calculatorul personal, acesta va accesa căsuța poștală electronică și va verifica existența e-mailului.

  4. Cetățeanul va putea accesa în orice moment pagina online de vot, cu adresa de email personală, CNP-ul și parola primită prin email, iar în momentul în care se poate vota, acesta va putea alege un candidat, iar votul lui va fi înregistrat în mod anonim în baza de date.

Proiectul constă în 5 secțiuni:

  • Panoul utilizatorului, de unde acesta votează
  • Panoul de administrare a BEC
  • Panoul de administrare a primăriilor locale
  • Panoul de administrare activă pentru supraveghetorii de la urnă
  • Panoul de administrare a Dezvoltatorilor

Tehnologii

Limbaje de programare:

  • HTML5
  • CSS3 (+Bootstrap; FontAwesome)
  • JavaScript (+JQuery; SummerNote)
  • PHP5 (OOP; MVC)
  • .htaccess (url rewrite)

*Design Responsive
*Protejat împotriva SQLinjection, XSS, CSRF, NullByte, md5 buffer overflow

Cerinte sistem

Server Apache - ModRewrite
PHP 5.6 (+MySQLi)
Server MySQL
Browser Decent

Realizatori

David Vultur

  • Scoala: Colegiul Național “Nicu Gane”
  • Clasa: 10
  • Judet: Suceava
  • Oras: Sat. Băișești

Screenshots

2 Likes

Sunt multe lucruri care lipsesc din design (nu cum arată aplicația).
Ce se întampla dacă o persoană nu are adresă de e-mail? Îi faci una pe loc? Cum asiguri anonimizatul? Ce se întamplă dacă sistemul e suspus unui atac DDOS? Ce se întamplă dacă votez, în exact același timp, de pe doua mașini diferite, dar de pe același cont? Dacă utilizatorul nu are access la Internet (îi îngrădești libertatea de își exercita un drept fundamenta)? etc.

Per ansamblu, mi se pare o idee foarte bună și ambițioasă, însă tu încerci să rezolvi o problemă destul de sensibilă și pentru a o rezolva în întregime, trebuie să ai grijă la câteva detalii.

La partea de cod, îmi place să văd un MVC, care cu un pic de atenție poate fi mai interesant.

  • în loc de un controller mare cu multe if-uri poate un router cu niște regex-uri ar simplifica treaba
  • în model nu ar trebui să existe nimic legat de html ci doar de entități, lucru cu baze de date etc.
  • în views aș vedea logica groasă de afișare în pagină
  • partea de templates e super awesome…cred că ai putea muta multă logică din model acolo
  • un controller pentru fiecare pagină
  • un model pentru fiecare entitate (tabel)

Îmi place că te-ai gândit la un minifier, poate și o opțiune de a face caching nu strică.

Poate nu ar strica să pui aplicația sus pe server și îți mai putem oferi niște feedback.

Salut!
Mersi pentru feedback :smile:

Exista un panou de administrare pentru urna care ii rezolva pe cei fara net :slight_smile: Adica, daca nu ai net, te duci la urna, acolo responsabilul introduce pe un PC cnp-ul tau, vede daca nu ai votat in alta parte, daca nu ai votat, te lasa sa te duci si sa votezi la urna, si marcheaza faptul ca ai votat la acea urna…

In baza de date se stocheaza doar cand si unde a votat fiecare CNP, si se incrementeaza numarul de voturi la fiecare participant, deci e imposibil(teoretic) ca cineva sa poata vedea ce a votat fiecare :smiley:

Pai verificarea daca a votat + adaugarea votului sunt facute una imediat dupa alta, deci teoretic ar fi maxim 1ms. E cam imposibil :smiley: Pe 1 calculator se va adauga votul si se va face redirect la pagina principala din panoul userului, iar pe al 2-lea se va face direct redirect :slight_smile:

Legat de MVC a fost prima data cand l-am folosit intr-un proiect :slight_smile: Mersi pentru sugestii :smiley:

O sa incerc zilele astea, mersi :slight_smile: