Share your moments effortlessly
Motivated by our personal experiences, we have realized that the current state of the social network applications does not fulfill a particular use case that most of us share: Every time we go on a trip, to a party or to an event with friends or family, we struggle to get ahold of the photos that we took together.
The best solution to this problem has been to create a Google Photos album, after the event/trip has ended, then individually invite everyone to share their photos to it.
Some people, may choose to use Snapchat as an alternative, creating a "group chat" or sharing to the location's "Story", however, this prevents saving photos and gives no control over privacy.
So, we thought to ourselves: No one should be working this hard just to preserve the joyful memories they created with family and friends.
What it does
Aperture is the future of social photo sharing: It takes all the effort away from the experience of sharing moments with friends and family. With location-based events, our advanced algorithm determines when you are near an event that your friends are attending. We then send a notification to your phone inviting you to use the app to share photos with your friends. When you open the notification, you are taken to the event's page where you will find all of the photos that your friends have been taking throughout the event. You can now choose to save the album so that every moment is never lost! You can also tie your app to the event for a certain time, so that every subsequential photo you take until the end of the event is shared with everyone attending! We then proceed to tag the images through machine learning algorithms to let you search your moments by tags.
How we built it
We used the amazing Expo framework, built on top of React-Native. Our backend is powered by Firebase (for database storage), Amazon Web Services (for data storage) and Google Cloud Services (for Machine Learning and Computer Vision algorithms). We used git and Github to manage our development process.
Challenges we ran into
While two of us have had previous experience with Expo, the other two of us did not and none of us have had experience with Firebase. Additionally, while our team has experience with NoSQL databases, the Firebase data structure is much different than MongoDB, so it took time to adjust to it. We also had issues with certain modules (like Google Cloud Vision) being incompatible with React Native due to dependency on core Node modules. To get around this, we had to manually write out the HTTP requests necessary to be an analog to the functionality of the methods we couldn't use. One of the biggest issues we had, however, was the inability to upload images to Firebase storage from React Native (which we confirmed through GitHub issue trackers). After many attempts at converting local pictures into base64 strings, we setup an AWS bucket and uploaded the images there.
Accomplishments that we're proud of
We're proud of our ability to consume a (probably unhealthily) large volume of caffeine and stay focused and productive. We're also proud of the way we handled the React Native module compatibility issues and the workarounds we found for them. We're also happy with how much work we got done in such a short amount of time, especially given the relative lack of experience we had with the major components of our project.
What we learned
We learned about a great brand of caffeinated chocolate that is very, very effective and keeping you awake. We also learned a lot about Firebase and its Realtime Database system. Additionally, we got some great experience with Expo and React Native.
What's next for Aperture