A software built using React, Django, Celery and RabbitMQ where admins can create interviews by selecting participants, interview start time and end time.
- An interview creation page where the admin can create an interview by selecting participants, start time, and end time.
Backend throws an error with a proper error message if:
- Any of the participants is not available during the scheduled time (i.e, has another interview scheduled) [Conflict Management]
- No of participants is less than 2
- An interview list page where admin can see all the upcoming interviews.
- An interview edit page where admin can edit the created interview with the same validations as on the creation page.
- Invitation email is send when an interview is scheduled or whenever interview schedule is updated. (Celery is used to send email asynchronously)
- An email reminder 30 mins before the scheduled event (Again celery is used to send reminder email asynchronously)
Knowledge of React and Django
- Backend
python3 -m venv virtual
source ./virtual/bin/activate
git clone https://github.com/nightwarriorftw/scale.git
pip install -r requirements.txt
cd scale/scale
sudo apt-get install rabbitmq-server`
sudo rabbitmqctl add_user myuser mypassword
sudo rabbitmqctl set_permissions -p / myuser ".*" ".*" ".*"
- Update celery configuration in settings.py
Add celery configuration in settings.py
import djcelery
djcelery.setup_loader()
BROKER_URL = 'amqp://myuser:mypassword@127.0.0.1:5672//'
CELERY_ACCEPT_CONTENT = ['json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_IMPORTS = ('api.tasks',)
python manage.py makemigrations
python manage.py migrate
python manage.py test
python manage.py runserver
Open another 2 terminals and run the following command respectivley in both of them
celery -A scale worker -l info
celery -A scale beat -l info
- frontend
npm install
npm start
- Github: nightwarriorftw
- Linkedin: developer-aman-verma
- Twitter: nightwarriorftw
Credits goes to me