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
-
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 -
Optimize and modernize the class code reassess the PHP code logic and revamp if necessary
a. ~3 working days (reduced from 7). Almost complete. -
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). -
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)
-
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)
-
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)
-
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 -
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. -
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