Toronto, Canada.
All student data lives in Google Cloud Firestore's northamerica-northeast2 region. Backups stay within the same region. Nothing routes through US infrastructure.
Built for BC
Every screen in copilotBC was built against the actual BC regulations that govern driving instructors — Motor Vehicle Act Regulations Division 27, the Personal Information Protection Act, and the Electronic Transactions Act. This page is the short version. The long version is the codebase.
copilotBC's forms and records are based on official ICBC and BC government forms and are designed to align with the regulations described here. They are not official ICBC documents and copilotBC is independent and not endorsed by ICBC. Official forms and requirements can change before we update ours, so please confirm each export against the current official version before you rely on it. See our Terms of Service.
01 — Records
BC requires driving instructors to keep a complete record of every lesson for six years. copilotBC captures the fields MVAR Division 27 called for at the time of writing — so you don't have to remember what it asks for — though you should always confirm against the current regulation.
02 — Privacy
BC's Personal Information Protection Act (PIPA) sets the privacy bar for everyone collecting personal information in the province. We treat the bar as the floor, not the ceiling.
All student data lives in Google Cloud Firestore's northamerica-northeast2 region. Backups stay within the same region. Nothing routes through US infrastructure.
Every query is gated server-side by your authenticated user ID. There is no shared database, and we do not access your students' files in the course of normal operations.
Strict Content-Security-Policy, HSTS, and server-side validators on every field. The Firestore rules — not the app code — are the final gatekeeper.
PIPA gives individuals a right of access (s.23) and correction (s.24). Every student dossier is exportable as JSON from Settings. Email our privacy contact for anything outside the in-app flow.
03 — Signatures
BC's Electronic Transactions Act (s.11) treats a standard electronic signature — identity, intent, link to the record, timestamp — as equivalent to ink, with limited exceptions. copilotBC implements the full pattern.
Instructor signs as their authenticated Firebase user. Student types their full name, fuzzy-matched against the record we already hold.
Two explicit consent boxes — accuracy of the report, consent to electronic storage. Neither is pre-checked.
The signature is written straight into that lesson's record. The instant it's signed, the record locks at the server — it can't be edited, un-signed, or deleted — so the signature stays bound to exactly what was signed.
The signing time is recorded by the server, not the device — clock-tampering on the phone doesn't change the signature.
Cross-device signing works the same way: the student scans a QR on their own phone, the consent flow runs in their browser, and the signature comes back to your record through a server-enforced 10-minute, single-use window. Photographed QR codes from a coffee shop wall can't replay.
Honest scope
We'd rather be specific about gaps than vague about coverage. Here's what we're up-front about:
copilotBC is independent and not affiliated with or endorsed by ICBC. Its forms are based on official ICBC/BC government forms but aren't official ICBC documents, and we can't guarantee any export is fully compliant — confirm each one against the current official version. See our Terms of Service.