Custom project management system
Timer solves all of our management tasks: we plan all our project sprints in it, track time and progress, generate salary reports and invoices.
We've built it because other tools were either too simple or too complex and never had a perfect combination of features that we need.
Original version was just a time tracking and reporting add-on to existing system. Later our workflow evoloved and we've decided to add some more features to Timer and learn Angular.js in the process, that's how a standalone system was born.
Sprints are the backbone of an agile workflows, so of course we've built sprint support into Timer:
This UI allows us to plan multiple sprints at the same time and see an overview of a project's state.
Accurate tasks estimation allow us to meet our deadlines. Fast estimations allow us to provide reliable plans to our clients.
During planning phase we use t-shirt sizes to estimate features approximately. Statistics from previous projects is used to predict how much time will be required for new tasks.
When planning sprints, we split features into subtasks and estimate them in hours.
Timer allows tracking different types of activities to tasks, sub-tasks or projects directly. Time is tracked in real time on the server side and turns off automatically when connection is lost.
Of course, we also allow entering time manually.
Time tracking results can be reviewed in calendar view.
Real time updates
We use django-channels and websockets to keep open connections between server and browser. This allows us to reflect all the updates in real time, which is essential when multiple team members are working on the same project.
Timer builts simple yet informative reports that we use to pay salaries and generate invoices.
Angular 1.x to Angular 2.x migration
One of the tasks that internal project solves for us is learning new tools. Timer became a playground where we first adopted Angular.js, django-channels, websockets, webpack and other tools.
When Angular 2 was released it was a decision to migrate our existing system to Angular 2.
Angular 1.x version looked like this:
Roles and client access
This system supports different roles, so we let our clients log into the system and monitor the progress.
Building custom project management and time tracking system has allowed us to streamline our day-to-day work, improved visibility for our clients and let us learn some new awesome tools in the process.