Giter Site home page Giter Site logo

demokratie-live / democracy-development Goto Github PK

View Code? Open in Web Editor NEW
60.0 10.0 9.0 54.11 MB

A concept to vote on relevant Topics of Politics & Decision-Making specifically designed for Germany

Home Page: https://www.democracy-deutschland.de/

License: Apache License 2.0

TypeScript 87.05% Dockerfile 1.11% JavaScript 10.71% HTML 0.73% CSS 0.39%
democracy evoting voting voting-application democracy-deutschland bundestag deutschland germany votingapp

democracy-development's Introduction

Screenshot

Demokratie-App

Build Status

Webseite: https://www.democracy-deutschland.de/

Crowdfinanzierung: Startnext

Demo: https://www.democracy-deutschland.de/#prototyp

Funktion

Es soll eine App und Desktop-Anwendung entwickelt werden, die es ermöglicht über Belange des Bundestages und lokaler Gruppen abstimmen zu können. Jeder Mensch soll dabei genau eine Stimme haben. Roboter sollen an der Abstimmung nicht teilnehmen können.

Nutzen

Es wird ein Stimmungsbild über politische Entscheidungen erstellt, das als Grundlage für die Entscheidung der Verantwortungsträger dienen kann. Die Nutzer können Druck auf die Entscheidungsträger ausüben, wenn diese sich nicht an die Entscheidung der Mehrheit halten und eine Erklärung für sein Verhalten einfordern.

Stimmung wird messbar, zu jeder Zeit, zu jedem Thema, dass genug Teilnehmer hat.

Anforderungen

  • Sicherheit (Anonymität, Beweisbarkeit, Fälschungssicherheit)
  • Useability & geringe Hürden zur Teilnahme.

Es sollte der Ansatz Security-by-Design verfolgt werden, um den Nutzer glaubhaft zu versichern, dass er keine Nachteile durch die Nutzung der Applikation hat. Absolute Sicherheit ist leider nie möglich und bedarf erheblichen Arbeitsaufwand. Hier muss zwischen Aufwand, Sicherheit und Usability abgewägt werden. Es sollte ein Modell der schrittweisen Einführung von Sicherheitsmechanismen verfolgt werden, um die Realisierung zu ermöglichen - der Nutzer sollte über die bereits erfüllten und unerfüllten Sicherheitsziele zu jeder Zeit informiert werden.

Sicherheitsziele:

  • Anonym
  • Beweisbares Ergebniss
  • (partielle) Dezentralität

Implementierung - Ziele

Um die Realisierung zu gewährleisten muss das Projekt in Schritten implemntiert werden.

app

Roadmap - Versionen

DEMOCRACY Deutschland wurde über Startnext für einen Prototyp finanziert. Selbstverständlich planen wir darüber hinaus.

Daher haben wir eine Roadmap entwickelt, was wir wann erreichen möchten: Roadmap

Zentrale Architektur Fragen:

v1_architektur

Entwicklung & Werkzeuge

MeisterTask

Analysetool Dateistruktur

Analysetool Commits

Malwerkzeug zur Planung

Open Source

Wir entwickeln Open Source unter der Apache 2.0 Lizenz

Welche Architektur?

Für den Client hier und hier nachzulesen.

Für den Server hier und hier nachzulesen.

Für den bundestag.io (Bundestags-API) hier und hier nachzulesen

Running the Dev Environment

Run the following:

git clone [email protected]:demokratie-live/democracy-development.git
cd democracy-development

Without docker

You need to have a MongoDB running as well as NodeJS installed on your system.

If you need further configuration, you can do:

cp .env.example .env

Change .env if necessary.

Once this is set up, run the following:

pnpm install
pnpm run dev

Now visit localhost:3100 and you should see the GraphQL playground.

With docker

Run:

docker-compose up

Now visit localhost:3100 and you should see the GraphQL playground.

Kuberneetes

Preparation

install kustomize brew install kustomize

Generate Kubernetes configs

run pnpm build:k8s:STAGE replace Stage with alpha|internal|local|prod

Monitoring

https://www.youtube.com/watch?v=h_GGd7HfKQ8

build docker image of a service

Example for the qr-code-handler service

SERVICE=qr-code-handler
SERVICE_PATH=services/$SERVICE

docker buildx build \
    --build-arg SERVICE=$SERVICE \
    --build-arg SERVICE_PATH=$SERVICE_PATH \
    --build-arg NODE_VERSION=$(cat .node-version | tr -d 'v') \
    -f infra/Dockerfile.service \
    -t $SERVICE \
    .

Contributing

Anyone and everyone is welcome to contribute. Start by checking out the list of open issues.

License

Copyright © 2017-present DEMOCRACY Deutschland e.V.. This source code is licensed under the Apache 2.0 license found in the LICENSE file.


Made with ♥ by Team DEMOCRACY (democracy-deutschland.de), startnext contributors and contributors

democracy-development's People

Contributors

actions-user avatar appinteractive avatar dependabot[bot] avatar mananruck avatar ogbeche77 avatar ogerly avatar pefi-78 avatar roschaefer avatar thigg avatar ulfgebhardt avatar visionmakery avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

democracy-development's Issues

Deploy only for one Platform

Deploy only one platform by Tag.
Examples:
0.7.1-alpha+client (both)
0.7.1-alpha+client.ios (only iOS)
0.7.1-alpha+client.android (only Android)
0.6.8-alpha+client.2.ios (only iOS)
0.6.8-alpha+client.ios.2 (only iOS)

🐛 [b.io] Ergebnisdarstellung von Beschlussempfehlungsabstimmungen

Bugreport

