A comprehensive call center management system with real-time call monitoring, auto-dialer, and agent dashboard.
- Call Monitoring & Control - Real-time call status dashboard, live audio monitoring, whisper/barge-in capabilities
- Dialer System - Campaign management, lead import, preview/progressive dial modes
- Agent Dashboard - Call disposition logging, performance metrics, call history
- Admin Panel - User management, campaign analytics, reports
- Frontend: React 18, Vite, TailwindCSS, Socket.io-client
- Backend: Node.js, Express.js, Socket.io
- Database: MongoDB (Mongoose ODM)
- Authentication: JWT
- Node.js 18+
- MongoDB
- Redis (optional, for caching)
- Clone the repository:
git clone https://github.com/BenLorenzoDev/TambayanPH-ScrubAI.git
cd TambayanPH-ScrubAI- Install dependencies:
npm install- Set up environment variables:
cp server/.env.example server/.env
# Edit server/.env with your configuration- Start development servers:
npm run devThis will start both the backend server (port 5000) and frontend dev server (port 5173).
TambayanPH-ScrubAI/
├── client/ # React Frontend
│ ├── src/
│ │ ├── components/ # Reusable components
│ │ ├── pages/ # Page components
│ │ ├── context/ # React context providers
│ │ ├── services/ # API services
│ │ └── styles/ # CSS/Tailwind styles
│ └── ...
├── server/ # Express Backend
│ ├── src/
│ │ ├── config/ # Configuration files
│ │ ├── controllers/ # Route controllers
│ │ ├── middleware/ # Express middleware
│ │ ├── models/ # Mongoose models
│ │ ├── routes/ # API routes
│ │ ├── services/ # Business logic
│ │ └── socket/ # WebSocket handlers
│ └── ...
└── docs/ # Documentation
POST /api/auth/register- Register new userPOST /api/auth/login- User loginGET /api/auth/me- Get current userPATCH /api/auth/status- Update agent status
GET /api/campaigns- List campaignsPOST /api/campaigns- Create campaignGET /api/campaigns/:id- Get campaign detailsPATCH /api/campaigns/:id- Update campaignDELETE /api/campaigns/:id- Delete campaign
GET /api/leads- List leadsPOST /api/leads- Create leadGET /api/leads/next/:campaignId- Get next lead for dialingGET /api/leads/:id- Get lead detailsPATCH /api/leads/:id- Update lead
GET /api/calls- List callsPOST /api/calls/initiate- Initiate a callPOST /api/calls/:id/end- End a callPOST /api/calls/:id/transfer- Transfer a callGET /api/calls/active- Get active calls
NODE_ENV=development
PORT=5000
MONGODB_URI=mongodb://localhost:27017/tambayanph-scrubai
JWT_SECRET=your-secret-key
CLIENT_URL=http://localhost:5173# Run both client and server
npm run dev
# Run only server
npm run dev:server
# Run only client
npm run dev:client
# Build for production
npm run buildMIT