AS
ashesbloom/Auto-QA-and-Coaching-Insights
Auto-QA and Coaching Insights
An AI-powered system that evaluates 100% of customer support calls, scores them across quality dimensions, and generates agent-level + city-level coaching insights with supervisor flagging for high-risk calls.
🏗️ Architecture Overview
┌─────────────────┐ WebRTC ┌──────────────────┐
│ React Frontend │◄───────────────►│ LiveKit Server │
│ (Customer UI) │ │ (Docker) │
└────────┬────────┘ └────────┬─────────┘
│ │
│ REST API │ Recording
▼ ▼
┌─────────────────┐ ┌──────────────────┐
│ FastAPI Backend│ │ S3 / Local │
│ (Room Tokens) │ │ Storage │
└─────────────────┘ └──────────────────┘
🚀 Quick Start (Local Development)
Prerequisites
- Docker & Docker Compose - For running LiveKit server
- Python 3.11+ - For backend API
- Node.js 18+ - For frontend
1. Start LiveKit Server
docker-compose up -dThis starts the LiveKit WebRTC server on localhost:7880.
2. Start Backend API
cd backend
# Create virtual environment
python -m venv venv
venv\Scripts\activate # Windows
# source venv/bin/activate # Linux/Mac
# Install dependencies
pip install -r requirements.txt
# Run the server
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000API will be available at http://localhost:8000
3. Start Frontend
cd frontend
# Install dependencies
npm install
# Run dev server
npm run devFrontend will be available at http://localhost:3000
📁 Project Structure
Auto-QA-and-Coaching-Insights/
├── backend/ # FastAPI Backend
│ ├── app/
│ │ ├── main.py # Application entry point
│ │ ├── config.py # Environment configuration
│ │ ├── schemas.py # Pydantic models
│ │ ├── routes/
│ │ │ └── rooms.py # Room management endpoints
│ │ └── services/
│ │ └── livekit_service.py # LiveKit integration
│ ├── requirements.txt
│ └── .env
│
├── frontend/ # React Frontend
│ ├── src/
│ │ ├── App.jsx
│ │ ├── main.jsx
│ │ ├── api/
│ │ │ └── roomService.js # API client
│ │ └── components/
│ │ ├── LandingPage.jsx # Customer landing page
│ │ └── CallRoom.jsx # WebRTC call interface
│ ├── package.json
│ └── vite.config.js
│
├── docs/ # Documentation
│ ├── problem_statement.txt
│ └── Technical_srs.txt
│
└── docker-compose.yml # LiveKit server config
🔌 API Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | / |
Health check |
| GET | /health |
Health check |
| POST | /api/v1/rooms/create |
Create a new support room |
| POST | /api/v1/rooms/token |
Get token for existing room |
Create Room Request
{
"customer_name": "John Doe",
"customer_phone": "+1234567890"
}Create Room Response
{
"room_name": "support-20260131-120000-abc12345",
"token": "eyJhbGciOiJIUzI1NiIs...",
"livekit_url": "ws://localhost:7880",
"created_at": "2026-01-31T12:00:00Z"
}🛠️ Development Status
Phase 1: Core Infrastructure ✅
- Project structure setup
- LiveKit Docker configuration
- Backend API for room management
- React landing page with "Help" button
- WebRTC call interface
- AI Voice Agent (Pipecat) - Next
Phase 2: QA Pipeline 🔜
- Call recording (LiveKit Egress)
- AWS Transcribe integration
- Bedrock LLM analysis
- DynamoDB storage
- SNS alerts
Phase 3: Dashboard 🔜
- QA scorecards
- Agent performance trends
- City-level insights
- Supervisor alerts UI
📄 License
Internal use only - Battery Smart Hackathon 2026