Github Repository
Inspiration
Recognizing that the United States population wastes over 40% of the food supply every year, we wanted to create a project that seeks to work toward a solution to this. A solution we hoped that every individual person could contribute to. There is also a need for community and connection at this moment. Importantly, we need real tangible connections, not just over the internet. These were the important inspirations as we thought about our app.
What it does
In terms of what we hope for our application to do, the app should allow users to add items they won't use, like leftover homemade lasagna, or a can of beans they've had for weeks. These items would then be shown to other users in their area, and if a user wanted the item they could offer a price to the seller, or they could offer to trade an item they have. For example, a slice of lasagna could be traded for a slice of cheesecake that someone wasn't going to eat. Thus, food would be exchanged, and less would be wasted!
Right now, our application allows users to create accounts, and add food items that they wish to sell or trade. They can also find listings of items they can buy or trade for. Importantly, we haven't fully implemented the search tools or the buy and trade tools, but those would be the most important things to do next.
How we built it
We used Android Studio for the front end, Firebase for authentication, and Firebase Firestore as the database. We built it by spending many hours on our discord general voice channel and attempting to figure out how to use Android Studio in conjunction with the database. We, of course, also relied on stack overflow and other helpful internet resources.
Challenges we ran into
We had challenges first with getting our git source control to work smoothly across the four of us. It was a little difficult being remote to try and coordinate this. A lot of the build files kept changing and were pushed through GitHub which was a mistake. Adding a proper .gitignore file helped with this.
We also struggled with reading data from Firestore database. This was a lot more difficult than we foresaw and led us to spend many hours just trying to debug certain parts of it. Specifically, on the listings page. Figuring out the exact format for the queries and then how to deal with the data type that was returned from the queries kept us challenged, interested, and at times, very frustrated. As you can see though, we were ultimately able to figure that part out! Woo!
Another significant challenge came with just working remotely. It was definitely difficult to adequately coordinate and talk all the time without being in person. It was also hard to debug with each other or figure out why one person's code worked while another didn't. There were of course some benefits, but it was an issue that we had to workaround.
Accomplishments that we're proud of
We are proud of the implementation of Firebase in our application as we were able to add email authentication in our application with password security. Additionally, we were able to allocate data that was entered in by our users so that Android Studio wouldn’t overload with data. The user interface of our application looked very pleasing and simplistic which will be nice for consumers. We were able to set up constraints properly to have a clean structure and set up the buttons in the backend properly for each page to transition with one and another. It is a standard email and location login process which users will be accustomed to and the add items tab is incorporated well with our Firestore Database. We are most proud of our listing page as we are able to successfully query our Firestore Database which can be a challenge and makes it easier for users to select their items they would like to purchase. Overall, we are proud that we have a working very basic prototype and made it through many of the challenges we had!
What we learned
The most important thing that we learned was teamwork. At first, we had issues with the GitHub contribution since we were all contributing to it together but we somehow managed to fix that with the help of our mentors who were always there to help us. We found ourselves learning new stuff all through the journey since we tried to help each other with fixes even though we were not professionals nor very experienced with these tools. So, that actually embedded the enthusiasm to learn and grow together. We got to learn a lot about android studio and its usage along with the firebase. We tried things we had never done before and tried to push our limits. That actually helped us in figuring out how to use the resources for the best. We were all strangers at first but the team spirit grew along the way and now it really feels like a proper group. So, making connections along the way is one of the best things we got through the platform and hackathon. :)
What's next for home to home
Our hope is that we keep working on this project! This is an idea we were all excited about over the weekend. Of course, we are located all around the country and the world (California, India, Idaho, North Carolina, eep!), so will surely be difficult but could be very exciting!
Specifically, we want to complete filtering items through the zip code or specific location. Additionally, we want to complete transactional functions like buying and selling. Another feature we want to add to our app is a way to attach images to each entry to show users what items look like (whether that be by file attachment or a camera request to Android). We also want to add automated GPS location tracking so that zipcodes can be modified to the location of the phone. In terms of possible organizational ideas, two have come to our mind; making a delivery force to offer more employment opportunities as well as make things more convenient for our users, and partnering with local food banks/welfare organizations to create more benefits to communities.
Built With
- android-studio
- firebase
- firestore
- java
Log in or sign up for Devpost to join the conversation.