The options range from simple (table in csv/xlsx format), manually coded exports, to a framework for defining specific filters, group by, and aggregation criteria. It could even eventually generate charts, etc.
The safest thing is to start with the simple option. Make it possible to select one of a configurable number of predefined exports. These may just be functions which ultimately spit out tabular data to be exported as a spreadsheet. Initially, the only customizable thing in the report would be what submissions are included. We can leverage the same filtering capabilities as the submission page for this (maybe even just create the report on the currently filtered submissions). Eventually, maybe the reports can take user defined parameters beyond just submission filters. Users will be responsible for aggregating, creating charts, etc.
The options range from simple (table in csv/xlsx format), manually coded exports, to a framework for defining specific filters, group by, and aggregation criteria. It could even eventually generate charts, etc.
The safest thing is to start with the simple option. Make it possible to select one of a configurable number of predefined exports. These may just be functions which ultimately spit out tabular data to be exported as a spreadsheet. Initially, the only customizable thing in the report would be what submissions are included. We can leverage the same filtering capabilities as the submission page for this (maybe even just create the report on the currently filtered submissions). Eventually, maybe the reports can take user defined parameters beyond just submission filters. Users will be responsible for aggregating, creating charts, etc.