44 lines
1.9 KiB
Markdown
44 lines
1.9 KiB
Markdown
# 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`](resources/Rechenmodell%20des%20Wahl-O-Mat.pdf).
|
|
|
|
## ⌨️ Development
|
|
|
|
This is a Vue.js progressive web application, developed with [`@vue/cli`](https://github.com/vuejs/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.
|