Inspiration

In the wake of rising costs of living, each holiday season has become a reminder that being able to celebrate is a privilege that many do not have. Following the 2025 holiday season, our team decided we wanted to bring joy to families that may not have been able to celebrate to their fullest.

What it does

Play It Forward pairs families in need of toys with households that have more than enough to go around. Based on information regarding the children's interests and age range and interests, our algorithm highlights optimal toy pairings, which families can opt to pick up--at no cost to themselves!

How we built it

Frontend

We used Lovable to create a Vite + React frontend, with Tailwind CSS handling styling and animation. We also integrated Firebase Authentication, as well as implementing other security features such as App Check and reCAPTCHA v3 integration.

Backend

We used Node.js + Express for our backend, Snowflake to handle our data storage needs, and Postman for API testing. We also leveraged Gemini API to categorize donated toys based on category, target age range, and wear, to help users quickly fill in forms.

Deployment

  • Used Vultr as a cloud provider
  • Used Docker to containerize both frontend and backend services
  • Purchased domain using get.tech
  • Used scp command line tool for file transfer to prepare deployment

Challenges we ran into

In light of the many technical sponsors of this event (and the many prizes associated with their products), all of our members embraced new technologies to create Play It Forward. None of our members had any previous experience with Snowflake, Gemini API, or Vultr, and we ran into many difficulties due to our unfamiliarity.

Accomplishments that we're proud of + Security Enhancements

This project was the first time many of our members had actually deployed a web app. In order to make it happen, we not only utilized Vultr for cloud hosting and deployment, but also added many security features, such as: rate limiting our APIs, using App Check and reCAPTCHA to combat botting, restricting our API keys to known domains on Google Cloud to prevent abuse even in the event of a leak. Additionally, we enabled the DDoS protection option for our Vultr server, sanitized API inputs, and used parameterized queries for all database queries.

What we learned

Being the first time we had contact with many of the technologies, our team greatly expanded the breadth of the tools at our disposal for future use. Additionally, we deepened our knowledge in the tools we were familiar with.

What's next for Play it Forward

Going forward, we want to introduce a points system to incentivize donations, where donors earn points that can be redeemed for rewards such as toy-store discounts or vouchers. We also want to explore a separate points system for kids, tied to milestones like chore completion and positive behavior. In addition, we plan to build a more robust recommendation system using Snowflake to improve how we match toy listings to each family’s needs and preferences.

Built With

Share this project:

Updates