Skip to content

A web application built with Streamlit for automating the cleaning of IVR (Interactive Voice Response) data, primarily used for analytics purposes.

License

Notifications You must be signed in to change notification settings

fahmizainal17/Streamlit_IVR_Data_Cleaning_Automation_Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Streamlit Survey Automation

A web application to clean IVR Data for Analytics Purposes.

Open in Streamlit


Overview

The IVR Data Processing Suite is a comprehensive toolset designed for cleaning, processing, and analyzing IVR (Interactive Voice Response) campaign data. It utilizes a combination of Streamlit and FastAPI to provide an intuitive user interface for file uploads, data cleaning, questionnaire definition, keypress decoding, and data analysis. The suite is split into three main components: IVR Data Cleaner & Pre-Processor App, Questionnaire Definer, and Keypresses Decoder, which are built to work seamlessly together or as standalone modules.

Getting Started

Prerequisites

  • Docker
  • Python 3.8 or newer

Installation

  1. Clone the repository to your local machine:
    git clone <repository-url>
  2. Navigate to the project directory and build the Docker container:
    cd <project-directory>
    docker build -t ivr-data-suite .
  3. Run the Docker container:
    docker run -p 8501:8501 ivr-data-suite

Project Structure

.
├── .gitignore
├── Dockerfile
├── LICENSE
├── README.md
├── requirements.txt
├── .streamlit
│   └── secrets.toml
├── fastapiapp
│   ├── dockerfile
│   ├── security_utils.py
│   ├── test.db
│   ├── app
│   │   ├── main.py
│   │   └── modules
│   │       ├── aws_utils.py
│   │       ├── crud.py
│   │       ├── data_cleaner_utils_page1.py
│   │       ├── dependencies.py
│   │       ├── keypress_decoder_utils_page3.py
│   │       ├── questionnaire_utils_page2.py
│   │       ├── schemas.py
│   │       └── ...
│   ├── tests
│   │   └── tests_main.py
│   └── images
│       └── invoke_logo.png
└── mainapp
    ├── 1_IVR_Data_Cleaner_Pre_Processor_App.py
    ├── modules
    │   ├── data_cleaner_utils_page1.py
    │   ├── keypress_decoder_utils_page3.py
    │   ├── questionnaire_utils_page2.py
    │   └── security_utils.py
    └── pages
        ├── 2_Questionnaire_Definer.py
        └── 3_Keypresses_Decoder.py

Usage

IVR Data Cleaner & Pre-Processor App

  • Objective: To clean and preprocess IVR data for analysis.
  • Features: Upload IVR files, visualize basic statistics, download cleaned data, and manage phone numbers for future sampling.

Questionnaire Definer

  • Objective: To define and structure the questionnaire from IVR campaigns.
  • Features: Upload script files, parse questions and answers, rename data columns, and prepare data for further processing.

Keypresses Decoder

  • Objective: To decode and categorize keypress responses from IVR campaigns.
  • Features: Upload script or JSON files for decoding, classify responses, and download the decoded data for analysis.

FastAPI App Integration

  • Objective: To integrate the Streamlit apps with a FastAPI backend for advanced data processing and storage capabilities.
  • Setup: Refer to the fastapiapp directory and Dockerfile for setup and deployment instructions.

Contributing

Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE for more information.


About

A web application built with Streamlit for automating the cleaning of IVR (Interactive Voice Response) data, primarily used for analytics purposes.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages