vrijdag 20 september 2019

Integration with Google Calendar

On request of customer I am working on integrating Project Hours with Google Calendar. Work has been progressing nicely and a fully functional demo is available on the project hours test site: Google Calendar in Project Hours. What it does is that every time hours are saved in Project Hours via  the web interface or mobile app, an entry is created in a specified Google Calender. Only one (company) calendar per organisation can be specified.

In this way, a dashboard with work items is created that can be used for planning for example.

I am thinking of adding a feature where users can specify their own Google calendar for a per user overview.  Or an integration the other way around: use Google Calendar to register hour entries in Project Hours. I have investigated this and it looks like the only way to do this is to create a Chrome plug-in that adds Project Hours menu items to the Google Calendar web page. But first we are going to do some testing and release this to the Project Hours production environment. To be continued..

vrijdag 1 februari 2019

New Project Hours UI banner and landing page design live!

Today I published the new Project Hours look and feel to the live site
For a while I had felt that the design of the web site had become somewhat stale, no colours, only white and gray. To change that, the company banner on every page has been brought in line with the design of the landing pages (see image below). Thanks to Vanessa Lappenschaar-Berg for design tips!
I hope that the new design will lead to a higher conversion rate on the Google Ads.

There are no functional changes in this release. I did make a change to the way caching of data is handled, there has been a case of session data mix-up between two users of different organisations (very scary, should never happen again!)

For those interested: I added the setting 'OutputCacheLocation.None' to the MVC outputcache attribute on every MVC controller to make sure no pages are cached server-side that could cause data mix-up between users:
  [OutputCache(NoStore = true, Duration = 0, Location = System.Web.UI.OutputCacheLocation.None, VaryByParam = "*")]

The NoStore = true and Duration is 0 settings were already there, but apparently that was not enough.
More background info : StackOverflow Sessions Mixed ASP.NET and MVC Output cache set to None

Planned for the next release: add an auditing function to all changes to time entries so it is always possible to see what the entire history of a time entry has been. (Currently this must be done by restoring database backups, a lot of hassle).

That's all for now,