NoSQL, json store database.
This allows to be flexible in the kinds of data we wish to store and report. Rather than instantiating new tables and risk getting stuck with poorly chosen schema, we can simply store json objects with a new type field.
type is currently one of
enrolmentfor slow moving student information, name, team, cohort and prior attainmentgroupfor membership of teaching groupsattendancefor weekly attendance summaries per studentassessmentfor a student score in a subject assessmentkudosandconcernfor behaviour reporting
We use the IBM backed Python cloudant library for working with CouchDB.
Comes with a useful admin web interface.
The app definition, configuration and authorization logic. Imports content layout and callbacks.
Defines the top level container, and holds the nav bar, filters and temporary data store objects. Runs the development server if executed.
Links to the various pages of the dashboard. Callback on click sets the main content to the content of the appropriate page.
Hides and shows filters for cohort, subject and team.
Collects the modules responsible for the content linked to from the navigation bar.
A typical page will have a list of tabs with callback logic to set the page content.
Methods for acquiring data from CouchDB.
Manual (currently) methods for importing data via SQL from the MIS.
Static information such as subject grade scales.
One off methods for creating indices on the database
Generate random testing data and push to database
Generate a pdf of a student report using template.tex