Creating TMPortal

A couple of years ago we had to develop several websites for our company and we started looking for a suitable tool. There was a list of basic requirements that it had to fulfil, but we had a problem finding exactly what we needed. After unsuccessfully searching for some time for an appropriate website platform, we decided to create a new one for ourselves from scratch. This is actually what we do and are good at.

The design goals that we set were the following:

  • It had to be Windows based, as both us and a big majority of our clients used Windows
  • Must be able to access other databases within our systems and allow us to integrate with our other applications
  • To be data driven so that we can build components online and in real-time without the need to recompile the whole website every time we want to change something.
  • To be able to create multiple websites from the same contents. We had in mind assembling separate websites for PC, tablet and mobile to provide different ways to view our contents.
  • To be simple and fast

We developed relatively quickly what we needed. The result was a sleek and easy tool (web development platform) that we named TMPortal (from Timemark Portal). We tested it and then created several of our websites with it (this website is also made with TMPortal). We were happy with the job, and sites were up and running, During the following several years we used its basic functionality to manage the websites’ contents.

There is a rule with websites that every couple of years they have to be refreshed with an updated look, contents and functionality. The time came for us to do a bigger update as well. For the first time since the development, we had to look deeply into TMPortal. That was when we realised that we actually had a very good tool in our hands. A tool that we definitely should try to offer to others.

This looked like a pretty simple job to do, until we started looking seriously into it. The real size of the job slowly emerged. There were several things that we had to have in place for this to work. We identified the following points:

Find out how a client would download TMPortal software from us and how it will get installed on their site. What to do with further updates? What if they don’t get applied in the required sequence? Will this damage the website core (that’s when we realised that all our updates must be cumulative)?

We were immediately aware that it was critical for its success to allow third parties to add to its contents and functionality by being able to build plugins. We needed other people’s input and ideas but we had to find a way for them to see the business initiative to do this. But how to implement the plugins? It took us a while to find the proper way.

We needed a support tool for clients to be able to access and find in depth information and ask for help. We needed a proper help desk with many KB articles explaining every aspect of TMPortal, the ability to create a ticket and ask for help, to post questions to a forum, read a FAQ etc.

Of course, TMPortal needed its own website where users could login and access all of this. Luckily, for this task we already had a great tool!

There is a perception with software projects that they should be run like big building projects: everything planned, decided and documented. This is true for big software projects where you have to coordinate and control a big number of developers. With small groups of people, you have much more flexibility. When a good idea comes, you can make an effort to incorporate it. This will force you to make little turns here and there and improve things already done. Over time there would be a number of them, but you wouldn’t want to miss good ideas and insights. As a result your project won’t be already several years out of date when finished. 

It took us a while to come to the point when we could say that TMPortal was complete and ready to be offered to public. Finally, the product was there, but how to make the public aware of it and how to motivate them to download and try it? This turned out to be another of these ideas that at the first sight looked simple, until we took a serious look at it.