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:
Cetățeanul trebuie să se prezinte la primăria locală cu buletinul, certificatul de naștere și adresa de email personală.
Personalul angajat la primărie are obligația de a înregistra datele despre cetățean pe platformă, în prezența cetățeanului în cauză.
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.
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ă
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.
Exista un panou de administrare pentru urna care ii rezolva pe cei fara net 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
Pai verificarea daca a votat + adaugarea votului sunt facute una imediat dupa alta, deci teoretic ar fi maxim 1ms. E cam imposibil 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
Legat de MVC a fost prima data cand l-am folosit intr-un proiect Mersi pentru sugestii