It was a pretty productive thanksgiving weekend :) Learnt way more about reporting, how complex an issue it is and the number of companies that are built on reporting (or to use a more trendy phrase, Business Intelligence). So here are some conclusions:
- PHP does not have a decent open (or closed) source reporting tool.
- Reporting is too complex an application and fairly well addressed by other open source projects. We should use one of those applications rather than doing it ourselves
- All the reporting open source projects use Java / Tomcat. CiviCRM users will need both java and php tools if we adopt this route
- I dont think we really have a choice with regard to this.
I continued my adventures with BIRT and read the IBM tutorial (registration required) and learnt a fair bit more. The BIRT examples were also quite helpful and I have a fairly good idea of how we could potentially link CiviCRM and the reporting application. There is also some fairly decent documentation on integrating BIRT with PHP
The current requirements to run BIRT (v2.1.0) for CiviCRM reporting include
- Java v1.5
- Eclipse SDK 3.2 and a bunch of other eclipse components
- Tomcat web server (running on port 8080)
- MySQL JDBC Connector
Installing most of the above is not a big deal using a decent packaging system (I used MacPorts and it worked quite nicely). We are inclined to go down this path for CiviReport unless we hear otherwise from the community :) Please feel free to ask comments and questions on the mailing list or on the blog
I'm testing CRM for possible future use with a couple different local nonprofits and campaign organizations. My current setup is a "non dedicated" host server via dreamhost.
My questions relate to the requirement to run Tomcat web server. Does that requirement imply that the end user would need to own their own web server? Will users be able to set up this report module in a hosted environment?
If your hosting provider supports tomcat/java/php then u should be able to use CiviReport. I suspect dreamhost does not support this. A quick web search will give you some providers which offer this combination. I suspect such hosting will be a bit more expensive than dreamhost (but still affordable)
I asked our host and they said no tomcat on a shared server.
The BIRT engine can be called from a PHP Java Bridge as well. I do not know if you guys have looked into this or not. If you need more info, send me an email at jasonweathersby at alltel.net.
Very few hosts provide tomcat etc. So this will essentially limit the use of CiviReport to those orgs running their own web server.
yeah, using Tomcat/Java definitely restricts the use of CiviReport. However I'm not sure we have any reasonable alternatives with PHP and as explained above, its way too involved for us to reinvent this.
However, I suspect over a period of time, we'll be migrating some of the more useful reports into PHP without the additional flexibility available in a reporting package.
Also I suspect ASP's like CivicSpace on Demand arise will be able to offer relatively affordable hosting alternatives
Hello Lobo and Co
In your first post, you mentioned IReports as a promising option and then it seemed to fall off the table in favor of Birt. Can you provide some feedback as to why?
This is not an exhaustive analysis by any means, but BIRT seemed to have a much better front end designer interface, was fairly simple to get up and running and had a fair amount of documentation and tutorials on the web. I did not find a lot of documentation on iReport. Would welcome your thoughts and perspective
Well, we financed a bunch of work attempting to integrate IReports and CiviCRM for reporting last year and it never made it to the finish line. I can share that with you if you haven't seen it. Mostly, I am trying to balance our immediate needs (reporting yesterday) with the CiviCRM's direction, so was interested in hearing whether you had ruled out IReports.
and better still, would love your comments and thoughts about what u think of it and whether it is a feasible approach. Here are some of our goals with reporting:
- Loosely coupled integration to begin with. Maybe just using iframes and/or links
- Ship with a few common reports, that people could modify/tailor for their own use. (e.g. contribution reports by mon/year/state, member reports as detailed by henry on the wiki)
- relatively low effort on our end. Main work would be writing efficient paramterized queries and understanding/ using reporting features of the package
Might also be better to continue this discussion on the dev mailing list
It seems to me that in some ways there already is a strong basic reporting system for simple reports. That is, in the front end you have the profile listings. In the backend you have the searchs for contacts and for contributions meeting some criteria.
Have you ever considered allowing (a) sorts (simple or even better multilevel), (b) totals for those reports (actually you do give totals in the backend, but these are not shown in the front, but they do not export with the records)(and in the future subtotals), and (c) making a way for the frontend reports to be downloadable.
Of course being able to get the contribution data from the front end would be excellent as well.
I think this would go a long way to addressing basic reporting needs.
This is my response to comments about Tomcat hosting on shared/cheap hosting accounts. My ISP, LunarPages, offers Java in the shared environment. it is only an extra $2 per month. Although they use Resin (www.caucho.com), which is an open source Java server instead of Tomcat. Resin supports standard WAR files as well as loose class files and loose JSPs. I have not had any issues.
GoDaddy offers a shared Tomcat environment in their shared hosting package. I have not used GoDaddy's hosting package, so I cannot speak about the quality there.