It is interesting to note that every time someone approaches you with a so called “small project”, it never actually stays small for long. Case in point is one project I worked on, a Content Management System for websites, in the fashion of WordPress, Drupal, Joomla and all. It indeed did start out small, but interestingly grew exponentially and finally, it is almost at the point where it is functionally comparable to the ones mentioned above. It got quite good that, the University where I did my National Service, decided to scrap their existing website and rebuild it on top of this CMS instead. So here is how it all happened.
I was approached by a good friend of mine, and asked to develop of website for Garden City University College. All he said was, “they needed a simple website, which had some minimal amount of content management, so that when the site is done they could manage it one their own”. Simple enough a request as any. Sadly, back then I knew about those open source CMSs but was not accustomed to using them. Hence, I decided “why not just roll out something simple”. At least, I knew my PHP well enough, and had a working copy of Dreamweaver, so I said “what the heck I should be able to come up with something in a couple of weeks”. And so I did. Several weeks later, the site was up and running, with a simple yet functional CMS.
Then, it went to the next phase, I was approached by my boss, under whom I was joyfully serving my nation as a Web Developer and asked to help produce a simple website for one of the University’s research centers. He also commented on the fact that he had seen the work I had done for Garden City and said he liked the CMS, so we should build the site for the research center on the CMS. At least, it was simple enough and could be left in the hands of the research team when it was completed. So of to work I went with the development team, and about three weeks later, the site for The Energy Center, KNUST was born, followed by a small launching ceremony, at which I was to give the presentation on the site. Cool I thought, so that was done.
The next few weeks, saw the CMS being used for all sorts of websites, most of which were personal projects for myself and my colleagues. All of a sudden, they had started nicknaming the CMS “Junior Joomla”. It was fun to see my work being trusted and considered good enough to depend on for many, many projects. At least 6 new websites were developed using the CMS, these included websites for
- The Students Loan Trust Fund
- Manhyia Palace (10th Anniversary of Otumfou Osei Tutu II)
- KNUST Congregation
- KNUST Library
- KNUST Alumni
- Educational Software (EduSOFT) Limited, and many more.
This was getting serious. More and more features were being developed into the CMS at an interestingly alarming rate and more and more bugs were being fixed and features improved daily. At the same time, I was gradually perfecting my use and understanding of AJAX, so I threw a few bells and whistles just to make it a bit more fun to work with the CMS. These AJAX features went towards the Image Management sections.
Then, just when I thought it could not get any worse. My boss calls my team for a meeting one morning and presents a proposal. He suggested we take down the existing KNUST Website, and put up a new one built a top the CMS. Further more, he requested that several new features be added, including the
- Ability to manage multiple websites using a Single Instance of the CMS
- Ability to use themes and multiple style sheets for each of the sites, to enable them change the site interface easily
Now that sounded like a tall order. A very tall one indeed, for such a small boy like my self. So my team and I set about the site re-design and personally, I avoided the above mentioned requirements as much as I could and just did the re-design. We then moved all the content from the old site to the new one and launched a BETA version of the site. Everything was going according to my personal plan (I would just quietly avoid the implementation of the above requirements and let the site a be launched. Hopefully by then, my service would have ended and the next batch of teaching assistants would deal with it). My plan worked for a while. The beta site run for a while and no one mentioned the above requirements. Then it suddenly dawned on my boss (about 3-weeks to the end of my service) that the above requirements had not been met. So he casually walked up to me one morning and reminded me. Boy did I feel bad. He then proceeded to give me ideas as to how to go about implementing the requirements, in the process he got me all fired up and ready to take down the beast that those requirements were. So I fired up my trusty Dreamweaver and started coding.
It took me approximately about two weeks to get the new code up and running, and blasting on all cylinders. I took my cue from WordPress as to how they developed their theming system, and came up with something adequate. At that point, my boss was so overjoyed, even though the code was not fully complete, and pushed for us to drop the existing University website and put up the new one. I worked tirelessly over another weekend to try and polish the code up, and in my final week of service, we launched the all new Kwame Nkrumah University of Science and Technology website, which was powered by my trusty CMS. And with that, my small pet project had grown into a full fledged system that was helping move the university closer to attaining its goals when it comes to I.T.
Months later, after I had finished my service and gainfully employed elsewhere, I checked on what was up the with the CMS and the KNUST site, and was severely impressed to realise that the single CMS instance was powering up 20 new websites on a single domain. I was shocked if not terrified by the seemingly blatant abuse of the system. But I was also in awe as to how stable and flexible the system was running, and they didn’t seem to be letting up any time soon. As you read now, there are close to new 30 department websites in development at the moment, awaiting themes and content and should be ready to roll once complete. Here is list of all departments available in the university; most of those which have sites are running on the CMS.
In conclusion, I just want to say that this past year has been a great one. God has indeed shown his love and mercy once again and made it possible for people like myself to make a difference in our little corner of the world. I also want to thank all those who made it possible and helped me reach this pivotal point in my life. My God richly bless you all and may face and grace continue to shine upon you.
And once again, if any one ever approaches you with a “small project”, tell them point blank: SMALL PROJECTS NEVER STAY SMALL
AND IT CONTINUES TO GROW
This project has gone from being a small thing to probably one of the biggest things happening the web development arena down here in Ghana. This project has been re-branded and open sourced as KAN CMS (http://www.kancms.org), available as a Google project (http://code.google.com/p/kancms/). Official 1.0 version expected in June 2010. God is awesome!
There will certainly be follow up posts later, explaining how this CMS works and some tutorials on how to build themes and components.