Inspiration:
As sophomores, we kept hearing “talk to alumni” but there wasn’t an easy way to find the right alum and actually book time. We wanted something simple that matches students by major/interests and lets alumni control requests without getting spammed. HokiesConnect came from that gap, and from watching friends struggle to find mentors before recruiting.
What it does:
- Helps students create a quick profile (major, clubs, interests) and send call requests to relevant alumni.
- Gives alumni a clean dashboard to review requests, accept/decline, and manage availability.
- Shows both sides a timeline of academic/professional milestones so conversations start with context.
- Adds a lightweight schedule view for upcoming sessions and history.
How we built it:
- Frontend: React + TypeScript + Vite, Tailwind CSS, shadcn/ui, React Router.
- State & Data: We started with localStorage to move fast, then migrated to a real backend.
- Backend: Supabase (Postgres, Auth, Storage). We set up tables for student/alumni profiles, journeys, professional experience, and call_requests.
- Auth & Security: Email/password auth; Row-Level Security so users only access their own data.
- DX: Reusable Timeline and request components, plus simple API managers (StudentAPI, AlumniAPI, RequestAPI) to keep pages clean.
Challenges we ran into:
- Schema drift: Our UI used requested_for while the DB used scheduled_time. That mismatch caused request failures until we standardized names.
- Legacy references: After the migration, some pages still referenced alumniDataManager (the old localStorage layer). Replacing those with AlumniAPI fixed runtime errors.
- Auth edge cases: Handling redirects for protected routes and differentiating student vs alumni experiences without duplicating code.
Accomplishments we’re proud of:
- A full student ↔ alumni request workflow that actually works end-to-end.
- Clean, consistent VT-themed UI that feels familiar and responsive.
- Secure data model with RLS.
- Modular components (timelines, tabs, schedule cards) we can reuse across pages.
What we learned
- Shipping fast with localStorage is fine, but migrating to a backend means being strict about field names, types, and validation.
- Good boundaries (API managers vs UI) make refactors way easier.
- Tiny UX touches matter: pending/accepted tabs, badges, and toast messages make the app feel trustworthy.
What’s next for HokiesConnect:
- Availability & calendar sync: let alumni set slots and push accepted calls to Google/Outlook.
- Better matching: use tags (skills, industries) and a simple scoring model to rank mentors.
- Messaging & reminders: in-app chat + email reminders before calls.
Built With
- css
- gemini
- html
- postgresql
- react
- supabase
- tailwind
- typescript

Log in or sign up for Devpost to join the conversation.