amicooked is an AI-powered GitHub portfolio auditor designed to give developers a brutally honest reality check on their employability. By analyzing granular account data, the platform determines if a user's career prospects are "cooked" and provides a personalized roadmap to recovery.
- Frontend: React 18 + Vite + Tailwind CSS + ShadCN UI
- Backend/Services: Firebase (Auth + Firestore)
- APIs: GitHub GraphQL API, OpenRouter AI
- Language: JavaScript (JSX, no TypeScript)
- 🔐 GitHub OAuth authentication
- 📊 Comprehensive GitHub profile analysis (repos, commits, PRs, languages)
- 🤖 AI-powered "Cooked Level" calculation (0-10 scale)
- 📈 Personalized improvement roadmap
- 🎨 Clean, responsive UI with ShadCN components
npm installCopy the example environment file and add your API key:
cp .env.example .envEdit .env and add your OpenRouter API key:
VITE_OPENROUTER_API_KEY=your_actual_api_key_here
You need to add the GitHub Client Secret to Firebase:
-
Go to your Firebase Console
-
Select project:
amicooked-b65b3 -
Navigate to Authentication → Sign-in method
-
Enable GitHub provider
-
Add your GitHub OAuth credentials:
- Client ID:
Iv23liQFpUv5Wmg5Aemi(already in code) - Client Secret:
[YOUR_GITHUB_CLIENT_SECRET]⚠️ Add this in Firebase console
- Client ID:
-
Set the Authorization callback URL in your GitHub OAuth app to:
https://amicooked-b65b3.firebaseapp.com/__/auth/handler
npm run devThe app will be available at http://localhost:5173
amicooked/
├── src/
│ ├── components/
│ │ └── ui/ # ShadCN UI components (Button, Card)
│ ├── pages/
│ │ ├── Landing.jsx # GitHub sign-in page
│ │ ├── Dashboard.jsx # User context input
│ │ └── Results.jsx # Cooked Level results & recommendations
│ ├── services/
│ │ ├── github.js # GitHub GraphQL API calls
│ │ └── openrouter.js # AI analysis with OpenRouter
│ ├── config/
│ │ └── firebase.js # Firebase configuration
│ ├── utils/
│ │ └── cn.js # Tailwind utility functions
│ ├── App.jsx # Main router
│ ├── main.jsx # React entry point
│ └── index.css # Tailwind + global styles
├── public/ # Static assets
└── package.json # Dependencies
- Sign In: User authenticates with GitHub OAuth
- Context: User enters their education/career stage (e.g., "Sophomore CS Student")
- Analysis:
- Fetch GitHub data via GraphQL (repos, commits, PRs, languages, streaks)
- Send to OpenRouter AI for analysis
- AI generates a "Cooked Level" (0-10) and recommendations
- Results: Display level, stats, tech stack, and actionable roadmap
Required Setup:
⚠️ OpenRouter API Key - Add to.envfile (see Setup step 2)⚠️ GitHub Client Secret - Add to Firebase Console (see Setup step 3)
Already Configured:
- ✅ Firebase config (public keys in code)
- ✅ GitHub OAuth Client ID
When ready to deploy:
npm run buildDeploy the dist/ folder to:
- Firebase Hosting
- Vercel
- Netlify
- Or any static hosting service
Update the GitHub OAuth callback URL to your production domain.
- Use
npm run devfor hot reload during development - Check browser console for API errors
- GitHub token is stored in
localStorageafter sign-in - OpenRouter uses
automodel selection for cost efficiency
"Authentication failed"
- Ensure GitHub Client Secret is added to Firebase console
- Check that callback URL matches in GitHub OAuth app settings
"GitHub API error"
- Verify user granted
repo,read:user, anduser:emailscopes - Check that GitHub token is valid in localStorage
"AI analysis failed"
- Verify OpenRouter API key is valid
- Check network tab for API response errors
Built with ❤️ for WinHacks 2026