Built in 24 hours at Hack_NCState
YeetCode is an AI-powered technical interview platform that conducts voice-to-voice coding interviews with real-time code visibility, anti-cheating measures, and comprehensive performance evaluation.
- Real-time speech-to-text transcription (ElevenLabs)
- Natural AI interviewer responses (Google Gemini 2.5 Flash)
- Text-to-speech for AI responses
- Adaptive silence detection for seamless conversation
- Real-time code editor with syntax highlighting
- AI can see what you type as you code
- Character count and timer display
- Supports all programming languages
- Easy: Two Sum (10 minutes)
- Medium: Reverse Linked List (20 minutes)
- Hard: Merge K Sorted Lists (30 minutes)
- Continuous video monitoring (Twelve Labs)
- 20-second video chunks uploaded for analysis
- Detects suspicious behavior
- FAANG-level rubric scoring
- Breakdown by:
- Understanding of problem (20 pts)
- Brute force approach (20 pts)
- Optimal approach (30 pts)
- Time/space complexity (30 pts)
- Code execution (20 pts)
- Warning report for detected cheating attempts
- Framework: Next.js 14 (TypeScript)
- Styling: Tailwind CSS
- Animations: Framer Motion
- Audio: WebSockets, MediaRecorder API
- Dev: HTTPS proxy (local-ssl-proxy) for camera/mic access
- Runtime: Node.js (TypeScript)
- Server: Express.js
- WebSocket: ws library
- APIs:
- ElevenLabs (Speech-to-Text & Text-to-Speech)
- Google Gemini 2.5 Flash (AI Interviewer & Evaluator)
- Twelve Labs (Video Analysis)
yeetcode/
βββ yeetcode-frontend/ # Next.js application
β βββ app/
β β βββ page.tsx # Home - difficulty selector
β β βββ playground/ # Interview interface
β β βββ components/
β β βββ TextEditor.tsx # Code editor + timer
β β βββ ProfileCard.tsx # AI avatar
β β βββ ChatWindow.tsx # Conversation display
β β βββ RulesModal.tsx # Interview guidelines
β β βββ questions.ts # Question bank
β βββ package.json
β
βββ yeetcode-backend/ # Node.js backend
β βββ src/
β β βββ server.ts # Express + WebSocket server
β β βββ services/
β β β βββ gemini.ts # AI interviewer logic
β β β βββ evaluator.ts # Performance evaluation
β β β βββ transcription.ts # ElevenLabs STT
β β β βββ elevenlabs-tts.ts # TTS
β β β βββ twelvelabs.ts # Video monitoring
β β βββ websocket/
β β βββ transcriptSocket.ts # Audio pipeline
β βββ package.json
β
βββ README.md
- Node.js 18+
- npm/yarn/pnpm
- API Keys:
- Clone the repository
git clone https://github.com/yourusername/yeetcode.git
cd yeetcode- Set up Backend
cd yeetcode-backend
npm install
# Create .env file
cp .env.example .env
# Add your API keys:
# GEMINI_API_KEY=your_key_here
# ELEVENLABS_API_KEY=your_key_here
# TWELVELABS_API_KEY=your_key_here- Set up Frontend
cd ../yeetcode-frontend
npm installTerminal 1 - Backend:
cd yeetcode-backend
npm run dev
# Server runs on http://localhost:8080Terminal 2 - Frontend:
cd yeetcode-frontend
npm run dev
# App runs on http://localhost:3000Terminal 3 - HTTPS Proxy (for camera/mic access):
npx local-ssl-proxy --source 3001 --target 3000
# Access app at https://localhost:3001- Open
https://localhost:3001 - Select difficulty (Easy/Medium/Hard)
- Accept camera and microphone permissions
- Read the rules modal
- Start coding and talking to the AI interviewer!
- Timer will auto-end the interview
- View your evaluation scores
- Records in 3-second windows
- Uses RMS audio analysis to detect speech
- Accumulates speech chunks until 2 consecutive silences detected
- Prevents cutting off mid-sentence
- Prevents race conditions in audio processing
- Ensures only one AI response at a time
- Frontend audio queue drops duplicates
- Editor content sent with each audio chunk
- AI can reference code in responses
- Enables contextual technical discussions
1. Understanding of problem (20 points)
- Correctly interprets requirements
- Asks clarifying questions
- Identifies edge cases
2. Brute force approach (20 points)
- Proposes initial solution
- Explains logic clearly
3. Optimal approach (30 points)
- Identifies improvements
- Justifies optimizations
4. Time/space complexity (30 points)
- Correct Big-O analysis
- Clear explanations
5. Code execution (20 points)
- Working implementation
- Handles edge cases
- Rate limiting on Gemini API (free tier: 5 req/min for 2.5 Flash)
- Video analysis integration needs more optimization
- Persist interview history
- Add user authentication
- β Full voice-to-voice interview loop working
- β Real-time code editor visibility
- β Timed challenges with auto-end
- β AI evaluation with rubric scoring
- β Video monitoring setup (Twelve Labs integration ready)
- β Anti-cheating warning system
MIT License - feel free to use this project for learning!
- Saniddhya Dubey - Full Stack Development
- Shubham Kakde - Full Stack Development
- ElevenLabs for amazing voice APIs
- Google Gemini for powerful AI capabilities
- Twelve Labs for video analysis infrastructure
- Hack_NCState for the opportunity!
Built with β€οΈ in 24 hours