DavisHacks is a social good hackathon. We came with the desire to make a difference while we learn. MyStory is a charity with a very small team but a big impact. However, they rely on pen and paper to collect data for a critical part of their process. That's a problem even we can solve!
What it does
NewStoryStore is a storage site for data waiting to be uploaded to a cloud server. When we found that NewStory has iPads on the ground we were curious why they weren't using them already. NewStoryStore also serves as our reason to believe that file management is tricky.
How we built it
Tutorial after tutorial we followed our plan of breaking our high-level goal into discrete steps. We followed a lead with MicrosoftAzure, who had a good collection of guides that promised off-line data sync. In the process we deployed and integrated a sql database that synchronized todo-list items across all of our computers. We later deployed a blob database to approach our goal from another angle while we explored xcode development for the first time.
Challenges we ran into
Our plan for offline data sync worked on the premise that we create a local SQLite that we later merge with the main DB when we have access to internet and the cloud. This plan was great if we are dealing with simple text but our case was different. MyStory does not only share text, they need pictures and videos to be sharable. We found out that this was not practical for an SQL database. Our plan for blob storage solved the data type problem. Blobs can be anything, we can store anything. However, the Azure guide for blob storage integration seemed to be out of date. Updates in xcode changed some critical library dependencies. Although more experienced iOS developers might have overcome this challenge, this was a wall that changed our goal of a live demo to the realization that we'd be delivering an explanation.
Accomplishments that we're proud of
We sent messages through a text field that showed up on all of our screens. We added pages to our UI We explored even though it was scary We endured
What we learned
Nothing is simple... but it can be broken down to something that it. Iterative progress gets you places
What's next for NewStoryStore
Blob storage is a good step forward. To achieve offline storage we could implement a table of items to be uploaded when connectivity is possible. Bluetooth sync can be useful if connectivity is not possible for long durations. This could enable users to work together and/or back up data on other devices.