GreenShip

Project for tamuhack2020

Summary

GreenShip functions as an application for ride-sharing freight of raw materials between suppliers and customers. If your company drives part of another company's load to a location for another company, your Sustainability Score (number with leaf) goes up. This can be exchanged for money if desired, purchased as currency, and used to schedule a shipment from a different supplier. Application is supposed to encourage companies to combine shipments if there is empty space on one of their trucks, or for companies to deliver shipments in a scenario where Company A has to ship materials to Company B, then picks up materials from Company B to then take them to Company C while Company A's truck is between Company A and Company B, assuming Company C is between Company A and Company B.

There would be several types of expected users. One company could only run trucks to fulfill shipments to build their Sustainability Score, then exchange that for money. Another would be a company that purchases Sustainability Score to ship their materials places. The optimal company would be one that does a combination of both. This would keep costs down for shipping, and help ensure that not so many freight trucks are driving around with empty loads.

Inspiration

Our team resonated strongly with the ideas energy conservation and resource optimization. GreenShip arose from a desire to see how we could make the world a better place in our own way.

How We Built This Tool

We created this application as a traditional full stack application. This includes a frontend, an API, and a database. For our frontend, we utilized mdbreact with JavaScript. This allowed us to utilize a combination of the features provided by Material UI, Bootstrap, React and JavaScript. While I would have preferred developing in TypeScript, this setup felt quite similar to TypeScript. Our database was done with MongoDB. Our API was created using Python, Flask and pyMongo. MongoDB allowed us to query for coordinates from our database, which helped with our application's geo-spatial focus.

Challenges

"I found this project to be quite helpful to tackle. I come from a background where most frontend development is done in Angular. As a result, I have never had much of an opportunity to tackle a project utilizing React to the scope that we did with this. Ironically enough, I ended up acting as our primary UI/UX designer. This led me to spend the majority of my time creating and developing the layout we settled on for our project. Additionally, I picked the color theme and typography we used in the frontend. Ultimately, my inexperience with React posed a challenge for me to develop with, but I come out of this hackathon with a much greater understanding of frontend layouting principles and core React knowledge that I can take back with me to my work." ~ Sam

Lessons Learned

"State management is critical for any data-heavy application. State management in React is different than how I've learned it in Angular, and took quite an adjustment to learn. Had I come into this hackathon with a greater knowledge of state management in React, I could have developed more content for our application and filled it out a bit better. Additionally, I learned the hard way that the mdbreact package does not have compatible TypeScript bindings. This caused me to have to scrap our original frontend after about an hour of work." ~ Sam

+ 25 more
Share this project:

Updates