Purpose / user story: My dev team is looking to build a read-only web app, to allow reporting on top of a MySQL database. There is no need for CRUD forms or any input. The DB layer and transform layer is in MySQL (as the tables are small and transforms are simple enough that we're doing it all with SQL scripts - mostly denormalization, maybe a few stored procedures).

Data content: a copy of the Configuration Management Database (CMDB) items - metadata for our IT department (servers, databases, middleware components, software applications, teams owning the support for each of these and relationships between these items). Also, Incident and Change tickets related to these items will also be in this MySQL database. This will really be a copy of some of the tables in our ServiceNow instance (SaaS application we use for Incident, Change, and Asset / Configuration item management) - the web application will allow for reporting that's not made possible by the SaaS solution.

Use of application: Application team managers and more senior IT leadership will look to use this reporting application to plan infrastructure changes for their application, report on infrastructure cost / ownership per organizational unit, identify missing infrastructure data for their app stack, and provide a report of core components of their app to other teams. Instead of using spreadsheets to track these relationships and infrastructure items - it'll be in a single system and be transparent to all of IT.

Some objective requirements:

  • A web app
  • Menu structures
  • Simple tabular reports with ability to export to Excel
  • Simple bar or pie charts
  • Selection, filtering, perhaps in the charts / reports
  • Drill down - click on a row or wedge of a pie chart - to open a new report showing underlying data
  • Low barrier to entry - for developers to ramp up on it relatively quickly (our team has a background in Java, Javascript, Perl)

Background of our effort so far (to give you context): Originally this was done with Oracle Application Express / APEX and an Oracle backend, but we were told to scrap this approach. We need similar power / flexibility from the new set of tools, but with a very low barrier to entry for developers.

Other solutions discussed included Jasper, Ruby, Django - and currently the team is thinking PHP and cite simplicity / active community / extensive libraries as the reasons for going PHP. AWS Redshift is out of the question, as this would require an ETL tool.

My question for the community is - what frameworks does the community recommend for this? What should we use for the GUI level?

  • 1
    From what you describe, i think it will be easier if you use one of the existing reporting solutions instead of creating your own, or is there a good reason (besides the: we did it! brag right) for your team to develop this from scratch? Mar 30, 2015 at 17:00
  • "Drill down - click on a row or wedge of a pie chart - to open a new report showing underlying data" to me implies some client side code would be better (than a page reload in PHP). D3js is the best JS charting library, its free & has Angular wrappers. For me, it would be Angluar, with an Ajax interface to PHP which queries the MySql database (YMMV).
    – Mawg
    Oct 22, 2017 at 8:07


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.