This project’s brief was to create an online system for building-maintenance clients of Task Contracting to submit details of maintenance jobs. I had spent some time researching a product called AyaNova but it was deemed more complex than necessary for Task’s requirements. It occurred to me that WordPress’ commenting system might be usable, and that is what I ended up building.
This was a very difficult job for me as it was early in my career of learning and creating website solutions and it was a complex requirement. It took me a long time to figure out how to build the system so that tickets for each client would remain exclusive to that client, with no possibility of users accidentally gaining access to tickets outside their own company.
One of the main reasons for choosing to use WordPress as the technology was that Task Contracting had pretty specific requirements for the ticket data and the backend management. Using Advanced Custom Fields meant that I was able to create a user-friendly admin interface for managing tickets.
The resulting solution has the following features:
- A Client post-type with which users are associated.
- A Property post-type which is linked to a single Client.
- A Service Request post-type which is linked to a single Property.
- A two-tier system of Client users: One for managing Properties and Service Requests; and one for only submitting Service Requests.
- Client users can submit Service Requests for a Property through a front-end form.
- Task Contracting staff can manage and comment on Service Requests through the
/wp-admin
, including updating its status, adding images and setting the fee-rates. - Any staff update to a Service Request is added to the frontend, which can be seen by logged-in Client users, and a notification sent.
- Client users can respond to Service Request updates via comments and notifications are sent to Task staff.
Overall I was very happy with the result, and it has served Task Contracting very well over the last seven or eight years. That said, given how much I know now, the codebase leaves a lot to be desired! It is also likely that there are other, more suitable options available for a customised ticketing system that I would recommend over creating one from scratch with WordPress – osTicket comes to mind.