🌱Inspiration

“One’s trash can be another’s treasure.”

A 2023 report shows that a large portion of the items going into waste are in functional condition; in particular, around 460,000 tons of textiles were discarded in 2018, with 65% of them being reusable.

Targeting young adult consumers in local areas, a platform for small-scale used item trades encourages people to give away used items for something they need instead of contributing to the landfill, strengthening the bonds within communities, and reducing harm to the environment.

✨What it does

GreenSwap is a web application that allows people to upload used items they own that they wish to exchange for others’ items in a “matchmaking” mechanism akin to Tinder.

The utilization of the application is very simple:

  1. Users can simply sign up on the website using a username and an email address
  2. Upload used items for trade
  3. Start swiping on displays of other users' items!

After a match is found, the two users can work together to determine pick-up time, locations, and so on. GreenSwap offers a first-come, first-served platform for locals to bring a good cause to the world while saving money.

💭How we built it

Frontend development of this project was done using Next.js 14 with App Router, TypeScript for type safety, and Tailwind CSS for styling. The Lucide-React library is implemented to supply the interface with icon assets. Radix-UI is used to provide low-level components to the layout.

Backend was written in Python using the Flask framework. MongoDB was used as the database to store and retrieve data when interacting with the user.

🤔Challenges we ran into

Development Environment Control was a major challenge we faced in the development process, which was the standardization and version management of dependencies. As our team has varied experience and fortes, it took some time to ensure that the members’ setups - especially the installation of dependencies on VSCode - are identical and free of potential errors.

Technical Hurdles, specifically for the backend, were the number of APIs to be implemented. Linking the frontend and the backend code was proven to be more difficult than expected - the team agrees that, as three of the four members are first-time hackathon participants, the time constraint adds another level of strenuousness.

🎉Accomplishments that we're proud of

Database Setup was a great success. We are pleased to have Xena with experience in MongoDB's Atlas Database to set up the required functions and utilize its versatile storage capacity. This provided significant support during the backend development process.

Frontend Visuals were in a simple and slick design for the web application, which we are happy about. The utilization of strong visual cues, such as the swiping animation for the items powered by Framer Motion, satisfies our goal of making the interface simple yet understandable.

📝What we learned

Adaptation to Change in the field of STEM was the moral of our story. Due to the different coding experiences of the team members, we were sometimes required to dabble in languages and frameworks previously unfamiliar to us to debug the project. For example, Turbopack is a relatively new bundler in Next.js, and Victoria had to look into its documentation to debug the compilation errors related to it on the spot. A very useful skill we have learned is to evolve with the environment during the coding process.

Soft Skills were also gained in the coding process. Though we encountered countless technical difficulties and dead ends in our development process, we were determined to complete the project. We gained first-hand experience of the importance of engaged discussions, groupwork, and time management in a professional setting that could be used as a stepping stone for future success in the workforce.

💚What's next for GreenSwap

  • Implement the trained Gemini AI to provide insight into user preferences
  • Implement a tagging system for the items to improve the matching experience
  • Embed an online chatroom system into the platform to maximize ease of communication between users
Share this project:

Updates