A data-driven, role-based support management system that enables clients to submit queries in real time, support teams to manage and resolve them efficiently, and stakeholders to analyze service performance using analytics.
Organizations receive a large number of client support queries daily. Manual handling leads to delays, poor tracking, and low customer satisfaction.
The Client Query Management System (CQMS) solves this by providing:
- Secure authentication for clients and support teams
- Real-time query submission and lifecycle tracking
- Support workload management
- Analytics-driven service efficiency insights
- Clean, validated, and analytics-ready data pipeline
- Organize incoming client queries
- Track query lifecycle (Open → Closed)
- Improve query resolution efficiency
- Monitor support workload and trends
- Maintain high-quality, validated data for analytics
Client / Support User ↓ Streamlit UI ↓ Authentication Layer ↓ Validation & Cleaning ↓ MySQL Database ↓ Analytics Engine
📸 (Attach Architecture Diagram Screenshot Here)
| Layer | Technology |
|---|---|
| Programming Language | Python |
| Frontend | Streamlit |
| Database | MySQL |
| Data Processing | Pandas |
| Security | hashlib (SHA-256) |
| Validation | Regular Expressions |
| Visualization | Streamlit Charts |
| Version Control | Git |
- Client
- Support
- Database-level authentication only
- No OTP / Email / SMS verification
- Passwords stored using SHA-256 hashing
Users can authenticate using:
- Username + Password
- Email + Password
- Mobile Number + Password
hashlib.sha256()for password hashing- SQL-based credential verification
- Role-based routing using Streamlit session state
📸 (Attach Login Page Screenshot Here)
The Client Dashboard provides a unified interface for clients to view analytics, manage their queries, and raise new issues.
- Client Analytics
- My Queries
- New Query
Displays:
- Total number of queries
- Open vs Closed queries
- Average & median resolution time
- Queries by category
- Queries raised over time
📸 (Attach Client Analytics Screenshot Here)
Features:
- View all submitted queries
- Filter by status, category, and date
- Status-based highlighting (Open / Closed)
- Invalid mobile number highlighting
- CSV export functionality
📸 (Attach My Queries Table Screenshot Here)
Clients can:
- Select query category
- Enter query heading and description
- Upload issue screenshot (image)
- Submit query in real time
- Mobile number regex validation
- Mandatory field validation
- Image upload support
📸 (Attach New Query Form Screenshot Here)
The Support Dashboard is designed for operational workflow management and analytics.
- Open Queue
- My In-Progress
- Closed Queries
- Team Analytics
Open → In Progress → Closed
Support workflow:
- Pick queries from Open Queue
- Work on assigned queries
- Close queries after resolution
📸 (Attach Support Dashboard Screenshot Here)
Displays:
- Queries handled per support agent
- Average resolution time per agent
- Support load by category
- SLA breach identification
📸 (Attach Support Analytics Screenshot Here)
- Average resolution time
- Median resolution time
- Query volume by category
- Agent workload analytics
- SLA breach counts
Resolution Time = query_closed_time − query_created_time
Analytics are computed using Pandas groupby operations and datetime calculations.
All data cleaning is performed before database insertion and documented in data_cleaning.ipynb.
- Regex-based format validation
- Invalid emails flagged (not deleted)
Valid Email Rate = 5200 / 5200 = 100%
- Normalized to last 10 digits
- Indian mobile regex validation
- Invalid mobile numbers flagged
- Standardized to
OpenandClosed
- Converted to datetime
- Resolution time derived
- Cleaned dataset saved as: cleaned_client_queries.csv
📸 (Attach Data Cleaning Notebook Screenshot Here)
userssupport_agentsclient_queriesclient_reviews
- Clients submit queries
- Queries are assigned to support agents
- Clients provide reviews after query closure
📸 (Attach ER Diagram Screenshot Here)
client-query-management-system/
│
├── README.md
├── requirements.txt
├── data/
│ └── schema.sql
├── schema.py
│
├── data/
│ ├── raw/
│ │ └── synthetic_client_queries.csv
│ ├── cleaned/
│ │ └── cleaned_client_queries.csv
│ └── sample_images/
│ └── issue_screenshot_example.png
│
├── notebooks/
│ └── data_cleaning.ipynb
│
├── src/
│ ├── app.py
│ │
│ ├── services/
│ │ ├── db_connection.py
│ │ ├── csv_loader.py
│ │ └── __init__.py
│ │
│ ├── auth/
│ │ ├── login.py
│ │ ├── auth_utils.py
│ │ └── __init__.py
│ │
│ ├── client/
│ │ ├── client_dashboard.py
│ │ ├── query_form.py
│ │ └── __init__.py
│ │
│ ├── support/
│ │ ├── support_dashboard.py
│ │ └── __init__.py
│ │
│ ├── analytics/
│ │ ├── analytics.pyregex_utils.py
│ │ └── __init__.py
│ │
│ └── utils/
│ ├── regex_utils.py
│ ├── date_utils.py
│ └── __init__.py
python schema.py2️⃣ Load Cleaned CSV Data
python -m src.services.csv_loader3️⃣ Run Streamlit Application
streamlit run src/app.py- Email / OTP verification
- SLA automation
- Advanced analytics dashboards
- Notification system- Bhuvana PS
- Website Developer / SEO Specialist / Digital Marketing advisor
- Domain: Data Engineering / Data Analytics / Python