PHP Class, API requests for scripting languages, and Harmony Node API Explorer

Hi Everyone! I hope I did this right.

Project Name

PHPH1 (PHP Harmony ONE)

Proposal

Create a PHP class and a few scripts that will return calls to the Node API. It could be used by other scripting languages to dynamically retrieve data for API calls without having to write all the code for the various JSON requests. Once complete, I plan to use it to create a lightweight and simple responsive web based block explorer that views properly on phones and tablets. I have already written a rough form of the class and plan to release it GPL V3 when finished and host it on github. The class package will also contain an API explorer that will show devs the code necessary to use each call.

All class functions will adhere to the API naming convention so a developer can use the API documentation Harmony already provides should they need to.

If possible, work with the Harmony devs to figure out why a few of the RPC request variables do not work as prescribed. And, if wanted, I can update the Node API documentation. The reason I am mentioning this is because I have found two versions of the API documentation and in a few places, The official documentation was wrong and the other version was right. In a few places they don’t have the same params yet the non-official one works and the official one does not.

NOTE 2022-3-3: Since this request was originally posted, there has been 26 or so methods added to the Harmony Node API Documentation. This means my class will basically need to double in size. I was asked to also generate documentation for the class which I plan to use PHPDOC for. I will need to go back and write in all of the documentation comments in order for PHPDOC to do its magic. I have adjusted the request to reflect this time

Proposal Ask

My total shows 30 working days at 8 hours per day: 240 hours
Using bottom end recommended hourly rate: $110/Man Hour.
My ask is $26,400

Timeline

  1. Create a PHP class with every API call in it.
    a. I have 37 of 63 methods completed
    b. The remaining methods should take approximately ~7 working days (56 hours) to add to the class

  2. Optimize and modernize the class code reassess the PHP code logic and revamp if necessary
    a. ~3 working days (reduced from 7). Almost complete.

  3. Create a MOBILE FRIENDLY Harmony API explorer into the package to assist developers in learning how the API works
    a. The design has already been implemented and just needs to have the new API method forms and API documentation sections created and a few adjustments. It is time consuming. (~5 working days).

  4. Create documentation on the “homepage” of the explorer package including configuration and simple Javascript/jQuery code examples. This also includes how to extend the network and shards in order to do things like run a local node and get data from it. (~5 working days)

  5. Create documentation for the class and explorer using PHP DOC. I have to write in all the doc blocks in the code so it generates everything nicely. Get it generated and then probably a few tweaks to the interface. (~5 working days)

  6. Create a package where a developer could drop the package into a directory and safely use it for retrieving data using other scripting languages with minimal input. I plan to provide 3 different download packages: Full with full API explorer, minimal with just the class and remote call script, and class only. As long as I have my stuff properly set up on github, this should be pretty easy. (~2 working days)

  7. Report API methods that do not react according to the API documentation (this happens as I work throughout entire project as basically an include. As far as time to report and deal with it depends on how fast the line of communication is). I have a few noted already.
    1 day

  8. Maintain the class and project if/when the API changes/expands (depends on how often the API changes, just part of maintenance).
    a. If we have a method explosion like this last time, this could turn into a lot of work to stay up to date with the API. I was looking and I believe the original EVM has like 62 or so methods. If there are plans to expand, please let me know and I will include it in the bounty if that is okay.

  9. Maintain any bug reports etc on Github
    a. ~2 days time over a year then I’ll just do it

I wanted to note, I also own a small IT company and have work I have to do for it so it won’t be like I can just go and blast it out. I would require about a 90 day timeframe to finish. There is some buffer in that just in case I have an extra busy spell with my company.

I have time tracking software and will be able to report every session done for the project and a full report when completed. Once I get the latest interface ready, it will be uploaded in full to github and then we can track changes through there as well. NOTE: I have not been tracking time on this project since the beginning. I wasn’t planning on applying for bounty when I started this, it was suggested I do this on reddit by a couple people. I’m starting to track time now.

This is a tool to help along beginners, provide and alternative way with built in testing for developers to query the API and hopefully at the same time assist in helping new developers in the ecosystem. Once it is complete I could do a public thing on Reddit. Or I could develop a video demonstrating some ways it could be used.

Possible future project plan using PHPH1: Build a node, Create a basic, mobile friendly, Harmony blockchain explorer, start exploring the capabilities of a local node. Maybe attempt to create a personal NFT auction house for my wife’s artwork (We have 1 NFT set 90% ready and it is like NOTHING we have seen so far, very unique)

External Links

