Measures of algorithmic fairness often do not account for human perceptions of fairness that can substantially vary between different sociodemographics and stakeholders. The FairCeptron framework is an approach for studying perceptions of fairness in algorithmic decision making such as in ranking or classification. It supports (i) studying human perceptions of fairness and (ii) comparing these human perceptions with measures of algorithmic fairness. The framework includes fairness scenario generation, fairness perception elicitation and fairness perception analysis. This implementation of the FairCeptron framework can easily be adapted to study perceptions of algorithmic fairness in other application contexts. We hope our work paves the way towards elevating the role of studies of human fairness perceptions in the process of designing algorithmic decision making systems.
This repo contains the web app used for fairness perception elicitation, that can be deployed as described below. For fairness scenario generation and fairness perception analysis, check out FairCeptron notebooks.
This universal web app is written with Nuxt.js and TailwindCSS and includes a simple backend as Nuxt server middleware. The backend is implemented with Express and Mongoose to connect to a MongoDB server that stores pre-generated scenarios and participants' answers.
First, create secret credentials in .env
(see .env.example
).
Then, setup the Nuxt.js webserver including the Express.js backend and the MongoDB database with
$ docker-compose up --build -d
Make sure to populate the database with questions after deploying for the first time.
To start only the Nuxt.js server with an external database, configure the database connection in .env
.
Then run
# install dependencies
$ npm install
# serve with hot reload at localhost:3000
$ npm run dev
# build for production and launch server
$ npm run build
$ npm run start
Check out Nuxt.js docs for more information on Nuxt.js.