Skip to content
all projects

~/project/giftdex.md

GiftDex

The perfect gift, found for you

date
August 6–8, 2021
type
Hackathon
won
🏆 Best Domain Name · RoboHacks

Donald Lee, with Ricky Zhao, Rosa Chen, Henry Zhou

giftdex · preview
GiftDex: The perfect gift, found for you

## overview

Built for RoboHacks, an MLH hackathon over August 6–8, 2021, where it won Best Domain Name from Domain.com.

Friend, family member, or someone you just met: finding the right gift is hard. GiftDex uses machine learning to do the guessing for you.

## demo

## inspiration

Inspiration

Every problem deserves a solution, big or small; the small fixes are the ones that make you appreciate the little things. Around the holidays we all struggle to match the people we love with the right gift, so we used machine learning to predict what they'd want and web scraping to go find it.

## what-it-does

What it does

From the recipient's age, gender, and interests, GiftDex predicts the top three gift categories they'd want. It then searches the web within those categories, drops anything over budget, and shows you three products. Don't love them? Reroll.

## how-we-built-it

How we built it

We surveyed people across different age groups to build a diverse, accurate dataset, then trained a model on it to predict the three most popular gift categories for a given age and gender.

We scraped the web for items in those categories. To sharpen the results, users can add the recipient's interests, so an anime fan gets products that match both the predicted category and the interest.

After scraping prices, names, and purchase links, we rendered everything on a Flask site, with JavaScript driving the reroll and the search animation. Then we grabbed a domain from Domain.com and pointed it at the site.

## challenges

Challenges

To predict the perfect gift we needed to understand what people want by gender, age, and interest, and datasets combining all three were nowhere to be found on sites like Kaggle. After hours of searching we built our own survey instead. It was also our first ML project, so training and testing the model was its own learning curve.

Web scraping in Python was another hurdle: getting an element within an element, and scraping pages that change on every load. And on the design side, making the page look good while fitting in every feature we wanted took real work.

## what-we-learned

What we learned

Beyond ML, scraping, and UI design, we learned how much teamwork and organization matter. Once we knew each other's strengths we could split work accordingly, and we taught each other through our weak spots so the next hackathon would go smoother.

## next-project

Shark Cult

Tame sharks for points

read the write-up