Project Details
Industry : Web Development
Tools Used: Hosting.de API
Region: Germany
Technology Used: PHP
The Team
Project Coordinator: 1
Developers: 2
Goal
Our client is a web development agency based in Germany that came up with the exciting idea of developing a custom portal to automate their web development process.
Simply put, they sell 3 kinds of web design packages to their customers with a specific set of features. Customers can visit the website and purchase the package of their choice. Based on the purchased package, the website will be created and delivered to them. To automate this process, they wanted a custom portal to be built with the provision to install these web design packages automatically by the project managers without any developer’s involvement. i.e project managers should be able to,
- Register a domain
- Create a sub-account inside their Hosting account
- Install a WordPress website with a prebuilt readymade theme and templates
with a few clicks from the dashboard of the portal without going anywhere else.
With this being the core requirement, there were a few other integrations that needs to be done to this portal like Formstack, Salesforce, Ziflow, and Trello.
This Case study is mainly for web development agencies that are planning to automate their web development process which will help them efficiently utilize their resources.
Initial Analysis
Considering the size of this requirement, we broke it down into multiple modules and started the analysis. The role of the above-mentioned integrations like Formstack, Salesforce, Ziflow, and Trello was clear and their APIs were very documented as well. So, we decided to keep this aside and concentrate on the core requirement of automating the web development workflow which involves Domain Registration, Sub account creation in the hosting account, installing a WordPress, and uploading the prebuilt theme and templates.
The client did some research and came up with the suggestion of using Godaddy for this process. So, we started analyzing the Godaddy API. To our surprise, Godaddy API was not well documented and it was getting very tough for us to understand and conclude whether it is possible to achieve this requirement using GoDaddy. Their support responses were also not that helpful so we decided to move away from Godaddy and choose another service provider for this requirement.
One thing we concluded was we should choose a service provider that offers all these solutions rather than selecting different service providers for Domain registration and hosting, etc. Because choosing different service providers for Domain Registration, and Hosting would make the process even more complicated as we have to use multiple APIs and depend on their support teams as well.
Choosing Hosting.de
In addition to our detailed inputs and guidance, the client did their side(business) of the research and also cross-verified the possibility of achieving these requirements with the support team and made a decision to go with a service provided called Hosting.de. Hosting.de is a well-known german company that seems to be an exact fit for what we are looking for. Also, as it is a European company, the client was more comfortable on that front as well.
After purchasing the account with Hosting.de, the client shared the login credentials of the account with us to start the analysis and proceed with the development.
Challenges with Hosting.de
As the requirement involves various processes and different modules like Domain registration, Hosting, File System, Database, etc, we prepared a flow diagram by breaking down the requirement into multiple steps to match it with the Hosting.de API and plan the development process. After preparing the flow diagram, we confirmed it with the client to make sure our understanding and the flow is correct.
Limited API Documentation
This was a huge setback because API-based development mostly depends on API documentation. Without clear API documentation, it will be challenging to estimate the time and effort needed for this work as well.
We discussed this with the client and suggested doing a PoC(Proof of Concept) to understand the API(working together with Hosting.de Support) and to confirm the possibility of achieving our requirements. Once we complete this PoC work, we would be able to come up with an approximate timeline for developing this custom portal as well.
We shared the flow diagram with the support team and asked for the API endpoints and the parameters to be passed for each endpoint. The support team shared the code snippets for the first few steps and agreed to share the other steps as we progress.
As most of these processes are crucial, it would be difficult to work directly on the live server. For this, they also shared with us the Staging/Demo version of their hosting.de portal which is an exact clone of their live portal that would allow us to create domains, hosting, databases, etc for testing purposes.
Lack of information on PHP cURL library
Another issue we had with the code snippets shared by the support team was, code snippets were based on the PHP SDK library. We were planning to use PHP cURL for this PoC work as it would be easy and time-saving. When asked about the PHP cURL library they said that they don’t have it and asked us to use the staging version’s GUI (web UI) to create a subaccount and use the debug console from the browsers to see what request the GUI sends to the API.
This was kind of disappointing and a bit surprising to see the lack of documentation and basic libraries not being in place despite being one of the prominent players in the industry.
Understanding & Progress
Initially, it was challenging for us to work on this as there is no proper documentation to refer to. In addition to that, we had to rely on the GUI of the staging site to create Php cURL requests on our own. It took us some time to get used to this process.
Even though the major goal of this PoC work is to get a better understanding of the API and to gain some confidence, we decided to make use of these snippets or functions which we create in this PoC work for future development purposes as well. By doing so, we could reuse these codings and save some development time.
As we started creating these cURL requests, we created them under a Postman collection to organize them in a better way so that it will be easy to share and collaborate with other developers in the future.
Even though we had a flow diagram and step-by-step process planned, at times we had to improvise the process and reorder the steps wherever necessary. For instance, our initial plan was to upload the WordPress file in the file system and create a database and link them both but as we started learning this API, we understood that API provides an option to Install WordPress(Apps) directly. So we skipped the steps of creating the database and uploading the WP files in the file manager and instead we directly installed WordPress using that specific API endpoint.
As we progressed, we became more confident about building such a portal to automate the process of Registering a domain, Creating a sub-account inside the Hosting plan, and Installing a WordPress website with a Readymade theme and templates with a few clicks.
From a developer’s point of view, the significant takeaway from this project is we were able to confirm the possibility of building this kind of portal even with an API that doesn’t have proper API documentation. So if we have a well-documented API, the possibilities are endless.
As an end note, if you are a web development agency and serious about building a custom portal to automate the web development workflow as mentioned above, send us a message or call us at +1 (210) 787 3600.