SBU VibeCheck: Your Real-Time Campus Pulse

Inspiration

At a large campus like Stony Brook, finding events is a challenge. Students often hesitate to make the "commuter's risk" which is driving to campus only to find an event is empty. We built SBU VibeCheck to solve this problem of discovery by answering one simple question: "Is this event actually worth the trip, right now?"

What SBU VibeCheck Does

SBU VibeCheck is a "social radar" for the SBU campus. It aggregates all events from official feeds and user submissions into one place. Its core feature is the Real-Time VibeCheck, which allows users at an event or space to anonymously report on the atmosphere. Instead of generic ratings, we use smart, contextual questions (e.g., "Food left?" for a food event, "Energy right now?" for a game) that update live for everyone.

To make discovery effortless, we integrated the Google Gemini API for our AI Chat. You can simply ask, "What's fun this weekend?" and the AI uses function calling to query our backend and give you a natural answer with real event data.

How We Built It

We built this as a full-stack application from scratch. The frontend is a React and Tailwind app deployed on Cloudflare Pages. The backend is a FastAPI (Python) server on Google Cloud Run, connected to a Neon Postgres database.

Two features were critical:

  1. Privacy-First Auth with Auth0: We use Auth0 to verify all users with a @stonybrook.edu email. Our backend then mints its own separate, anonymous JWT. This ensures all user contributions (vibes, chats, photos) are completely anonymous, protecting privacy.
  2. Real-Time & AI: FastAPI WebSockets push all live vibe and chat updates to clients instantly. The Gemini API chat uses function calling to interact directly with our backend, allowing the AI to query our database in real-time. All image uploads are handled securely by Cloudinary.

Challenges We Overcame

  • Complex Authentication: Implementing the dual-token system (verifying with Auth0, then minting our own anonymous token) was a major challenge, especially when adding a role system (student vs. organizer) on top of it.
  • Deployment (HTTP vs. HTTPS): After deploying, we faced "Mixed Content" errors. Our secure https:// frontend was blocked from calling our http:// backend. We had to fix our server's proxy header configuration to resolve it.

Accomplishments We're Proud Of

  • True Real-Time Feel: Seeing the vibe on one phone update instantly on another without a refresh felt like magic and proved our WebSocket architecture worked.
  • Conversational AI that Works: Getting Gemini to fluidly interpret "I'm bored" and have it correctly call our own API to find events was a huge win.
  • Privacy-First by Design: We're proud of building a robust auth system with Auth0 that protects user privacy by design, which is essential for any social app.

What's Next

Our vision is to expand SBU VibeCheck with a live interactive map of campus (with pins colored by vibe), a friend system, and an even smarter AI trained on club-specific data.

Built With

Share this project:

Updates