Authentication, Backend service for App and WebApp

I require some advice on how to tackle a project in Ionic. I have been working Ionic and Angular JS for the last two weeks and I have got 70% of my project complete.

I require some guidance on the best services, methods to use in order to complete my project. The scope of my requirements are below:

Background

  1. An exercise programme prescription app for Physiotherapists and Physical trainers to use.

  2. It will be App and WebApp based. The data (Exercise database, and corresponding data (4500 entires making 72,000 lines of JSON currently), User management data, user created data (created programmes etc)). This will mean that the App and the Web App will need to access the data centrally and both are to be Synced.

  3. A method of sending the Exercise programme to the client/customer. Currently all this information is being held in an Object in localStorage however I need to send / display this data for the user on a website.

Questions.

  1. How can I authenticate my users on both the App and WebApp and the user information be synced / held centrally. (Parse.com / dreamfactory / AuthO)

  2. Which backend service should I use to serve all my data to both the App and WebApp. (Parse.com / DreamFactory)

  3. The WebApp is going to be almost identical to the App. May I use the www folder for the website so long as I maintain the /lib dependencies etc?

  4. How can I send user programmes to the clients. My ideal workflow would be:

a. User Clicks/Taps on a saved programme and selects “Send Programme” and enters email address and submits it.

b. A unique weblink is generated that, when clicked/tapped goes to a web service and shows the users programme. (They do not need to be logged in view their programme. ).

c. This is where I am really stumped. How I am going to query my backend data service and display it for the user.

I need to apologies for the ‘abstract’ nature of these questions. Any help or advice as to the direction I should channel my energies in researching these issues would be appreciated.

Kind regards

I have been doing some research into the WP API (Wordpress) and its extension for user auth. I wonder if this is a bit messy. I don’t really like the wordpress database and the way its going to force me to use ‘Posts’ etc rather than creating custom collections on the database.

However for user signup and authentication it might have some scope?

Does anyone have any experience with this setup ?

1 Like

Ok, anyone coming across this for help…

In the end I used Parse and there are several example apps that will give you a kick start on GitHub including this one which really got me started. From there you can muddle through the JS documentation availible on Parse.com.

Happy so far.

Sounds like you are developing my app for me. :smile:

Any tips on your experience with Parse? Mainly curious about syncing a user’s Parse data offline as well and vice versa. Happy to provide more details on what I hope o achieve but curious if this was a concern do you. Thanks.

I use parse through a number of factories now which has made things a lot easier to pass data around the app.
Not got into the weeds of requiring off line functionality and syncing - probably going to make my users have a connection using a Cordova service check plugin.
To tackle your problem I would save to local storage as well as parse. Checking the service using the above plugin. You can use .set .save to update.
Every parse query / action gets a callback time stamp this can be used to know which is the most recent and then push or pull conditionally.

It really depends I think on how far and customized you want it to be (and cost!).

I haven’t had a chance to work with Parse, I don’t like relying on 3rd party companies for my data and API’s so I write them myself. PHP is obviously widely used and there are SO many resources on making your own API. My current app follows a very similar structure as yours. My trainers have the chance to use the whole web app version AND a phone app, and the customers have their own app. They all use the exact same API so I can reference data, make calls, and keep authentication in one place.

Another level down is how I do my project management. I have 4 git repos for this. One for the customer app, one for the trainer app, one for the web app, and one for the API. I do releases on all of them at the same time so they stay consistent, but this allows me to fix things or modify one without worrying about the others.

The level of detail and precise control I need for my app requires me to code everything by hand. I think depending on the complexity of your app Parse may be a great first option. It seems to be very popular among the Ionic community.

Just my three cents.