E-waste is a global crisis.

In a world where well-functioning phones, laptops, etc are constantly being thrown out in favour of newer upgrades, our platform provides an eco-friendly alternative for dealing with such devices. We hope DeviceXchange can help reduce the amount of e-waste in our world, especially in third-world countries ill-equipped to deal with hazardous materials.

In addition to the damaging effects of throwing out electronics, we also took notice of the extensive amount of resources that go into manufacturing them. Materials like lithium, silicon, zinc, aluminum, copper, gold, cadmium, lead, and mercury are sourced from everywhere around the world, and their extraction is hugely detrimental to the environment. Each time a new device is made, nature suffers just a little bit more.

Thus, we decided to make a platform that a) reduces the buildup of harmful e-waste and b) encourages people to reuse others' second hand devices rather than purchasing a brand new one.

What it does

DeviceXchange allows people who feel like they have gotten enough use out of their devices to give it to others. This way, the devices aren't thrown out, and are used to their fullest potential instead of being a toxic presence in the environment.

Using our platform, vendors can create ad postings for the device they want to give away. Specific data about the device, namely, what materials they're made out of (i.e. Aluminum alloy or Plastic) is loaded automatically via our web scraping program. And most importantly, these materials are labelled as either "Sustainable" or "Unsustainable", helping inform people of the device's environmental impact.

People interested in a particular ad can send a request (tagged with a short message) to the vendor. To make sure their devices are going to the best possible owner, vendors can decide whether or not to grant the request.

How we built it

We used the MERN tech stack to build this web app. We used MongoDB, a NoSQL database to store information about device advertisements as well as individual users. We also used Express.js to communicate with the database and create a REST API. React.js was utilized for the front end user interface. Finally, we used web scraping with Cheerio.js in order to obtain information about the environmental impact of devices from other websites.

Challenges we ran into

The first challenge that we ran into was scraping items off of the internet in order to get an idea of the environmental impact that these devices would have if they were thrown out instead of given away. We were new to web scraping so this was an ambitious endeavour for us. However, after hours of wrapping our heads around it through tutorials and debugging, we were able to create a script that scraped websites and gauged the environmental impact of electronic devices. The next challenge was connecting this to the frontend. We learned how to turn out results into JSON format, which we then used directly in the React frontend. Lastly, and possibly our greatest challenge, was connecting the frontend to the backend. It was quite difficult working through the full-stack bugs that came after only a bit of limited coordination between the frontend and backend group. Specifically, getting each person's device advertisements to show with the image was a particular challenge due to the rather difficult nature of image storage in MongoDB. However, we were able to work through it as best we could and come up with a functioning prototype.

Accomplishments that we're proud of

We were able to create a full-stack prototype of our app. Although this was indeed hard work with many different components, such as databases, user interfaces, web scraping, and creating REST APIs, we were able to overcome the bugs that our team ran into.

What we learned

We learned many new technical skills during this hackathon. We all learned quite a bit about web scraping, JQuery, as well as how to combine React frontends with backend APIs built with express. Outside of the technical lessons, we also learned how to collaborate, as we realized we were most successful when we worked together as one unit rather than split apart.

What's next for DeviceXchange

So far, we have scraped materials data (what the devices are made of) for Apple branded mobile devices. In the future, we hope to add materials information for more brands of electronics. In addition, we will try to gather data for other electronics too, not just mobile devices. Furthermore, adding bidding and a credit card API (such as stripe) would be a next step in monetizing the web app.

Share this project: