Autodialer
About
This is a simple customer managing tool for sales developed as an interview task (developed in 12 hours).
Usage & Features
-
Basic functionality:
- Agent is able to login to his account with given username and password
- Agent is given a number to call
- Agent is able to see current status of the call.
- Twilio creates a conference (a bridge) and agent is the only person inside
- Agent is given a list of clients to call
-
Special cases:
- Every time new agent is logged in, he is given a number from database and this number is marked as used.
- For the session duration he will be given the same number
- After the end of conference, agent may start a new one by calling the same number
- It is possible to call any client once again
Possible Improvements
- Use Twisted or Tornado to handle asynchronous tasks
- Use Celery to handle long running tasks
- Add administration panel
- Remove code from init.py
Setup
- create virtual environment for development
$ virtualenv env
- activate virtual environment
$ source env/bin/activate
- install python necessary packages
$ pip install -r requirments.txt
- initiate database
$ ./manage.py db init
- create first migration
$ ./manage.py db migrate
- upgrade database and create tables
$ ./manage.py db upgrade
- populates database with fake data
$ ./manage.py populate
- Run Autodialer Server
$ ./manage.py runserver
- Login as username: Test password: TEST