When working on ocPortal, one of the most stressful things for us is the sheer size of the system: we insist on covering a scope that competing systems simply don't, and that makes it really hard for us as we have to maintain consistency and levels of quality across everything. I've just finished going through the system and passing in additional, unused, parameters to templates, so that ocPortal can be customised to show more/differently-presented information on screens (such as submitters, or differently formatted dates) - this became a major exercise taking a whole work day, just because there are so many different types of content to do this for.
Last week I was cutting down the number of templates in ocPortal, back to a reasonable number. The count impressed us when developing version 2 (as the number was large, reflecting the size of the system), but it has continued to grow since then, to the point we considered the number to be overwhelming. ocPortal 2.6 has very nearly 1000 templates, but we've trimmed that down to 850 for ocPortal 3: that's about the same number as we had for version 2. That's only about a 17% cut, but the cut ones were generally the worst ones from a customisation point of view - we've also done a huge amount of renaming, so now those 83% remaining templates are really well organised.
All this is only a fraction of the "make themeing easier" work we're performing for v3 - we're also making it so people won't have to view the templates, and for simple themes, won't have to do very much at all. For those who want to make great themes, we'll be adding tools that make it a lot easier than it currently is.
Here are some approximate numbers, to show the quantities we regularly work with:
- 100,000 lines of code.
- 850 templates.
- 350 images in 3.0.
- 80 tutorials, …
- covering 100's of pages.
- 550 PHP files.
- 1,477 "functional tests".
- every function of our PHP code has API comments, specifying exactly how to use it and what it does. Our PHP code also meets our strict code quality checker - with the sheer size of our codebase, to work efficiently we had to write a completely new PHP code checking tool to allow us to find a greater proportion of bugs before testing began.
- and the thrust with 3 is making all the product functionality really easy to make use of, and generally a 'beautiful experience' - we're adding a lot of new features in 3, but they are almost all to make things easier, not to allow new things to be achieved (2.6 allows nearly everything to be achieved already! [I so often look at other CMS systems that offer a lot and think "oh no, we have so many competitors!", but then I realise… where are the stats? where is the security logging? where is the download system? where are the galleries? where are the docs?])
I realise this 'blog' entry sounds more like a marketing pitch in places, but I really want people to know how passionate we really are about this system, and where we are focusing our improvements. We've a mission with 3 to make the kind of advanced websites ocPortal can make really easy…. 2.5 was the first single system to serve whole community sites without a narrow focus or lack of advanced functionality - 3.0 will be the first to allow any computer literate person to do it with ease (and to have a wonderful experience).