- Configure interviews for recruiting talent.
- Supports Multiple Choice Questions (MCQs) and Essays.
- Organize questions under categories and subcategories.
- Track responses given by interviewees.
- Timed assessments
- Make sure equal number of questions are sampled from each category
- Add weights to questions, select questions based on how the interviewee is answering (eg:- ask tougher questions if the interviewee is performing well)
- Add
mandatory_categories
for interviews scheduled_start
time for attempts
-
Ruby version: 2.7.8
-
Database: PostgreSQL
-
Node: v16+
- Install PostgreSQL (you might also want to install pgAdmin3)
- Make sure your default user has the privilege to create databases.
- Setup DB credentials as per
config/database.yml
Give super user privileges to recruitment user for postgres as given below.
sudo -u postgres bash -c "psql -c\"ALTER ROLE recruitment SUPERUSER CREATEDB;\""
gem install bundler
to install bundler gem. This sets up the bundle command on your machine, used below.
Run bundle to install all the gems specified by Gemfile
.
bundle install
Run rails db setup task to setup database specified by database.yml
file.
bundle exec rails db:setup
Be sure that you have run the following command before you start the server:
npm install -g yarn
yarn install --check-files
The following command should be used to start the server in development mode.
foreman start -f Procfile.dev
This starts a webpack server in addition to the rails server (puma) so you can transpile your jsx files as soon as they are saved.
cp .env.example .env
and edit the ORG_NAME- Copy organization logo to
app/webpack/packs/images/logo.png
- Interview setup can be done by logging in as a admin user @
/admin
. - Upon logging in you will be Rails Active admin dashboard.
- Setup
categories
of questions.Category
can have subcategories. - a
Question
can be either aMcq
orEssay
(questionable polymorphic association) Mcq
questions can take options. Each of the options support Markdown entry.Mcq
questions also havecorrect_options
- array indexes of theoptions
that are correct.- a
Question
can belong to multiple categories. - an
Interview
is the question paper. You can configure thecategories
from which questions must be picked. Interview
can take additionalconfig
a JSON.config
currently supportsmaximum_questions
- Maximum questions in an interview
- Setup a
User
- Associate a
Interviewee
toUser
. Upon saving aInterviewee
aauth_code
is generated. This is used for logging in the interviewee. - An
Attempt
is the actual attempt of theInterview
. An attempt can be created for anInterviewee
for anInterview
- Note that both
Attempt
andInterview
have associatedquestions
andcategories
.AttemptCategories
is the subset ofInterviewCategories
that theInterviewee
chose to answer.