While doing some freelance work earlier this year I found myself in need of a way to keep track of my hours and regularly create invoices for my clients. Like a normal person I looked online for a solution to this problem and found many viable options, I even tried out several time tracking web apps for a while and most of them worked quite well.
Instead of contenting myself with either of these, or any of the other good options, I decided to create my own time tracking app out of what I can only assume was some insane desire to reinvent the wheel. I didn’t have much time to dedicate to such a project and I knew that inevitably my attempt would fall short of anything that already existed. And yet I pressed forward, hoping that if nothing else this project would serve as a way to develop new skills and try out different technologies.
My first task was to determine exactly what technologies I wanted to use. I had previously dabbled in MongoDB and since I knew little about what I wanted to create decided quite quickly that a NoSQL database would do nicely while I figured things out. For the frontend though I spent a long time looking into different options. I wanted to stay away from some of the more popular frameworks in an attempt to learn something that I wouldn’t otherwise have the opportunity to. I eventually settled on MarkoJs, a powerful html based language that no one seemed to be using (except maybe ebay, I think they support the project). Sure I had never heard of it, but what can I say, I was drawn in by their promise to “make building web apps fun.”