Skip to content

OtwartaPlatformaWyborcza/opw-pre

Repository files navigation

Otwarta Platforma Wyborcza

  1. Organizacja
  2. Członkowie
  3. Jak do nas dołączyć?

OPW-PRE

Wybory prezydenckie

Linki

Środowisko  Element Link
- JIRA https://otwartapw.atlassian.net/
- Jenkins Jenkins
DEV Maski administracyjne http://dev.otwartapw.pl/mgmt/
DEV Serwis inbound http://dev.otwartapw.pl/inbound
DEV Serwis outbound http://dev.otwartapw.pl/outbound
TEST Maski administracyjne http://test.otwartapw.pl/mgmt/
TEST Serwis inbound http://test.otwartapw.pl/inbound
TEST Serwis outbound http://test.otwartapw.pl/outbound

Proces

Przygotowanie wyborów

  1. Administrator definiuje / importuje oficjalną listę Komisji Okręgowych (51)
  2. Administrator definiuje / importuje oficjalną listę Kandydatów (11)
  3. Administrator definiuje / importuje oficjalną listę Komisji Obwodowych (około 27 000)
  4. Administrator zakłada / importuje konta użytkowników (wolentariusze, mężowie zaufania, około 25 000)
  5. System automatycznie rozsyła hasła użytkowikom, wraz z linkiem do aktywacji konta, na podany adres E-Mail.
  6. Administrator systemu ma możliwość edycji i weryfikacji kont użytkownków wraz ich danymi (możliwa fluktuacja użytkowników tuż przed wyborami)

Dzień wyborczy - perspektywa użytkownika

  1. Użytkownik loguje się na stronie OPW i wybiera z listy jedną z przypisanych mu Komisji Obwodowych.
  2. Użytkownik widzi na okrenie dokładne informacje dotyczące wybranej Komisji Obwodowej.
  3. Użytkownik wpisuje dane / liczby wyborcze z protokołu do aplikacji OPW.
  4. Walidacja protokołu po stronie klienta (JavaScript/HTML5) dla błędów twardych.
  5. Użytkownik wysyła dane/liczby wyborcze na serwer OPW.

Dzień wyborczy - perspektywa serwera

  1. Liczby wyborcze spływają na serwer.
  2. Każdy protokół jest walidowany, w przypadku identyfikacji błędu miękkiego protokół protokół zostanie otagowany.
  3. Protokoły są zapisywane w bazie danych.
  4. Aktualny wynik wyborów jest publikowany co 5 minut.

Dzień wyborczy / perspektywa gościa

  1. Gość wchodzi na stronę główną aplikacji OPW-dashboard
  2. OPW/dashboard zapewnia dostęp do aktualnych wyników w skali kraju jak i gminy.

Specyfikacja

Grupy użytkowników

  1. Administrator (admin)
  2. Użytkownik (user)
  3. Gość (guest)

Software stack

Backend

  1. Java 8 / Java EE 7 (JPA2, CDI, EJB, JSF 2.2 (PrimeFaces), JAX-RS, JavaMail)
  2. MySQL 5.5 (UTF8, InnoDB, MySQL Workbench)
  3. REST (RESTEasy)
  4. HTML5
  5. CSS3
  6. Maven 3

Frontend

  1. HTML5
  2. JavaScript (AngularJS)
  3. CSS3
  4. Bootstrap

Konfiguracja

Konfiguracja systemu OPW-PRE bazuje w całości na podsystemie naming kontenera JEE. Poszczególne parametry konfiguracyjne umieszczone są bezpośrednio w typowanych parametrach JNDI wedle schematu java:global/opw-pre/<MODUŁ>/<OPCJA>. Poszczególne moduły OPW-PRE nie implementują cache dla parametrów JNDI. Zmiana konfiguracji nie wymaga restartu kontenera JEE.

Parametr Wartość Opis
/opw-pre/register/baseUrl http://localhost:8080/opw-pre-register-ws/service Absolutne URI serwisu rejestracji
/opw-pre/inbound/baseUrl http://localhost:8080/opw-pre-inbound-ws/service Absolutne URI serwisu zapisu danych
/opw-pre/outbound/baseUrl http://localhost:8080/opw-pre-outbound-ws/service Absolutne URI serwisu odczytu danych

REST

Proces wgrywania protokołu z perspektywy użytkownika.

Numer  Metoda  Opis
1 POST Zalogowanie
2 GET Lista komisji obwodowych które użytkownik dodał do własnego profilu
3 GET Detale wybranej komisji obwodowej (dane podstawowe, lista kandydatów, lista protokołów)
4 POST Upload liczb wyborczych
5 GET Wylogowanie

