Macky has been great. He took time to understand the (very) old bespoke code and to work out how best to bring it up to date with the latest software and security requirements. He has communicated well throughout the process, and the solutions have been implemented at speed. I recommend Macky to anyone.
Project - Considera
Modernisation of a dated PHP website
Mark contacted me asking if I could take a look at his website source code with the view to updating it. The website had been build to provide a database of experiences, submitted by gardeners and farmers around the world, of their use of biodynamic preparations for crop improvement. The code was written several years previously with an old version of PHP and sorely needed updating.

Here's What Happened
Codebase Review
After reviewing the orginal code I identified some security issues with the way that database updates were being applied from user input via forms on the site. I could also see that most of the code was procedurally written and some basic coding principles were not being applied. I worked with Mark and his familiarity with the complex database relationships to refactor the code with a better file structure and up-to-date coding principles.
The outcome
Improved database security
The site was using an insecure method of updating the database from user input, which left it vulnerable to attack by SQL injection. I set up a new framework utilising prepared statements to mitigate this threat.
Mobile Responsive
Before coming to me the site wasn’t responsive. I converted the original HTML table structure to a more modern one based on divs, set up CSS with media queries, introduced fluid typography and spacing using clamp function and CSS variables, and created a mobile version of the site navigation.
SEO Improvements
I identified some issues with the site’s on-page SEO, namely incorrect use of heading tags and missing image alt text. Whilst refactoring the codebase these issues were generally dealt with and on-page SEO vastly improved.
Use of MVC Pattern
Model-View-Controller (MVC) is a software design pattern that separates the logic of an application in to distinct interconnected parts. Restructuring the files using this pattern made the code easier to read and maintain.
DRY principle - Don't Repeat Yourself
This principle was applied to any programmatic functions that were repeated in the original code. By moving repeated code to a single reusable function or class the code base was streamlined and made easier to maintain.
Literature Filters
The site has over 2000 documents listed on the literature page so I helped Mark set up a filter based on category and keyword search with sorting options.
User Login
Users create an account and have to log in to submit their experiences to the database. I refactored the user login and session handling to again improve the maintainability of the codebase and add a redirect after login to send the user back to the page they were on before they logged in.


