Expanding beyond a basic Rails CRUD site.
So I've got a fairly basic CRUD style rails app, which has a list of
Distilleries and and blog
I'd like to expand it quite significantly in the following ways:
Add authenticated users To allow users to interacat with
Gins. e.g. be able to favorite, add to wish list, rate and gamification etc
- Add a user dashboard The dashboard would display the above interactions, and also a feed of all users interactions
- Build native mobile apps I hear mobile is the future ;) but to also allow for the below:
- User uploads of gin photos I want to have a monthly activity where users have to find gins based on some hints, and they can then upload the gins that they find.
So, this has really got my head aching, and feels wayyyyyy beyond my capabilities, but hey...
I have some main questions:
What can I use for user authentication, so that a user can login in to the app, and also web clients? Good ole' Devise? Google Firebase, AWS Cognito, Oauth perhaps Okta.
If I use something other than Devise, how and where would I store the user data for likes for example that a user might make in the web client and/or the mobile app.
I'd like to keep 'standard' rails app for my static pages and the blog, (so easy to do in rails, plus SEO advantages) but am thinking of building a seperate VueJS app for the dashboard. I would render Gin and Distilleries in json API, which could also be access via the mobile apps.
Appreciate this is a big quetsion, and will have many opnions, but any thoughts or comments would be appriciated as my brain hurts and my girlfriend doesn't care to be a soundboard.
Ok so I've only just read in to JWT. Seems using the Knock gem, this might be the best way for me to authorise users based on my own user model, espeically as it appears it will also be suitable for mobile app too.
I can give you diferent types of advice (dev or bizz), going for the latter as that's what I would've wanted 10 years ago in this situation.
Don't overthink this. If you are working on your first app (assuming based on your post), don't even think about mobile now (nor Vue).
Think about what you want your product to really be and focus on just that and really nothing more.
More bizz-advice: do not build anything more than a simple blog where you can build an audience first based on useful articles about gin.
Some actual dev advice (dev platform and all): stick to Devise for authentication, don't waste your time bulding your own. Devise is tested throughout the years and the many gotchas you stumble upon are covered by using Devise. Mixed dev/bizz: stick to pure web developement for now, it's overwhelming enough already.