jmalos jmalos
91
BLOG

Aplikacja GŁOSOWANIE - od modelu danych do realizacji

jmalos jmalos Technologie Obserwuj notkę 0


Problemy modelowania,  powielania i zniekształcania informacji oraz ich wpływy na procesy  to temat kilku moich ostatnich blogów.

W BLOGU 1: „Excel, SQL, ORB,  czyli wielka niemoc w odwzorowaniu rzeczywistości” skupiłem się na problemie obiektowego odwzorowania rzeczywistości. Pokazałem, że podejście obiektowe wymaga radykalnej zmiany myślenia o danych – zmiany, której nie da się wdrożyć szybko. To wyzwanie na dziesięciolecia.

W BLOGU 2 „Niebezpieczne zabawy z tekstem”  jako alternatywę zaproponowałem prostszy, choć mniej skuteczny sposób ograniczania zniekształceń – czyli „osadzanie” informacji w danych liczbowych. Przedstawiłem trzy scenariusze przetwarzania tekstu:
    czysty potok słów,
    prosty model liczbowy,
    oraz tekst powiązany z tabelą zdarzeń.
Wnioski były jasne: tylko tekst ściśle spleciony z ustrukturyzowanymi danymi pozwala zachować wierność faktom. Taką nadmiarowość informacji trudno ocenić "na oko" — potrzebne są dedykowane narzędzia.

W BLOGU 3 omówiłem kolejną chorobę współczesnego przekazu: nadmiarowość informacji — czyli więcej danych, mniej sensu. Przedstawiłem własną aplikację do wyliczania nadmiarowości informacji. 

W tym BLOGU4  przedstawię bardzo prosty przykład modelu danych  oraz implementację tego modelu w ważnym procesie "Wybory kandydata na dowolny urząd, stanowisko"


Praktyczny przykład: Aplikacja GŁOSOWANIE

☑️ Model danych (zapis SQL)


Tabela CANDIDATES  lista kandydatów 
CREATE TABLE CANDIDATES (  id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT UNIQUE,    czas_zgloszenia DATETIME);


Tabela VOTES  zdarzenia głosowania:
CREATE TABLE VOTES (    voter_id_pesel TEXT PRIMARY KEY,
    candidate_id INTEGER,    name TEXT,    czas_glosowania DATETIME);

☑️  Główne funkcje 
Jest to prosty system głosowania (frontend + backend), który:
✅ pozwala oddawać głosy na kandydatów,
✅ zapisuje głosy w bazie SQLite,
✅ blokuje wielokrotne głosowanie (na podstawie identyfikatora, np. PESEL).


☑️ Zastosowane technologie(open source)
    Node.js – środowisko serwerowe (JavaScript backend), możliwość tworzenia endpointów
    npm – menedżer pakietów dla Node.js
    SQLite – lekka baza relacyjna, plikowa baza danych

    HTML/CSS/JS – prosty frontend

☑️ Struktura katalogów projektu
voting-app-blocked/
├── frontend/
│   ├── index.html
│   ├── help.html
│   ├── style.css
│   └── app.js
├── backend/
│   ├── server.js
│   ├── database.db
│   └── package.json

☑️ Role i uprawnienia w systemie

Aplikacja GŁOSOWANIE  umożliwia zarządzanie wyborami poprzez 3 role użytkowników:


image


☑️ Screen aplikacji ze wszystkimi funkcjami  (rola ADMIN)

image


☑️ Wnioski końcowe i refleksja

1. Jak pokazuje ta niemal profesjonalna aplikacja (wykonana w 1 dzień)  , jeśli mamy:
    jasno zdefiniowany proces, oraz
    spójny, dobrze zaprojektowany model danych
to przy użyciu współczesnych narzędzi technologicznych jesteśmy w stanie zrealizować   wydajny i czytelny system, który porządkuje rzeczywistość oraz wspiera obecne procesy.

2. Dopóki mikroprojekty takie jak ten pozostaną bez WSPARCIA i FINANSOWANIA , dopóki szkoły będą pomijać naukę myślenia obiektowego a politycy będą ignorować potrzebę cyfrowej edukacji obywateli, dopóty  nie zbudujemy  nowoczesnego państwa. Będziemy co najwyżej wydawać olbrzymie środki na zarządzanie jego cyfrowym chaosem.



jmalos
O mnie jmalos

Nowości od blogera

Komentarze

Pokaż komentarze

Inne tematy w dziale Technologie