Safe Hosts Internet LLP
Whilst working for Safe Hosts Internet LLP I was tasked with developing a platform which could allow clients to manage all aspects of the service. All existing systems had previously existed in several different locations, and most of them weren't fully suited to work in the best possible way. Also, having multiple systems which weren't tied together in any way made things quite difficult to manage and clients had previously complained about how cumbersome some processes were. I was tasked with developing a system which would tie in all of the existing systems into a central location, as well developing features which weren't already part of any other system to build a platform which was completely purpose-built to meet the requirements of the business. With advice from other engineers about what would make their job easier, and combined with my own personal experience of working in a data centre environment, I developed a central management platform for the daily operations of the data centre.
The platform would be used for streamlining the day-to-day processes of the data centre. In particular, managing a complete list of customers and companies, a site access diary, a ticketing support system and a delivery management logger. The platform would also tie in with other systems such as the billing and monitoring systems via an API, and also communicate with various suppliers via their respective APIs to provide clients pricing on services such as leased lines.
Data centre staff would have access to the administrative side of the system, and have the ability to manage all clients and companies which are entered into the system. Such management could allow users to limit permissions to sections of the system for users, such as raising a request to gain site access, submit support requests, or to authorise a delivery to site. Such a restriction is used particularly when a company was not up-to-date with billing, or if the management of a particular company did not authorise specific users to have access to site, but were authorised to make delivery requests, or vice versa, for example. A number of other features were also added for staff members, including scheduled job reports, built-in calendar and internal tasks.
Clients would have access to log in to a client-side portal and would have the ability to manage their company details, such as name, address, contact emails and telephone numbers. They would also be able to raise site access requests, which would generate a random access code which had to be presented upon arrival otherwise the client would be turned away from site and be refused entry. A delivery management system was also implemented, where clients would submit an entry to notify data centre staff about a delivery which would be made on behalf of the client. A support ticketing system allowed authorised clients to make support queries to first, second and third-line support staff members at Safehosts. Clients could also view and download their invoices through the platform, this avoided the need for clients to log in to a second system to obtain these details. The invoices accessibility was implemented through use of the API on the third-party billing platform.
An API for the system was also developed which was used to communicate status of aspects of the system, such as if there were any tickets from clients which required attention from staff members, or the status of any active site accesses which should be made aware to staff members. This system was also required to talk to various other internal systems through use of their respective APIs. Such systems include Observium (a monitoring platform), and HostBill (a billing platform). These integrations would allow clients and staff members to view information relating to a clients service based on the response from the API, without the need to log into each of those systems. Making use of these APIs meant that everything was located in one central place for clients, and for some staff members who don't need full access to the other systems.
The system was originally built in August 2016 as a bespoke application in PHP, with a MySQL database. A Bootstrap 3 framework was used on the front-end so that clients and staff members were able to access the system and be able to fully use it on any device. In September 2019 I completed a migration of the full system from custom written PHP to the Laravel PHP framework. This was to further smooth future development of the system and to take advantage of some of the built-in features provided in the Laravel framework, such as unit and feature testing. At the same time the front-end was also upgraded from Bootstrap 3 to Bootstrap 4 to take advantage of the Bootstrap approach of flexbox and to give a more modern look to the system.