Coraz częściej w życiu spotykamy się z problemem podpisywania różnorakich zgód i oświadczeń, najczęściej wskutek dziwacznych interpretacji rozporządzenia RODO, choć nie tylko.
Skłoniło mnie to do skonstruowania serwera podpisów. Nie elektronicznych, takich tradycyjnych.
Oczywiście Raspberry PI, do tego ekran dotykowy, dowolny, ale im większy tym wygodniejszy.
Raspberry działa jako serwer podpisów.
Po uruchomieniu na ekranie pojawia się pusty desktop, możemy wtedy wyświetlić jakiś ładny obraz lub reklamowe blebleble:
(Albo jedno i drugie za jednym zamachem 😅 )
Program klienta (na przykład system do wystawiania przepustek uprawniających na wejście/wjazd na teren zakładu) wysyła przez sieć tekst do zaakceptowania przez podpisującego, formułkę oświadczenia, wersję języka (polski, angielski, niemiecki itp. - serwer obsługuje dowolną wersję językową) miejsce składania oświadczenia.
Wtedy na ekranie pojawia się zmaksymalizowane okno:
W górnej części wyświetla się treść dokumentu, w dolnej formułka oświadczenia.
Tekst, formułka, napisy na klawiszach, komunikaty serwera wyświetlane są w języku, jaki wskazał program kliencki.
Kierowca z Austrii zobaczy wersję niemiecką, z Ukrainy ukraińską.
Po zapoznaniu się z podpisywanym np. regulaminem (tekst można przewijać, jeśli jest długi) składamy podpis pod treścią oświadczenia (dolna część okna).
Nieudany podpis możemy skasować i ponowić próbę, zrezygnować z podpisywania, bo nie akceptujemy podpisywanej tresci, wreszcie wysłać do programu klienta.
Wysłanie nie jest możliwe, jeśli nie złożyliśmy podpisu.
Podpisane oświadczenie wysyłane jest jako obraz png do programu klienckiego, który może je na przykład zapisać w bazie danych:
Jak to działa?
Tym razem nie będę omawiał szczegółów, trochę ich za dużo. Do omówienia, oprócz programów w C byłoby GTK+ 3.0., Cairo, Glade, CSS, tworzenie różnych wersji językowych (localization), komunikacja przez sieć itd.
Programy, pliki konfiguracyjne, instrukcję instalacji itp. umieściłem na githubie: Graphologist
Program serwera podpisów to
start.c
Obsługuje ekran, komunikuje się z programem klienckim, formatuje podpis itp.wyświetl.c
to przykładowy program klienta, prosta wersja przyjmująca parametry z linii komend. Plik:INSTALL
To instrukcja jak całość skompilować i zainstalować.Plik:
FILES
zawiera krótkie opisy zawartości i funkcji poszczególnych plików i katalogów.Całość uruchamiać można na zwykłym komputerze z Linuksem, w przypadku braku ekranu dotykowego podpis złożyć możemy po prostu myszką.
Program udostępniłem na warunkach licencji GPL-3.0, a więc
Miłej Zabawy
Starałem się umieścić wszystkie potrzebne objaśnienia w plikach i w postaci komentarzy w programach źródłowych, jeśli jednak będzie to niewystarczające, proszę o maila (adres pod zdjęciem w lewym górnym rogu ekranu).