Additional Libraries: Radix UI Β· VAPI Β· Zod Β· Sonner Β· Day.js Β· clsx Β· tailwind-merge Β· Framer Motion Β· GSAP
Smart Interactive Digital Voice-based Interview Application
Sidvia AI is an advanced platform for simulating AI-powered, voice-based mock interviews. It helps job seekers improve their interview skills through interactive sessions, instant feedback, and detailed analytics. Built with Next.js 15 and powered by cutting-edge AI technologies.
- Features
- Technology Stack
- Prerequisites
- Installation
- Usage
- Project Structure
- API Endpoints
- Contributing
- Contact
- AI-Powered Voice Interviews: Realistic, adaptive mock interviews using VAPI AI with natural voice conversations
- Customizable Interview Generation: Tailor questions by role, experience level, and tech stack using Google Gemini AI
- Real-time Voice Recognition: Advanced speech recognition with Deepgram integration for accurate transcription
- Intelligent Interviewer: GPT-4 powered interviewer that adapts responses and provides natural conversation flow
- Comprehensive Feedback System: Detailed assessment of communication skills, technical knowledge, and performance metrics
- Performance Analytics: Track progress over time with detailed analytics dashboards
- Interview History: Complete history of all interviews with feedback and scores
- Achievement System: Track milestones and improvements with achievement badges
- Personalized Dashboard: Custom dashboard showing interview history, upcoming sessions, and performance metrics
- Profile Management: Detailed user profiles with interview statistics and achievements
- Responsive Design: Fully functional across all devices with modern UI/UX
- Secure Authentication: Firebase Auth integration with route protection
- Engaging Landing Page: Modern, animated landing page with company showcases
- Feature Showcase: Interactive feature sections with animations and testimonials
- Company Trust Indicators: Marquee of trusted companies and success stories
- Call-to-Action Sections: Strategic CTAs to drive user engagement
- Comprehensive Admin Dashboard: Manage users, interviews, and system statistics
- User Management: Enable/disable users, view user details, and perform bulk operations
- Interview Management: Monitor all interviews, view details, and manage interview data
- Data Export: Export user and interview data as CSV files
- System Statistics: Real-time system metrics and usage analytics
- Framework: Next.js 15 with App Router
- UI Library: React 19 with TypeScript
- Styling: Tailwind CSS 4 with custom animations
- Components: Radix UI primitives with custom styling
- Animations: Framer Motion, GSAP, and custom CSS animations
- Icons: Lucide React icons
- Authentication: Firebase Auth with custom claims
- Database: Firebase Firestore for data storage
- Admin SDK: Firebase Admin SDK for server-side operations
- AI Services:
- VAPI AI for voice interactions and interview management
- Google Gemini AI for question generation
- OpenAI GPT-4 for intelligent interviewer responses
- Voice Processing: Deepgram for speech-to-text transcription
- Validation: Zod for schema validation
- Notifications: Sonner for toast notifications
- Date Handling: Day.js for date manipulation
- Utilities: clsx, tailwind-merge for conditional styling
- Form Handling: React Hook Form with Zod validation
- Node.js (v18 or higher)
- npm or yarn package manager
- Firebase project with Firestore, Auth, and Admin SDK enabled
- VAPI account and API credentials
- Google Cloud project with Gemini AI API access
- OpenAI API key for GPT-4 access
-
Clone the repository:
git clone https://github.com/PrashantJaybhaye/Ai_Realtime_Agent.git cd Ai_Realtime_Agent -
Install dependencies:
npm install
-
Configure environment variables: Create a
.env.localfile in the root directory:# VAPI Configuration NEXT_PUBLIC_VAPI_WORKFLOW_ID=your_vapi_workflow_id NEXT_PUBLIC_VAPI_WEB_TOKEN=your_vapi_web_token # AI Services GOOGLE_GENERATIVE_AI_API_KEY=your_google_ai_key OPENAI_API_KEY=your_openai_key # Firebase Configuration NEXT_PUBLIC_FIREBASE_API_KEY=your_firebase_api_key NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_project.appspot.com NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_sender_id NEXT_PUBLIC_FIREBASE_APP_ID=your_app_id NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID=your_measurement_id # Firebase Admin SDK FIREBASE_PROJECT_ID=your_project_id FIREBASE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n" FIREBASE_CLIENT_EMAIL=your_service_account_email
-
Initialize Firebase Admin SDK:
- Ensure
firebase/admin.tsis configured with your service account credentials - Set up Firestore security rules for your application
- Ensure
-
Start the development server:
npm run dev
Access the application at http://localhost:3000
- Visit the landing page at
/landingto learn about features - Sign up at
/sign-upor log in at/sign-in - After authentication, users are redirected to the main dashboard
- Navigate to
/interviewto create a new interview session - Configure interview parameters:
- Type: Technical, Behavioral, or Mixed
- Role: Specific job position
- Level: Entry, Mid-Level, Senior, or Executive
- Tech Stack: Relevant technologies
- Question Count: Number of questions (5-20)
- Start the voice interview with AI interviewer
- Participate in real-time conversation with natural voice interaction
- View detailed feedback immediately after interview completion
- Access comprehensive analytics at
/profile - Review interview history and performance trends
- Track achievements and improvement areas
- Access admin panel at
/admin/dashboard - Manage user accounts and permissions
- Monitor system statistics and usage
- Export data and manage interviews
- View detailed user and interview analytics
sidvia/
βββ app/ # Next.js App Router
β βββ (admin)/ # Admin route group
β β βββ admin/ # Admin dashboard pages
β βββ (auth)/ # Authentication route group
β β βββ landing/ # Landing page
β β βββ sign-in/ # Sign in page
β β βββ sign-up/ # Sign up page
β βββ (root)/ # Main application routes
β β βββ about/ # About page
β β βββ contact/ # Contact page
β β βββ feedback/ # Feedback page
β β βββ interview/ # Interview pages
β β βββ profile/ # User profile
β βββ api/ # API routes
β βββ admin/ # Admin API endpoints
β βββ users/ # User management APIs
β βββ vapi/ # VAPI integration APIs
βββ components/ # React components
β βββ admin/ # Admin-specific components
β βββ landing/ # Landing page components
β βββ ui/ # Reusable UI components
β βββ *.tsx # Feature components
βββ contexts/ # React contexts
βββ firebase/ # Firebase configuration
βββ lib/ # Utility functions and actions
βββ types/ # TypeScript type definitions
βββ public/ # Static assets
GET /api/users- List all users (admin only)POST /api/admin/users- Single user actions (disable, enable, delete, view)POST /api/admin/users/bulk- Bulk user operations
GET /api/admin/interviews- List all interviews (admin only)POST /api/admin/interviews- Single interview actionsPOST /api/admin/interviews/bulk- Bulk interview operations
GET /api/admin/stats- System-wide statistics and metrics
POST /api/vapi/generate- Generate custom interview questions{ "type": "technical", "role": "Software Engineer", "level": "Mid-Level", "techstack": "React, Node.js, TypeScript", "amount": 10, "userid": "user-id" }
We welcome contributions to Sidvia AI! Here's how you can help:
- Fork the repository and create a new branch for your feature
- Follow the coding standards and ensure TypeScript compliance
- Test your changes thoroughly before submitting
- Update documentation if you add new features
- Submit a pull request with a clear description of your changes
- Use TypeScript for all new code
- Follow the existing component structure and naming conventions
- Ensure responsive design for all UI components
- Add proper error handling and loading states
- Include appropriate tests for new functionality
For questions, support, or collaboration opportunities:
- Email: gwscary@gmail.com
- Repository: GitHub - Sidvia AI
Built with β€οΈ using Next.js, Firebase, and AI technologies