Code Monkey home page Code Monkey logo

democracy-client's Introduction

DEMOCRACY-Client  

Build Status

The Client for the DEMOCRACY App. This includes iOS and Android generated from the same Codebase.

Systemmap

Systemmap

Tech Stack

More Dependecies

Projekt Struktur

Prerequisites

  • Node.js
  • Android Studio or Android SDK follow the installation Instructions here
  • [optional][windows] install windows-build-tools for node
    npm install --global --production windows-build-tools
    (installs python) (requireds administrator rights)
    

Contribute

Note- It is necessary to copy the .env.example to .env to start the local development.

Install Dependencies

git clone https://github.com/demokratie-live/democracy-client
cd democracy-client
yarn install
yarn pods (macOS only)

Setup React-Native Environment

ReactNative Setup

Android Workaround (currently handled by postinstall script) facebook/react-native#25822

open node_modules/@react-native-community/cli-platform-android/native_modules.gradle
replace:
def command = "node ./node_modules/react-native/cli.js config"
with
def command = "node ../../node_modules/react-native/cli.js config"

Start Developing UI

Android

cd packages/mobile-ui
yarn android
(if that gets stuck use two terminals. One for `yarn start` and one for `yarn android`)
(also make sure to use the correct java8 version: `export JAVA_HOME=/usr/lib/jvm/java-8-openjdk/`)
(also make sure to use the correct android sdk root: `export ANDROID_SDK_ROOT=/home/{username}/Android/Sdk`)
(ignore metro bundler errors)
CMD+M and Change Bundle Location to 127.0.0.1:8088
(error should be solved)

Start virtual Android Device:

open Android Studio
create Device with API 29 or higher(?)
start device

Connect real Android Device:

adb start-server
enable usb debugging on the device
authorize host on device
verify with `adb devices`

iOS

cd packages/mobile-ui
yarn ios
(ignore metro bundler errors)
CMD+M and Configure Bundler Location to Host: 127.0.0.1 & Port: 8088
(error should be solved)

Start Developing App

Android

cd packages/mobile-app
yarn android

iOS

cd packages/mobile-app
cd ios
pod install
cd ..
yarn ios

Testing

Unit tests

cd packages/mobile-app
yarn test

or with watch mode

cd packages/mobile-app
yarn test:watch

e2e Detox iOS

cd packages/mobile-app
yarn detox build -c ios.sim.debug
yarn detox test -c ios.sim.debug

e2e Detox Android

cd packages/mobile-app
yarn detox build -c android.emu.internal.debug
yarn start
yarn detox test -c android.emu.internal.debug

Deployment

Deployment is done with Travis CI

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.

Maintainers


Manuel Ruck

Maintainer

Ulf Gebhardt

Maintainer

Toolset

BrowserStack is supporting DEMOCRACY, allowing us to use their service. Thank you for supporting the open source community! ❤️


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

democracy-client's People

Contributors

guzzler avatar kuestenkeks avatar lednerb avatar mananruck avatar parish09 avatar patpondis avatar rakannimer avatar roschaefer 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  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  avatar  avatar  avatar

democracy-client's Issues

[Bug] [Android] Back Button closes App

Using the back button on various screens results in closing(minimizing) the app.

  • Support Screen (Should navigate back to List Screen)
  • Security Screen (Should navigate back to List Screen)
  • (?) List Screen Tabs (Should navigate one filter, on Filter "Abstimmungen" it should close)
  • Tutorial Screen (Navigates back to list - should navigate back 1 image, on first image back to list)

iOS: Segmented Control bleibt bei Listen-Swipe stehen

Description:
Das Segmented Control der iOS-Version aktualisiert sich nicht (beim Swipe)

Faulty Behaviour:
Navigiert man per Swipe zwischen den Listen "Abstimmung", "Vorbereitung" und "What's hot?" bleibt die Segmented-Control-Anzeige dennoch bei der letzten "geklickten" Liste stehen.
bildschirmfoto 2018-03-01 um 13 39 19

Expected Behaviour:
Die Anzeige, welches Segment gerade aktiv ist, verändert sich auch beim Swipen.

