This repository contains the legal waiver that individuals must sign in order to participate in the MIT Outing Club. The release may be completed online in a self-service fashion.
MITOC uses DocuSign to collect waivers from all participants. The form fields in our PDF waiver are annotated to support waiver completion from any computer or mobile device. The process is completely automated, and completed in a few steps:
- Waiver initiation: The user navigates to mitoc-trips.mit.edu/profile/waiver/
- Pre-filling form: If the user holds an account on MITOC Trips, then their waiver information can be pre-filled. If they are not an account holder, they simply enter their name and email address.
- Programmatic request: When the user submits the form, our servers
generate a waiver request.
- If submitting as an account holder, this form request includes pre-filled form data (such as their MIT affiliation, emergency contact, etc.).
- If the user is a minor, a signature is required from their parent or guardian. The waiver will not be complete until the guardian has signed the form as well.
- The waiver request contains an "event notification". This field asks DocuSign to notify our API endpoint when the waiver has been completed by all parties. Our always-listening membership API receives these notifications, and updates our internal database. The exact payload that DocuSign sends us is also specified at the time of waiver creation. We verify that the payload originated at DocuSign via mutual TLS.
- If the waiver was initiated by an authenticated user, then we include an assertion that their email has already been verified.
- Redirection: If the user holds an account on MITOC Trips, they are immediately redirected into the waiver (since their email address is known & verified). Otherwise, they receive a link to complete the waiver in their inbox.
- Completion: Once the waiver has been signed by the participant (and
their guardian, if necessary), all parties are notified.
- Our membership API processes the event. If the participant is new to MITOC, then an account is created for them. If they are an existing member, then their waiver status & affiliation are updated.
- MITOC, the participant, and the guardian all receive a PDF copy of the signed waiver.
DocuSign supports importing and exporting Templates from JSON. A DocuSign "Template" is a document that is intended to be completed by many different recipients. The Template is defined by an underlying document, annotated fields within that document, and a number of pre-defined roles that may complete that document.
MIT offers DocuSign free of charge to students, faculty, staff, and affiliates. To support a system like this one, an MIT affiliate must obtain an account with elevated privileges to use Templates.
- Modify
waiver.tex
- Run
make
, inspect output atdocuments/YYYY-MM-DD.pdf
- If satisfied, upload
docusign_templates/YYYY-MM-DD.json
to DocuSign (Templates --> New --> Upload Template). - Adjust any annotated fields (if necessary)
- Run
make clean
to removepdflatex
artifacts (optional)
- MITOC Trips: MITOC's trip system - waivers are required to participate on all trips, and participants may sign a new waiver here.
- mitoc-member: API that receives callbacks when members pay their annual dues or sign a waiver. Upon receipt of a new event, this project updates their account.
- mitoc-ansible: Server configuration for the above two projects.