Inspiration

Starting at UBC can be overwhelming. There are so many clubs and events happening, but finding the right ones for you feels like searching for a needle in a haystack. We wanted to make it easier for students to discover clubs they'd actually enjoy, not just scroll through endless lists. The swipe interface felt natural - everyone knows how to use it, and it makes browsing fun instead of tedious.

What it does

AlignU lets you swipe through UBC clubs like you're browsing on a dating app. You build a profile with your interests, major, and what you're looking for, and the app shows you clubs that match. You can also browse events happening on campus, filter by category, and RSVP directly. When you find clubs you like, you can save them and connect with them on Instagram.

How we built it

We built the frontend with React and TypeScript, using Vite for fast development. The UI uses Tailwind CSS and Radix UI components, with Framer Motion for smooth animations. We collected club and event data from various sources and organized it into JSON files. For the recommendations, we integrated with OpenAI to analyze user profiles and match them with relevant clubs. Everything runs client-side with localStorage for saving user data.

Challenges we ran into

Getting all the club data together was way more work than we expected. Some clubs had outdated info, others didn't have images, and we had to manually verify everything. The swipe animations took some tweaking to feel smooth, and we ran into issues with the recommendation API timing out when processing too many clubs at once. Also, making it work with GitHub Pages routing was trickier than we thought since we had to use HashRouter instead of the regular router.

Accomplishments that we're proud of

We're really happy with how smooth the swipe interface feels - it actually works well on both desktop and mobile. Getting the personalized recommendations working was a big win, and we managed to collect and organize a solid database of clubs and events. The event filtering system turned out clean and easy to use. Plus, we got everything deployed and working on GitHub Pages.

What we learned

This was our first time really diving into AI integration, and we learned a lot about prompt engineering and how to structure data for better matching. We also got way better at React state management and handling complex UI interactions. Working with real data (not just mock data) taught us a lot about data validation and handling edge cases. And honestly, we learned that sometimes the simplest solution is the best one - we almost overcomplicated the matching algorithm before realizing a straightforward approach worked better.

What's next for AlignU

We want to first maintain and ensure database stays updated throughout the semester. It would be cool to let clubs claim their profiles and update their own information. We are thinking about adding notifications for new events in categories you're interested in, and maybe a way to see which of your friends are in different clubs. Long term, we would love to expand this to other universities too.

Built With

Share this project:

Updates