App-Version: 0.0.10 (834)

Server unreachable -> App unstartable

If there is not Server connection possible the client is stuck in loading Screen.

Faulty Behaviour:

If there is not Server connection possible the client is stuck in loading Screen. At least an Error would be great - even better would be to start the app and show a warning

App-Version: 0.2.0

[android] scroll bug

Description:
Android hat einen scrollfehler, dass nicht nach ganz unten geschellt werden kann.

Faulty Behaviour:
Android scrollt nicht nach ganz unten

Expected Behaviour:
Sollte nach ganz unten scrollen

Steps to reproduce:

  1. app starten
  2. liste nach unten scrollen

depends on: wix/react-native-navigation/pull/2261

DetailScreen: Inhalt-Text

Description:
Inhalt auf Detailseite vergrößern

Faulty Behaviour:
Der text ist zu klein und schlecht lesbar

ToDo:
Text größer darstellen.
sollte nicht kleiner als 13 und größer als 17 sein.

bildschirmfoto 2018-02-21 um 12 31 01

SplashScreen: Logo

Description:
Das DEMOCRACY-Logo inklusive Bubble verkleinern

Faulty Behaviour:
Das DEMOCRACY-Logo inklusive Bubble ist so groß und wirkt insofern unästhetisch
img_1961

Expected Behaviour:
@ulfgebhardt @ReggaePanda Logo verkleinern gemäß der Vorlage in Zeplin

Commit: A12B34E

[Travis] iOS Build Fails

Description:

[13:23:27]: Could not set changelog: <html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/>
<title>Error 409 </title>
</head>
<body>
<h2>HTTP ERROR: 409</h2>
<p>Problem accessing /v2/providers/118962308/apps/1341311162/builds/29020418. Reason:
<pre>    ERROR-1: What to Test can't contain the following characters: ?.</pre></p>
<hr /><i><small>Powered by Jetty://</small></i>
</body>
</html>
+------+------------------------+-------------+
|              fastlane summary               |
+------+------------------------+-------------+
| Step | Action                 | Time (in s) |
+------+------------------------+-------------+
| 1    | default_platform       | 0           |
| 2    | increment_build_number | 3           |
| 3    | automatic_code_signing | 0           |
| 4    | setup_travis           | 0           |
| 5    | sync_code_signing      | 3           |
| 6    | build_app              | 622         |
| 💥   | upload_to_testflight   | 445         |
+------+------------------------+-------------+
[13:23:27]: fastlane finished with errors
[!] Could not set changelog: <html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/>
<title>Error 409 </title>
</head>
<body>
<h2>HTTP ERROR: 409</h2>
<p>Problem accessing /v2/providers/118962308/apps/1341311162/builds/29020418. Reason:
<pre>    ERROR-1: What to Test can't contain the following characters: ?.</pre></p>
<hr /><i><small>Powered by Jetty://</small></i>
</body>
</html>
The command "DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS="-t DAV" bundle exec fastlane ios beta" exited with 1.

App-Version: 0.2.x

SupportScreen: Textfeld

Description:
Das Textfeld im SupportScreen hat eine unpassende Seitenbegrenzung

Faulty Behaviour:
Das Textfeld im SupportScreen ist in der Breite zu eng begrenzt, sodass der Text nicht richtig dargestellt wird; dadurch verlängert sich der Screen unnötigerweise
bildschirmfoto 2018-03-13 um 09 57 12

Expected Behaviour:
Die Textfeldbreite erhöhen, sodass der Inhalt auf einem Screen dargestellt werden kann.

App-Version: 0.0.11 (999)

[Vorschläge] Vote Buttons

Ich mag die Daumen nicht besonders, finde aber das Gleichzeichen
bei dem anderen Vorschlag irritierend.
MATH Bar mit Plus und Minus wäre eindeutiger, aber (=) für Enthaltung
ist nicht verständlich, besser wäre die "0" (Null) für Enthaltung
Damen hoch, Daumen runter - das passt; Bei neutraler Position: eher eine Faust,
auf jeden Fall etwas Anderes, nicht den Daumen nach Links
(falls doch, dann zumindest Daumen nach Rechts)
Daumen wär auch ok nur unentschieden ist komisch
zu den Bars in Frage 6: Wie wäre es mit Pfeilen für ja (hoch), nein (runter) und
einem Balken für Enthaltung? Die Daumen sind so.... Facebook.

