🇪🇺 Vue.js powered voting application. Issues are tracked @ https://git.verdigado.com/NB-Public/kandimat/issues
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

1.9 KiB

KANDIMAT

A Vue.js powered, progressive web voting application for upcoming internal elections of Bündnis90/Die Grünen. Kandimat is hosted as a service of netzbegruenung e.V.

Issues

..are tracked @ https://git.netzbegruenung.de/NB-Public/kandimat/issues

Calculation Model

The calculation model for voting has been defined by the German Federal Agency for Civic Education (Bundeszentrale für politische Bildung). A good overview can be found in this PDF: resources/Rechenmodell des Wahl-O-Mat.pdf.

Development

This is a Vue.js progressive web application, developed with @vue/cli.

Command Description
npm install Installs dependencies
npm run serve Serve with hot reload at localhost:8080
npm run build Build for production with minification
npm run test:unit Run all unit tests
npm run lint Runs standard over all .js and .vue files and fixes problems
npm run svg Creates all SVG files used in the application
npm run admin Creates config.yml for Netlify CMS admin UI

Working with GraphQl backend

As a connector to the backend, apollo-vue is used. Queries are written as gql strings. To have schema hints etc, there is a .graphqlconfig file which should help dedicated IDE plugins to infer the GraphQl schema directly from the (running) backend (see main project for more information on how a "running backend" is achieved). For example, the Intellij JS GraphQL plugin will automatically ask to download the schema definition.

Notes

  • To keep the diff to the original euromat source as small as possible certain variables follow a naming convention which may seem weird at first. These include
    • party (better description would be person)

Props

This user app is based on source code of EUROMAT targeted at european elections.