Bei bundestag.io scheint es einige Probleme mit dem Umwandeln von Beschlussempfehlungen in Ergebnisse zu geben, vgl. https://cdn.discordapp.com/attachments/840284548071292949/849985811231539241/Bildschirmfoto_2021-06-03_um_14.17.17.png. Uns ist das Problem in jüngerer Vergangenheit mehrfach reportet worden. Für den angehefteten Fall habe ich es überprüft. Es ist richtig (als Beschlussempfehlung) eingetragen und hätte auf dieser Basis umgedreht werden müssen.

fachlicher Hintergrund

Die (Nutzer-) Abstimmung in der App findet immer über den Antrag an sich (und nicht über die Beschlussempfehlung) statt. Nun kann es sein, dass im Plenarsaal des Bundestages nicht über den Antrag/das Gesetz abgestimmt wird, sondern über die dazugehörige Beschlussempfehlung. Dabei sind 2 Fälle denkbar:

Fall 01: Der Ausschuss empfiehlt in seiner Beschlussempfehlung die Ablehnung des Antrags/Gesetzes
Fall 02: Der Ausschuss empfiehlt in seiner Beschlussempfehlung die Annahme des Antrags/Gesetzes

Im ersteren Fall 01 ist dann eine Zustimmung zur Beschlussempfehlung eine Ablehnung des Antrags, d.h. invers zu zählen
Im zweiten Fall 02 ist die Zustimmung zur Beschlussempfehlung auch eine Zustimmung zum Antrag, d.h. gleichlautend.

Wir haben eigentlich einen Service implementiert, der die ggfs. notwendigen Umrechnungen vornimmt, wenn Fall 01 vorliegt. Den Text des Plenarsaalprotokolls geben wir überdies im Original wieder, um dem Nutzer ein Gefühl dafür zu geben, in welcher Datenform wir die nicht-namentlichen Abstimmungen erhalten und darauf basierend in ein maschinenlesbares Ergebnis überführen. Auf diese Weise kann auch eine Kontrolle stattfinden, ob wir Sie korrekt übertragen haben – hier hat uns in der Vergangenheit schon einiges an Nutzerfeedback erreicht, falls uns ein Dreher unterlaufen ist.

🐛 [b.io] fehlende XML-Daten

@elisamenne hat beim Eintragen der Ergebnisse festgestellt, dass unsere Software bei ca. 60% aller Entschlüsse keine XML-Daten erfasst, woraus sie die Ergebnisse eintragen kann, vgl.
Bildschirmfoto 2021-07-20 um 10 19 09

Als Work-Around kennt sie den Weg über die Dokumente.
Vermutlich ist die DIP-Rest-API inkompatibel zu den XML's Plenarsaalprotokollen.

Aber bitte erst nach der 1.4 darum kümmern!

🐛[b.io] kein Ergebnis bei Namentlicher Abstimmung

Es scheint bei Namentlichen Abstimmungen noch zu unregelmäßigen Problemen zu kommen:

Bundeswehreinsatz zur Evakuierung aus Afghanistan (25. August 2021)

https://admin.bundestag.io/procedure/281130 bekommt kein Ergebnis, obwohl Ergebnis gemäß https://www.bundestag.de/parlament/plenum/abstimmung/abstimmung?id=753 vorliegt.

Epidemische Lage von nationaler Tragweite (25. August 2021)

Bei https://admin.bundestag.io/procedure/281340 & https://www.bundestag.de/parlament/plenum/abstimmung/abstimmung?id=754 hat es scheinbar geklappt.

🐛[b.io] fälschliche Umdrehung bei 244877

Obwohl das Ergebnis gemäß Beschlusstext unter https://admin.bundestag.io/procedure/244877 korrekt eingetragen ist, kommt es zu einer fälschlichen Umdrehung, vgl. https://democracy-app.de/gesetzgebung/244877/dreiundsechzigstes-gesetz-zur-aenderung-des-grundgesetzes-gesetz-zur-begrenzung-der-amtszeit-des-bundeskanzlers.

Kann es sein, dass da ein Beschlussemfehlungsmarker im Datensatz ist, der die Eintragung, obwohl nicht auf Beschlussempfehlung getoggelt, umdreht?

Html Tags im Abstract

Beim import über die neue Schnittstelle werden HTML Tags mit importiert. (Siehe Inhalt)
Diese sollten wir vorher rausfiltern.

IMG_E6039B16D852-1

Fix procedures data

Aktuell haben einig Prozeduren nicht den genauen status.
Beispielsweise haben die letzten Prozeduren alle keinen aktuellen "Aktueller Stand".

Add Checklist

add checklist for preMerging

  • submodules in master

New API Key for DIP API

The old key is used here:
https://github.com/demokratie-live/democracy-development/blob/master/bundestag.io/dip/.env
https://github.com/demokratie-live/democracy-development/blob/master/docker-compose.yml#L54
https://github.com/demokratie-live/democracy-development/blob/master/bundestag.io/dip/src/server.spec.ts#L21
https://github.com/demokratie-live/democracy-development/blob/master/infra/kustomize/overlays/local/bio-dip.env

Zur Nutzung ist ein API-Key notwendig. Der zunächst bis Ende Mai 2023 gültige API-Key lautet:
GmEPb1B.bfqJLIhcGAsH9fTJevTglhFpCoZyAAAdhp

Auf Anfrage können Sie auch einen eigenen API Key erhalten, der zeitlich unbefristet ist.

Bitte stellen Sie eine diesbezügliche Anfrage per E-Mail an: [email protected]

https://dip.bundestag.de/%C3%BCber-dip/hilfe/api#content

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.