I've lately picked up baking as a hobby in order to pass the quarantine time. A couple weeks ago, I wanted to make some chocolate muffins, but wasn't able to as I had ran out of eggs. However, I still had enough food around that making a trip to the grocery store wasn't really justifiable, as social distancing was still the priority. I wished there was a way for someone already at the store to simply drop off some eggs at my door as they headed home, in exchange for a small fee for their troubles. That's when I decided to make Grocery.
What it does
Users can make orders, deliver groceries, or do both! If you're missing an item in your fridge or pantry, you can place an order for the item you need. Other users that are on grocery runs will be able to see your request, and can pick up the item and deliver it to your doorstep, in exchange for a small driver's tip. This effectively decentralizes the grocery delivery service and allows community members to help each other out with a financial incentive attached. Grocery reduces the traffic at supermarkets and promotes social distancing measures, allowing fewer total trips to stores to be made.
How I built it
I used the Android Studio IDE with Kotlin to write the main logic of the app, as well as xml for the UI. I connected the app to Firebase, which handled the login authentication and database management back-end of the app.
Challenges I ran into
Connecting the app to Firebase was quite difficult as I've never used the platform before, and fetching data alongside asynchronous processes caused a lot of bugs.
Accomplishments that I'm proud of
Building a complete app with a dynamic back-end was very satisfying, implementing the Google Maps API into the app was also a challenging but gratifying feature.
What I learned
Gained experience in working in the Android app workflow, writing logic with Kotlin, and effective UX design.
What's next for Grocery
- Add GPS tracking of the delivery driver while they are en route to the destination so that the user has an idea of when their order will arrive.
- Add a secure payment client (PayPal, Google Pay, etc) so that the delivery driver can be reimbursed and paid through the app.
- Port to iOS devices so that Apple devices can also use Grocery.
Try It out
android, android-studio, firebase, google-maps, kotlin, xml