Thursday, April 14, 2016
Ruby, AngularJS, iOS & Android Development

Social TV for Storytelling

StoryTapTV was a fun, but challenging project. StoryTap was originally built as a real-time crowdfunding solution, but we re-built the platform into a social TV for storytelling. Although this project doesn't exist on the internet anymore, you could participate with friends, family, and people of similar interests by adding episodes to tell stories in real-time. I was brought on as the lead full stack developer to take over this Rails & Angular mobile web application, and architect our native iOS and Android builds.

It's always difficult stepping into a codebase that has no documentation, mutiple developers working on it over years, no testing processes, CI/CD pipelines, or any support or transfer of knowledge really, besides scattered code and one non-technical person's vision. It makes for a very fragile and nearly unscalable system. It's difficult to make any changes or upgrades and build new features, without some unkown or unrelated part of the system breaking, or security becoming vulnerable, et al. We also wasted some time with tasks like migrating from bitbucket to github for version control (they both use Git). If there's a budget limit for your application, it's important to prioritize issues and save some features or changes for later versions of the application, especially when targeting an MVP build. A big chunk of my effort felt fruitless, namely because I spent a lot of time working with the mobile web Angular / Rails core system, only to architect and start re-building the platform in Java & Objective-C. I didn't even get to finish the native builds because seed money ran dry and the project just started hunting for more funding.

Anyways, we essentially created Instagram Stories and IGTV before those type of features for Instagram or Messenger ever existed. I think people should be careful with constant pivots and poor architecture & design principles. Constant massive pivots and a poor source code foundation, coupled with the lack of resources and documentation, caused a myriad of issues and constraints; most notably the inability to properly develop, refactor, test, or QA the application as it grew. Some cool features built for the platform included a home feed, ability to add photo/video episodes, user profiles, friends & connect page, promotional incentives, promoted stories, user posts, social sharing, user onboarding and login, tagging, event creation, campaigns, discover, report/flagging system, and hashtag search.

Tech StackRuby 2, Rails 4, Angular.js, Java, Objective-C, XcodePostgreSQL 9.3, DigitalOcean, Amazon S3, SendGrid, WePay, GoDaddyjQueryBootstrap, Video.js, Lodash.js, SassCapistrano, Rspec, Capybara, PumaNginx, Unicorn, ActiveAdmin, OmniAuth, Bitbucket, Trello, Skype, Git

Link copied!