GitHub Project: GitHub - ILL-DIE-TRYING/phph1: PHPH1 is a PHP class that bridges the Harmony ONE Node API to PHP. Through this, many scripting languages will be able to query the PHP class. The class is designed to validate, insure the request data is in the right format, and return information saving web developers from having to write the code themselves.
Temporary Testing Site: https://phph1.saddlerockit.com

3 Likes

Misspelled the address and the edit button wouldn’t work;

https://phph1.saddlerockit.com

Thanks for submitting this proposal.

Can you break this bounty down to the number of person days per each of the milestones, and when’s the expected completion date / duration?

Hello!

I edited the original post and expanded on time, people days as requested, and a little bit more.

Thank You for the opportunity!

If you need anything else please let me know. I hope I got you what you were looking for this time.

All good. PHP fan here. This will help web2 developers adopt quicker. I can see this expand to other languages like Python, Javascript, etc. Can you add more time around UX to https://phph1.saddlerockit.com/? Super important component for adoption.

Also, can you estimate the equivalent dollar estimate, per our bounty guidelines?

I already have a newer and MUCH nicer interface started. If you would like, I can make a short video of it so you can see where I am going. I’m not the best UI/UX guy but I think the latest version on my dev site will hit the mark. I searched the site for bounty guidelines and found a page but it didn’t mention anything about man hours or such. Could you direct me please?

Sorry it would only let me put one pic in a post.

1 Like

Just making sure I found the right place. Is this correct?

“We recommend $10K-$200K as a bounty’s reward, small teams of 1-3 persons engaging over 3-12 weeks, and effective hourly rates of $110-$185”

Correct.

The documentation should present itself similarly to industry standard docs. Some examples:

Or use GitBook

I actually have plans for built in documentation. It should be extremely similar to what is seen in the Postman documentation at https://api.hmny.io/ . The home page would include installation, usage, and other stuff, each method would have its specific documentation built into the method page. I’ve almost got a template complete for the new design and methods. Once I get everything where I am satisfied, I will upload the new version with limited methods for the time being and feedback while I convert each method to the new design. I’m hoping and believe it will be well received. I’ll update the ask ASAP as I am working for a client at the moment. Thank you for the assist!

Edit: I have to kind of chuckle at this. I was very tired this morning. Would PHP Documenter be sufficient for documenting the class?

1 Like

Screenshots of where I am currently at with the method documentation portion of the template. The documentation for the method isn’t formatted yet but should come out looking like the postman docs pretty much. As you can see, with every method I will be coloring the required fields in the form. Feedback is welcome!


Sorry for multiple replies. For some reason I am unable to locate the edit button for the original post so I can enter my ask portion. Do they lock after so long or something maybe?

Please have a look at https://phph1.saddlerockit.com
Be sure to try on your phone as well

There is only one working method so far as I have focused hard on the interface. Feel free to try changing from mainnet to testnet or shards or whatever. When you open the one method, there is a bar above the form you can click.

Just leaving a note. There has been work done on the Harmony API documentation recently which will expand the scope of my work. Also the documentation will expand the scope of work a little bit as well. Great to see work being done in this area!

1 Like

Hello! I am sure you have been very busy doing the conference and catching up afterwards. Just a friendly reminder I am here and still working on this project. I would love to be able to finish out this request so I know it is complete whether I am accepted or not. I just can’t edit the original request anymore for some reason. I appreciate the opportunity to apply at the very least. Have a good one!

Updated your account @ILL_DIE_TRYING

Can you help justify the total ask based on the guidelines mentioned

“We recommend $10K-$200K as a bounty’s reward, small teams of 1-3 persons engaging over 3-12 weeks, and effective hourly rates of $110-$185”

Thanks

Hello!

I believe I have everything needed now. Please review the entire proposal as much of it has been rewritten. My ask is also there. Thank you for such an opportunity! I never imagined I would be applying for something like this when I started building this project.

Thanks for updating the proposal.

Approved for a Bounty grant of $26,400. Congratulations to the team and thank you for continuing to update the community with the developments on this to expand the Harmony Ecosystem! :tada:

Looking forward to the initiative to launch on Harmony’s Mainnet with the milestones above.

Meanwhile, to prepare receiving funds, email your identification documents to kyc@harmony.one and create a Gnosis Safe MultiSig wallet at https://multisig.harmony.one and using instructions below
:arrow_right: Setup Gnosis Safe with MetaMask & 1Wallet

Checkout the Funding FAQ for further info at Harmony Funding FAQ

We’d love :blue_heart: to see weekly updates on this channel to keep the community posted on this proposal’s progress!

OMG! THANK YOU ALL!! I will be busy today so won’t be able to do anything until tonight or tomorrow morning. Again, thank you and the team so much!

2 Likes

Congrats for the approval!