Nowadays, users are attracted to the convenient swiping features most social media apps utilize. And so, we thought…why not use it for good?
Inspired by GoFundMe’s fundraising feature and Tinder’s matching algorithm, SolSwipe aims to connect users to non-profits, so they can contribute to underfunded causes and communities they are passionate about. With just a swipe, users can save the organizations in their feed and make donations with one click.
We wanted to specifically wanted to incorporate Solana transactions because of several reasons:
Although cryptocurrency is becoming popular, there is no app that covers cryptocurrency fundraising for good cause
Cryptocurrency makes it easy to make international transactions, especially in areas where the currency is not stable, widening accessibility to organizations and users across the world
Solana is one of the top ten most-used cryptocurrencies, making it the ideal cryptocurrency to implement
Our project is a web application that allows users to send crypto (it is currently set up with the Solana currency) to different nonprofits they can match with.
Users can...
Sign in using their Google account
Connect their Solana wallet
Swipe left and right to find organizations they might like
Save their favorite organizations
View their saved organizations
Make a payment to the organization's Solana address
How we built it
Frontend:
React, Next.js, TailwindCSS
Backend:
Firebase,
Handles user authentication and data storage
Solana Web3.js API
Connects the users’ wallets and handles transactions between the user and the organization
Gemini API
Generates recommendation algorithm using vector embeddings to display filtered organizations based on user behavior
We used React, Next.js, and Tailwind CSS for the frontend. We used Firebase, Solana API, and Gemini API for the backend.
We used Firebase to integrate Google Authentication and store the users' information, such as their wallet address and saved organizations. We used Solana API to connect users’ wallets and facilitate the transactions themselves, and Gemini API to recommend organizations based on the user's filters.
Challenges we ran into
We ran into a couple issues with generating vector embedding using Gemini API and having it so it would dynamically update every time the user saved an organization. However, we were able to fix it by re-generating embeddings in a handleReorderingAndUpdate() function that dynamically rearranges the array of Organizations as the user swipes through.
Originally, we hadn't expected to use Gemini API, but found that it fit well with our project by allowing us to recommend specific organizations according to the user's preferences. Incorporating the recommendation algorithm was difficult, but we are proud of what we accomplished!
Accomplishments that we're proud of
We are very proud of our time management and prioritization! We worked really well as a team, learning from each other, and collaborating to solve issues.
We managed to get our framework set up in 12 hours and started the heavy backend lifting after that.
What we learned
This was our first time using the Solana API, or in fact, doing any kind of programming related to decentralized finance, especially with a vector-embedding recommendation algorithm. It was really interesting to learn how to connect those systems to a web application!
What's next for SolSwipe
Allowing organizations to register with us and enter their information and Solana address
We think this would work best as a mobile application, but didn't have the experience or time to make it one. If we had more time we would have shifted the medium to a mobile app
Log in or sign up for Devpost to join the conversation.