Idee: Enthaltung Kreis

Idee von Greg: Vote Icons ausfüllen, nicht nur linie

Installation issue: Missing configuration scripts?

Description:

I have difficulties with the installation, see below 👇

Faulty Behaviour:

➜  democracy-client git:(master) yarn install
yarn install v1.3.2
[1/4] Resolving packages...
[2/4] Fetching packages...
info There appears to be trouble with your network connection. Retrying...
[#########################################################################################################################################] 1545/1546%➜  democracy-client git:(master) gst
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
➜  democracy-client git:(master) yarn start:web
yarn run v1.3.2
$ node ./scripts/start.web.js
module.js:487
    throw err;
    ^
Error: Cannot find module 'react-scripts/config/webpack.config.dev'
    at Function.Module._resolveFilename (module.js:485:15)
    at Function.Module._load (module.js:437:25)
    at Module.require (module.js:513:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/home/robert/Development/React/democracy-client/scripts/start.web.js:4:27)
    at Module._compile (module.js:569:30)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:503:32)
    at tryModuleLoad (module.js:466:12)
    at Function.Module._load (module.js:458:3)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Expected Behaviour:

I guess a web server should start?

Steps to reproduce:

    1. clone repo
    1. install dependencies
    1. run yarn web:start
    1. boom 💥

Commit: A12B34E

Details: Status anzeigen

Description:
Status auf Details Screen anzeigen
Um den aktuellen status einer Gesetzgebung anzuzeigen. Sollte langfristig durch eine Darstellung des Gesetzesverlaufes ersetzt werden.

Anzuzeigen wäre das unter den Details unter der Vorgangs-Id

[Vorschläge][Detailscreen] Öffnen schließen der Tabs - Symbole

Das übersichtlichste wäre es meiner meinung nach einfach nur „öffnen“ und „schliessen“ zu verwenden,
als schaltfläche ersichtlich durch blaue schrift, mausover unterstrich oder schaltfläche dafür aber ohne
pfeil damit sich kein wiederspruch.

Danke für das Feedback @user Ich denke wir haben nicht auf allen Geräten genug Platz,
um öffnen/schließen als Wort abzubilden, wir werden das aber prüfen.
Und ein X zum Schließen?
Die Auf und Zuklapp Frage war ein kalter, sorry. Erstens hab ich's kaum verstanden und musste dreimal
lesen. Zweitens hat mich der Strich zwischen dem Titel und den Dokumenten so irritiert, dass ich gar
nicht auf die Idee kam, dass das schon auf ist. Drittens war die Variante, die ich richtig gut gefunden
hätte, noch gar nicht dabei. Zwischen lauter halbguten Sachen zu entscheiden, ist unbefriedigend.
Das müsst ihr noch besser machen. Ansonsten: ich freu mich. Tolles Projekt!
Die Frage mit dem zu/aufklappen hätte noch ein "keine Lösung ist intuitiv" haben sollen.
Vorschlag: Zum Öffnen Pfeil nach unten; geöffnete Ansichten bekommen gar kein Symbol
(oder ein anderes wie einen Kreis(ring)); geschlossen wird via Klick auf einen leeren Bereich
oder beim Öffnen eines anderen Tab.
Bei der frage auf /zu finde icv die gewählten symbole missverständlich: Auf wäre für mich begrifflich
eher ein winkel dessen spitze nach oben zeigt Bei „öffnen“ würde ich dagegen eher einen winkel mit
spitze nach unten erwarten (bewegungsrichtung von dropdown menü) Analog wäre dazu dann
„schliessen“ mit winkel dessen spitze hoch zeigt Frage: Symbole / winkel weglassen und nur
öffnen/schliessen als schaltfläche verwenden?

Search does not match substrings

Description:

Search could be improved, matching substrings of the search term.

Faulty Behaviour:

A search for "Cannab" yields no result

Expected Behaviour:

A search for "Cannab" should also match "Cannabis"

Steps to reproduce:

    1. Press the search icon on the upper right
    1. Enter "Cannab"

App-Version: 0.3.4 (TestFlight)
Device: iPhone 6S / iOS 11

[ListScreen] Double Tab -> Double Navigation

Description:

The App lags if the Data for the Detailview is not present.

Expected Behaviour:

Network and UI should be completly seperated - use state variables?

Steps to reproduce:

    1. Open App
    1. Click on ListElement
    1. Feel the Lag
  • (3.5. Klick multiple Items in that time to see distorting behaviour)
    1. ...
    1. Profit

App-Version: 0.2.x

DetailScreen: Platzhalter Daten mit echten Daten ersetzen

Description:
Auf dem Detailscreen die Platzhalter Daten mit echten Daten ersetzen

Faulty Behaviour:
Es werden aktuell Daten aus einer Dummy-JSON Datei gezogen

Expected Behaviour:
Daten des Gesetzes über GraphQL ziehen und anzeigen

TutorialScreen: Willkommen in der Beta

Description:
Die Elemente des 1. Tutorial-Screen sind zu eng beieinander

Faulty Behaviour:
Der Abstand zwischen der DEMOCRACY-Bubble zum Titel "Willkommen in der Beta" ist zu eng.
Der Abstand zwischen dem Untertitel "Alles über die..." zum Handy-Bild ist zu eng.

tutorial-screen1

Expected Behaviour:
Titel "Willkommen in der Beta" und Untertitel "Alles über die..." im Vergleich zur Bubble 10Pkt nach unten verschieben.

Das-Handy im Vergleich zum Titel "Willkommen in der Beta" und Untertitel "Alles über die..." 20Pkt nach unten schieben. Dafür möglicherweise das Handy so tief positionieren, wie bei den folgenden Screens, vgl. Anhang

tutorial-screen2

App-Version: 0.2.0 (1078)
Handy-Version iPhone SE

DetailScreen: Inhalt/Sachgebiet nicht bündig

Description:
Inhalt(stext)/Sachgebiet(stext) auf Detailseite linksbündig zum Gesetzestitel/zu den Schlagwörtern ausrichten

Faulty Behaviour:
Die Textelemente sind zu weit links

Expected Behaviour:
@ReggaePanda Text(e) bündig ausrichten

1

Commit: A12B34E

TypeError: Alert is undefined

Description:

When I try to vote on a poll, i.e. click on 👍 👎 or 🔵 , I see an error.

Faulty Behaviour:

selection_166

Expected Behaviour:

I should see "Du hast abgestimmt".

Steps to reproduce:

    1. yarn start:web
    1. Open http://localhost:3000/
    1. Click on "Gesetz zur effektiveren und praxistauglicheren Ausgestaltung des Strafverfahrens"
    1. Click on a button below
    1. Enjoy TypeError: __WEBPACK_IMPORTED_MODULE_3_react_native__.Alert is undefined

Commit: A12B34E

Details Seite springt

Description:
Details Seite springt beim öffnen

Expected Behaviour:
Sollte nicht springen

[Android] Refresh der Detailseite - Ladekreis verschwindet nicht

Description:

Refresh der Detailseite - Ladekreis verschwindet nicht

  1. Go to Details
  2. Pull down Page
  3. Refresh Symbol appears
  4. ... later
  5. Refresh Symbol still there
  6. ... much later
  7. Refresh Symbol still there

Server Connection is ok - no error

On Android

Das war wohl ein Netzwerkfehler meines WLans, resultiert in einem Fehler und der Timeout sind 5min.

TutorialScreen 2-6

Description:
Die Text-Elemente des 2.-6. Tutorial-Screen skalieren nicht optimal.
Die Handys sind demgemäß in unterschiedlicher Höhe dargestellt.

Faulty Behaviour:
Beim 2. und 6. Tutorialscreen ist der Untertitel 3-zeilig. Beim 3.,4.,5. Screen ist er 2-zeilig und das Handy rückt dementsprechend hoch.
2-6

Expected Behaviour:

Eine einheitliche Handy-Höhe. Vorschlag: Handy-Höhe von Screen 2. bzw. 6.
Einheitlich 2-zeilige Untertitel, z.B. durch Silbentrennung (2. Screen) oder Abkürzungen ("&" anstatt "und" beim 6.).
Untertitel (in der Höhe) zentriert zwischen Titel und Handy anzeigen.

App-Version: 0.2.0 (1078)
Handy-Version iPhone Se

Updating DetailScreen does not update ListScreen

Description:

Updating DetailScreen does not update ListScreen

Faulty Behaviour:

Updating DetailScreen does not update ListScreen

Expected Behaviour:

Updating DetailScreen updates ListScreen

Show Bundestag Result for Votes which are not voted on by name

Description:

Show Bundestag Result for Votes which are not by voted on by name

Faulty Behaviour:

No Result from Bundestag for those votes which are not done by name

Expected Behaviour:

Show Bundestag overall decision

  • Green Circle
  • Red Circle

based on Tagesordnung?

image

App-Version: 0.2.x

ListScreen: Burger und Lupe

Description:
Burger (links) & Lupe (rechts) bündig zum Segmented Control ausrichten

Faulty Behaviour:
Die Elemente sind zu weit links bzw. rechts

Expected Behaviour:
@ReggaePanda linkes Burger-Ende links am Segmented Control ausgerichtet; rechtes Lupen-Ende rechts am Segmented Control ausgerichtet
2

Commit: A12B34E

DetailScreen: inklusives Dropdown

Description:
"Details" und "Dokumente" im Detailsscreen gleichzeitig aufgeklappt haben

Faulty Behaviour:
Aktuell besteht ein exklusives Dropdown: Entweder können die Details (a) aufgeklappt sein oder die Dokumente (b). Mit dem Aufklappen von (a) klappt sich (b) automatisch zu und andersherum

Expected Behaviour:
@ReggaePanda (a) und (b) können gleichzeitig aufgeklappt sein; (a) und (b) können jeweils individuell auf- bzw. zugeklappt werden
4

Commit: A12B34E

Gesetzesverlauf designen

Gesetzesverlauf designen

Visuelle Aufbereitung der Stadien eines Gesetzes

  • Vergangene Zustände

  • Aktuellen hervorgehoben

  • Start- und End- Punkte analysieren (falls kein Star-/Endpunkt anzeigen)

Times:

  • Dev: 2d
  • Design/Orga: 1d

🕷 [Android] DetailScreen - Title not Centered

🕷 [Android] DetailScreen - Title not Centered

Bug

The Title "Abstimmung" is not centered in the Top Menu-Bar.

This is also the case on the ListScreen, but there it does not look that faulty.

screenshot_20180306-204324

Expected

Center all Titles

Detail Screen Result-Circle overlapps other Cards & Circle to wide

Detail Screen Result-Circle overlapps other Cards & Circle to wide

Faulty Behaviour:

screenshot_20180321-110911
image
bildschirmfoto_2018-03-21_um_11 11 37

The circle should always fit to the devices width (with normal space like the rest of the page)

Steps to reproduce:

    1. Vote with Result-Circle
    1. Close Details Tab
    1. Circle Overlapps other Tabs
    1. ...
    1. Profit

App-Version: [0.2.0]

Pull request Checklist

Wir sollten für Pull requests in das Template eine Checkliste anfügen, wo dinge aufgelistet sind, welche vor einem merge abgeschlossen werden müssen.

  • Changelog anpassen
  • Version ändern
  • Environment Variablen für Build anpassen (wenn nötig)

z.B.

  • Version
  • Changelog
  • BuildEnv Variables

Burger Menu: blaues Transparent zu nah an LISTEN-Überschrift

Description:
Der Abstand des hellblauen, halbtransparenten Anzeigers inklusive des Objekts (Kuppel-Icon + Bezeichnung: Bundestag) zur Überschrift LISTEN ist zu vergrößern

Faulty Behaviour:
Der Abstand ist zu klein
img_1956

Expected Behaviour:
@ReggaePanda Abstand um 5-10Px vergrößern

Commit: A12B34E

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.