can we grant time based permissions in hyperledger? - hyperledger

Is it possible to grant time based permissions in hyperledger? Say there is party A and party B, Party A wants to sell commodity x on discounted price to just party B but they want party B to avail that offer or agree to that offer in some predefined time . Similarly lets say if there is a patient and he wants to make his health record available to some doctor or research organization for few hours or x amount of time, how that can be achieved in hyperledgere?

For that, you have to create some kind of flags and then write the permissions based on the flag. eg:
Patient {
/*Stuffs*/
authorizedDoctors[]
/*Stuffs*/
}
But you have to control how doctors are added to the authorizedDoctors array.

Related

Best way to offering multiple subscriptions for one user (iOS, Android)

Does anyone have experience implementing multiple subscriptions model for an app? I wasn't able to find proper documentation about this topic. The most common way to create in-app subscription model is one-subscription per one-user. But I want to offer one-subscription per one-item(in my app). This means that users can create multiple subscriptions if they want to subscribe to multiple items. Each item is functionally the same.
For example, If the app is a pet location tracker and wants to track both pet A and B, the user has to subscribe to each A and B respectively. It means a total of 2 subscriptions.
Please explain it to me.
Thanks.
Never thought about such a use case, but for iOS you can create multiple subscriptions. So you could create a subscription PetA, PetB, PetC and so on. But, I think you asked for a more dynamic approach where you create a Pet subscription and the user can buy as much as he likes. As far as I know this isn't possible.
A different approach would be to create a subscription hierarchy: onePet, twoPets, threePets and so one. Your user can then up or down grade between those subs depending on how many pets he wants to track. Could get messy if you also want to offer different durations.
A third approach could be to use consumable IAPs. These can be purchased as often as the user likes, but have the disadvantage that you need to keep track of the validity period on your own and they can't be synced automatically between multiple devices.
For your pet example I would go for the second approach and offer a onePet, twoPet, threePet and a unlimitPet subscription. This is the most maintainable approach as long as you do not offer endless duration variations. Also this gets synced automatically with all devices of the user and if you like you can also support family sharing.

Stripe: Tiered pricing for one time purchase?

I am working on a project where I need to capture one time payments from an account. For a bit of background: The account has many users, where users are part of teams as team_members. I have another model we can call projects where teams are affixed to the project. It is on these individual projects that I would like to have a checkout button. The price for this one time payment should be calculated based on the number of individuals in a team, that are part of this project.
My issue is that I am not 100% sure how to achieve this for one time payments in stripe. Should I set this up alike that if I were to sell an individual item? Product (with name, description and price) and an Order to affix to the user?
I've built subscriptions plans in Stripe before, but have never really used one time payments. Any guidance on setup here would be really great.
Small Edit:
When a project is created, a team is selected. That team size is known to the project.
If I have 3 tiers for pricing:
1-5 people in a team is $x
6-20 people in a team is $y
21+ people in a team is $z
How would I go about invoking the correct tier based on the team size for the project?
If you want to keep users on your application while paying, following the web payment example is what you'll want to do. You would provide the amount when creating the PaymentIntent.
You should calculate the amount you want to charge in your own business logic. Once you've got that number, there are several ways you can collect one-time payments with Stripe.
If you want to offer the most flexibility for supported payment methods with the lowest amount of integration effort, Checkout would be a great option. You would supply the amount and a description with the line items while creating the checkout session.
If you want to keep users on your application while paying, following the web payment example is what you'll want to do. You would provide the amount when creating the PaymentIntent.

Which architure/mindset will be suitable for building a web app that users can purchase features like Azure does?

We recently had a new business rule that will require our users to pay for individual modules in our web application.
So, all the features we build in the application will not apply to all users. Some users can choose to add features that they want.
I've tried researching into an architecture/mindset to how to approach this development.
If I could get an idea on how to get started with this.. I would very much appreciate it.
I work with .NET web applications, and Microsoft SQL Server.
Thanks.
First list what "objects" or things you need to keep track of.
Users
userid
fullname
can manage his features? You said not all users can
...
Features:
featureid
description
cost
...
UserHasFeature
a link between a user and a feature
each line is userid, featureid
Using this you can query which user has what feature. Or list the users that have access to a particular feature.
In your web app, you will need administrator functions:
users management: add, remove, modify, list
feature: add, remove, modify, list
link management: add, remove, list
Reports: whatever reports you want to have
And user functions:
user: signin, modify, reset password, view all features, view features the user already has, add a new feature, remove a feature
reports: total cost of features the user is using, others
Now this is a very quick first draft. There are a lot of missing requirements:
approval workflow: can a user modify his features without the approbation of X?
payment methods
project number for internal billing
cost structure: monthly, one time, ...?
managers can view the features of the employees he manages?
...
This to remember:
Start with objects in your projet. These become tables.
Characteristics of the objects become fields in your tables.
If the same characteristic appears in many object tables, with the same values, consider creating a new table for these. Ex. in an address, you would not leave the country value as a simple VARCHAR field. You would link to another table with the country values.
List the relations. These become foreign keys, or link tables.
Split your objects. So apply 1NF, 2NF and 3NF at least. It is enough for most applications. (NF == Normal Form).
Each table and links require administrator pages (CRUD)
Users have a limited view related to their features only.
This is a huge subject, I could go on and on, but this could get you started.
Have fun!

How to check firebase realtime database pricing/usage

I'm looking to use firebase's realtime database for a few different projects and if I select the 3rd and final subscription option it changes price per month based on usage ( if I'm not mistaken ). I want to make sure that if I choose this 3rd option of payment that it's something my app can provide sufficent funds for each individual user. Is there a way I can check how much the third option would cost based on recent usage or can I find out how much data it's currently using them I can manually compare them?

How to use Business Calendars in IBM BPM 8.0.1.2

We are trying to setup a BPM Workflow involving human services(using IBM BPM 8.0.1.2).
We are able to create Routing Polices etc for each activity , but not able to figure out
how we can include personal calendars of each user during task assignment.
Usecase : we do not want to assign a task to a person who is on a vacation.
Any help is appreciated!
IBM BPM does not currently have a concept of a business calendar tied to a specific user. You can create a business calendar for calculation of due dates (e.g. this item is due in 3 business days) that can accommodate things like holidays for these calculations, but there is no built in mechanism to create a calendar and tie that to a specific user.
Now, it would be possible to create a set of services that would allow you to create per user calendars for your organization, but that feels like the wrong solution.
In general IBM BPM wants you to assign tasks to "Participant Groups" (in 8.5 this turns into "Teams") rather than to a specific user. This greatly increases your flexibility with respect to who can actually work the task over simply assigning a task to a specific person, as you can change Participant Group membership on your runtime server.
You need to know when a user is on vacation. Now this information can either come by creating custom calendar for each person but this does not look feasible good idea or Second source to get this info, can be Vacation Management System where use applies for vacation. If you do not have Vacation Management System in you organization, then this is even better - build a simple process for vacation approval and store the data for use from this process. If you have system then look for API to retrieve user's vacation details from that system.
Either way, you use this retrieved vacation info in team filter service to assign a task to only available users.

Resources