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?