Inspiration
We created connectSFU to serve as a centralized hub for all SFSS and non-SFSS club events. With event information scattered across Instagram, Discord, and emails, students often miss out on opportunities, and clubs struggle to reach their audience despite investing time and money. connectSFU simplifies event discovery and makes it easier for students to attend, especially for those hesitant to go alone.
What it does
There are two views: User and Club Administrator. Users are able to browse upcoming and featured events, find a buddy to attend the event with, and also to browse the different clubs that SFU has to offer. Club Administrator's perspective, they can create events along with receive stats on how the performance of their clubs events are doing based off attendance and velocity of sign ups.
How we built it
We built connectSFU with React and TypeScript. We used the Gemini API for our advanced AI search that users can use to do a more specified search based off the description of an event they would like to attend. We use Supabase as our relational database to securely store login credentials and other private information. To ensure only verified SFU students can access the platform, we implemented SFU email restrictions using Supabase Auth.
For the buddy system, users click “Find a buddy” on an event, set preferences (comfort, vibe), and submit a request. The backend creates a buddy_requests row tied to the event and user.
Demo Mode: Pairs the first compatible request, closes both requests, and creates a buddy_matches row. Future Mode: Uses Google Gemini API to score potential pairs based on bios, interests, vibe, and event details, creating matches that exceed a threshold. Notifications & Messaging: Matched users receive notifications, and the /messages endpoint shows the latest messages for each buddy match.
We create our assets in ProCreate and animated them in Canva.
Challenges we ran into
We ran into trouble with deployment., we finished a lot of our work at the same. It took time to make sure we didn't have any git conflicts, and git rebase saved our world.
Accomplishments that we're proud of
Our work delegation was very efficient and effective. We didn't run into many issues with merging PRs!
What we learned
We gained hands-on experience with various CSS frameworks, particularly Daisy UI, and strengthened our skills with AI tools, React component architecture, and API integration. We also improved our workflow with version control practices like rebasing and learned how to work with Supabase for managing our database.
What's next for connectSFU
Next, we aim to fully integrate the Club Administrator view. Currently, we only have a mockup, and it isn’t fully functional. We plan to expand the types of event data administrators can track, allow clubs to edit their own email and website, and make the system fully operational so that SFU and its clubs can truly benefit from connectSFU.
How to try it out
Navigate to connectSFU and use the following credentials to login:
Email: eta61@sfu.ca
Password: testing123@
On the home page, you can search for events, explore featured events, trending categories, and new clubs. Try searching for a club using natural language.
To observe all upcoming SFU club events, navigate to "events" at the top of the website. You can search for clubs and events conveniently by utilizing the filters. Try out different filter combinations, including campus, category, dates, soonest, most popular, and newest.
After finding an event you're interested in, click "Learn More" to see details about the event. Observe the options at the bottom of the RSVP form. You can get the Google Calendar link by clicking the "GCal Link", adding the event to your schedule easily. To see the buddy system, click "Find a Buddy". After filling out the buddy information, the system would queue your request to match you with your buddy!
Built With
- canva
- chatgpt
- claude
- css
- figma
- framer
- gemini
- geminiapi
- html
- procreate
- react
- supabase
- tailwind
- typescript
- vercel

Log in or sign up for Devpost to join the conversation.