Inspiration

At UCLA, our campus is full of everyday moments that disappear once you leave the space. We wanted to capture those fleeting moments and tie them to the places where they happened. By combining location-based discovery with simple social sharing, we aimed to make physical spaces feel more meaningful, alive, and connected over time.

What it does

BruinCapsule is a UCLA-authenticated web app that allows users to drop photos, captions, messages in capsules at real campus locations. These capsules can only be unlocked and viewed by other users when they are within 30 meters of that location. These posts create a shared, location-based memory layer across campus.

How we built it

The frontend was built with React using Next.js, enabling an interface that updates in real time based on live geolocation data and backend responses. Supabase powers our backend infrastructure, with a relational database storing user information, location data, and media metadata, with cloud storage for uploaded content. We integrated the Gemini API to moderate posts before they are published, ensuring a safer user experience.

Challenges we ran into

We faced a steep learning curve adapting to a new development environment. Our biggest challenge was getting everything set up and working together smoothly. It took time to decide which mapping tools and technologies to use (Mapbox, Leaflet, pigeon-maps).

Accomplishments that we're proud of

We are proud of building a working product, with a proximity-based unlock system, and successfully integrating an interactive map into our web app. Combining geolocation, database logic, and a user-friendly interface into one cohesive experience was a major accomplishment for our team, especially as first-time hackathon participants.

What's next for BruinCapsule

Next, we plan to develop a mobile app to expand capsule creation and make it easier for users to upload photos on the go. An app would enable smoother camera integration and support features like push notifications for nearby capsules.

Built With

Share this project:

Updates