Skip to content

projektwahl/projektwahl-lit

projektwahl-lit

Software to manage choosing projects and automatically assigning people to projects.

This software is licensed under the GNU Affero General Public License v3.0 or any later version.

Requirements

Important notes

To ensure data security you need two users to access the database. One privileged user and one unprivileged user. The privileged user is not subject to row level security and is used for e.g. triggers and the unprivileged user is subject to row level security. If you don't use two users then unprivileged clients like voters can read all users.

Setup

git clone https://github.com/projektwahl/projektwahl-lit.git
cd projektwahl-lit/

npm i
# generate tls certificate
openssl req -x509 -newkey rsa:2048 -nodes -sha256 -subj '/CN=localhost' -keyout key.pem -out cert.pem
npm run localize-build
LANGUAGE=de npm run build

sudo docker-compose up -d

psql postgres://postgres:projektwahl@localhost
CREATE ROLE projektwahl_production LOGIN PASSWORD 'projektwahl'; -- CHANGE/REMOVE THIS PASSWORD
CREATE ROLE projektwahl_production_admin IN ROLE projektwahl_production LOGIN PASSWORD 'projektwahl'; -- CHANGE/REMOVE THIS PASSWORD
CREATE DATABASE projektwahl_production OWNER projektwahl_production_admin;
exit

psql postgres://projektwahl_production_admin:projektwahl@localhost/projektwahl_production --single-transaction < src/server/setup.sql

NODE_ENV=production DATABASE_URL=postgres://projektwahl_production:projektwahl@localhost/projektwahl_production npm run setup

OPENID_URL=https://login.microsoftonline.com/tenant-id/v2.0
CLIENT_ID=client-id
openid_client_secret


login as
admin
changeme

change the password

Development environment

ln -s $PWD/pre-commit .git/hooks/pre-commit

NODE_ENV=development PORT=8443 BASE_URL=https://localhost:8443 CREDENTIALS_DIRECTORY=$PWD DATABASE_HOST=localhost DATABASE_URL=postgres://projektwahl_staging:projektwahl@localhost/projektwahl_staging npm run server

Security

See SECURITY.md

Translation

Currently https://github.com/vslavik/poedit.

Browser support

This application will probably never work without JavaScript as this would require bad API design because forms are just terrible.

Licenses of dependencies

npx license-checker --production --summary

About

Software to manage choosing projects and automatically assigning people to projects.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published