Anonymous reporting point for social safety for study association Sticky. This reporting point allows you to anonymously send a message to either the board or to the confidential advisors, or both.
The application does require a login via Koala to avoid spam messages. The board has quite good spam filters, but the confidential advisors might not have. Even though login is required, the application takes upmost care to ensure user anonymity.
The original idea for this application was put forward in the policy of the 10th KKB on the kbALV on 2024-05-21, section 2.2.
Easily run CI locally with Make:
make
See all commands with:
make help
The guide below will tell you roughly how to get started with working on fallacious-rooster.
Fallacious-rooster uses Koala for user authorization, you need to have this running when working on the application.
Add fallacious-rooster.localhost
to your hosts file. On Ubuntu this is /etc/hosts
This is rqeuired for cookies.
The server's written in Rust and thus requires a Rust compiler to be installed.
- Copy the configuration file
mv sample_config.json config.json
- Create an OAuth application on your Koala instance
- Set the redirect URI to match your
config.json
file - Set the scopes to
member-read openid email profile
- Set the redirect URI to match your
- Copy the client ID and client secret from Koala to
config.json
(koala.client_id
andkoala.client_secret
) - Start the application, either via Cargo directly:
cargo run -- --config ./config.json
or via:
cargo build
./target/debug/fallacious-rooster --config config.json --dry-run
Replace config.json
with the path to your config file.
The --dry-run
argument is useful during development. This argument tells the application to not send emails when a report is sent in,
instead it will print the body of the email to stdout.
The server preserves user-configurable settings in a storage.json
file. Where this file is placed can be configured via the local_storage
key of config.json
.
This file contains no sensitive data.
The frontend is written in Vue and TypeScript. Use Node version 21. Using NVM will make your life easier.
- Install yarn
npm install --global yarn
- Install packages
cd frontend/
yarn
- Start the frontend in development mode
yarn run dev
MIT or Apache-2.0, at your option.