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

Share this project:

Updates

Submission history