We were frustrated with the current way that subscription based business models work. For businesses they are fantastic and allow them to have recurring revenue and predictable gains. For customers they are disorganized and often one-sided. We know that much subscription contracts are not a new concept in Ethereum so our goal was to redesign the subscription experience to improve it overall.
What it does
Portera is a wallet platform that we designed to contain all of the features that we have in mind for our product. The first feature that we chose to work on for the hackathon is subscriptions management. Portera combines all of a person's subscriptions into one place fixing a long standing problem of people having subscriptions with many different vendors and no universal way to cancel, renew, or update payment method. The user experience, assuming a customer already owns a Portera Wallet, involves the customer visiting a vendor's website and simply tapping a subscribe button that instantly subscribes them to their service with pre-determined terms. At any time a user can view or cancel their subscription. The other important facet to this feature is our rating system which at the moment uses a very simplistic method of adding and removing points from both customers and vendors to allow for evaluation of creditworthiness. Currently a defaulted payment collection will both instantly cancel a subscription and deduct points from a user, while ongoing successful payment collections will earn a user points. This rating system and a future vendor rating will be used to further empower customers to make the right service choices while also giving vendors the power to codify subscription terms.
How we built it
We went heavy on the Solidity portion of our project as so much of what we are building is logic and financial terms. The system involves a portal for users to access their wallet, a portal for vendors to access their subscribers, a global contract that acts as a registry for vendors and customers, and lastly a one-click turnkey HTML/JS "Subscribe" button for vendors to implement into their websites. Our process started with many hours of upfront mechanism design that started turning into solidity prototyping and eventually UI development.
Challenges we ran into
Coding in Solidity is both mind blowing and stressful. As experienced developers we typically know what we need to do to achieve a goal, but blockchains have qwerks such as transactions, networks, single sign-on accounts that are powerful but also unusual to standard app development. We also ran into challenges with the lack of cohesiveness in the current state of Ethereum. Everything changes so quickly and you have to be careful because even a month old blog post or a 2 week old stack overflow answer may be completely incorrect.
Accomplishments that we're proud of
There's nothing more rewarding than seeing our application run for the first time. Even though it sits in a state of incompleteness and not being ready for a public beta, we'll never forget the moment we cheered when we saw our transaction get mined which meant we had made our very first subscription!
What we learned
Solidity and Ethereum are two things that will be very important in the next few years. Keep working on blockchain projects because the knowledge will put us in a great position when employers start adopting the technology!
What's next for Portera Wallet
As we mentioned, Portera is a platform for us to provide more personal banking tools besides the subscriptions feature. We already have half baked plans for investments, charity donations, and gift cards. Before we get there though we plan to continue working on the subscriptions feature to get it into a testable state that we can share with friends and the Ethereum community.