- Python 3.11+ installed
- Node.js 18+ and npm installed
- GitHub Personal Access Token (optional but recommended)
- OpenRouter API Key (already in your
.env)
cd backend
# Create virtual environment (recommended)
python -m venv venv
# Activate virtual environment
# On Windows:
venv\Scripts\activate
# On Mac/Linux:
source venv/bin/activate
# Install dependencies
pip install -r requirements.txtYour .env file already exists. Make sure it has:
GITHUB_TOKEN=your_github_token_here # Optional but recommended
OPENROUTER_API_KEY=sk-or-v1-... # Already setTo get a GitHub token:
- Go to https://github.com/settings/tokens
- Click "Generate new token (classic)"
- Select
public_reposcope - Copy token and paste in
.env
# Make sure you're in backend/ directory
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000You should see:
INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
INFO: Started reloader process
INFO: Started server process
INFO: Waiting for application startup.
INFO: Application startup complete.
Test the backend:
- Open http://localhost:8000/docs (FastAPI auto-generated docs)
- You should see all endpoints listed
Open a new terminal (keep backend running):
cd frontend
# Install dependencies
npm installnpm run devYou should see:
▲ Next.js 14.2.5
- Local: http://localhost:3000
- Ready in X seconds
Open in browser: http://localhost:3000
-
Landing Page (http://localhost:3000)
- Should show the marketing page with CTAs
-
Analyze Page (http://localhost:3000/analyze)
- Enter a GitHub URL:
https://github.com/octocat(or any public profile) - Click "Run analysis"
- Wait 10-30 seconds (LLM calls take time)
- Should show:
- Portfolio score breakdown
- Red flags (if any)
- Recruiter verdict
- Developer archetype
- Enter a GitHub URL:
-
Job Match Page (http://localhost:3000/job-match)
- Enter GitHub URL
- Paste a job description
- Click "Run job match"
- Should show match score and recommendations
-
Dashboard Page (http://localhost:3000/dashboard)
- Shows sample charts (currently static data)
Using curl (or Postman):
# Test analyze endpoint
curl -X POST "http://localhost:8000/api/analyze" \
-H "Content-Type: application/json" \
-d '{"github_url": "https://github.com/octocat"}'
# Test job match endpoint
curl -X POST "http://localhost:8000/api/job-match" \
-H "Content-Type: application/json" \
-d '{
"github_url": "https://github.com/octocat",
"job_description": "Looking for a full-stack developer with React and Python experience."
}'
# Test README rewrite
curl -X POST "http://localhost:8000/api/rewrite-readme" \
-H "Content-Type: application/json" \
-d '{"content": "# My Project\nA simple project."}'
# Test roadmap generator
curl -X POST "http://localhost:8000/api/roadmap" \
-H "Content-Type: application/json" \
-d '{"weaknesses_summary": "No tests, limited documentation, few projects"}'Using FastAPI Docs (easiest):
- Go to http://localhost:8000/docs
- Click on any endpoint
- Click "Try it out"
- Fill in the request body
- Click "Execute"
Import errors:
# Make sure you're in backend/ directory
# Make sure virtual environment is activated
pip install -r requirements.txtPort already in use:
# Change port
uvicorn app.main:app --reload --port 8001
# Then update frontend API calls to use port 8001GitHub rate limit errors:
- Add
GITHUB_TOKENto.envfile - Restart backend server
OpenRouter API errors:
- Check
.envhas validOPENROUTER_API_KEY - Verify key at https://openrouter.ai/keys
Module not found:
cd frontend
rm -rf node_modules package-lock.json
npm installPort 3000 in use:
# Change port
npm run dev -- -p 3001API connection errors:
- Make sure backend is running on port 8000
- Check browser console for CORS errors
- Verify
http://localhost:8000/api/analyzeis accessible
- Backend starts without errors
- Frontend starts without errors
- Can access http://localhost:3000
- Can access http://localhost:8000/docs
- Analyze endpoint returns data for a test profile
- Frontend can call backend API
- No CORS errors in browser console
Once everything is running:
- Try analyzing your own GitHub profile
- Test job matching with a real job description
- Explore the dashboard visualizations
- Check the recruiter insights for accuracy
Happy testing! 🚀