Inspiration

We believe that every child deserves gifts no matter their economic status. Hence, we aim to make gift giving a more seamless and personal experience through making a novel all in one platform for discovering children in need, finding great gifts based off their preferences, and monitoring the process.

What it does

Matchbox is a platform which connects donors with children in need, based on shared interests, location, and other preferences. Donors create a profile, and our heuristic based matching engine seamlessly provides a list of children they can support. Our engine ensures that it supports underrepresented students who might typically receive less attention. To make giving even easier, our AI provides tailored gift suggestions for each child when organizations register students/children on their behalf. Schools and organizations can create an organization profile, add students and their interests, and our AI engine provides 120 gift suggestions in ranked order per student. Our system allows for manual input, or administrators can take advantage of our image recognition powered by Gemini which allows for providing image input for a student's worksheet to fill their data.

To get synthetic image data, we used a dataset from an open-source Meta project. It was a 50GB dataset containing over 180,000 hand-drawn children's drawings. We then took each drawing and randomly assigned it to one of the 1,000,000 users/children. Due to the large amount of synthetic data, we had to create an AWS EC2 virtual environment in order to download the file quickly and store it. We sent the data to a Digital Ocean S3 bucket. This process saved us an enormous amount of time and space.

Additionally, we integrated the mapbox library to show doners how far away the product they just purchased was from the child's organization on a 3d map.

How we built it

We built Matchbox using this tech stack:

  • Frontend: The user interface was built with Next.js, React, and Tailwind CSS to create a smooth, responsive experience.
  • Backend: The backend consists of Next.js API Routes as well as Go and Python for data processing, synthetic data generation, and database manipulation.
  • Database: We used PostgreSQL hosted on Railway to manage our data, including all donor and child profiles. For authentication and user management, we used Supabase. The core of our platform is highly efficient SQL queries that perform all matching and scoring logic directly within the database, enabling sub-second response times on over a million of records.
  • AI/ML: Powered by Gemini for image recognition to extract children's interests from uploaded photos and to generate intelligent, personalized gift recommendations. We integrated Gemini with a Google Search scraper API to fetch real-time product suggestions with pricing and availability.
  • Data Pipeline: Used AWS EC2 for processing our large-scale synthetic dataset and Digital Ocean S3 for distributed storage of generated profile data.
  • Data Seeding: To test our system at scale, we wrote a Python script to synthetically generate over 1,000,000+ unique child profiles with realistic interests, demographics, and preferences.

Challenges we ran into

Our biggest challenge was building a matching algorithm which was fast, scalable, and fair to students/children. This was a challenge as we had perform specific search queries on over 1,000,000+ unique child profiles. Another tough challenge was integrating multiple APIs and even having them use each other, such as prompting Gemini to use a scraper API for Google search. We also faced challenges in deployment, debugging a 500 Internal Server Error on Railway, which we traced back to a network configuration issue: our script was trying to connect to the database using an internal-only URL from an external environment.

Accomplishments that we're proud of

We are most proud of building a scalable and performant matching engine from the ground up. Designing a database system that can query, filter, score, and rank over 1M+ records in milliseconds was a major achievement. We are also proud of successfully generating a large-scale, realistic dataset, which allowed us to validate that our solution would work in a real-world scenario. We're proud of our AI-powered gift recommendation system, which generates 120 ranked gift suggestions per child by analyzing their interests and searching real products. The integration of image recognition for intake forms saves administrators hours of manual data entry. Successfully generating a large-scale, realistic dataset of 1M+ profiles allowed us to validate that our solution works at a real-world scale. Finally, we're proud of the user interface we designed to make the experience feel smooth and engaging.

What we learned

We learned that for data-intensive tasks, how you work with your data can lead to magnitudes of less or more latency in your applcation. This taught us the importance of database indexing in achieving performance at scale. We also learned valuable lessons in DevOps and the importance of understanding the network environment of your deployment platform when debugging .

What's next for MatchBox

  • Verification & Trust System: Implement comprehensive organization verification, background checks for high-volume donors, and fraud detection to ensure platform safety.
  • Payment & Fulfillment Integration: Add Stripe and PayPal for seamless checkout, with direct integration to major retailers (Amazon, Target, Walmart) for automated gift purchasing and shipping coordination.
  • Enhanced Analytics Dashboard: Provide organizations with insights on donation patterns, popular gift categories, seasonal trends, and individual child engagement metrics.
Share this project:

Updates