Dieser Ergebnis stellt Wahlergebnisse zur Verfügung
Der Service befindet sich in der Entwicklung
Diese Schnittstelle wird verwendet um zu prüfen, ob der Service selbst erreichbar ist.
Die Schnittstelle ruft die Landtagswahlergebnisse für die Landtagswahl 2012 in NRW für die Stadt Köln ab (Gemeindeschlüssel: 05315000)
Beispiel: /wahlergebnis/service/landtagswahl/05/05315000/2012-05-13/erststimmen
Beispiel: /wahlergebnis/service/landtagswahl/05/05315000/2012-05-13/zweitstimmen
Die Schnittstelle ruft die Landtagswahlergebnisse für die Landtagswahl 2012 in NRW in Abhängigkeit der Stimmbezirknr für die Stadt Köln ab (Gemeindeschlüssel: 05315000)
Beispiel: /wahlergebnis/service/landtagswahl/05/05315000/2012-05-13/erststimmen/10101
Beispiel: /wahlergebnis/service/landtagswahl/05/05315000/2012-05-13/zweitstimmen/10101
Es ist auch möglich mehrere Stimmbezirk Nummern zu übergeben. Damit lassen sich größere Gebiete, wie z.B. Wahlkreise abfragen.
Beispiel: /wahlergebnis/service/landtagswahl/05/05315000/2012-05-13/erststimmen/10101,10102,10103
Beispiel: /wahlergebnis/service/landtagswahl/05/05315000/2012-05-13/zweitstimmen/10101,10102,10103
Die Schnittstelle ruft die Landtagswahlergebnisse für die Landtagswahl 2012 in NRW ab. Es werden alle Stimmbezirke zurückgeliefert.
Beispiel: /wahlergebnis/service/landtagswahl/05/05315000/2012-05-13/erststimmen/all
Beispiel: /wahlergebnis/service/landtagswahl/05/05315000/2012-05-13/zweitstimmen/all
Die Schnittstelle ruft alle Einträge für Wahldaten auf.
Beispiel: /wahlergebnis/service/wahldaten
Für eine Übersicht über die zur Verfügung stehenden Wahldaten steht eine Oberfläche zur Verfügung: Wahldaten im System
Daten werden in Form eines json übergeben. Hierin finden sich alle Informationen, um sie zuordnen zu können. Beim upload wird eine Integritätsprüfung vorgenommen. Ein Beispiel Datensatz findet sich hier: data.json
sudo -u postgres createuser -P wahlergebnis
sudo -u postgres createdb -O wahlergebnis wahlergebnis
Die Tabelle WAHLDATEN enthält allgemeinen Informationen zur Wahl. Die Spalte 'ID' enthält einen intern verwendeten Schlüssel. Die Spalten 'BUNDESLAND' und 'GEMEINDE' enthalten die Schlüsselwerte. Da die Informationen mit führenden Nullen vorliegen (z.B. Gemeindeschlüssel Köln: '05315000') sind diese Spalten als varchar defniert. Das Bundesland ergibt sich prinzipiell aus dem Gemeindeschlüssel (z.B. Köln: '05' steht für das Land Nordrhein-Westfalen). Da z.B. Landtagswahlen sich an Bundesländern orientieren, wird dieser Schlüssel explizit gesetzt. Auch hier werden führende Nullen per varchar abgebildet.
Vergleiche auch wikipedia: Amtlicher Gemeindeschlüssel
Spalte | Typ | Beschreibung |
---|---|---|
id | integer | interner Schlüssel für Relation |
art | varchar(256) | Die Art der Stimmen, z.B. 'erststimmen', 'zweistimmen' |
wahl | varchar(256) | Die Art der Wahl, z.B. 'landtagswahl', 'bundestagswahl' |
datum | timestamp | Zeitpunkt der Wahl; typischerweise ein Datum, z.B. 11.11.206 |
bundesland | varchar(2) | Schlüsselwert für das Bundesland, z.B. 05 für Nordrhein-Westfalen |
gemeinde | varchar(12) | Schlüsselwert für die Gemeinde, z.B. 05315000 für Köln |
modtime | timestamp DEFAULT current_timestamp | Zeitpunkt der Erstellung des Datensatzes |
CREATE TABLE WAHLDATEN (
id integer,
art varchar(256),
wahl varchar(256),
datum timestamp,
bundesland varchar(2),
gemeinde varchar(12),
modtime timestamp DEFAULT current_timestamp
);
In der Tabelle STIMMBEZIRK finden sich die Informationen, die zum Stimmbezirk gehören. Die Spalte 'ID' enthält einen intern verwendeten Schlüssel. Die Spalte 'NR' enthält den Schlüssel, an dem der Stimmbezirk fachlich identifiziert werden kann.
Spalte | Typ | Beschreibung |
---|---|---|
id | integer | interner Schlüssel für Relation |
nr | integer | Schlüssel, dan dem der Stimmbezirk fachlich identifiziert werden kann |
wahlberechtigt | integer | Anzahl der Wahlberechtigten im Stimmbezirk |
abgegeben | integer | Anzahl der abgegebenden Stimmen |
gueltig | integer | Anzahl der gültigen Stimmen |
ungueltig | integer | Anzahl der ungültigen Stimmen |
modtime | timestamp DEFAULT current_timestamp | Zeitpunkt der Erstellung des Datensatzes |
CREATE TABLE STIMMBEZIRK (
id integer,
nr integer,
wahlberechtigt integer,
abgegeben integer,
gueltig integer,
ungueltig integer,
modtime timestamp DEFAULT current_timestamp
);
Spalte | Typ | Beschreibung |
---|---|---|
id | integer | interner Schlüssel für Relation |
partei | varchar(512) | Name der Partei |
stimmen | integer | Anzahl der Stimmen, die die Partei für sich gewinnen konnte |
modtime | timestamp DEFAULT current_timestamp | Zeitpunkt der Erstellung des Datensatzes |
CREATE TABLE ERGEBNIS (
id integer,
partei varchar(512),
stimmen integer,
modtime timestamp DEFAULT current_timestamp
);
Spalte | Typ | Beschreibung |
---|---|---|
ergebnis | integer | id des ergebnisses |
stimmbezirk | integer | id des stimmbezirks |
CREATE TABLE ERGEBNIS2STIMMBEZIRK (
ergebnis integer,
stimmbezirk integer
);
Spalte | Typ | Beschreibung |
---|---|---|
stimmbezirk | integer | id des stimmbezirk |
wahldaten | integer | id der wahldaten |
CREATE TABLE STIMMBEZIRK2WAHLDATEN (
stimmbezirk integer,
wahldaten integer
);
psql -h localhost -U wahlergebnis -d wahlergebnis -a -f src/main/sql/wahlergebnis.init.sql
Die Datenbankverbindungsparameter werden per JNDI zur Verfügung gestellt. Dies bedeutet, dass sie im Container definiert sein müssen. Für den Online-Betrieb mit Tomcat sind folgende Parameter zu setzen:
context.xml
<Context>
<ResourceLink
name="jdbc/wahlergebnis"
global="jdbc/wahlergebnis"
type="javax.sql.DataSource" />
</Context>
server.xml
<GlobalNamingResources>
<Resource
name="jdbc/wahlergebnis"
auth="Container"
driverClassName="org.postgresql.Driver"
maxTotal="25"
maxIdle="10"
username="username"
password="password"
type="javax.sql.DataSource"
url="jdbc:postgresql://localhost:5432/wahlergebnis"
validationQuery="select 1"/>
Zu Testzwecken muss die Datei src/test/resources/jndi.properties.template in jndi.properties umbenannt und die Verbindungsparameter angepasst werden.
Da zur Zeit keine Integration Test Stage zur Verfügung steht, sind alle Tests, die eine Datenbank voraussetzt als main codiert. Um eine Datenbankverbindung hierfür zur Verfügung stellen zu können, muss die Datei src/test/resources/jndi.properties.template in src/test/resources/jndi.properties kopiert und die entsprechenden Parameter zur Datenbank gesetzt werden.
Beim ersten auschecken und mit Aufruf von 'mvn clean install' wird die Datei jndi.properties.template in jndi.properties kopiert. Vorausgesetzt die Datenbank ist über localhost erreichbar und kennt das Schema 'wahlergebnis' bzw. den User 'wahlergebnis/wahlergebnis' kann direkt mit der Datenbank verbunden werden.
- git clone git@github.com:weberius/wahlergebnis.git
- mvn clean install
- mvn jetty:run
Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 4.0 International Lizenz.