2026 · INTERNAL TOOLS | FORMS
Driver MVR Request Form
Combined two separate paper forms for staff driver background checks into a single online submission that also generates the finished PDF packet automatically.
Built at Immaculata-La Salle High School

Tech Stack
Overview
Coaches and other driving staff had to fill out two separate paper forms (a request/approval form and a signed authorization) before a motor vehicle record check could even start, and someone then had to assemble everything into a packet by hand. I built one combined online form that handles both, supports submitting multiple drivers in a single pass, and automatically generates the finished PDF packet (approval form, authorization page, and license scan) filed straight into the reviewing office's document library.
Impact
Who it serves: ~30 coaches and activity-van drivers, plus the reviewing office
Before
Getting a driver cleared meant two separate paper forms (a request/approval form and a signed authorization) filled out, then manually assembled into a packet with a license scan before a record check could even start.
After
One combined online form handles both, supports multiple drivers in a single pass, and the finished PDF packet generates automatically and files itself into the reviewing office's document library.
Est. Annual Cost Saved
$1,185/yr
Estimate, not an audited figure. Methodology and sources are disclosed above for each comparable product.
What I Built
- One combined form replacing two separate paper forms
- Multi-driver submissions handled in a single pass
- Automatic combined PDF packet generation (approval form, authorization, and license scan) filed directly into a SharePoint document library
- A status field the reviewing office updates directly once a record check comes back
Screenshots


What I Learned
Generated the combined PDF packet natively in code instead of standing up a headless-browser or document-conversion service, which kept the whole pipeline to a single lightweight Function.
Tracked down an Azure Functions CORS preflight request that was being intercepted by the hosting platform before any function code ran. The fix was a platform-level CORS setting, not an in-code header.
Dropped a planned Power Automate step after finding its SharePoint connector needs a one-time interactive consent no matter how the flow is built, and replaced it with a plain authenticated API call instead.