Each member on our team had some connection to gardening, whether they had a passion for growing crops themselves or an issue related to farming that they wanted to solve. Many of use have backyard gardens, but keep it modest and grow crops only for ourselves. We wanted to create an app that created not only a virtual marketplace for fresh produce but also an app that would let others get into the gardening hobby as well.
We were also greatly inspired by the book _ Hungry for Disruption _ by Shen Ming Lee, a holistic review of how technology can address problems like food sustainability and climate change in agriculture. We learned through this book how important the decentralization and urbanization of small-scale agriculture can do. By creating an app that promotes local transport, we wanted to do a lot for solving problems like long-distance food transportation (pollution), and the perils associated with it.
What it does
Cultivate encourages people to farm with their own food and helps them so that they can grow their own food. This app also does not need any special materials. All you need is a backyard to farm, some basic material, and the instructions. Our app centers around providing everything users need to participate in the online market. Cultivate facilitates the entire process of farming, from the purchase of the seeds to the harvest and sale of the crops. After the produce is grown, you can sell the plants to create an e-commerce of produce operated by individual people transported through local distances.
How we built it
Cultivate is the product of a medley of cool technology. We use a combo of a flask server and a flutter application that work hand-in-hand to retrieve necessary data from the internet. For our storage system, we use Firebase Firestore, which enables us to get real-time updates and quick data uploading and downloading. We use firebase for authentication and storage of image data as well. For our web-scraping algorithms (we used a whopping 5 to retrieve different types of data) we used beautifulsoup in combination with a selenium driver so that we can crawl the web for relevant information on seed products, growth estimates, expiration estimates, and information on how to take care of plants over time under ready for harvesting.
We extensively used API interfacing as well. We used the ClimaCell weather API to get relevant information on rainfall, with partial code for temperature and seasonal accounts as well to produce ideal guidance for users so that they can focus on what's important rather than spending hours researching, this will give users a head start. We also used the youtube API to retrieve videos on planting instruction for a visual aid during that most difficult of times. For our UI, of course we used flutter, a cool app dev framework that enables easy scalability and deployment on both iOS and Android. We used tools like Adobe XD for a good bit of our prototyping.
Problems we ran into
As much as we don't want to admit it, we were WAY to distracted with the other events and mini-competitions in EarthxHack to dedicate a good amount of time. Needless to say, we were having a lot of fun in the Minecraft servers and competing in other competitions in that we might have procrastinated a little (a lot). On the technical side, we had multiple encounters with UI errors. We had a pretty annoying issue with column bounds in flutter UI, where columns needed to have a height set, but we spent hours thinking that it was an async issue. Ultimately, we managed to figure it out (thanks StackOverflow) and get a fantastic UI set up.
Accomplishments we're proud of.
We're really proud of our web-scraping algorithms because we built a LOT of web-scrapers and we weren't sure if we would be able to finish all of them. It was really fun testing the store out and watching results on seed shopping sites pop up. Testing our algos out on postman was pretty cool too. We're super proud of our UI, as it's super satisfying and clean-looking, and better than anything we could've expected, even the mockups that we made! Finally, we're proud of our final solution, and being able to say that we contributed to making a more sustainable world via urbanizing agriculture, and helping with climate change.
What we learned
Us on the backend greatly improved our speed with integrating the Firebase database with the frontend. Many of us learned a lot about wireframing, solution-building, and finding niches where we can contribute to the world. We learned a ton about how we work best with each other. Piecing together the app as a whole was a big learning experience for all of us.
What's next for Cultivate
Aside from some bugfixes, we're super excited to get this app onto the store, and to actually build a vibrant community on our marketplace platform, we want to set it up as a free app to encourage as many users as possible to join. One really big aspect that we weren't able to finish in time was setting up a system for proper sanitation and delivery of products, we want to create a lot more on this front so that we can build trust with users, and as a product as a whole. Adding more interactive interfacing in our app is also something we look forward to, since we were only able to create an MVP this time around. Lastly, we would like to add features that allow users to follow others, and receive notifications whenever they post a new listing. We had a lot of fun making this app, and we believe that it has the potential to change the world of backyard.