Inspiration
In Japan, the idea of 'drifting bottles' has been a very romantic form of communication. In movies, there are scenes which an individual throws a bottle containing a message into the ocean, and an another person on the other side of the ocean picks it up and experiences the wonders and thoughts of the anonymous sender whom they have never met. Our concept of 'Bottles' is inspired by this kind of communication. Sometimes, we just want to share some little aspect of our lives to someone, even those we have never met. Maybe we just want to share a little joke, a short inspiring story, or a rant of frustration. 'Bottles' allows you to do so and creates this invisible connection between people.
What it does
The application has two basic functions. It allows you to either drop or read a bottle message. When dropping a bottle message, an UI pops up that allows you to type in a message, and it will drop the bottle at your current location. In order to read a message, the user has to tap on a bottle while being physically located within a 30m radius of where the bottle is dropped. After the tap, an text view UI pops up displaying the message stored in the bottle, and the message will be permanently deleted.
How we built it
We built this app for Android phones with Google’s Map API in Android studio using the Firebase Cloud as a backend.
Challenges we ran into
Using Android Studio can be challenging in itself. There are a lot of moving parts, and our team came in mostly unfamiliar to them. Gradle dependencies, layout files, and Android’s app structure were all fairly novel and, as such, confusing at the start. In that same vein, finding a database API that worked cleanly with the IDE took a good chunk of time. Our first attempt using Mongo-DB was clumsy and difficult to understand, but when we found Firebase, our development process sped up significantly.
Accomplishments that we're proud of
We are proud of a few accomplishments.
- Some of our team members had to work remotely, so we are very proud that we managed to coordinate our task assignments and ideas effectively.
- We managed to implement real-time bottles location updates, which was a big task for us.
- We were able to polish the front-end, which made our application look somewhat nicer.
- We didn't even give up when we encountered issues and challenges. We spent hours on MongoDB, which ended up not working and drained us both in time and morale. However, we stayed motivated and patient and completed our application.
What we learned
- We became more familiar with Google Maps API & Firebase.
- We learned more about real-time location updates.
- We learned more about various Android Studio components.
What's next for Bottles
If we had more time, we would have liked to make it so you can only see bottles near your current location. The goal with this would be to make it more of a surprise when you check the app in a new area. At the moment, it is possible to see where all bottles are anywhere in the world, which negates that goal. Beautifying the UI is another future goal. We would also like to add more complex content to the bottles such as pictures, hyperlinks, etc as well as a notification system for when you are near enough to a bottle to pick it up.
Log in or sign up for Devpost to join the conversation.