Coder Social home page Coder Social logo

digitalfabrik / entitlementcard Goto Github PK

View Code? Open in Web Editor NEW
34.0 34.0 3.0 27.08 MB

App for 'Digitale Berechtigungskarten', generally benefit card for volunteers or socially vulnerable groups in Germany. App for Android & iOS + Backend + Administration Web Portal – 100% Open Source.

License: MIT License

Kotlin 32.38% Swift 1.42% Objective-C 0.01% Dart 24.29% Shell 0.36% HTML 0.26% JavaScript 0.36% PLpgSQL 0.39% TypeScript 39.13% CSS 0.04% Java 0.09% Ruby 1.27%
flutter graphql kotlin react

entitlementcard's People

Contributors

briegema avatar deliverino[bot] avatar dependabot[bot] avatar dheid avatar elkei24 avatar f1sh1918 avatar izzysoft avatar maxammann avatar michael-markl avatar paulawi avatar poussinou avatar roanbu avatar sarahsporck avatar seluianova avatar steffenkleinle avatar svenseeberg avatar ztefanie 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

Watchers

 avatar  avatar  avatar  avatar

entitlementcard's Issues

Filter for accepting businesses

As an owner of a EAK, I want to be able to search accepting businesses, so that I can find interesting locations more quickly.

Acceptance Criteria:

  • I can filter by category of accepting business
  • I can search using free text

Create basic structure for the frontend

  • Look for guides that suggests how to structure a flutter app
  • Decide what we use
  • Document the decision here or in the wiki or in a readme whatever...
  • Create the required structure in the frontend project

About screen

As the publisher of our app, I need to be sure that the user can easily find information about our app, at least including the used open source software and their licenses, in order to not getting sued. The About screen should be in german.

Acceptance Criteria:

  • The About screen should show
    • App Version
    • Herausgeber
    • Technische Umsetzung/Programmierung - https://github.com/ehrenamtskarte/ & "Wir"
    • Server Betreiber - Wir bzw Digitalfabrik gGmbH
    • Open Source Library licsenses:
      • Mapbox
      • Flutter
    • License: MIT
    • Haftung, Ausschluss und Disclaimer
    • Datenschutzerklärung

Hint: We probably can achieve this very easily using Flutters showAboutDialog.

Provide way to recover digital EAK

As an EAK owner I want to be able to add my EAK to the app again if I lost my phone or reinstalled the app.

Recovery option for #17

Acceptance Criteria:

Make app environment-aware

The app should be able to run against the deployed backend services as well as local ones, without changes to the code.

Belongs to #53

Connect database

Prepare database for overview of accepting bussiness

Belongs to #10.

  • Add Schema and Setup
  • Wire data loaders with db

iOS deployment still broken

This application or a bundle it contains has the same bundle identifier as this application or another bundle that it contains. Bundle identifiers must be unique.

Set map camera by searching for locations

As a EAK owner, I want to be able to easily get an overview over the accepting businesses in a specific area without having to manually scroll the map there.

Acceptence criteria:

  • user can move map by entering zip code
  • user can move map by entering city names
  • user cam move map by entering accepting business name

Optional:

  • user can move map by entering names of other POIs

Visual representation of the card in the app

As an authorized EAK owner I want to see a visual representation of my EAK in the app. It should contain all data of the physical card.
As a not yet authorized user I want to have an option to scan the QR-code of my EAK.

Acceptance criteria:

  • Status is visible: Currently (not) authorized as EAK owner
  • Link to QR Code Scanner
  • Authorized users can see card details: Name, expiration date, Kommune
  • Can be used for basic authorization in stores for small amounts, e.g. using an animation

Follow-up story could be:
Display unique EAK design for every Landkreis

Initial setup of GraphQL

GraphQL should be initially setup as an interface of the backend and frontend.
At the end of this task, there should be a working communication between backend and frontend via GraphQL.

Information about accepting businesses

As an owner of a EAK, I want to get more detailed information about an accepting business so that I know what discounted products/services I can benefit from and how I can get (to) them.

Acceptance Criteria:

  • I can see contact details and location of the accepting business.
  • I can see what discounts for which products/services are available.
  • I can see to which category the accepting business belongs.

Verify imported Anmeldecodes

As an EAK owner, who received an anmeldecode (QR code), I want to authorize myself in the app to prove my status as EAK owner at accepting businesses.

