As you surely know by now, TimeApp is what’s considered a SaaS (Software as a Service). This Wikipedia- excerpt explains it rather good; SaaS is a software licensing and delivery model in which software is licensed on a subscription basis and is centrally hosted on the cloud by independent software vendors or application service providers. In this post we give you an inside look at some of the key components in TimeApp’s code base.

Powered by LAMP
The TimeApp Application runs on top of a LAMP-stack. At the bottom of the stack we got the Linux distribution Debian 7, “wheezy”, 64-bit. Next up in the stack we got the Apache webserver, currently at version 2.2.22-13. The data storage is provided by MySQL (shocker!) with InnoDB as engine. And at the top of the stack we’re running PHP 5.4.4-14.

From back to front
For the backend we use our internally-developed PHP MVC-framework. Whilst writing the code for the framework we spent a lot of time digging through and analyzing best-practices and solutions found in major PHP frameworks, such as Zend and CakePHP. The result is a tailor-made PHP framework which suits TimeApp perfect. It’s fast, agile and memory efficient.
The frontend of TimeApp is generated by HTML accompanied by CSS3 and JavaScript for added functionalities and visual presentation. We use Bootstrap (currently version 2.3.2) and jQuery extensively throughout the application. The jQuery package is also extended by a couple of rather awesome third-party plug-ins (Chart.js, Select2, qTip, Accounting and Numeric).

Managing and updating the code base
The entire code base for TimeApp is hosted on GitHub. This gives us a perfect environment for collaboration and versioning. We also got Git installed on our testing and production servers, enabling us to easily deploy new code.

***

If you have any thoughts or questions about this post, feel free to post a comment or write me an email.

//Martin