This project is a web-based application designed for efficient collection and management of IVR (Interactive Voice Response) flow data. The application is developed using a Flask backend, MongoDB for database management, and a frontend built with HTML, Bootstrap, and JavaScript. It enables data collectors to input and manage IVR prompts and actions, which are then used by a dialing agent to interact with various insurance companies' IVR systems.
- Features
- System Requirements
- Installation
- Running the Application
- Usage
- Folder Structure
- Future Improvements
- Contributing
- License
- User-friendly interface for collecting and managing IVR data
- Role-based access control (Admin and Data Collector roles)
- Real-time form validation and dynamic data submission using AJAX
- Search and filter functionality for easy access to collected data
- Secure authentication and session management
- Data stored in MongoDB with encrypted communication over SSL/TLS
To run this project, ensure your system meets the following requirements:
- Python 3.7 or later
- MongoDB 4.4 or later
- Node.js and npm (for any additional frontend dependencies)
- Git (to clone the repository)
git clone https://github.com/yourusername/ivr-data-collection.git
cd ivr-data-collection
It's recommended to create a virtual environment for the project dependencies.
To create and activate a virtual environment, follow these steps:
python3 -m venv venv
source venv/bin/activate
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
Create a .env
file in the root directory and add the following environment variables:
FLASK_APP=app.py
FLASK_ENV=development
SECRET_KEY=your_secret_key
MONGO_URI=mongodb://localhost:27017/CureDial
Make sure to replace your SECRET_KEY
with a secure key and MONGO_URI
with your MongoDB connection URI.
Once MongoDB is running, the application will automatically create the necessary collections upon first run. You do not need to pre-configure the database schema since MongoDB is schema-less.
Start the MongoDB server by running the following command:
mongod
To run the application, execute the following command:
flask run
By default, the application will be accessible at http://127.0.0.1:5000/
.
Open your web browser and navigate to http://127.0.0.1:5000/
. You can now begin using the IVR Data Collection web application.
Once the application is running:
- Data Collectors can log in and start entering IVR data, including the prompts and actions that the dialing agent needs to perform.
- Administrators can manage users, review collected data, and have access to additional system settings.
The project directory is structured as follows:
root/ # Project's root directory
├── app.py # Main application entry point
├── README.md # Project documentation
├── requirements.txt # Dependencies list
├── app/ # Application core
│ ├── config.py # App configuration
│ └── __init__.py # Package initializer
│ ├── models/ # Database models
│ ├── routes/ # API routes
│ ├── services/ # Business logic/services
│ ├── static/ # Static assets
│ │ ├── css/ # Stylesheets
│ │ ├── images/ # Image files
│ │ ├── js/ # JavaScript files
│ │ └── jsons/ # JSON data files
│ ├── templates/ # HTML templates
│ └── utils/ # Utility/helper functions
Some potential improvements for the application include:
- Adding more user roles and permissions
- Implementing additional data validation and error handling
- Enhancing the search and filter functionality
- Integrating automated testing for the application
Contributions to this project are welcome. To contribute, follow these steps:
- Fork the repository
- Create a new branch (
git checkout -b feature-branch
) - Make your changes
- Commit your changes (
git commit -am 'Add new feature'
) - Push to the branch (
git push origin feature-branch
) - Create a new Pull Request
This project is licensed under the MIT License. See the LICENSE file for more details.