This initial document provides an overview of Ed-Fi Assessment Integrations using earthmover and lightbeam and includes links to more detailed documentation on various topics.
A corresponding slide deck on these topics can be found here . When building out an integration for a new assessment (AKA an assessment that is not currently listed in the bundles repository ), the general process is as follows:
.aThe READMEs of those repos contain all necessary documentation to install/use the tools.
.bMultiple earthmover example projects exist to help familiarize yourself to its features. .aIt is impossible to map data to Ed-Fi without understanding the destination.
.3Explore the template bundle to get a better sense of the structure/best-practices of an assessment bundle. .aThis bundle contains fake data and can be run in any python environment with earthmover installed.
.2Gather relevant documentation about the assessment that you are working with. In order to properly map an assessment, you must deeply understand the structure and background information of that assessment. This documentation typically includes:
.aSample files
.bData dictionary
.cTechnical reports from the vendor
.aThe decisions here will impact how the specific assessment is modeled into the Ed-Fi standard, therefore must be done before any actual coding can occur.
.2 Create a fork of the earthmover_edfi_bundles repository then duplicate the template bundle as a starting point for new assessment bundles. .3Update the template bundle code with necessary transformations, jinja logic, etc. for the given assessment.
.aEnsure that data modeling matches the decisions from the governance artifact review.
.4Test earthmover run
to ensure no errors occur.
.5Check that the resulting json files are valid.
.6(If possible) Manually run lightbeam validate against an ODS. .7Open a PR against the earthmover_edfi_bundles
repository and tag Julianna Alvord for review (github user:@jalvord1
).
.2Build out process to run earthmover & (depending on the circumstance) lightbeam.
.aRun manually or built into a process that will run on a schedule?