Inspiration
Helping others has been proven time and time again to be one of the biggest drivers of happiness and satisfaction in life. A Utah State University study showed that voluntarily giving to charity caused happier moods in participants (link). With Giveo, we empower people to donate to nonprofits that match their passions, whether that donation is 50 cents or 50 dollars. We encourage users to donate a small amount every day, which snowballs into a big difference. This idea was inspired by a statistic we saw recently: In 2017, after Hurricane Harvey hit the Texas Gulf Coast, more than one million donors gave donations under $100 to the American Red Cross, which contributed over $35 million towards crucial hurricane relief (link). On the nonprofit end, local/smaller nonprofits tend to struggle to reach an audience outside of word of mouth referrals. We wanted to make a meaningful impact on the reach of these charities and allow them to receive donations from people who may never have heard about them without our app.
What it does
Giveo is a swipe-based app, built to connect users with a feed of charities personally tailored to their interests and passions. The minimum donation is only $0.50, and we actively encourage users to prioritize donating small amounts often rather than rarely giving one large donation. When users log in they are greeted with a carefully curated feed of nonprofits they are likely to enjoy. They can then swipe in any of the four directions. Swiping right likes the nonprofit, swiping left dislikes it, swiping down saves it to favorites, and swiping up allows the user to view more information and donate. Alternatively, four buttons are provided that match these functionalities. If a user accidentally forgets to save or donate to a nonprofit, they can use the search bar to find it again. Users can also view their profile, including their friends and followers. Users can also apply to become a charity account, where they can view donation history and analytics.
How we built it
Our frontend is built in Swift, while the backend, written in Python, is powered by FastAPI and hosted on an AWS EC2 instance. We use Firebase for real-time data and HDF5 (h5 files) for fast lookups and partial file loading. Our recommendation algorithm represents both users and charities as vectors with a dimension for each tag; using cosine similarity to match them. An event system dynamically adjusts recommendations, balancing familiar suggestions with exploratory ones. User preferences tend to follow a bimodal distribution, meaning they typically "like" or "dislike" charities rather than having extreme affinities, making the system both adaptive and efficient.
Challenges we ran into
One of the biggest issues we had was datatype agreement between the frontend and backend. ObjectIDs work well in a database, but are challenging to index by in an h5 file. We resolved this by building maps between indexes and ObjectIDs. Cloud hosting was also a bit of an issue, but we eventually solved it by utilizing Firebase. Finally, we had some issues getting FastAPI running, but with a lot of perseverance and group collaboration, we were able to get it running well.
Accomplishments that we're proud of
The UI turned out incredibly clean, and the backend algorithm is both quick and follows the distribution patterns we had aimed for. We also successfully brought together a team of hardworkers who each specialize in specific domains and exceeded even our own expectations for how well we worked together
What we learned
Most of us had not used Firebase before, so that was fun to learn. Also most of us had not worked with an iOS front end before. We gained more experience in Figma. None of us had worked with an h5 file as a database before. Most of us had no experience working with a recommendation algorithm as advanced as the one Quinn developed.
What's next for Giveo
We are all deeply connected with charitable organizations. Quinn’s mother runs a nonprofit. We all have impacted our communities by working for local nonprofits. This is a topic we are deeply passionate about and a project that we want to carry beyond this hackathon. We want to add additional features such as donation streaks, leaderboards, the ability for charities to post articles and updates, integration with Stripe for payment, implementation of social media networks, more sign-in options, and more dynamic customizations for charities. With Giveo, we want to turn giving into a habit, not an obligation.
Log in or sign up for Devpost to join the conversation.