Tuesday, July 19, 2011

3 features I would dream to see in Openxava

Pull BI out of the ghetto
Currently 'all in one' framework such as grails, playframework, openxava, roo, rails behave all more or less the same for CRUD modal navigation
Start from a list (resulting from a search screen or default filtering), then goes on one entity to manipulate.
Personally, I think there is/should be a step before. I would like to see the big picture instead of scrolling down a list or ajusting search params.
Furthermore, this overview can be express in format of a graphical chart which has a greater expressing power than looking at records.

To give a concrete example:
I design a 'helpdesk app' and one entity is called 'issue'. Issue entity has a number of fields among those 'type', 'status', 'origin', 'date-creation', 'date-resolution'.
Would'nt it be nice to visualize:
  • on a piechart the ventilation by type/status or/and origin, and then click on one portion to get the result filtered accordingly;
  • on a trend chart the evolution of the issue by type/status or/and origin against 'date-creation', 'date-resolution' before drilling down into the entries.
Those information come from BI queries that should be added to ease navigation and clarify the business. I found more attractive to come from a dashboard representing an overview of the business than being stick to the detail in an early phase.
It would bridge the gap between the BI world an the 'attached-entity' centric paradigm.

For Openxava, we could easily imagine other annotation

@dashboard (representation="piechart", filtering="type,status,origin")
@dashboard (representation="trend", filtering="type,status,origin", start-period="date", period-sample='day/month/year', time-param="date-creation)

Content search

Framework search as compass or hibernate-search propose some content search solution based on annotations.
If we use compass we can imagine that entity tagged as @searchableRoot could have a free text search for the field marked as @searchable.

GWT - ideally Vaadin rendering

It speaks from itself.
Get the benefit of other community for front-end snippets.
Integration with GAE, google maps...

And minuteproject in all that
Well, all that is marked as annotation could be described as model enrichment when it is data centric.
So we could easily imagine to have a field enrichment stating that it belongs to a dashboard, or better have a global convention that applies to the model that states that all fields ending with type or status are part of a dashboard. In this case one line of configuration is needed to impact the entire navigation model.
The same is true for content search but here the enrichment is already available for minuteproject4Solr track.