Headers

Jako prefix X-OPW

  • X-OPW-login
  • X-OPW-password
  • X-OPW-token
  • X-OPW-API-client
  • X-OPW-API-token
  • X-OPW-debug-500

Roadmap

Plan realizacji systemu OPW-PRE.

Wersja 0.4.0

Integracja komisji obwodowej. Integracja standardowego theme bootstrap.

  • PRE-30 Migracja WildFly 10.0.0.Final
  • PRE-39 Migracja WildFly 10.1.0.Final
  • PRE-36 Serwer WildFly jako Maven module projektu
  • PRE-25 Definicja API serwisu REST dla komisji obwodowej
  • PRE-38 Monitoring serwera CI
  • PRE-37 Migracja Jenkins LTS
  • PRE-19 Środowisko DEV i TEST
  • PRE-26 Implementacja serwisu REST dla komisji obwodowej
  • PRE-27 Generator danych dla komisji obwodowej
  • PRE-18 Integracja bootstrap w panelu administracyjnym
  • PRE-28 Reset hasła wolontariusza
  • PRE-34 Aktywacja i deaktywacja konta wolontariusza w panelu administracyjnym
  • PRE-35 Zamknięcie listy kandydatów w panelu administracyjnym
  • PRE-35Lista komisji wolontariusza w panelu administracyjnym
  • PRE-35Zarządzanie listą komisji obwodowych wolontariusza w panelu administracyjnym
  • PRE-35Upload liczb wyborczych w panelu administracyjnym
  • PRE-35Aktywacja konta wolontariusza poprzez link
  • PRE-35Samodzielny reset hasła
  • PRE-35Dane dostępowe wolontariusza poprzez E-Mail

Wersja 0.5.0

Integracja docker'a. Import z plików CSV.

  • PRE-4 TBD
  • Import CSV dla kont użytkowników
  • Import CSV dla kandydatów
  • Import CSV dla województw
  • Import CSV dla komisji okręgowych
  • Import CSV dla komisji obwodowych
  • Import CSV dla komisji obwodowych

Wersja 0.6.0

Zabezpieczenie masek administracyjnych.

  • PRE-24 Zabezpieczenie masek administracyjnych
  • PRE-4 TBD Koncepcja monitoringu serwisów
  • Definicja szablonu SMS
  • Podbieranie protokołów przesłanych na skrzynke pocztową
  • Automatyczne parsowanie protokołów ze skrzynki pocztowej
    • import poprawnych protokołów
    • tagowanie błędnych protokołów
  • tagowanie błędnych protokołów

Wersja 0.7.0

Nowe funkcje TBD.

  • PRE-4 TBD Implementacja monitoringu serwisów

Wersja 0.8.0

Nowe funkcje TBD.

Wersja 0.9.0

Implementacja testów wydajnościowych.

Wersja 0.10.0

Stabilizacja aplikacji.

Wersja 0.11.0

beta (automatyczna symulacja wyborów)

Wersja 0.12.0

RC1 (automatyczna symulacja wyborów)

Wersja 0.13.0

RC2 (automatyczna symulacja wyborów)

Wersja 1.0.0

stable release

Changelog

Wersja 0.3.0 [wydana 2016.07.26]

Rejestracja wolontariusza

  • PRE-1 Formularz rejestracji wolontariusza JSF
  • PRE-21 Definicja API serwisu REST rejestracji wolontariusza
  • PRE-20 Integracja bootstrap w formularzu rejestracji wolontariusza
  • PRE-23 Implementacja serwisu REST rejestracji wolontariusza
  • PRE-22 VersionBuilder
  • PRE-29 Definicja struktury JNDI

Wersja 0.2.0 [wydana 2015.11.12]

Implementacja masek administracyjnych.

  • PRE-7 Maski administracyjne: Komisja Okregowa
  • PRE-8 Maski administracyjne: Komisja Obwodowa
  • PRE-9 Maski administracyjne: Województwo
  • PRE-10 Maski administracyjne: Protokół
  • PRE-11 Maski administracyjne: Link
  • PRE-12 Maski administracyjne: Konfiguracja
  • PRE-13 Maski administracyjne: Użytkownik
  • PRE-15 Maski administracyjne: Kandydat

Wersja 0.1.0 [wydana 2015.10.22]

Refactoring struktury projektu, architektury jak i podstawowych komponentów API.

  • PRE-2 Refactoring struktury projektu
  • PRE-3 DB limit kandydatów
  • PRE-5 Koncepcja serwisu GET Version
  • PRE-6 Definicja artefaktu commons