HomeBlogThe birth of JHarvest - Harvest integration into Joomla

my random thoughts

take 'em or leave 'em

The birth of JHarvest - Harvest integration into Joomla

HomePrintE-mailPdf

Since I've started to take on clients, I've needed a decent way to track my time and invoices without much overhead.  Way back, I purchased  a Joomla extension called JForce to handle this but found that it was inadequate for my needs for time tracking.  Recently, I came across Harvest.  Harvest is an online service that tracks time and can even manage estimates and invoices.  It's time tracking interface was nice and came with an iPhone app that allowed me to easily track my time. But unless I paid a monthly fee, I was limited to the number of projects and clients I could create.  So, I created one Freelancing project with a task for each of my clients.  Using Harvest's reporting features, I was able to differentiate between my clients for time entries. 

I couldn't use Harvest's invoicing feature because of the method I was using it.  Plus, I wanted to be able to have more control over my invoices, who had access to them, etc.  So I used JForce for invoicing and Harvest for time tracking.  JForce allowed me to create invoices via my own site and give clients access to only their own invoices.  Some of my clients asked if there was a way for them to see how many hours of work I have done for them at any given time.  I didn't have a way to do this of course since Harvest didn't have a way to display time sheets to clients. Thus, the thought of JHarvest was born.

At first I thought that I would simply create a Joomla extension that pulls information from Harvest and displays it to the user.  This is still my plan so that JHarvest can be a standalone extension.  It will allow admins to match Joomla users with JHarvest clients.  Any information for that client will be made available for viewing to the matched Joomla user via Joomla's frontend.  I have yet to fully design how this will function and look so feedback on this would be nice!

But in addition to that, I plan to hook it into other components.  JForce just rebranded themselves as JForce PM.  This time, I think they got it right for the most part.  The only thing really lacking is that they do not have the time tracking features of Harvest such as timers and decent time sheet  reports.  So in addition to JHarvest being a standalone extension, I'm creating it to have a "plugin" system where it can be extended to sync with third party extensions.  The first will be JForce where basically the user will be able to sync Harvest information into JForce.  I'm creating three sync modes for this.  The first is "Project" which will sync project to project, task to task, time entry to time entry, etc.  The second will be "Task" where the admin will be able to define a default JForce task (which is by nature assigned to a specific project) for each Harvest project assigned task.  Each Harvest time entry will then be synced as a JForce time entry for the defined JForce task.  The final mode will be "Time Entry" where the admin will be able to assign each Harvest project assigned task to a JForce project.  Each Harvest time entry will either a) become a new JForce task with the entry's note as the task's name (and of course a new JForce time entry as well to track hours). Or, just a new JForce time entry if the entry does not have any notes and it will be associated with the defined default JForce project/task.  

So far, I have the backend almost fully functional.  It downloads all Harvest data and stores it locally.  That data is kept up to date with each sync.  I have it 90% interfaced with JForce (enough to where I can use it for my purposes).  There are a few things left to do with the backend before I start working on the frontend.  First, it needs a safe way to delete local data that no longer exists in Harvest if the admin chooses to.  The other 10% of JForce integration also needs to be completed.  Finally, I need to design/code ways to display properties such as cost per hour, budget, etc for individual projects, tasks, and contacts.  Once that is done, I'll start coding the frontend.

Eventually I would like to be able to feed data back into Harvest.  But that will be after I have the initial release of JHarvest available.  My first goal is to simply be able to retrieve and present Harvest data to Joomla users in a meaningful way.  Then, I'll start adding new features such as feeding data back to Harvest and support for multi-user Harvest accounts.

I would love to hear about ways this would be useful to the Joomla community, if at all :-).  If nothing else, I'll use it extensively until JForce designs an iPhone app and improves their time tracking features ;-).  Would you be willing to pay for such an extension?  If so, how much?  In what ways would you like it to present data to the Joomla end user?

Leave comments below.




Gravatar
Alan Hartless (30.03.2012 (15:24:39))
Hi Jim,

Well, I worked on it to meet my needs but was never able to finish it for public use although it has been on my list for some time. It is not currently J2.5 ready although I will be migrating it soon as I recently changed my site to J2.5 and thus will need to update the component so I can continue to use it. I'll try to build out its built-in feature set as the same time so that it can be used more standalone (I'm currently using it to integrate Harvest into JForce). But I can't guarantee how quickly I'll be able to do that.

Exactly what do you want it to be able to do so that I can keep that in mind?
Thanks!
Alan
Gravatar
jim (30.03.2012 (14:19:08))
Alan - Coming into this quite late but wanted to see where your development went and how its coming along. We have a 20 person company and use Harvest for our time keeping purposes as well. I am in the process of building out a new Joomla site for the company and would love to have everything integrated within our employee portal.

Is it ready for 2.5?
Gravatar
Alan Hartless (26.11.2010 (16:38:24))
Great to hear! Development is coming along nicely. I'll need a beta tester eventually so you're it (if you're willing of course :-)! I'll email you when I'm at that point.

Thanks!
Alan
Gravatar
(26.11.2010 (15:09:32))
KEELY interested in this project (and yes, willing to pay for a component like this)! Our interest arises for basically the same needs/necessities that precipitated your efforts here: love JForce PM for us/clients project management but prefer Harvest for time tracking and invoicing. Please keep us post on your developments here (and how we might be able to help/assist). MANY THANKS - AWESOME IDEA!!!

Smileys

:confused::cool::cry::laugh::lol::normal::blush::rolleyes::sad::shocked::sick::sleeping::smile::surprised::tongue::unsure::whistle::wink:

 1000 Characters left