128 lines
4.4 KiB
Markdown
128 lines
4.4 KiB
Markdown
# ingang
|
|
|
|
This is a piece of middleware intended to help manage invites for [Helios](https://heliosvoting.org/),
|
|
the two systems we use in tandem for holding meetings where members can vote.
|
|
Its web interface is hosted at
|
|
[https://vergadering.bij1.org/ingang/rooms/](https://vergadering.bij1.org/ingang/rooms/).
|
|
|
|
## requirements
|
|
- [Ruby](https://www.ruby-lang.org/)
|
|
- [Rake](https://ruby.github.io/rake/)
|
|
- [Bundler](https://bundler.io/)
|
|
|
|
## dependencies
|
|
|
|
- [rvm](https://rvm.io/)
|
|
|
|
## usage
|
|
|
|
```bash
|
|
# install ruby version specified in Gemfile
|
|
rvm use "ruby-2.7.5"
|
|
# create a wrapper for this ruby
|
|
PUMA=`gem wrappers show pumactl`
|
|
|
|
cp config/application.yml.bck config/application.yml.bck
|
|
# edit the above file to enter proper values
|
|
./bin/bundle config set --local path 'vendor'
|
|
./bin/bundle update
|
|
./bin/bundle install
|
|
./bin/bundle binstubs --all
|
|
./bin/rails app:update:bin
|
|
./bin/rails credentials:edit
|
|
# either restore existing data
|
|
cp old/config/master.key ./config/master.key
|
|
cp old/db/production.sqlite3 ./db/production.sqlite3
|
|
# or scaffold database
|
|
./bin/rails db:migrate # RAILS_ENV=test
|
|
# handle static assets
|
|
sudo apt-get update && sudo apt-get install yarn
|
|
RAILS_ENV=production ./bin/rails assets:precompile
|
|
./bin/rails webpacker:install
|
|
# run tests
|
|
./bin/rake test
|
|
|
|
# create service
|
|
sudo bash -c "cat > /etc/systemd/system/ingang.service" << EOF
|
|
[Unit]
|
|
Description=Ingang
|
|
|
|
[Service]
|
|
Type=simple
|
|
RemainAfterExit=yes
|
|
Restart=on-failure
|
|
TimeoutSec=300
|
|
User=$USER
|
|
WorkingDirectory=$PWD
|
|
PIDFile=$PWD/tmp/pids/server.pid
|
|
ExecStart=$PUMA -F $PWD/config/puma.rb start
|
|
ExecStop=$PUMA -F $PWD/config/puma.rb stop
|
|
ExecReload=$PUMA -F $PWD/config/puma.rb phased-restart
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
EOF
|
|
|
|
# start and check service
|
|
sudo systemctl daemon-reload
|
|
sudo systemctl stop ingang
|
|
sudo systemctl disable ingang
|
|
sudo systemctl enable ingang
|
|
sudo systemctl start ingang
|
|
systemctl status ingang
|
|
journalctl -u ingang
|
|
```
|
|
|
|
## handleiding
|
|
|
|
- [log in](https://vergadering.bij1.org/ingang/rooms/)
|
|
- maak een `New room`
|
|
- laad deelnemers in via `Users` -> `Bulk import`
|
|
- doe `Export Voters for Helios` en [laad in Helios stemmingen in](https://bij1.org/handleiding-stemsysteem/#stemgerechtigden-inladen)
|
|
- ofwel:
|
|
- in Helios stuur per stemming een invite
|
|
- Ingang in (stemmingen): `Import Votes` (vergt SSH toegang tot Helios server) en verspreid stemportaal links via ofwel:
|
|
1. `Export Voters for Mailing` doen en via externe mailing dienst sturen
|
|
* NB: volgorde blijft hierbij niet intact
|
|
1. via Ingang sturen door:
|
|
- bij `/rooms` -> `Edit` tweak de [mail text](https://cloud.bij1.org/s/4kT8KZRqGWWqerw)
|
|
- test via `Users` -> `Send test invite`
|
|
- als deze goed is `Send Invitations` naar de rest
|
|
- open stemmingen in Helios
|
|
- wacht tot mensen via hun in de mail gelinkte persoonlijke stem-portaal de vergadering in komen en stemmen
|
|
|
|
### late aanmeldingen
|
|
|
|
stappen in [Ingang](https://code.bij1.org/bij1/ingang), voor een `$ROOM` en `$ELECTION`: kies in de user index van een kamer (url `https://vergadering.bij1.org/ingang/rooms/$ROOM/users`, b.v. `https://vergadering.bij1.org/ingang/rooms/123/users`):
|
|
|
|
- Ingang in: kies in de user index van een kamer knop `Bulk import` (url `https://vergadering.bij1.org/ingang/rooms/$ROOM/users/new`, b.v. `https://vergadering.bij1.org/ingang/rooms/123/users/new`)
|
|
- Ingang uit: kies in de user index van een kamer knop `Export Voters for Helios` (url `https://vergadering.bij1.org/ingang/rooms/$ROOM/voters.csv`, b.v. `https://vergadering.bij1.org/ingang/rooms/123/voters.csv`)
|
|
- [Helios](https://stemmen.bij1.org/) in: bij een vergadering op `voters & ballots` (url: `https://stemmen.bij1.org/helios/elections/$ELECTION/voters/upload`, b.v. `https://stemmen.bij1.org/helios/elections/12345678-1234-1234-1234-1234567890ab/voters/upload`)
|
|
- stuur mail via Ingang
|
|
- ofwel:
|
|
- Ingang in (stemmingen): `https://vergadering.bij1.org/ingang/rooms/$ROOM/votes/bulk` (vergt SSH toegang tot Helios server)
|
|
- in Helios stuur per stemming een invite
|
|
|
|
## todo
|
|
|
|
- CI
|
|
- un-hardcode
|
|
- `app/views/main/stream.html.erb`: video/chat urls
|
|
|
|
## documentation checklist
|
|
|
|
This README would normally document whatever steps are necessary to get the
|
|
application up and running.
|
|
|
|
Things you may want to cover:
|
|
|
|
- Ruby version
|
|
- System dependencies
|
|
- Configuration
|
|
- Database creation
|
|
- Database initialization
|
|
- How to run the test suite
|
|
- Services (job queues, cache servers, search engines, etc.)
|
|
- Deployment instructions
|
|
- ...
|