"Not sure where to start? Explore paths, not just colleges."
Pathlo is a modern college and career discovery platform built for Indian students who are tired of ranking-obsessed platforms that all look the same. It's about helping you understand what a path actually looks like — student life, real costs, honest outcomes — before you commit four years of your life to it.
Live → pathlo.vercel.app
Every existing platform either:
- Shows you a ranked list and calls it "discovery"
- Fabricates data to look credible
- Pretends JEE + NEET are the only two paths that exist
Pathlo is built differently. The dataset is intentionally honest — if data is missing, it says so. If it's unverified, it says that too. No fake ratings, no inflated packages, no hallucinated alumni.
Browse 60+ colleges across 6 categories: Engineering, Business, Liberal Arts, Research, New Age, and Distance/Flexible programs. Filter by field and type, sort by rating, fees, or name. Every college card tells you upfront if the data is Verified or Indicative — and why.
Each college gets a full page with:
- AI Insight — a 2–3 sentence honest summary generated by LLaMA 3.3 70B via Groq, not hardcoded copy
- Real fees and placement data (where verified)
- Entry exam breakdown with difficulty, duration, syllabus
- External research links — YouTube campus tours, Reddit threads, Quora discussions, Google Reviews
- Notable alumni (only real, named people)
18+ entrance exams — JEE, NEET, CAT, CLAT, IPMAT, GATE, BITSAT, XAT and more. Filter by difficulty and field, expand any card for full detail: eligibility, syllabus highlights, accepting colleges, official website.
Save colleges and exams to a personal dashboard. Works without login via localStorage. Sign in with Supabase to persist across devices (sync coming in v2).
A floating chatbot powered by LLaMA 3.3 70B that answers questions about colleges, exams, and career paths. Handles typos, informal names, and open-ended queries. No scripted responses — real API calls only.
| Layer | Choice | Why |
|---|---|---|
| Framework | React 19 + Vite 8 | Latest stable, fast HMR |
| Styling | Tailwind CSS 3 | Utility-first, dark mode via class strategy |
| Routing | React Router v7 | File-based routing, protected routes |
| Auth + DB | Supabase | Email/password auth, future persistence |
| AI | Groq API (LLaMA 3.3 70B) | Fast inference, free tier for development |
| Deployment | Vercel | SPA rewrites configured |
src/
components/
layout/ # Navbar
ui/ # CollegeCard, ExamCard, FilterBar, SearchBar, Badge, AIChatbot, ThemeToggle
context/
ThemeContext.jsx # Light / Dark / System theme management
data/
colleges.js # Base college dataset (60+ entries)
collegeDetails.js # Per-college overrides, alumni, research links
collegeDataset.js # Normalized + enriched data + filter groups
enrichedData.js # Verified fees, placement, alumni layer
exams.json # 18+ exam entries
examDataset.js # Exam filter config
provenance.js # Verified vs Indicative logic
provenanceChecklist.json # Admin verification workflow
hooks/
useSavedColleges.js # LocalStorage bookmark management
useSavedExams.js # LocalStorage exam save management
lib/
supabaseClient.js # Supabase singleton
pages/
HomePage.jsx
CollegesPage.jsx
CollegeDetailPage.jsx
ExamExplorerPage.jsx
DashboardPage.jsx
AuthPage.jsx
services/
aiService.js # Groq API: chatWithAI + generateCollegeInsight
utils/
collegeSlug.js # Slug generation + route matching
ScrollToTop.jsx # Scroll reset on navigation
App.jsx # Routes + auth guard + toast
main.jsx
index.css
- Email/password via Supabase
- Session persists across refreshes
- "Skip for now" — sets
skipAuthin localStorage, full access without account - Protected layout redirects to
/authonly if no session and no skip flag - Username derived from email prefix, shown in navbar
Pathlo has a strict data policy:
- Real institutions only — no fabricated colleges
- Verified vs Indicative — every fees/placement entry is labeled
- Admin Checklist —
provenanceChecklist.jsondrives verification status. A college is only marked Verified when all 4 checks pass:officialWebsite,placementReport,feePage,nirf - Staleness detection — verified data older than 90 days gets flagged for recheck
- Missing data → hidden — never shown as zero or placeholder
Currently verified: Masters' Union, IIM Ahmedabad, ISB Hyderabad.
Two separate Groq API calls:
1. College Insight (generateCollegeInsight)
- Triggered on College Detail page load
- Prompt is built from real college metadata (type, location, category, courses, entry exams)
- 150 tokens, temperature 0.4 — factual, not promotional
2. Chatbot (chatWithAI)
- Full conversational system prompt as "Pathlo AI"
- Maintains rolling 10-message history
- 400 tokens, temperature 0.7
- Filters error messages from history before each API call
Prerequisites: Node.js v20+, npm
git clone https://github.com/your_username/pathlo.git
cd pathlo
npm installCreate .env.local:
VITE_SUPABASE_URL=your_supabase_project_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
VITE_GROQ_API_KEY=your_groq_api_keyGet your keys:
- Supabase → app.supabase.com → Project Settings → API
- Groq → console.groq.com/keys (free)
npm run devApp runs at http://localhost:5173
npm run build # Production build
npm run lint # ESLint checkIf you're contributing or extending this project:
- ❌ Do NOT add fake ratings or fabricated data
- ❌ Do NOT hardcode AI responses — keep API calls real
- ❌ Do NOT redesign the UI without context on the design system
- ❌ Do NOT modify Supabase auth logic without testing session edge cases
- ✅ Missing data → hide it, don't guess it
- ✅ New colleges → add to
colleges.js, enrich inenrichedData.js, add provenance inprovenanceChecklist.json
Arpit Baliyan 🔗 LinkedIn: linkedin.com/in/arpitbaliyan 🌍 GitHub: github.com/ArpitBaliyan26
Made with ❤️ for learning React, one headline at a time