Fast Cooking a Mobile App with an Admin Server

Our Goal

Build a mobile app with user registration and authentication, with users generating data including images. Such data will be shown to other users. An admin server providing a web based UX to view and manipulate users and data. Users of the mobile app will be communicated by a variety of means : email, SMS, phone calls. Users will be notified of events with push notifications to their mobile devices. As users will upload images, images will be filtered by human moderation. Users actions within the app are to be tracked.

The target customer of such a project is a startup that wants a fast and cheap mobile app on multiple platforms, a simple admin, and wants to charge users for certain actions or subscriptions.

The app and the servers-side are to be completed fast and cheap. Parse.com - a Backend As A Service (BAAS) fits right and center in our solution.

This solution is applicable to iOS, Android, and PhoneGap apps.

Ingredients

Recipe

Data Storage and Admin

Parse.com will provide us with all of the backend services we need. It provides the notion of users and these users can be tied to the social network accounts (Facebook and Twitter). Thereby providing for authentication using social network accounts.

The usual amount of user data generated by a mobile app, leaving aside images is a small amount of key-value pairs. These will be stored in Parse Data with a data browser built-in.

The data browser provides the administrators with a simple way to modify the data and to control the user population (activate/deactivate) users.

While one can store images on Parse, for a massive amount of upload of an Instagram-like app, we need something of a more industrial grade with a matching reasonable price. Amazon S3 will be our cloud storage. It has excellence SDKs for all mobile platforms. One caveat is that to use Amazon S3 you need to a run a ready made Token Vending Machine in the Amazon cloud (Amazon EC2). This provides you with authentication in order to avoid storing your company Amazon credentials in the mobile app.

To provide a fatter administration interface than a mere data browser, we use Parse Hosting, build a web application using Express.js MVC for Node.js (so now you know that Parse.com server-side is Node.js).
Business logic on the server is built with Cloud Code, again using Node.js.

Push Notifications

Sending notifications to users of mobile apps is such a common thing these days that any prospective customer will want it to notify users of any new happening. Parse provides interoperable push notifications that will save us on building servers for Apple and Google.

Communicating Users

To send SMS to users, and call users, we use twilio which is integrated with Parse. To send email we use mail gun which is integrated with Parse.

Photo Moderation

Any reasonable image upload app, must moderate the images it shows with all these freaks running around. CloudFlower provides a crowdsourcing solution and is integrated with Parse.

Payments

stripe is a mobile payments solution that is integrated with Parse.com. However,it can be used only by US-based corporations. For the rest of the world, we use Zooz - another mobile payments solution.

Analytics

Flurry Analytics provides for actions tracking and user segmentation. It is much more refined than iTunes Connect for segmentation.