Inspiration

My friends moved between cities a few times and had trouble disposing many of their possession - particularly furniture. They did not have donation centers nearby so ended up throwing their mattresses in out community trash. I kept feeling that those mattresses could have been put to better use by donation, if no takers were found. Due to COVID-19 pandemic, it is difficult to meet and know people so I felt such an app was needed.

View slides at Google Slides

What it does

GiveAway is a mobile app for users in a community to buy, sell or donate old items, rather than them going to waste. This can act towards environment sustainability and building a sense of community, as well as reducing carbon footprint. This project is my first attempt at building a full-fledged mobile application using Flutter and Firebase. It is also my first major submission to Devpost for any hackathon.

I have been working to build the following user stories so far:

  • [x] User can register a new account
  • [x] User can login to his account
  • [x] User can view items in feed
  • [x] User can post a new item
  • [x] User can upload an image for his item
    • [x] User can upload image from photo gallery
    • [x] User can upload image using camera
  • [ ] User can edit his own posted item
  • [ ] User can delete his own posted item
  • [x] User can tap on item to view additional details
  • [ ] User can filter his feed by item category and distance
  • [ ] User can donate items instead of selling
  • [ ] User can find donation centers near him on map
  • [ ] User can message or call the owner
  • [ ] User gets notifications of updates to feed
  • [ ] User can have in-app messaging feature
  • [ ] User can follow other users

How I built it

I built it using Flutter and Firebase. I learnt a bit of flutter basics from a free LinkedIn learning course (that SJSU provides) by Angela Yu. I used Firebase as my backend database. I thankfully didn't run into trouble installing Android Studio as I had it already, just needed to flutter SDK.

Challenges I ran into

  • A totally new programming language - Dart - meant a lot of errors that I did not understand right away like I do with Java.
  • I also had trouble configuring the cloud firestore of Firebase with the app, especially with time and geolocation data type conflicts.
  • I realise I have many small but important features remaining to build e.g. I still have not put donation option.
  • I am still strugging with the following in particular:
    • Routing between screens in a cleaner way
    • Edit and delete operations on items
    • Call/message and Google Maps integration

Accomplishments that I'm proud of

I am happy I was able to build a basic prototype of my app with a new technology in such a short time. It is not the most polished app in terms of UX, I'm afraid, but I am still glad of making a flutter app from scratch with the UI that I currently have. I couldn't have possibly achieved the quite clean UI in android.

What I learned

  • Dart - a new programming language
  • Developing and debugging a flutter app (that I can hopefully flaunt on my resume)
  • Using Firebase with mobile apps
  • More patience

What's next for GiveAway

  • Adding all the remaining features/user stories
  • Making the UI more clean and interactive

Built With

Share this project:

Updates