Inspiration

Memories are an integral part of our lives. They help us reminisce about the good times we've had, and they allow us to reflect on our past experiences. However, in today's fast-paced world, we often forget to take the time to reflect on our memories. We wanted to create a tool that would help people slow down and appreciate their memories. That's where MemCache comes in.

What it does

MemCache is a mobile app that allows users to upload photos, but they won't be able to view those photos until a year later. This encourages users to create a collection of memories that they can look forward to revisiting in the future. The app also allows users to add notes to their photos, which can serve as a reminder of why that memory is special to them.

Camera

Take a memorable photo. Name it, and select a date for unlock. Hit a button to upload it to the memory map.

Memory Map

View public memories on a map. Locked photos will be blurred, unlocked photos will be visible. Tap on a pin to see more information about the memory, such as when it's going to be unlocking.

Memory Feed

View and manage your own memories in a list view. Edit memories (extend unlock date, delete it entirely).

How we built it

Challenges we ran into

Iteration speed with Android Studio (specifically, emulation)

Some of the components we were working on required a full rebuild of the app to test a small change. This hit our development speed and made even smaller features take a while to implement.

MongoDB on Mobile

Initially we tried using a MongoDB driver like KMongo. We quickly learned that MongoDB drivers are not supported on Android, only JVM.

We had to backtrack and do research on the best practice for using MongoDB from a mobile device. We found a product from MongoDB called Realm which provides this functionality.

Accomplishments that we're proud of

One of our biggest accomplishments was creating a fully functional app within the short timeframe of the hackathon. We also pride ourselves on the simplicity and elegance of the user interface.

Overall, we believe that MemCache has the potential to help people appreciate their memories more fully. By providing a tool for users to capture and save their memories, we hope to encourage more people to take the time to reflect on their past experiences.

Placing Pins on Google Map

When a photo is uploaded, its pin gets added to the memory map. Initially the pin was a default maps-like pin, but we wrote a custom UI component which shows the memory photo and name when a user taps on the pin. We are proud of figuring out how to render custom UI on Google Maps because it was not straightforward and poorly documented.

What we learned

  • Android Development
  • Kotlin
  • MongoDB on Mobile
  • Storing photos as a blob

What's next for Memcache

Gamification

We wanted to add a points system to the app. Here's how it would've worked:

  • Users will be notified of photos near them that will get unlocked soon
  • If a user is at the photo's location when it unlocks, they will earn points for it.
  • Longer unlock times (i.e 1 year) will be awarded more points than shorter ones (i.e 1 minute)

This would introduce a community aspect to the app, like Pokemon Go. People in a community might gather at a specific location to view a 1-year-old photo that's going to be unlocking soon.

Built With

Share this project:

Updates