Generating Collections of Summary Data on the Web with Built-in Navigation

Preview:

DESCRIPTION

Generating Collections of Summary Data on the Web with Built-in Navigation. Ward Headstrom and John Filce Research Analysts Humboldt State University CAIR 2012. Common Institutional Research Problem. We have lots of data. How do we make it available for others to see and use?. - PowerPoint PPT Presentation

Citation preview

Generating Collections of Summary Data on the Web with Built-in Navigation

Ward Headstrom and John FilceResearch AnalystsHumboldt State UniversityCAIR 2012

Common Institutional Research Problem

• We have lots of data.• How do we make it available for others to see and use?

Publish data on the web• It’s not difficult to put data on the web• It is difficult to put a lot of data on the web in a way that

people can find what they are looking for.

Institutional Summaries• Starts with an automatically generated index page with links to sets

of related reports:

Each report has links to other reports in the set

Alternate approaches• PDF files with HTML indexes• Automated HTML files and indexes• Interactive database-driven web reports

Example from our web site of HTML index page leading to…

... a pdf file

PDF files and HTML indexes• Every time you create a new report, you have to modify the

index page.• If you publish enough reports, it gets complicated to create

index pages. • PDF files are difficult to use in secondary analysis, such as

Excel spreadsheets.

First step - automated production of HTML files

Server-side scripting (perl) to convert text output to HTML tables, instead of PDF files.

Second step - automated search

Problems with automated HTML and web page search

• Eventually too many files with similar names• Difficulty of using the Search tool with too many keyword choices

Dynamic web reports

Dynamic web pages

• Some of these tools are expensive• Complicated – have to connect a database to

active web pages• May be slow, while database initializes and runs

queries• User may have to specify parameters every time

you want a particular report• Usually, you can’t link to the data from an Excel

spreadsheet

Features of Institutional Summaries

• Consistent interface and navigation• Users can easily find very specific data• Configured via a simple database• The data being reported can come from flat files or

relational/dimensional databases• The output is a set of simple, static HTML pages• Quick navigation - no server-side processing• Can be automated to produce a large number of reports daily

HUMIS• Index page www.humboldt.edu/anstud/• Report pages• Navigation block, options rows, and options• Links to a number of related pages• Since links work in combination, a small number of links allows

you to navigate to many web pages (example: 9 links on Enrolled Student pages allows navigation to 96 reports.)

System to generate Institutional Summaries

• the HTML behind each web report page• the SQL scripts that generate the data in the reports• the configuration database• the process that generates the web reports

HTML behind the web page<!DOCTYPE html><HTML><HEAD><TITLE>Enrolled Students reports</TITLE></HEAD> <LINK rel="stylesheet" type="text/css" href="genstyle.css"> <BODY>

<TABLE> <TR><TH COLSPAN=2> Enrolled Students Report Options</TH></TR> <TR><TH>Level</TH> <TD>All &nbsp <A HREF="enr-UFHTR.html">Undergrad</A> &nbsp <A HREF="enr-MFHTR.html">Masters</A> &nbsp <A HREF="enr-CFHTR.html">Credential</A> </TD> </TR> <TR><TH>Semester</TH> <TD>Fall &nbsp <A HREF="enr-ASHTR.html">Spring</A> </TD> </TR> </TABLE>

<TABLE width=100%> <TR> <TH colspan=20> Fall Headcount To-date by Student type</TH> </TR> <TR> <TH> Student type</TH> <TH> Fall 05</TH> <TH> Fall 06</TH> <TH> Fall 07</TH> </TR> <TR> <TH> Continuing </TH> <TD> 5,027</TD> <TD> 4,832</TD> <TD> 4,903</TD> </TR> <TR> <TH> Returning </TH> <td> 91</TD> <TD> 110</TD> <TD> 109</TD> </TR></TABLE>

</BODY></HTML>

Oracle SQL to create the reportSELECT sex, sum(case when term='2054' then hc end) f2005, sum(case when term='2064' then hc end) f2006, sum(case when term='2074' then hc end) f2007, sum(case when term='2084' then hc end) f2008, sum(case when term='2094' then hc end) f2009, sum(case when term='2104' then hc end) f2010, sum(case when term='2114' then hc end) f2011, sum(case when term='2124' then hc end) f2012FROM dm_erssWHERE semester = 'Fall'GROUP BY sexORDER BY sex;

SEX F2005 F2006 F2007 F2008 F2009 F2010 F2011 F2012--- ----- ----- ----- ----- ----- ----- ----- -----F 4107 4115 4199 4230 4358 4295 4323 4356M 3353 3319 3573 3570 3596 3608 3723 3760 ----- ----- ----- ----- ----- ----- ----- -----sum 7460 7434 7772 7800 7954 7903 8046 8116

HUMIS database• Data sources (view)• Configuration tables• Options and report parameters• Queries/views• Functions• Report generation• Future enhancements

Sample data source

Configuration tables

WEB_REPORT table and option rows

web_formula tableSELECT sex, sum(case when term='2054' then hc end) F2005, ...FROM dm_erssWHERE semester = 'Fall'GROUP BY sexORDER BY sex

SELECT <rowfield>, sum(case when <colfield>=‘<colvalue>' then <contentfield> end) “<colhead>” ...FROM <viewname>WHERE <wherefield> = ‘<whereval>‘ ...GROUP BY <rowfield>ORDER BY <roworder>

Options and report parameters

web_rows and web_column(s)

Queries/Views• options – all options: join report, optionrow, and

option tables• pages – all web pages: join options together seven

times• pageoptions – joins options and pages• params – group Pageoptions on page to find report

parameters• links – join pageoptions to options to get all links to

other reports for each page.• calc – join web_column to params to produce SQL

formulas need to generate data tables

options query

pages query

links query and function

function weblinks uses links query• accepts repkey, page, and rowseq as parameters• returns a row from the navigation block, including HTML tags• returns nothing if there is only one option on this row

params query

calc query

column:Replace(Replace(Replace(Replace(Replace([formula],"<contentfield>",[contentfield]),"<colfield>",[colfield]),"<colhead>",[colhead]),"<denomfield>",Nz([denomfield])),“<colvalue>”,[colvalue])

calc query output

function webcolumns uses calc query• accepts repkey, page• returns the SQL columns needed to generate the data table of a web

report

Generation of reports• In Oracle, the webreps.sql script calls webrep.sql to create a

temporary view definition which is then used to output the final HTML page. • In Access, the VBA subroutine webreps generates all the

reports for a particular institutional summary by stepping through the pages query and calling the procedure webrep. This procedure creates a temporary table for each page before outputting the final html page.• On our Oracle server, we can generate each page in an

average of about 1.5 seconds. In Access, it takes about 10 times as long

Future directions• Replace many of our existing web reports• Add new summary topics• Add ability to mix column formats

• Optionally add a percentage table• Automatic graphing

Institutional Summaries Summary• Static HTML pages provide data that can be more easily

used in Excel than PDF files or dynamic pages.• The approach we have taken allows us to create a large

number of web reports easily.• The navigation blocks on our reports make it possible to

easily find and access the data people are looking for.• If you are interested in implementing something similar, we

would be happy to send you our Access database and/or Oracle SQL scripts

Ward.Headstrom@Humboldt.eduJohn.Filce@Humboldt.edu

Recommended