logo
Published on

Contributing to the ECF LMS

Authors

I originally contacted Malcolm from the English Chess Federation (ECF) League Management System (LMS) in late February 2024. Malcolm has developed, administered and maintained this system which logs results for approx 10K chess players around the country for many years now, almost single handed, which really is an incredible feat.

Using the documentation on the LMS site I connected to api endpoints that expose data from the system. I was setting up a new version of our club website Radcliffe and Bingham Chess Club using Wordpress, so I decided to write a Wordpress plugin that would make this functionality reusable for other websites.

When I emailed Malcolm about some specifics of the api he replied and mentioned that he was in the process of migrating the existing system from Drupal 7 to Drupal 10, and asked if I would be available to contribute. He encouraged me to install Drupal 10 and his custom modules, which power the LMS system, on my computer. I had never worked with Drupal before, but I am comfortable with PHP and running a web server locally. I installed the system using his instructions, as I was interested to take a look and learn about the system and Drupal.

After communicating via email occasionally over a couple of months we started to have some video calls. Malcolm explained that the previous system had used the 'bartik' theme which had been default theme for Drupal 7, and was now discontinued, and that one of the many challenges he had faced was to find and adapt a theme that would be suitable to use with Drupal 10. As I did have some time available, I agreed that I would contribute and would do so by focusing my efforts on a theme for the new system.

He had installed the Bootstrap 5 theme on the new LMS, however out of the box this was a long way off being usable for the way the modules had worked with the previous theme. I was given quite a free rein in choosing a theme that would be most suitable, and despite looking at some different options, in the end I decided to stick with Bootstrap 5 and customise it by making a custom sub theme to adapt it and fit with his requirements.

Some of the benefits of working with Bootstrap were:

  • I have used bootstrap before, so whilst I was learning Drupal I didn't have to learn a new front end framework.
  • It is 'mobile first' and therefore very responsive. Which would modernise the system to give a much better user experience on all device sizes.
  • It is accessible, which is important for all users, giving a clear and easy to use user interface.
  • It is very widely used, so information online would be more available, which can be more limited for Drupal than other more popular CMS'.

Malcolm created a gitlab repository for the theme to be stored in, and over time I developed the theme, to work with Malcolm's custom Drupal Modules.

It did take a while to familiarise myself with the way that Drupal works, which as Malcolm once mentioned that Drupal's learning curve has often been instead referred to as a learning cliff! This was important as the theme does interact with the backend code and although I have, as much as possible, separated the concerns of the theme from the modules, there were still some modifications that I needed to make to the modules also to make them work with the theme.

I made regular commits to the gitlab repos for some time as did Malcolm whilst he continued his work migrating his modules and fixing any bugs that came up along the way. We made the plan to put the new code up on a test version on the server, which he did in June. This allowed Malcolm to get a group of testers together to test the new system and see how close it was to being able to replace the existing system, which is still underway now. The plan is that the new system will start to be used as a live system in the next couple of months, watch this space!

The whole process has been a great one to be involved in, I have learned a lot and I am excited to see the new system being used. As I will be playing chess matches for my local club, my results will be one of the many that will be recorded by the system this season.

It has been great to share experience and learn from Malcolm, and work with him, to find a smooth way to contribute to his project. A goal of mine going forward is to simplify the setup of the system for development, making it easier to onboard developers so that more people might contribute to the project and my hope is that documenting it in these posts will help with that.

Please feel free to contact me if you want more information on how you can get involved and contribute!