Projekt został stworzony na zlecenie firmy. Zebrania walne choć przeprowadzane raz w roku, mają duże znaczenie dla funkcjonowania spółki. Program ma za zadanie ułatwić przebieg takiego zebrania i w szybki sposób zaprezentować dane firmie.
Największym wyzwaniem jest tak dobrać i przechowywać numery kart w celu walidacji, aby nikt nie mógł zagłosować dwa razy, zmienić swojego głosu lub zagłosować nieważną już kartą do głosowania.
Wymagania są dwa. Głosowanie ma być tajne i całość ma odbywać się za pomocą skanowania kodów kreskowych przez czytnik.
Każdy użytkownik przy wejściu na spotkanie dostaje kartę, która w momencie odbioru zostaje zarejestrowana w systemie. Podczas głosowania administrator wypełnia dwa pola odpowiadając na pytania: W jakiej sprawie głosujemy? Na kogo głosujemy?
Po zatwierdzeniu uczestnicy przystępują do głosowania podkładając swoje karty pod czytnik - oddając głos:
Na końcu podchodzi członek komisji i w specjalny sposób zatrzymuje głosowanie. Po zatrzymaniu głosowania drukuje się dokument z wynikami głosowania.
Do wykonania projektu jako bazowego języka programowania użyłem język Python, ale znalazło się też miejsce na poniższe technologie:
Zaczęło się od konceptu i konsolowej aplikacji, skończyło się na profesjonalnie wyglądającym panelu do głosowania. Wniosek z tego taki, że warto rozwijać swoje projekty niezależnie od tego jak wyglądają, liczy się zachowana w nich logika i mechanika działania, na drugim miejscu stoi wygląd i estetyka wykonania - choć i ta jest ważna.