🇪🇺 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.
 
 
 
 
 
Willi Junga a90ef4f564 Merge pull request 'Update several: Euromat occurences, URL updates and FAQ' (#10) from willi-euromat into main 5 months ago
bin Update various: removed euromat occurences, changed Meta URL 5 months ago
public Update various: removed euromat occurences, changed Meta URL 5 months ago
resources Clean-up data structure 2 years ago
src Update various: removed euromat occurences, changed Meta URL 5 months ago
tests/unit 🔧 Migrating to Vue CLI 3 3 years ago
.browserslistrc 🔧 Migrating to Vue CLI 3 3 years ago
.dockerignore Make user app available in docker container 2 years ago
.editorconfig Initial commit 5 years ago
.eslintrc.js Fix calculation of scores 2 years ago
.gitignore Last not Least: Get party details page from backend 2 years ago
.graphqlconfig Add vue-apollo to user-app 2 years ago
.snyk fix: .snyk, package.json & package-lock.json to reduce vulnerabilities 3 years ago
LICENSE Create LICENSE 2 years ago
README.md Update README.md: added Issue note 5 months ago
babel.config.js 🔧 Migrating to Vue CLI 3 3 years ago
dev.Dockerfile Make user app available in docker container 2 years ago
jest.config.js Fix calculation of scores 2 years ago
package-lock.json Rename candymat -> kandimat everywhere 5 months ago
package.json Rename candymat -> kandimat everywhere 5 months ago
postcss.config.js 🔧 Migrating to Vue CLI 3 3 years ago

README.md

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.