I was asked to make a web application to allow users to query a particular database more easily. Simplifying, this database has only two tables, reports and products. The relationship between the two is that one report may refer to one or more products. The web application should allow users to specify in a graphic way (even in a simple form) a list of search criteria to retrieve a subset of reports. For example a user might ask for all reports in a certain period, with "(field1 = value1 and field2 = value2) or (field3 <> value3)", that refer to product A and product B. This is the description of the basic requirements; ideally the web application should also allow users to save and combine their queries (for example with "UNION, EXCEPT, INTERSECT"-like operators) and to dinamically order the results. Moreover, the products ca be grouped into hierarchical levels and a user might ask for all reports that refer to all products in a certain level.
At this moment the reports table has only 114.000 rows but it's growing fast: it has existed for 27 years but 18.000 rows were inserted last year!
So, my question is how to approach the development of this application. First of all, it is necessary to develop a NEW application or there is something I can use out-the-box (with some initial configuration, obviously)? If not, I believe I could write it myself with CodeIgniter and JQuery, but I would know if there are other PHP or JAVA frameworks or components useful to speed up my work.
Finally I'd love to hear your opionion about the critical points I should worry about.