We were going to attempt to build a Dwolla/payID app; however, we realized that a nongeek would not be able to create their payID to use our app. So we broke up into two teams. Team “A” continued down the Dwolla app, and we(the “B” etter team) started to solve the issues of nongeeks being able to create, edit, and delete their payID data as well as post a URL for anyone to see their payID's. We put our heads together and the three of us took on the challenge.
James took on a one-click Digital Ocean droplet as well as using Gravity Forms to create payIDs using payID server 1.0. Brian took on using native WordPress plugin using shortcodes to publish the created PayID’s using payID 2.0 and Jerzy created payID 2.0 with a react app to do everything we were not able to do using payID 1.0.
What it does
We started by allowing an end-user to create a droplet from Digital Ocean that would allow you to set up your own payID server with what we are calling “payID 2.0” functionality. After updating your DNS you have a live payID server with two react apps.
Next we have a step by step option on how to use Gravity forms in WordPress to create their payID without having to “code” anything. However, since Gravity Forms is not free, we also created a standard WP plugin with the ability to create edit delete your payID and post a short code to display the results on a WP post/page.
Finally, we realized there were some missing features with the current payID API/Server. We built a Digital Ocean droplet with a docker install that allows a user to create what we call payID 2.0. We have submitted this droplet to Digital Ocean for a one-click install approval. This droplet includes a proxy that will allow you to add simple or complex authentication to the /admin 8081. We wanted a more secure way for apps to connect to the payID server. It also includes missing API calls like get all users and add/delete addresses to your current payID user. You can see many of these things this being used well in the react app.
How we built it
We first scoped out the project as a team by asking a few friends how they would accomplish their payID. After getting back the results we choose wordpress as the main platform by quickly realized that an out of the box solution was needed while installing the payID server. We used native Wordpress plugins, used PHP and bootstrap to create our own, GoLang, React, Docker, and Nginx for the rest.
Challenges we ran into
We found and submitted a few bugs to the payID team. We also ran into how do we keep this secure as well as allow nongeeks to update their payIDs without needing to know how to use curl or code. We feel we overcame all of our challenges by the end of our project.
Accomplishments that we're proud of
We are extremely proud of the ability to allow authentication and authorization under just one port. This allows the ability for other to build apps based on many different permissions. Once the droplet is approved by Digital Ocean then there is a very easy way to get a payID with your own domain up running in minutes. Lastly, we are proud of the multiple ways mass adoption can be achieved with our apps.
What we learned
We have learned that the need for this is real. The ability to allow users to run their own payID server to allow other apps to call on the latest addresses is much easier than asking or putting in the ability for long complicated addresses.
What's next for web3devs
We very much enjoyed this project and if the community and judges like it we would be happy to poll for more features and push them.