We will be undergoing planned maintenance on Oct 7th 6:00AM UTC / Oct 7th 2:00AM ET

Inspiration

One of our teammates enjoys sports that are less common than badminton and other mainstream activities. Whenever she wanted to play, she had to repeatedly post on social media and wait for someone suitable to respond. This process was inefficient, scattered, and did not guarantee that people would actually show up. That experience inspired us to build Sports Buddy: a platform where people can easily find compatible sports partners, organize activities, and connect with local communities—even for less popular sports.

What it does

Sports Buddy helps people find suitable partners based on their sport, skill level, availability, area, budget, and activity preferences. Users can:

  • Create a detailed sports profile
  • Discover compatible sports buddies
  • Send connection requests and chat in real time
  • Plan private sports sessions together
  • Create, discover, and join public activities
  • Search for nearby venues using maps
  • Export confirmed activities to their calendars
  • Check in at activities using a time-limited QR code
  • Build evidence-based reliability statistics from verified attendance
  • View and share a monthly activity recap The QR check-in system helps establish trust by providing evidence that participants attended an activity, rather than relying only on self-reported information.

How we built it

We built Sports Buddy as a mobile-first application using React, TypeScript, Vite, and Tailwind CSS. We then used Capacitor to package the web application as a native Android app. Firebase Authentication manages user accounts, while Cloud Firestore stores profiles, connections, conversations, plans, activities, and attendance records. Firestore security rules protect private user data and control who can access each feature. For subscriptions, we integrated RevenueCat through its official Capacitor SDK. RevenueCat manages the Buddy+ entitlement, native paywall, purchase restoration, and subscription status. We also used OpenStreetMap, Leaflet, Nominatim, and Overpass for venue discovery and maps. QR codes are generated for activity organizers and scanned through the phone camera to verify attendance.

Challenges we ran into

One of our biggest challenges was turning a web application into a functional mobile product. Native Android features, camera permissions, builds, and purchases introduced requirements that we had not faced in previous web projects. We also had to design the system carefully so that private conversations and profile information remained protected while public activities could still be discovered and shared. Integrating RevenueCat was another important challenge. We needed to ensure that subscription status came from RevenueCat instead of storing an insecure premium flag in the database. We also had to provide separate testing experiences for the native Android app and the browser demo. Finally, we had to make QR attendance useful and trustworthy by limiting when a code could be used and connecting verified check-ins to each member’s reliability statistics.

Accomplishments that we're proud of

We are proud that Sports Buddy grew beyond a prototype into a functional product that runs on our phones. We completed an end-to-end experience: users can register, build a profile, discover compatible buddies, connect and chat, plan sessions, join public activities, and verify attendance using QR codes. We also produced a responsive web version, an installable Android build, secure Firebase data access, and a working Buddy+ subscription flow powered by RevenueCat.

What we learned

We learned how to use Capacitor to transform a React application into an Android app and how to work with native capabilities such as the camera, app preferences, and device-specific behavior. We also learned how to integrate RevenueCat, structure Firebase data, write Firestore security rules, and design a maintainable system using services and repository interfaces. Most importantly, we learned that delivering a functional product requires much more than building individual screens. We had to think about privacy, reliability, monetization, mobile usability, testing, and the complete user journey. Compared with our previous hackathon projects, Sports Buddy pushed us to deliver a working product rather than only a visual prototype.

What's next for SportBuddy

Our next goal is to publish Sports Buddy on an app store and begin growing a real local community. We plan to promote the app through social media, sports clubs, universities, and local communities—especially among people who participate in less common sports. We also want to expand beyond Selangor, improve recommendations using real community feedback, and introduce more tools for organizers. Our long-term vision is to make finding a reliable sports partner as easy as opening the app and choosing when and what you want to play.

Built With

Share this project:

Updates

Submission history