- Base logic ~ 1 week
- Controllers/Views/Mailers ~ 1 week
Guardian - Last commit was 10 days ago. Should work.
It has full list of required hooks including revoke and refresh methods.
Also we can build 2 auth systems.
- Cookie based for Web
- JWT based for API.
User will store JWT token in Session and/or Cookie. Also I’ve worked with it and I have a tutorial with explanation how to work with it. https://gist.github.com/nikneroz/2363815cf6d66a8d78ed79a4d6a75203
Uberauth - Last commit was 1 year ago. Should work.
Looks like we don’t have another choice. We’ll try to use it. If it don’t work, we’ll fork and fix it or write logic in app without it.
- uberauth_facebook - Last commit was 1 year ago. Should work.
- linkedin - Missing!
- uberauth_google - Last commit was 1 year ago. Should work.
- uberauth_twitter - Last commit was 1 year ago. Should work.
- database_authenticatable - No problem.
- registerable - No problem.
- recoverable - No problem.
- rememberable - No problem. Guardian supports this.
- trackable - No problem. IP address(last/current), Login timestamps(last/current) and Sign in counter.
- validatable - No problem. Standard changeset validations.
- confirmable - No problem.
- omniauthable - Uberauth + Support libs.
- masqueradable - Looks like it's simple functionality. We need to add two routes(login_as, logout_as), check if user admin and add one more user resource to server session.
- Stripe base logic ~ 3-6 weeks
- Stripe controllers and views ~ 1-2 weeks
Stripe for Elixir - Current working version 2018-02-28. Under active development. Last commit was yesterday.
At this moment hireclub_web is using stripe-rails(1.2.0) and stripe_event(1.7.0). Last working stripe version is for 2017 year. So stripity_stripe should cover all required functionality. We just need to implement all actions from app/actions/stripe_action and add webhooks routes.
Profile settings:
Subscription:
- subscribe
- unsubscribe
Cards:
- view all cards
- add card
- remove card
Payments:
- view all paymentsapp/services/stripe_service.rb
app/models/payment.rbapp/models/customer.rbapp/models/invoice.rbapp/models/referral_reward.rbapp/models/appointment.rbapp/models/order.rbapp/models/payout.rbapp/models/card.rbapp/models/bank_account.rbapp/models/provider.rbapp/models/subscription.rbapp/models/plan.rb
customer.subscription.createdcustomer.subscription.deletedcustomer.subscription.updatedcharge.succeededcustomer.source.createdcustomer.source.updatedaccount.updatedaccount.external_account.createdinvoice.createdinvoice.updatedinvoice.payment_succeededcustomer.createdcustomer.updated
- Base chat and relations ~ 1-2 weeks
- Other functionality - ???
appointment.rbappointment_category.rbappointment_log.rbappointment_message.rbappointment_review.rbappointment_type.rbappointment_type_provider.rb