Inspiration

Walking into the Oakland Center or Kresge Library and spending 10 minutes searching for an open study spot is a familiar frustration for every OU student. We wanted to eliminate that friction entirely — no app to download, no login to create, just tap and reserve. NFC technology is already embedded in every modern smartphone, and we wanted to leverage it for something genuinely useful on campus.

What it does

OpenSeat lets students reserve study spots at Oakland University by tapping an NFC tag placed on a study table. The tap opens a mobile-first web app where the student enters their name, OU email, and how long they need the spot. The reservation is confirmed instantly and a live countdown begins. Students can end their session early to free the spot for others. A public dashboard shows which tables are available in real time.

How we built it

•    Next.js 14 (App Router) for the full-stack web app — server components for fast page loads, API routes for reservation logic     •    Supabase (Postgres) as the database — storing spots, reservations, and real-time availability     •    Tailwind CSS for a mobile-first UI using Oakland University's brand colors     •    NFC tags encoded with a static URL pointing to our /api/nfc-redirect endpoint, which routes students directly to the reservation form     •    Vercel for deployment with automatic CI/CD from GitHub

Challenges we ran into

    NFC tags are static — they can't be rewritten on every tap. We had to design the entire time-window and validation logic server-side rather than encoding a timestamp in the tag URL.     •    Connecting Supabase to Vercel through their integration kept auto-provisioning the wrong project, requiring us to manually override environment variables.     •    Row Level Security policies in Supabase needed to be carefully configured to allow anonymous reads and writes without exposing sensitive data.

Accomplishments that we're proud of

A fully working NFC-to-reservation flow in under 30 seconds from tap to confirmed seat     •    Zero app installs required — works entirely in the mobile browser     •    Clean, polished UI that feels native on a phone despite being a web app     •    Real-time countdown with live session status that auto-expires when time runs out

What we learned

•    NFC web integrations are simpler than expected — any HTTPS URL works, the complexity is in the app logic, not the hardware     •    Supabase RLS is powerful but requires careful planning when using anonymous keys in a public-facing app     •    Designing mobile-first from the start produces a much better result than retrofitting desktop designs for phone screens

What's next for OpenSeat

Multi-table support — scale to every study spot across campus with unique NFC tags per table     •    Admin dashboard — facility managers can see occupancy in real time and manage spots     •    Waitlist feature — students can join a queue for a busy table and get notified when it opens     •    OU SSO integration — auto-fill student info by authenticating through Oakland University's login system     •    Analytics — track peak usage hours to help the university optimize study space allocation

Built With

Share this project:

Updates