Plug In 2 BIRT Contest Details and Examples
@ @ @ THIS CONTEST IS CLOSED @ @ @
Look here for the Contest Winners.
Contents |
Contest Overview
From March 26, 2012 through April 30, 2012, Actuate is hosting a contest for developers who extend BIRT by submitting plug-in implementations to BIRT Exchange. A 3rd generation iPad (32 GB with WiFi) will be awarded for each of the 3 best plug-ins submitted during this time period. For details, please see the Official Contest Rules.
Take a look at some suggested projects in the following areas:
- Open Data Access (ODA) Drivers -- Data Source Adapters
- Emitters -- Data Output Adapters
- Report Item Extensions -- Design Elements, Functions and Controls
- Chart Extensions -- Chart Types
The clock is ticking, so check out our list of examples and tutorials and get started!
How to Enter and Win
You must be a member of the BIRT Exchange community (register here) and submit your new and original plug-in to either DevShare and the BIRT Exchange Marketplace by April 30, 2012. See the DevShare Guidelines or the Marketplace Instructions for information about submissions.
- DevShare is most appropriate for submissions that include source code, prototypes or other modifiable materials that are intended for use and/or adaptation by others.
- The Marketplace is most appropriate for submissions that are compiled and/or suitable for open source or commercial distribution as complete (non-prototype) plug-in components.
All eligible submissions will be evaluated by an expert panel of judges after the close of the contest. For more information and before entering the contest, please review the Official Contest Rules.
IMPORTANT: You own your code, so win or lose, you can distribute or sell your plug-ins if you wish.
How to Create BIRT Plug-Ins
A number of technical articles, tutorials and books are available to assist you in creating your contest submissions. Here are a few good ones:
- Integrating and Extending BIRT, 3rd Edition (book) Just published with extensive examples on how to build plug-ins.
Click for Special Promotional Discount. - (new) Little-Known But Useful BIRT Extension Points (article) Discussion of minor BIRT extension points with some easy to implement examples.
- ODA Extensions and BIRT (articles) ODA Primer in MS Word.
- Creating Custom BIRT Data Sources (webinar) A demonstration on how to create a custom data adapter, using the Open Data Access framework, to enable a reporting environment with direct access to a non-traditional data source.
- Writing an XML Emitter (blog) John Ward of Innovent Solutions, Inc. creates a custom XML emitter using JaxB and provides instructions for creating, configuring, and deploying the emitter plug-in.
- Building Custom Report Items Part 1 and Part 2 (articles) Eclipse BIRT tutorials covering report item extensions.
- BIRT Controls Lib (code) An open source project on Eclipse Labs that can be used as best practices examples for building report items that add custom controls and behavior. This project was created by Blackboard, Inc. and Innovent Solutions, Inc. and also exists on the BIRT Exchange Marketplace here.
- BIRT Functions Lib (code) An open source project on Eclipse Labs that can be used as best practices examples for building report items that add new aggregate and script functions to BIRT. This project was created by Blackboard, Inc. and Innovent Solutions, Inc. and also exists on the BIRT Exchange Marketplace here.
- Adding a Chart Type to BIRT (code) Slides, source code and deployable plugins used at EclipseCon 2011 to show how to add a new chart type to BIRT.
- Adding a Chart Type to BIRT (code) Update for BIRT v3.7.2.
- Chart Engine Extensions (article) Eclipse tutorial on adding new Chart Types.
Suggested Plug-In Types and Projects
The following definitions and suggested projects are good examples and ideas for contest entries.
NOTE: Several of the suggested plug-ins below were implemented in a previous contest. If you think you can make significant improvements to them, then go for it! For example, see Get Started With BIRT Contest submissions.
Check back often as we continue to add to the lists of suggestions.
Open Data Access (ODA) Drivers
An ODA driver communicates between a data source and an application. An ODA driver establishes a connection to a data source, accesses metadata about the data, and executes a query on the data source. In Actuate BIRT technology, an ODA driver is a plug-in extension to the Eclipse Data Tools Platform project. e.Report Designer Professional uses Actuate Basic technology to implement an ODA driver. Actuate BIRT iServer System, BIRT Information Designer, and BIRT Spreadsheet Designer can use an ODA driver implemented as an Eclipse plug-in to the Data Tools Platform project or use Actuate Basic technology.
ODA Drivers we'd like to see:
- XMLA and SAP BW. Create a BIRT ODA driver that allows developers to connect to and retrieve data from SAP BW using the XMLA standard. While the connector should focus on SAP BW, it should be usable for other XMLA data sources such as Essbase and Microsoft Analysis Services. The connector should include an easy to use User Interface for building the query, as well as the ability to execute the query and retrieve the result set for further processing in BIRT.
-
Excel Data Source. Enable a novice BIRT developer to easily access row and column data in an Excel 2007 / 2010 spreadsheet and use that as a data source in a BIRT design. The ODA driver should allow the user to easily point to a spreadsheet file, the sheet within the file, and the specific information that should be retrieved from the spreadsheet. It is reasonable to expect the target information is a set of rows/columns in the spreadsheet but additional flexibility may be needed to correctly determine data types etc.Note: other existing implementations are probably adequate. - Social Media. Create an ODA Data Source which allows the developer to create queries and search information from social media sites and aggregators (Facebook, Twitter, LinkedIn, Google+, Flickr, Foursquare, etc). The ability to target a specific Social Media site, or query common fields from all sites is ideal.
- Single Social Network. Create an ODA driver targeting an individual social network service to provide a highly customized interface to it for use as a BIRT data source.
- Facebook Note that an implementation for this data was a prize winner in the last contest.
- Other Service
- MongoDB. MongoDB is a high-performance, open source document-oriented database. It supports JavaScript syntax for map-reduce functionality and provides querying functions using the MongoDB document-based query language. MongoDB supplies a Java Driver that could be used in conjunction with the ODA framework to execute queries from within a BIRT report. Related Links:
- http://www.mongodb.org
- http://www.mongodb.org/display/DOCS/Querying
- http://www.mongodb.org/display/DOCS/SQL+to+Mongo+Mapping+Chart
- http://www.mongodb.org/display/DOCS/Java+Language+Center
- Note that an implementation for this database was a prize winner in the last contest.
- FileMaker. Create an ODA driver to easily allow a BIRT developer to connect to a FIleMaker database.
- Sugar CRM. Developers will use this ODA driver to provide an interface to directly query data from SugarCRM and build reports from it as a data source.
- Microsoft Dynamics CRM. Developers will use this ODA driver to provide an interface to directly query data from Microsoft Dynamics CRM and build reports from it as a data source.
- Google Analytics. Developers will use this ODA driver to provide an interface to directly query data from Google Analytics and build reports from it as a data source.
- Bugzilla. Develop an ODA driver and a sample set of BIRT designs that are able to access a standard Bugzilla database and present useful information to Developers, Project Managers and Product Managers who might be using Bugzilla to track issues related to their development activities. This could include operational information, the ability to visualize data trends using charts etc, easy hyperlinking to different levels of detail, etc. You should also include information on how to setup BIRT to access the target Bugzilla database and how to use your BIRT designs.
- JIRA. Develop an ODA driver and a sample set of BIRT designs that are able to access a standard JIRA database and present useful information to Developers, Project Managers and Product Managers who might be using JIRA to track issues related to their development activities. This could include operational information, the ability to visualize data trends using charts etc, easy hyperlinking to different levels of detail, etc. You should also include information on how to setup BIRT to access the target JIRA database and how to use your BIRT designs.
- Multi Flat File Aggregator. BIRT supports a flat file data source which can be access data from TSV, CSV, PSV, and SSV formatted files. Currently the driver only supports one file of the given type. An ODA could be built that would search a patterned file spec to return multiple files and combine them into one data source. The ODA could verify that all the files have the same format or provide some mapping between the files, which would result in one unified set of columns. Related Links:
- R Analytics Integration.
- KETL Integration.
- Your own ODA Driver idea...
Emitters
BIRT Report Engine provides report rendering extensions that render a report in HTML, PDF, XLS, PostScript, Microsoft Word, and PowerPoint. A customized rendering extension that adds an emitter to the BIRT Report Engine framework can enable support for a new output format, such as CSV or XML.
Emitters we'd like to see:
- JDBC Emitter. This emitter would output tables to a pre-existing relational database. Such an emitter could (for example) pre-process data for use by other BIRT designs or rich client applications.
- CSV emitter. A CSV emitter which outputs all the data elements from the first table (or chart) in the report. Several simple CSV emitters already exist, so adding an option to output the Data Types as the second row, as well as the field and text delimiters would be good. In addition, an option to specify the name of the report element to export, in order to target a specific table would create a nice touch.
- XML emitter. An XML emitter which outputs all the data elements from the first table (or chart) in the report. The output XML should default to a generic set of tags, allowing for the easy iteration of the data content. An option to output the Data Types as xsi attributes for the output. The ability to specific as an app configuration, and/or render option, an XSL or .properties file to drive the specific tags and layout of the output, would make for a versatile emitter. Adding an additional option to specify the name of the report element to export, in order to target a specific table would create a nice touch. Note that several of these implementations currently exist and one was a prize winner in the last contest.
- XBRL emitter. An XBRL emitter which outputs all the data elements from the first table (or chart) in the report. The output XBRL files should conform to the standard specification as outlined. XBRL is a popular format for exchange of financial information. It is a self describing specification, which comprises of several files to create both the meta and actual content. An option, to specify properties about the meta information of the output, should be provided as an app configuration, or render option.
- Your own Emitter idea...
Report Item Extensions
The BIRT plug-in extension framework supports creating a customized report item in the palette of BIRT Report Designer. A developer can use a report item extension in a design the same way as a standard report item, such as Label, Text, Grid, Table, or Chart.
Report Items we'd like to see:
- Sparklines in Tables. Provide option to easily visualize the data in a Table, by defining and displaying mini charts on each line within the corresponding Table such as described in this article.
- Shapes. BIRT provides extension points to extend the designer palette to add new report items. Report items have access to BIRT datasets which can be used when rendering a custom report item. The extension points include hooks for design time presentation and run time rendering of a specific report item. The BIRT project provides a Rotated Text report item example that shows how to generate a piece of text that is rotated a specified number of degrees. A good use of these extension points would be a drawing palette item that would allow the developer to add simple shapes and lines to a report design.
- Aggregate Functions. BIRT provides an Aggregation Report item that allows a developer to define an aggregate function on a set of data. This data can be aggregated across a table or a group. Currently the Aggregation element provides thirty different functions including Sum, Average, Median, and Variance. BIRT provides an extension point to extend this list. Related Links:
- Your own Report Item Extension idea...
Chart Extensions
The BIRT plug-in extension framework supports creating a customized chart, such as a radar chart, in BIRT Report Designer. A developer can use the chart in a design the same way as a standard chart. The implementation of a customized chart requires two plug-ins. The first plug-in implements the user interface in the design-time wizard. The second plug-in implements the run-time version of the chart that appears in a rendered document.
Note: New chart types are the most requested plug-ins requested by BIRT users. They can be a bit more challenging to implement compared to some of the other plug-ins, and as such, are highly valued and sought after by many BIRT report designers.
Charts we'd like to see:
- Block Chart. The block chart shows the relation between expression values as blocks of varying area. It uses a single expression and up to three dimensions, with each dimension block further divided into sub-blocks. The total area of the block chart always equals 100% of the possible expression values such as shown in this example.
- Mekko Chart. Mekko charts present data using variable width bars. They can display up to three levels of data in a two-dimensional chart. Mekko charts are useful in such areas as market analysis such as shown in these examples.
- Bar of Pie Chart. Display a breakdown of a section of a pie chart as a bar subchart such as described in this article or in this example.
- Heat Map Chart. Graphical distribution and color coding of information based on geographic display or tabular format such as shown in these examples.
- Density Plot Chart. Graphical distribution and color coding of information based on geographic display or tabular format such as shown in these examples.
- Bar Chart with Negative Values. Display both positive and negative values in bar charts such as shown in these examples or in this example.
- Chart with Table. Display a chart with its associated data in tabular form such as shown in this example.
- Organizational Chart. Graphical distribution and color coding of information based on hierarchical organization such as shown in these examples.
- Flow Chart. Graphical distribution and color coding of process diagrams such as shown in these examples.
- Your own Chart Extension idea...
