W obecnej chwili podstawowym celem zespołu developerów Java jest stworzenie rozwiązania umożliwiającego niezależne i obiektywne zweryfikowanie wyników wyborów. Rozwiązanie to przeznaczone będzie dla ok. 27800 ochotników będących mężami zaufania w obwodowych komisjach wyborczych. Użytkownicy ci mają za zadanie za pomocą aplikacji mobilnych przesłać dane z udostępnionych publicznie protokołów wyborczych do zbiorczego systemu agregacji danych (backend). System ten prócz zbierania danych ma zadanie wizualizować pozyskane informacje w postaci diagramów wyborczych z podziałem na województwa.
Członek | Rola |
---|---|
Bartek S | Frontend Developer |
Kamil S | Java BackEnd Developer |
Kamil Gr | Android Developer |
Lukasz_F | Java BackEnd Developer |
Rafal_R | Koordynacja/Organizacja |
Remek M | Java BackEnd Developer |
Sebastian C | Java BackEnd Developer |
Sebastian P | Java BackEnd Developer |
Mirososlaw G | Frontend & Test Developer |
Aby do nas dołączyć skontaktuj się z nami poprzez E-Mail i Skype.
Kontakt:
- Rafał Reguła: [email protected]
- Skype: rafal.regula
Strona główna projektu: http://openpkw.pl/
GitHub: https://github.com/openpkw/openpkw/tree/master/java
- Do modelowania wykorzystujemy Draw.io
- Do zmian w dokumentacji wykorzystujemy Dillinger.io oraz GitHub
- Do zadań wykorzystujemy Trello
- Wszyscy developerzy mają pełny dostęp do repozytorium
- Każdy feature implementowany jest na branchu. Przed mergem do mastera deweloperzy spotykają się i omawiają propozycje zmian
- Wykorzystujemy metodologie Agile i spotykamy sie w sprinatch co wtorek o 20
- Jesli zajdzie potrzeba spotykamy się częsciej komunikując sie na Skype (grupa OpenPKWJava )
Element | Link |
---|---|
Tablica Trello Java | https://trello.com/b/eX0kOIwp/openpkw-java |
Draw.io | https://www.draw.io |
Dillinger.io | http://dillinger.io |
GitHub | https://github.com/openpkw |
Serwer buildów | http://cypisek.openpkw.pl:8080/view/openpkw-weryfikator-backend%20pipeline/ |
Środowisko TEST | http://rumcajs.openpkw.pl:9080/openpkw/ |
Środowisko UAT | http://dobromir.openpkw.pl:9080/openpkw/ |
Środowisko STAGE | (jeszcze nie ma) |
Środowisko PROD | (jeszcze nie ma) |
Aktualnie poszukujemy!
- Doświadczonych (bądz tez nie - ale pełnych zapału) developerów JAVA
- Programistę HTML, JavaScript, Angular, Bootstrap
- Testerów Spock
- Za pomocą aplikacji mobilnej użytkownicy (mężowie zaufania) skanują kody QR znajdujące się na wydrukowanych i wywieszonych w publicznie dostępnym miejscu protokołach wyborczych i wysyłają je na serwer OpenPKW.
- System OpenPKW odbiera dane od użytkowników, zapisuje je w bazie danych, a także udostępnia na stronie internetowej wszystkim wyborcom w czasie rzeczywistym.
- Państwowa Komisja Wyborcza przekazuje wyniki głosowania do serwera OpenPKW (technicznie: w jeden z nastepujących sposobów przez PKW: REST, FTP, WWW, MAIL).
- System OpenPKW odbiera dane od Państwowej Komisji Wyborczej, zapisuje je w bazie danych, porównuje z danymi zebranymi od użytkowników OpenPKW i również udostępnia na stronie internetowej.
- Wszyscy wyborcy na bieżąco są w stanie porównać wyniki zebrane przez użytkowników OpenPKW z wynikami Państwowej Komisji Wyborczej.
Perspektywa Administratora / Przygotowanie do wyborów (Backend)
- Administrator zakłada konta użytkownikom (mężom zaufania)
- Administrator rozsyła hasła użytkowikom
- Administrator zbiera dane użytkownika bądź/i importuje je z XLS (Imie, nazwisko, mail , telefon, nr komisji)
- System automatycznie wysyła link do aktywacji kont, login i hasło użytkownikom na podany adres e-mail
- Administrator systemu ma możliwość edycji i weryfikacji kont użytkownków wraz ich danymi (duża fluktuacja użytkownków przed wyborami)
- Administrator ma możliwość weryfikacji i podglądu listy użytkownikow, ktorzy odebrali hasła i poprawnie przesli procedurę testowego logowania do systemu
Perspektywa Użytkownika / Dzień Wyborczy (Aplikacje Mobilne)
- Użytkownik uwierzytelnia się w aplikacji mobilnej za pomocą uprzednio otrzymanego loginu i hasła od Administratora
- Po poprawnym uwierzytelnieniu się system rozpoznaje użytkownika i przypisuje automatycznie wczesniej numer obwodowej komisji z której przekazuje dane za pomoca QR
- Użytkownik przesyła dane automatycznie robiąc zdjecie kodu QR a także samych stron protokoły wyborczego. Przekazuje następujące dane:
- Ilość uprawnionych do głosowania
- Ilość wydanych kart do głosowania
- Ilość kart ważnych
- Ilość głosów nieważnych
- Ilość głosów ważnych
- Ilość głosów dla poszczególnych kandydatow / komitetów wyborczej
- Administrator Systemu (admin)
- Użytkownik Aplikacji (user)
- Operator Systemu (operator)
- Użytkownik www (frontend)
-
Wysyłanie protokołów i zakonczenie liczenia głosów w 25000 komisjach zazwyczaj konczy się o tej samej porze +/- 15 min w przypadku prostych wyborów jakimi są Wybory Prezydenckie.Potrzebna Analiza wydajnosciowa serwerów w tym (SQL, Moc Obliczeniowa maszyny oraz sama przepustowość łącza i-net). Zastanowić się nad modułem synchronizacji otrzymywania wyników.
-
W przypadku gdy usługa będzie cieszyć sie bardzo dużą popularnoscią, Goście (wyborcy), którzy będą chcieli sprawdzić niezależne wyniki wyborów na stronie www - mogą spowodować problemy wydajnosciowe i/lub zawieszenie sie serwerów. Do rozważenia wprowadzenie modułu logowania na gości i ograniczenie ilości połaczeń dla danego gościa.
##Wymagane oprogramowanie, środowiska DEV oraz technologie
- Android 4.x - Lolipop
- Ios 7.xx
- WindowsPhone 8.x
- Java EE 8 (9.0,JPA2, Spring 4, JAX-RS, JAAS, JavaMail)
- MySql
- Maven 3
- Json 2.0 (revised version)
- HTML5
- JavaScript (AngularJS)
- CSS3
- Bootstrap
https://github.com/openpkw/openpkw-weryfikator/blob/master/TECHNICAL_README.MD