🇪🇺 Vue.js powered voting application. Issues are tracked @ https://git.verdigado.com/NB-Public/kandimat/issues
Go to file
Christoph Lienhard 64e6b861b6 Last not Least: Get party details page from backend
Also
* reorder graphQl queries: Always a query constant + update function
* use id instead of token (initials) to identify person in url
* Remove any party logo related sections since currently not needed
* Move "options" from data closer to actual code since it doesn't really belong to data
  (data may be deleted in the future, anyway)
* add nodeId in gql queries wherever possible to avoid problems with the apollo cache
* add note about graphql schema import to README.md
2020-08-22 21:14:12 +02:00
bin more cleanup 2020-06-13 14:50:09 +02:00
public more cleanup 2020-06-13 14:50:09 +02:00
resources Clean-up data structure 2020-05-03 12:32:35 +02:00
src Last not Least: Get party details page from backend 2020-08-22 21:14:12 +02:00
tests/unit 🔧 Migrating to Vue CLI 3 2019-04-08 10:16:16 +02:00
.browserslistrc 🔧 Migrating to Vue CLI 3 2019-04-08 10:16:16 +02:00
.dockerignore Make user app available in docker container 2020-05-03 12:30:15 +02:00
.editorconfig Initial commit 2017-08-09 15:15:42 +02:00
.eslintrc.js Fix calculation of scores 2020-06-27 10:32:46 +02:00
.gitignore Last not Least: Get party details page from backend 2020-08-22 21:14:12 +02:00
.graphqlconfig Add vue-apollo to user-app 2020-06-14 03:00:19 +02:00
.snyk fix: .snyk, package.json & package-lock.json to reduce vulnerabilities 2019-07-04 11:10:11 +00:00
LICENSE Create LICENSE 2020-04-26 11:46:25 +02:00
README.md Last not Least: Get party details page from backend 2020-08-22 21:14:12 +02:00
babel.config.js 🔧 Migrating to Vue CLI 3 2019-04-08 10:16:16 +02:00
dev.Dockerfile Make user app available in docker container 2020-05-03 12:30:15 +02:00
jest.config.js Fix calculation of scores 2020-06-27 10:32:46 +02:00
package-lock.json Add vue-apollo to user-app 2020-06-14 03:00:19 +02:00
package.json Use backend on theses page 2020-06-14 03:33:39 +02:00
postcss.config.js 🔧 Migrating to Vue CLI 3 2019-04-08 10:16:16 +02:00

README.md

CANDYMAT

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

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.