POLos, to system pomocniczy do pierwszego etapu wyłaniania panelu obywatelskiego -- losowania zaproszeń dla wyborców.
POLos jest podzielony na 3 etapy:
- Import danych -- przesłanie danych osób oraz wprowadzenie kryteriów losowania (profili).
- Losowanie -- losowanie za pomocą usługi Random.org.
- Eksport danych -- eksport danych wylosowanych osób wraz ze specjalnym identyfikatorem, który powinien zostać dołączony do zaproszenia.
Instrukcje dodatkowe:
- Informacje o wstępnej instalacji serwera i konfiguracji serwera → INSTALL.md.
- Informacje o instalacji skryptów i aktualizacji POLos → UPDATE.md.
- Informacje o rozwiązywaniu problemów → HELP.md.
Poniżej natomiast znajdziesz opis przebiegu działania programu oraz szczegółowy opis wymagań.
Program został sfinansowany ze środków Gminy Miasta Gdańsk i udostępniony na otwartej licencji CC-BY 4.0. Patrz: LICENSE.md.
Copyright © 2017 Maciej "Nux" Jaros, Gmina Miasta Gdańsk.
- Dane są losowane z dużego zbioru danych osobowych (np. listy wyborców).
- Profile są złożone z danych, które można ustalić z danych osobowych -- płeć, wiek, dzielnica.
- Do każdego profilu podana jest liczba zaproszeń do wylosowania.
- Przetworzenie listy profili zaproszenia, w tym liczby zaproszeń do wylosowania.
- Przetworzenie rejestru w celu ustalenia płci, wieku, dzielnicy oraz danych adresowych.
- Wyświetlenie liczby przetworzonych i liczby nieprzetworzonych (np. nieprawidłowy PESEL).
Import odbywa się z użyciem plików CSV, które można wyeksportować z bazy danych lub z arkusza Excel czy Open Office.
Ważne! Pliki XLS (Excel) mają ograniczenie do niecałych 66 tys. wierszy, a w starszych wersjach Excel jeszcze mniej. Nie można w nich zatem przechowywać spisu wyborców dużego miasta. Należy unikać tych plików przy przetwarzaniu dużej ilości danych.
Można jednak podzielić dane na części. POLos obsługuje przesyłanie paru plików z danymi osobowymi.
Mimo wszystko zalecane jest korzystanie z Open Office, ponieważ lepiej obsługuje pliki CSV. Zwłaszcza otwieranie wyeksportowanych plików CSV.
- Dla każdego profilu:
- Ustalana jest lista osób pasujących do profilu zaproszenia i sortowana np. wg PESEL.
- Z tej listy (a nie z całego rejestru) losowane są zaproszenia dla danej grupy.
- Dane do weryfikacji losowania są zapisywane.
- Po losowaniu można sprawdzić jego przebieg i zweryfikować, że losowanie zostało wykonane za pomocą Random.org (losowania mają podpis za pomocą certyfikatu pochodzącego z Random.org).
- Z programu eksportowane są dane adresowe wraz z identyfikatorem służące później do wydruku zaproszeń.
- Osobny eksport jest wykonywany dla systemu ankietowego. W tym eksporcie nie ma pełnych danych osobowych, tylko identyfikator oraz imię. Dodatkowo eksportowana jest dzielnica.
- Wylosowanym osobom nadawane są identyfikatory.
Przy generowaniu identyfikatorów pomijane są mylące znaki np. „I” (jak Igor), „l” (jak lampa).
Wydruk zaproszeń nie jest częścią POLos.
Ze względu na przetwarzanie dużej ilości danych program działa w środowisku serwerowym.
Za serwer może posłużyć w miarę dowolny, współczesny komputer. Zalecane parametry:
- CPU: 3 GHz, quad, 64-bit.
- RAM: 8 GB.
- Dysk: 20 GB wolnego miejsca. Uwaga! Zalecana jest instalacja na dysku typu SSD!
Wymagane programy:
- Apache 2.2 lub nowszy.
- PHP 5.3 lub nowszy. Wymagane rozszerzenie
mysql
. - MySQL 5.1 lub nowszy. Uwaga! Musi być skonfigurowany na obsługę UTF-8.
- Appache Open Office lub Libre Office do obsługi plików CSV. MS Excel może sobie nie poradzić z kodowaniem UTF-8.
Na dysku SSD (lub innym szybkim dysku) powinny być przede wszystkim:
- Folder tymczasowy PHP (określony przez
upload_tmp_dir
w plikuphp.ini
). - Folder danych MySQL (określony przez
datadir
w plikumy.ini
).
Należy pamiętać, że MySQL musi być skonfigurowany tak, żeby obsługiwać kodowanie UTF-8. Inaczej może być problem z wyświetlaniem polskich znaków.
Na stronie sys-test.php
znajdują się wymagania co do niektórych parametrów PHP oraz MySQL. Zalecane wartości tam podane są przewidziane na przetwarzanie plików CSV między 20-30 MB. W razie wątpliwości lepiej jest wybrać większe wartości.
Więcej informacji o instalacji oraz informacje o typowych problemach znajdują się w INSTALL.md.