akramer-zibra / einblick-stuttgart

GNU Affero General Public License v3.0
0 stars 0 forks source link

Known Vulnerabilities License

Einblick-Stuttgart

Mission

Dieses Projekt startet mit dem Ziel die öffentlichen Ratsdokumente der Stadt Stuttgart besser für alle Bürgerinnen und Bürger zugänglich zu machen. Dabei versteht sich dieses Projekt selbst als unparteiisch und nur gegenüber demokratischer Meinungsvielfalt verpflichtet.

Die Ratsdokumente der Stadt Stuttgart sind bereits online abrufbar, allerdings nur mit einer in die Jahre gekommenen Overfläche.

Dieses Projekt ist wesentlich inspiriert durch Politik bei uns und Frag den Staat.

Anwendung

Diese Anwendung besteht aus einem Server- und einem Client-Teil. Der Server-Teil ist eine Node.js Server-Anwendung und ist in TypeScript programmiert. Der Client-Teil ist eine Browser-Anwendung, die ebenfalls in TypeScript entwickelt ist. In diesem Repository liegt der Quellode beider Anwendungs-Bestandteile.

Voraussetzungen

Der Server-Teil der Anwendung benötigt Node.js als Laufzeitumgebung.

Installation: Bibliotheken und Abhängigkeiten

Mit dem Befehl npm install installiert ihr alle notwendigen Code-Bibliotheken, um aus dem Server-Code wie auch den Client-Code eine ausführbare Anwendung zu machen. Diese Bibliotheken sind auch Voraussetzung für die lokale Weiterentwicklung dieser Anwendung.

Building: Ausführbaren Code erzeugen

Der ausführbare Code des Server- und Client-Teil dieser Anwendung kann jeweils separat gebaut werden. Der Befehl npm run server:build erzeugt den Server-Code und der Befehl npm run client:build erzeugt den Client-Teil (für den Browser).

Für die lokale Entwicklung eignen sich die Befehle npm run server:build:live und npm run client:build:watch, die in bedein Fällen den jeweiligen Code neu bauen, wenn sich etwas im Quellcode-Verzeichns der Anwendung ändert.

Running: Anwendung benutzen

Der Befehl npm start startet den Server-Teil der Anwendung. Vor dem Start werden jeweils der ausführbare Server- und auch der Client-Code neu erzeugt. Die Anwendung ist anschließend über localhost:4000 erreichbar.

Testing: GraphQL API testen

Anwendung starten (npm start) und mit dem Sandbox-Tool unter localhost:4000/playground die API testen. Der GraphQL Playground unterstützt mit Autovervollständigung und Korrekturfunktion das Testen der API.

Lizenz

Der Quellcode dieses Projekts ist unter der GNU-AGPLv3 lizensiert. Es ist euch darum unter anderem frei diesen Quellcode beliebig zu verändern und weiterzuverteilen. Was ihr rechtlich genau alles machen könnt, lest ihr entweder direkt in der Lizenzdatei oder in der zusammengefassten Form hier nach.

Contribution: Unterstützung bei der Weiterentwicklung

Eure Pull-Requests sind willkommen, aber bitte überprüft vor dem Commit Euren Code indem ihr die Anwendung startet (npm start) und die Änderungen sinnvoll testet.

Möchte ihr ein neues 'großes' Feature in die Anwendung bringen, beschreibt eure Idee bitte zuerst als Issue, anhand dessen wir die Idee und die Implementierungsdetails besprechen können. Das verhindert, dass keine eurer wertvollen Zeit bei der Weiterentwicklung durch abgelehnte Pull-Requests vergeudet wird.

Code-Richtlinien

Die TypeScript Lint-Rules stammen aus dem tollen Open-Source Projekt MichalLytek/type-graphql. Der Befehl npm run lint überprüft die in diesem Repository konfigurierten Richtlinien.

Anwender:innen von VS Code können den Editor so konfigurieren, dass Lint-Errors automatisch beim Speichern behoben werden.

Dieses Projekt betrifft zu diesem Zeitpunkt ein sehr regionales Anwendungsgebiet. Aus diesem Grund wurde sich dazu entschlossen Commit-Nachrichten und Code-Kommentare in deutscher Sprache zu verfassen, um merkwürdige Übersetzungen deutscher Bürokratiebegriffe zu vermeiden (Bsp. Beratungsunterlage => Discussiondocument?!).

Hosting: Hinweis zum öffentlichen Hosting

Wenn ihr diese Anwendung im Internet hosten möchtet, überprüft bitte vorher, ob alle Daten, die in dieser Anwendung abgegriffen und weiterverteilt werden, auch wirklich 'offen' und nicht durch Copyrights geschützt sind. Zum jetzigen Zeitpunkt ist dieses Projekt noch experimentell und nicht für ein öffentliches Hosting gedacht.

Eingebundene Projekte und Werkzeuge

Ein Dankeschön an dieser Stelle an alle Open-Source Projekte, die als Bibliotheken oder Frameworks Ihren Platz in dieser Anwendung gefunden haben. Ohne diese wertvollen Projekte wäre es nie möglich gewesen, dieses Projekt in solch einer kurzen Zeit auf die Beine zu stellen. Eine genaue Auflistung der verwendeten Projekte findet sich in der package.json unter den beiden Eigenschaften dependencies und devDependencies.

Sonstiges

Öffentliche Datenbestände

Ratsdokumente - Startseite
Ratsdokumente - Suche
Sitzungskalender + Tagesordnungen
Gemeinderat Mitglieder
Gemeinderat politische Zusammensetzung
Gemeinderat Wahldaten Faltblatt
Gemeinderat Wahldaten im Detail

Glossar

Die Ratsdokumente sind gespickt mit Abkürzungen und Bürokratiebegriffen. GLOSSAR.md ist ein Glossar mit entsprechenden Erklärungen.