Introduction
Welcome to UR TURN's technical documentation. You can use this as a reference to help you prepare your data extracts so students can begin to plan their path to success.
Right now, we only have example data extracts. We are open to posting code examples for different SIS platforms. Feel free to reach out and we'll begin the conversation.
Getting Started with Docker
The documentation is dockerized, wich means that you can start working right away just by following these steps:
- Download docker, either the Desktop or command line version
- Clone this repo
- Build the docker image which includes all the app dependencies
$ docker-compose up
Security & Privacy
Every school has its own account to upload files to using SFTP. We will provide credentials to the technical administrator using onetimesecret.com
File Formats
Every file should be in the CSV (comma separated values) file format.
Details are found in RFC-4180 and the IMS OneRoster® CSV Format Specification v1.1. The OneRoster® specification has the extra restriction that carriage-returns are not permitted within a field.
Data Extracts
Classes, Courses, Enrollments, Schools, Students, & Parents
A good portion of the data UR TURN uses is provided by data files which already may be available to you. They are the IMS OneRoster® CSV Tables Specification v1.1.
UR TURN needs a subset of the OneRoster® reports. They are:
attendance.csv
The IMS One Roster Specification does not provide student attendance records. As a result, we'll need an extract with the columns below.
| Column Field Header | Required | Format | Description |
|---|---|---|---|
| schoolId | Yes | The school ID in orgs.csv | |
| studentId | Yes | The student ID in users.csv | |
| courseId | Yes | The course ID in courses.csv. | |
| endYear | Yes | Integer | For a school year 2018-2019, endYear is 2019. |
| date | Yes | Date | The date of the absence. |
| period | No | Integer | [RFC] |
| code | Yes | String | [RFC] The district/school code identifying the type of absence. |
| status | Yes | String | [RFC] |
transcripts.csv
Predicting a student's future sucess is largely based on their previous academic accomplishments.
| Column Field Header | Required | Format | Description |
|---|---|---|---|
| schoolId | Yes | The school ID in orgs.csv | |
| studentId | Yes | The student ID in users.csv | |
| grade | Yes | Integer | The student's grade level at the time of the credit. |
| schoolYear | Yes | Integer | The academic school year at the time of the credit. For 2018-2019, this would be 2019. |
| courseNumber | Yes | [RFC] | |
| courseName | Yes | String | Name of the course. |
| score | Yes | String | The grade recieved: e.g. A, B, C, D, or F. + and - also accepted. |
| creditType | Yes | String | The course subject the credit is attributed to. e.g. English, Math |
| creditEarned | Yes | Float | The value of the credits earned by the score. |
| gpaWeight | Float | [RFC] | |
| gpaValue | Float | [RFC] | |
| unweightedGpaValue | Float | [RFC] | |
| bonusPoints | Float | [RFC] | |
| honorsCode | Float | [RFC] | |
| startTerm | [RFC] | ||
| endTerm | [RFC] | ||
| termsLong | [RFC] | ||
| actualTerm | [RFC] |
studentId,schoolId,grade,schoolYear,courseNumber,courseName,score,creditType,creditEarned,gpaWeight,gpaValue,unnweightedGpaValue,bonusPoints,honorsCode,startTerm,endTerm,termsLong,actualTerm
Support Information
For support, you can reach us at support@urturn.org
PowerSchool REST API
In order to access the API, we'll need OAuth credentials. To accomplish this, a UR TURN plugin will need to be created.
Download the following file and save to your desktop:
<?xml version="1.0" encoding="UTF-8"?>
Sign in to the PowerSchool admin portal website using your System Administrator credentials.
On the start page, choose System from the main menu, then go to System Settings > Plugin Management Configuration > Install.
Enter or select the plug-in installation file you just created (.xml), and then choose Install. The plug-in will appear in the Installed Plugins section on the Plugin Management Dashboard page. Make sure the plug-in is enabled. If it is not, choose the Enable option on the Plugin Management Dashboard page.
On the Plugin Management Dashboard page, make sure that the plugin is enabled.
Choose Data Configuration to view the OAuth credentials that were generated for the plug-in.
Record the values for the Client ID and Client Secret.