Giter Club home page Giter Club logo

scale's Introduction

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:[email protected]: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

scale's People

Contributors

nightwarriorftw avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

pr1yansh

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.