Inspiration
Late-night PyTorch debugging → No Python peers at my exact Beginner level. Discord = mismatched skills, Reddit = ghosting. What if AI could instantly match global students?
What it does
AI Smart Matching + Level-Specific Coach:
- Python Beginner → Alex🇺🇸, Maria🇧🇷, Priya🇮🇳 (3 perfect matches)
- AI Roadmap: Codecademy → LeetCode → PyTorch
- 30s Flow: Name → Subjects → Instant global buddies
Live: https://study-buddy-hackathon-3aaf8.web.app
How we built it
Frontend: React + TypeScript + Tailwind + Vite Backend: Firebase Realtime DB (live matching) AI: Custom logic (Beginner=Beginner, Intermediate=Beginner/Intermediate) Icons: Lucide React Deploy: Firebase Hosting (npm run build && firebase deploy)
Challenges we ran into
Real React + Firebase bugs - solved through iteration:
| Problem | What Broke | How I Fixed |
|---|---|---|
| Infinite Loops | Firebase onValue → setAllUsers → re-render → repeat |
Proper unsubscribe() cleanup + conditional demo users |
| TypeScript Error | `TS2367: 'name' not in 'login\ | profile\ |
| "Pavana" x3 | Firebase only had my profile → empty matches | Demo users FIRST: Alex🇺🇸, Maria🇧🇷, Priya🇮🇳 + real users [web:132] |
| "No matches" | Demo condition never triggered | Single useEffect: if (firebaseEmpty) addDemoUsers() |
Accomplishments that we're proud of
- Production-ready: TypeScript clean, responsive Tailwind
What we learned
- React orchestration: Multiple
useEffect+ FirebaseonValue - Hackathon shipping: MVP → Polish → Demo
- Firebase patterns: Demo fallbacks + real-time cleanup
- TypeScript strict: Union types prevent runtime bugs
What's next for Study Buddy
- Chat: Firebase + WebRTC (evenings only matching)
- ML: Predict study session success rates
- Mobile: React Native + push notifications
- Scale: 1000+ real students, availability calendar
Built With
- firebase-authentication
- firebase-hosting
- firebase-realtime-database
- javascript-(jsx)
- lucide
- react-18
- tailwind-css
- typescript
- vite
Log in or sign up for Devpost to join the conversation.