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
Log in or sign up for Devpost to join the conversation.