Overview
This guide walks you through setting up the InterviewGuide platform on your local machine for development. The platform requires PostgreSQL with pgvector extension, Redis, and S3-compatible object storage.Prerequisites
Required Software
Required Software
| Software | Version | Purpose |
|---|---|---|
| JDK | 21+ | Backend runtime (supports Virtual Threads) |
| Node.js | 18+ | Frontend development |
| PostgreSQL | 14+ | Primary database |
| pgvector | Latest | Vector similarity search for RAG |
| Redis | 6+ | Caching and message queue (Streams) |
| Gradle | 8.14+ | Backend build tool (wrapper included) |
| pnpm | Latest | Frontend package manager |
External Services
External Services
- Alibaba Cloud DashScope API Key: Required for AI features (resume analysis, mock interviews, RAG Q&A)
- S3-Compatible Storage: MinIO (recommended for local dev) or RustFS
Setup Object Storage
Choose MinIO (recommended) or RustFS for local S3-compatible storage.Access MinIO Console at http://localhost:9001
Option A: MinIO (Recommended)
Create Storage Bucket
Option B: RustFS
Configure Backend Application
Clone the Repository
Set Environment Variables
Get your DashScope API key from https://bailian.console.aliyun.com/
Edit application.yml
Updateapp/src/main/resources/application.yml with your local settings:app/src/main/resources/application.yml
Start Backend Server
Verify Startup
Check the logs for successful initialization:Setup and Start Frontend
Troubleshooting
Database Connection Failed
Database Connection Failed
Symptom:
Connection refused or FATAL: password authentication failedSolutions:- Verify PostgreSQL is running:
- Check
pg_hba.conffor authentication settings: - Restart PostgreSQL after config changes:
pgvector Extension Missing
pgvector Extension Missing
Symptom:
ERROR: could not open extension control file or extension "vector" does not existSolutions:- Verify pgvector installation:
- If not available, reinstall pgvector and restart PostgreSQL
- Ensure
shared_preload_librariesincludes vector (if required by your version):
Redis Connection Timeout
Redis Connection Timeout
Symptom:
Unable to connect to Redis or Connection refusedSolutions:- Check Redis is running:
- Verify Redis config allows external connections:
- Check firewall settings if connecting from different host
Resume Analysis Stuck in 'Processing'
Resume Analysis Stuck in 'Processing'
Symptom: Resume status remains Look for failed messages in backend logs:
PROCESSING indefinitelyRoot Causes:- Redis Stream Consumer not running: Check backend logs for consumer initialization
- AI API key invalid: Verify
AI_BAILIAN_API_KEYis correct - Network issues: Check connectivity to
dashscope.aliyuncs.com
File Upload Fails
File Upload Fails
Symptom:
500 Internal Server Error when uploading resumes or documentsSolutions:- Verify object storage is accessible:
- Check bucket exists and is accessible:
- Verify storage credentials in
application.ymlmatch MinIO/RustFS config - Check file size is under limit (50MB for knowledge base, 10MB for resumes)
Gradle Build Fails
Gradle Build Fails
Symptom: Build errors or dependency resolution failuresSolutions:
- Clean build cache:
- Verify Java version:
- Try using Aliyun mirror (already configured in
build.gradle) - Build without tests:
Frontend Build Errors
Frontend Build Errors
Symptom:
pnpm build fails or dependencies cannot be resolvedSolutions:- Clear pnpm cache:
- Verify Node.js version:
- Check for port conflicts:
Development Workflow
Hot Reload
Backend
Spring Boot DevTools enables automatic restart on code changes:
Frontend
Vite provides instant HMR (Hot Module Replacement):
Database Schema Updates
Monitoring Redis Streams
Next Steps
Docker Deployment
One-command setup with Docker Compose
Production Setup
Production-ready deployment checklist
Configuration Guide
Detailed environment variable reference
Architecture Overview
Understand the system design