Acceptance Criteria:

  • Generate a OTP from the anmeldecode before persisting it and verify the card.
  • Use the query fun verifyCardInProject(project: String, card: CardVerificationModel): Boolean
  • Validate that anmeldecode is valid, maybe make a request to the server with a generated hash to check that it actually works
  • Owner name, expiry date, random string and otp secret are saved locally in the app

Overview of accepting businesses in a chosen area by map

As an owner of a EAK, I want to get an overview of all accepting businesses in a chosen local area on a map, so that I know where I can benefit from discounts.

Acceptance criteria:

  • Local area could be chosen by PLZ
  • Local area could be chosen by positioning function of the smartphone
  • Accepting businesses are point out by dots on the map

Technical tasks: #25, #26, #27

Overview of newly added accepting businesses

As an owner of a EAK, I want to get an overview of recently added accepting businesses, so that I can quickly see if there is a new intersting accepting business for me.

Acceptance Criteria:

  • Recently added accepting businesses can be viewed in descending order beginning with the most recent Akzeptanzstelle
  • I can see if the accepting business is new for me (or if I have already seen it)
  • I can see when the accepting business was added
  • I can filter by a given location with a given or fixed radius

Loading physical store details via graphql takes ages

When the frontend tries to get information about an accepting store, the backend sometimes takes forever to answer. When stopping the backend (but not before), the frontend displays the error message as expected and logs ClientException: Failed to connect to http://10.0.2.2:7000: Connection closed before full header was received.

Search for accepting stores

As an (potential) owner of a EAK, I want to be able to search for specific accepting businesses and filter by category.

Acceptance criteria:

  • Can search for accepting stores by entering (parts of) address, name or part of description
  • Can filter the results by category
  • The accepting businesses should be pointed out as rows in a list, because this gives a quicker overview than mere dots on a map.

Optional (for now):

  • suggestion of recent searches
  • setting search radius around device/manually entered location

Accepting business summary on map

As a EAK owner, I want to be able to see the most relevant details about an accepting business without leaving the app.

Accepting criteria:

  • user can see most important details when clicking an accepting business icon
  • when an accepting business is clicked, the map centers it

Set local area of map

Belongs to #10.

Accepting criteria:

  • local area can be set using device position
  • local area can be set using zip code
  • if permission is granted, show device location on map

Show accepting businesses on map.

Part of #10

Acceptance criteria:

  • the app contains a map with dots for the accepting business

Out of scope:

  • fetching the accepting businesses at runtime
  • showing details for the accepting businesses
  • setting the local area

Application for a new EAK

As a volunteer in Bavaria, I want to be able to request a new physical Ehrenamtskarte (EAK) so that I don't need to fill out the tedious PDFs offered by the Landkreis.

Acceptance Criteria:

  • Easy process to provide all information necessary for the application
  • Option to save an incomplete application for later (not necessary)
  • Conformation after application was successfully sent
  • Overview over sent application

Set up continuous deployment for production

As a developer, I want to have changes to the source code automatically be deployed, so that I do not have this by hand on and on.

As we are not in production mode yet and everything on main should have been reviewed, we can safely do so without a separate staging environment for now.

Accepting criteria:

  • all the backend services are automatically updated to match the code that currently is on main
  • both app versions are build in production mode, signed, and can be downloaded (at least as a build artifact)

Even if we do not publish the app yet, we should also try to deploy it automatically already.

Optional:

  • updated android app is pushed to the play store
  • updated iOS app is pushed to the app store
  • web version of the app is deployed

New CI pipeline

  • Frontend
    • lint dart
    • test
    • build android
    • build iOS
    • declare build artifacts
  • Backend
    • test
    • build
    • declare build artifacts

Optional:

  • iOS build only when requested

Setup vector server and PostGIS

Is your feature request related to a problem? Please describe.
We need map markers!

Describe the solution you'd like
A postgis and margin server is created. This should happen using docker-compose for development.
This setup needs to be integrated with our backend. Also a style.json has to be created for the frondend.

Setup Flutter Permissions for iOS and Android

Problem: iOS app instantly crashes because mapbox wants to request location permission but permissions are not properly requested

Temporary fix: Add permission in .plist file

Correct fix should probably be to configure that in with Flutter

Setup a development database and integrate it into the kotlin project

Is your feature request related to a problem? Please describe.
We do not have a DB! Serious issue!

Describe the solution you'd like
I want to create a docker setup with a PostgeSQL database.
The DB will expose its ports.

Describe alternatives you've considered
We could also have a docker container which builds and serves the backend.
This could include auto refreshing

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.