Skip to main content

A Python library and CLI tool for interacting with the TVDSB Student Portal service

Project description

tvdsb-student-api

A Python library and CLI tool for interacting with the TVDSB Student Portal service

CLI tool usage

usage: python3 -m tvdsb_student [-h] --user USER [--passwd PASSWD]

Dumps all TVDSB Student info to STDOUT as JSON

optional arguments:
  -h, --help       show this help message and exit
  --user USER      TVDSB account username
  --passwd PASSWD  TVDSB account password

This script will dump JSON to STDOUT

Library usage

from typing import List
import tvdsb_student

# TVDSB Network auth
user = "lastfirst123"           # This is your network username
passwd = "mySecurePassw0rD!"    # This is your network password

# Create an auth object
creds = tvdsb_student.LoginCreds(user, passwd)

# Read student attendance records
attendance: List[dict] = tvdsb_student.getAttendanceRecords(creds)

# Read student mark history (all report card info)
marks: List[dict] = tvdsb_student.getMarkHistory(creds)

# Read student payment info
payment: dict = tvdsb_student.getPaymentInfo(creds)

# Read student timetable info
timetable: dict = tvdsb_student.getTimetable(creds)

Data schemas

These are all examples of the datastructures generated from polling my student account

Attendance

[
    {
        "code": "G",                                    // Single char denoting incident type
        "course_code": "SPH3UK-02",                     // Course code
        "date": "3/24/2020",                            // Date of incident
        "period": 2,                                    // School period
        "reason": "School Closure/Services Withdrawal"  // Notes about incident
    }
]

Marks

{
    "2020": [ // Courses are grouped by year
        {
            "comment": ".",         // Teacher's comment. This may be a "." if the class finished during a teachers strike
            "course": "ICS4U1",     // Course code
            "date": "2020.06.26",   // Date the grade was last updated in MarkBook
            "mark": 100,            // Percent grade out of 100
            "skills": {             // Listing of all "skills" on a normal report card. Single char, one of [F, S, G, E]
                "homework": "E",
                "independence": "E",
                "initiative": "E",
                "organization": "E",
                "teamwork": "E"
            }
        }
    ]
}

Payment

{
    "pin": 1234567890 // PIN number used to link a parent's payment account to a student (not my real pin)
}

Timetable

{
    "student_info": {
        'grade': 12,                            // Current grade, or next grade during summer
        'locker_number': null,                  // Locker number or null/None for no locker
        'name': ['Evan', 'Pratten'],            // First and last name
        'ontario_education_number': 123456789,  // OEN (not my real OEN)
        'student_number': 987654321             // TVDSB student number (not my real student number)
    },
    "course_semesters": [ // Contains a sub-array for each semester
        [ // Contains an object for each course
            {
                'course_code': 'ENG4U1-02', // Course code
                'period': 2,                // Period number
                'start_time': 1000,         // Time the period begins (24hr)
                'end_time': 1115            // Time the period ends (24hr)
                
            }
        ]
    ]
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tvdsb-student-api-1.7.tar.gz (8.8 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page