
Hello to all. Today I will tell about my development for Google Chrome and Pivotal Tracker - PIRO. Let's start in order.
PivotalTracker is a service for managing software projects using “flexible” methodologies. In more detail it is possible to learn from
this article on Habré . The tracker itself is excellent, but when working with it I had certain problems:
- When working with multiple projects, it is inconvenient to switch between them.
- It is hard to know which projects created tasks for you or what status of tasks you created for other people.
- If suddenly you work with several PivotalTracker accounts, then switching occurs either by re-login or each account in a separate browser (who is spinning)
')
I thought a bit, I rolled up my sleeves and started writing my solution for PivotalTracker. During the work, I showed it to people, they connected and helped me in its implementation. Therefore, at the end of the project it was decided to make it open source :)
Extension site:
http://piro.railsware.com/Source code:
https://github.com/railsware/piroScreenshots:




Since the topic of programming is closer to me, I will tell the technical side of the development of this project.
Development
Data storage
Since I have been involved in web development for many years, my solution will be written in HTML / CSS / JS, and since the solution should be simple, I’ll confine myself to that. For data storage I needed a vault. There is localStorage, sessionStorage, WebSQL and IndexDB. WebSQL - deprecated, IndexDB - in development, sessionStorage - stores data until the browser is closed. Stay localStorage. It is used in this extension.
Javascript
All code is written in JavaScript. The language is excellent, but sometimes it is not convenient to write some constructions on it. Without thinking twice, I decided to write all JS in
CoffeeScript . If you are not familiar with this language yet, I recommend reading it.
Javascript templating
Today, writing complex JavaScript applications in which HTML code is generated in the code is completely wrong. For this, a huge amount of JavaScript templating was developed. The most popular are
Mustache.js ,
Handlebars.js ,
Hogan.js and others. For my extension with I use Hogan.js, since Twitter (and I made sure) promises excellent template rendering speed.
JavaScript libraries
It is clear without them anywhere. Used:
And what is Ruby here for?
Ruby can be found in the repository. The question arises - why? In order not to compile coffescript in javascript each time, ruby ​​c
guard gem was used by hands, which allows you to monitor files on the file system and, if they change, perform a specific action. Here it is used in the development of tracking changes to the coffee files in the
assets / javascripts directory for compilation, as well as obfuscating the rake files with the task in the
javascripts directory.
That's all
That's all for this extension. For many, it may be useless, since many teams use other project management systems. But maybe you will be interested in the extension code (and even drag you to use PivotalTracker). For those who already use PivotalTracker - I advise you to try working with it through this extension.
Use and join :)