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 + Firebase onValue
  • 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
Share this project:

Updates

Submission history