A full-stack web application that provides an AI voice assistant experience using VAPI.ai technology. Features real-time voice interactions, call analytics, and a beautiful responsive interface.
- Voice AI Integration - Real-time voice conversations with AI using VAPI.ai
- Call Analytics - Track and analyze conversation metrics
- Modern UI/UX - Responsive design with smooth animations
- Resume Management - Download functionality with progress tracking
- Scalable Backend - Built with NestJS and MongoDB
- Real-time Status - Live connection state indicators
/
├── frontend/ # React frontend application
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── configs/ # Configuration files
│ │ └── assets/ # Static resources
│ └── ...
│
└── backend/ # NestJS backend application
├── src/
│ ├── calls/ # Call management module
│ ├── app.module.ts # Root application module
│ └── main.ts # Application entry point
└── ...
- Node.js (LTS version)
- MongoDB
- npm/yarn/pnpm
- VAPI.ai API key
- Backend (.env)
PORT=3000
MONGODB_URI=mongodb://localhost:27017/ai-assistant
FRONTEND_URL=http://localhost:5173- Frontend (.env)
VITE_VAPI_API_KEY=your_vapi_key
VITE_CLIENT_ID=your_client_id
VITE_API_URL=http://localhost:3000Backend:
cd backend
npm install
npm run start:devFrontend:
cd frontend
npm install
npm run dev- Manages VAPI.ai voice connections
- Handles call lifecycle events
- Provides real-time status feedback
- Sends analytics to backend
- Displays AI assistant profile
- Manages loading states
- Shows online/offline status
- Handles document downloads
- Shows progress indicators
- Features hover animations
- Handles VAPI webhook events
- Stores call analytics
- Provides call summary endpoints
- Manages MongoDB interactions
- React 19 with Hooks
- Vite 6 for building
- TailwindCSS for styling
- VAPI.ai SDK for voice
- ESLint + PostCSS
- NestJS 11
- MongoDB with Mongoose
- Express platform
- Jest for testing
- TypeScript
POST /calls/webhook- Handle VAPI eventsGET /calls/connects- Get connection statsGET /calls/summary- Get call analytics
Backend Tests:
# Unit tests
npm run test
# E2E tests
npm run test:e2e
# Test coverage
npm run test:cov-
Code Style
- Use ESLint rules
- Follow component-based architecture
- Maintain type safety
- Write meaningful comments
-
Git Workflow
- Create feature branches
- Write descriptive commits
- Review before merging
-
Error Handling
- Implement proper error boundaries
- Log errors appropriately
- Provide user feedback
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Built with ❤️ using React, NestJS, and VAPI.ai