Wish you had a perfect memory? Wish you could relive the past?
MongoDB lets you store and search data over time and space with powerful indexes. Our vision was to build H.G. Wells' Time Machine so individuals could relive their history with their friends. Track people, places, physical things, and digital content in your own personal database. See your history as a feed, map, gallery, or 4D virtual earth.
What it does
LifeScope is a tool for connecting your services into a MongoDB Atlas database of you. Individuals can choose which aspects of their life to track and improve. We use integrations to index data from popular software platforms, devices, and web browsers, and put that data into your own personal Mongo Atlas cluster.
LifeScope goes beyond a data wallet of digital memories and also keeps your credentials in one place to power your digital identity and the next generation experiences. Use LifeScope as an identity provider with OAuth2 and GraphQL to carry access to your data to any software or service.
We allow users to experience their history in the ways that they want including an Instagram-style feed, an interactive map, and an augmented/virtual reality gallery using WebXR. Users can tag anything in their history to curate and organize their memories. You can also use tags to create public feeds of specific data that can be shared with anyone.
How we built it
Mongo Atlas is the centerpiece of LifeScope. We provision a MongoDB cluster using Atlas to provide a secure personal database capable of storing all of your digital memories. The database powers a GraphQL API with OAuth2. This API runs the LifeScope apps as well as any 3rd party apps that wish to access your LifeScope database.
Data is indexed from three different sources into the LifeScope MongoDB database through the LifeScope API. Our ETL system pulls data from SaaS APIs such as Facebook, Twitter, Google, and GitHub. Our browser extension for Chrome and Firefox collects user-specified portions of your web history. Our native apps for Windows, Mac, iOS, and Android collect data from your devices. Third party apps can also use our API platform to add data directly to your LifeScope database.
The LifeScope web and native apps let users explore their data as connections between the people, places, digital content and physical things in their life. Search through your memories with MongoDB’s powerful text, time, and geolocation indexes and MapReduce. Use filters of who, what, when, where, and how to filter results and then favorite your common searches to keep important answers at your fingertips.
Challenges we ran into
Designing and implementing LifeScope’s search capability was difficult from both a technical and design perspective. Enabling a performant search by relevance where the user can query for specific text while filtering results based on a geo boundary, datetime and other filters was extremely difficult to implement properly but was ultimately achieved with MongoDB aggregation pipeline and we are very satisfied with the results. A few matches, lookups, and unwindings gives us the desired results in very little time.
One of the features in the system is the ability to upload reams of location data from services like Google Locations and then estimate the locations of users’ events based on the datetime they occurred. This seemed like a daunting task given users may have hundreds of thousands of events and millions of points of location data, but careful use of Mongo’s bulk operations lets us write all of this to the database with alacrity.
We wanted to add MongoDB Charts support so that each user could get a personal infographic about their social life, productivity, entertainment, health, and more. Sadly we ran out of time and were only able to implement a prototype infographic. Will be adding this functionality in the near future.
Accomplishments that we are proud of
Getting the platform working with solid security and performance feels like major accomplishment to us. There’s nothing else out there that lets you aggregate so much of your data in one place with so little effort on the user’s end. We’ve built several powerful ways of searching and exploring your data based on a multitude of human-oriented criteria. The speed with which LifeScope can bring up the results from complex queries is astounding.
What we learned
Our team was challenged to master a wide variety of technologies in order to make LifeScope work. Major learnings include provisioning MongoDB Atlas on demand, incorporating MongDB to GraphQL, and creating data rich augmented reality and virtual reality experiences on the web.
What's next for LifeScope
We are putting LifeScope on the Windows, Mac, iOS, and Android app stores. We want to add support for MongoDB Mobile so users have access to their digital memories offline.