I. Inspiration
Every semester at Purdue, students struggle to swap into the right class sections. Current tools are clunky, unsafe, or non-existent. We wanted a simple, secure, student-first platform to solve this.

II. What it does
Class Swap – Boiler Bridge lets Purdue students browse and request section swaps.

  • Public users can search and view swaps.
  • Logged-in Purdue students can create requests, make offers, chat via in-app DMs, and confirm matches through a double-handshake "Agree" flow.

III. How we built it

  • Frontend: Next.js App Router + TypeScript, TailwindCSS, shadcn/ui.
  • Backend: Supabase (DB + Auth, with RLS).
  • Data: Purdue.io API (with seed fallback).
  • State & Forms: TanStack Query + react-hook-form + zod.
  • Built milestone by milestone: schema + RLS → auth gate → course search → swap creation → listings → detail + offers + DM → dashboard.

IV. Challenges we ran into

  • Wrestling with dependency mismatches (React 18 vs lucide-react).
  • Setting up Supabase RLS while keeping the demo functional.
  • Email verification bounces and rate limits during hackathon testing.
  • Time pressure: fitting an end-to-end build into <15 hours.

V. Accomplishments that we're proud of

  • End-to-end working demo with both public and authenticated flows.
  • Seamless double-handshake "Agree" system.
  • DM dialog tied to each offer — no external inbox needed.
  • Seeded data so the demo runs live even without Purdue.io API.

VI. What we learned

  • How to design a lean but real database schema for a production-like demo.
  • The importance of environment configs and RLS early in the build.
  • Supabase Auth + email flows in hackathon conditions.
  • Scoping: deciding what’s truly MVP vs. "nice-to-have".

VII. What's next for Class Swap – Boiler Bridge

  • Production readiness: custom SMTP + polished auth flows.
  • Mobile UX: tighter layouts, swipe gestures.
  • Better course data: deeper Purdue.io integration.
  • Social features: notifications, reporting, admin dashboard.
  • Scale: extend to other universities beyond Purdue.

Built With

  • database
  • lucide-react
  • next.js-(app-router)
  • node.js-(migrations-&-seeding)
  • purdue.io-api-(seed-fallback)
  • react-hook-form-+-zod
  • rls)
  • shadcn/ui
  • supabase-(auth
  • tailwindcss
  • tanstack-query
  • typescript
  • vercel
Share this project:

Updates