I've kept my daily 'log' going since almost around 6 months at this point, but there are many days when I forget important details, or those days where looking at plain old text after looking at code the entire day just doesn't seem right. I've considered what else could be better of logging, and I decided to mix Snapchat memories with locations to create: TimeWalk.
What it does
Our app allows provides an interactive way of keeping track of your day through media and text, in essence, working as both a log and something to look back to in those days of severe nostalgia. Currently, we only have functionality for a single person and a single, day, but there is a lot more to come.
How we built it
Our app is broken up into two different parts since we didn't have enough experience with either to try and sync them together.
The front-end is completely built in React-Native. The back-end is a collection of scripts that set up tracking on a device, trace it throughout the day, and then returns a json of places the person visited.
Challenges we ran into
There were a lot of challenge with this one:
- Here API: It was my first time working with an API that was not of Google or Facebook. There were some instances where it was simply not logged well enough and we had no idea what was going on for a long time
- Cleaning up tracking data: The tracking was very sensitive, where even slight motions of the device could lead to it being declared as a 'new' location. We had to devise (a simple) algorithm that would 'clean' up this data.
- Images: Who knew it would be so difficult to upload images in React Native. Pain.
- Async: This has always been a challenge since we're very used to the way of synchronous thinking
Accomplishments that we're proud of
I, personally, am very proud to have written a relatively clean UI in the time we had. We managed our time well, and also realized very early on exactly what we had to do and how we should delegate it. The back-end and front-end finished roughly at the same times and that for me was an amazing feeling because I always tend to over-estimate our capabilities.
What we learned
- How to use CURL for making get requests
- How to use Async functions within loops
- Writing faster fronted
- CameraRoll access through React Native
What's next for TimeWalk
We have a ton of features lined up, that we were simply not able to implement due to lack of time:
- Integration with Snapchat: Since that was one of the motivations behind this, I want to be able to import saved stories into the location and let them be there
- More users and more days: Every user will have their own 'feed', which will be a vertical (days) x horizontal (hours) grid of their history. This will, of course, be searchable both by location and by date/time
- Trips: Create special TimeWalks for trips
- Social Media integration: Share with your friends moments from your day which inspired you to do something or left you feeling fulfilled
- Real backend: Running scripts and storing in JSONs isn't a very good idea is it
- UI changes: Just make it look better, especially the two fat buttons