#Databáza
Server používa na ukladanie dát dokumentovú databázu MongoDB. Aj keď je do MongoDB možné vkladať dáta s rôznymi atribútmi, používame modely jednotlivých dátových entít, ktoré špecifikujú štruktúru objektu a definujú typy jeho atribútov. Pracujeme s nasledujúcimi kolekciami:
- votes
- parties
- candidates
- polling_places
- key_pairs
Štruktúra uloženého hlasu:
Ďalej sa počas spracovania hlasov dynamicky pridajú dva atribúty a to:
Atribút polling_place_id slúži na spojenie hlasu s miestnosťou, v ktorej bol zvolený atribút synchronized, ktorý indikuje, či bol daný hlas už zandexovaný do ElasticSearch-u.
Štruktúra politickej strany:
Dátová štruktúra politickej strany obsahuje základné údaje ako názov, skratka, číslo a doplnkové údaje ako farba a logo, ktoré sa používajú v štatistickej aplikácii. Ďalej strana obsahuje zoznam kadidátov, ktorí sú reprezentovaný vlastným modelom.
Štruktúra volebnej miestnosti:
Dátová štruktúra volebnej miestnosti obsahuje informácie o územných celkoch, v ktorých sa daná miestnosť nachádza. Tieto údaje budú následne použité na prepočítavanie výslekov pre rôzne lokality (obce, okresy a kraje).
Štruktúra kandidáta:
Dátová štruktúra kandidáta obsahuje základné údaje o kandidátovi, ktoré sú použité na zobrazovanie výsledkov a obsahuje taktiež prepojenie na politickú stranu, ktorej je súčasťou.
Štruktúra kľúčového páru:
Kľúčový pár je špecifický pre každú volebnú miestnosť a jeho privátnym kľúčom je dešifrovaná iba kominikácia, ktorá prichádza z tejto volebnej miestnosti. Tento krok zvyšuje bezpečnosť komunikácie.
#Popis API
#schema_database_schema_get
Code samples
GET /database/schema
Schema
Get all collections from database
Example responses
200 Response
Responses
#import_data_database_import_data_post
Code samples
POST /database/import-data
Import Data
Example responses
200 Response
Responses
#seed_data_database_seed_data_post
Code samples
POST /database/seed-data
Seed Data
Parameters
Example responses
200 Response
Responses
#seed_votes_database_seed_votes_post
Code samples
POST /database/seed-votes
Seed Votes
Parameters
Example responses
200 Response