Mission

Every single short or long activity can only start after the planning phase. Planning, in turn, should have such attributes as the List of actions, Budget, Time Period and Results. Timeguard allows everyone to define those parameters for every activity seamlessly.

Challenge

The very first and most challenging issue was to solve future performance issues, while connecting thouthands concurrent request per each second.

The ability to deliver new versions using one code base DB is almost always a bottleneck in each high loaded system. With an app on Golang we allow users to save and store ~50 screenshots of daily activities. Integration with more than 20 project management tools was ensured as well.

Solution

Usage of microservice architecture was our first and strategically strong solution. Thus every microservice is an independent and self-autonomous piece of functionality.

We have chosen Golang as our main platform for backend development. We use various types of Databases for each microservice (from OS file systems to SQL solutions). We used Electron, AngularJS and JavaScript as our main development platforms for the client application. A strictly defined Continuous Integration process delivered new microservices to the server, as well as to the new client version.

Result

We now have a stable client application compatible with *nix, win and mac os platforms, powered by a solid backend microservice infrastructure. TimeGuard is able to handle up to 10000 concurrent request per second. The app can store screenshot and productivity history. TimeGuard is compatible with more than 20 project management tools that include Jira, Redmine, Odoo and many others.

Screenshots