Skip to content

Latest commit

 

History

81 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Open Issues Forks Stars Maintained Made with Python ForTheBadge uses-js Open Source Love Built with Love Follow Me Telegram

Scale - Interview Scheduler

📒 Index

🔰 About

A software built using React, Django, Celery and RabbitMQ where admins can create interviews by selecting participants, interview start time and end time.

âš¡ Usage

  • 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)

🔧 Development

📓 Pre-Requisites

Knowledge of React and Django

🔩 Development Environment

  • Backend

1. Make a virtual environment

python3 -m venv virtual
source ./virtual/bin/activate

2. Clone the repo and install requirements

git clone https://github.com/nightwarriorftw/scale.git
pip install -r requirements.txt
cd scale/scale

3. Install RabbitMQ

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',)

4. Makemigrations, migrate and run the server

python manage.py makemigrations
python manage.py migrate

5. Run tests

python manage.py test

6. Run server

python manage.py runserver

7. Celery and Cronjob

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

8. Move to the urban folder and install requirements

npm install

9. Run the server

npm start

📷 Gallery

  • Front Page FrontPage

  • Host Event Host Event

  • Same timing interview scheduling with same person [conflict management] Conflict

  • Cancel Event Cancel Event

  • Reminder Email

    Reminder Email

  • Celery Reminder email send logs logs

🌟 Credit/Acknowledgment

Aman Verma

Credits goes to me

🔒 License

LICENSE

About

💡Schedule and Manage interviews • Automatic email reminders • Save time and frustration • Conflict Management of time

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages