/
FY24.2.x: Technical Design (Slate+Advising)

FY24.2.x: Technical Design (Slate+Advising)

Executive Summary

The purpose of this document is to provide the full details of the technical solution to be used for the build of the Slate+Advising solution. Everything that is needed by the developer(s) to produce the required data model, forms and workflows will be included in this specification.

Technical Components

The following sections will detail the technical components within each functional area that are required to successfully implement this project.

Data Requirements

Purpose

Define any integrations or data that must be provided to deliver the solution.

Return from Leave of Absence:

The return from leave of absence confirmation needs to be CCed to the student's advisor BUT:

a) Some students don't have advisors.

b) the advisor email address is not available on the email form.

This is true on other forms. To get around this issue:

  1. Create a hidden textbox on the form that is connected to the Advisor UNI system field on the student's record.
  2. Use the following code in the CC line of the confirmation email: 
    {% if {sys-field-person_advisor_uni.size} > 0 %}{{sys-field-person_advisor_uni | append: "@columbia.edu"}}, {% endif %}

FERPA Release Request:

  • Create an entity in Slate with the following fields:
    • ferpa_organization_or_name
    • ferpa_address
    • ferpa_email
    • ferpa_phone_number
    • ferpa_waiver_status:
      • Active
      • Inactive

Incomplete Grade Request Form:

  • Create a new entity in Slate called "Incomplete Grade Requests." It should have the following fields:
    • Incomplete Grade Request Class Schedule Row Guid (This field points to a class in the student's academic history) (textbox)
    • Incomplete Grade Request Date (textbox)
    • Incomplete Grade Request Approval Status (select). Options:
      • Awaiting Submission
      • Pending
      • Denied
      • Approved
    • Incomplete Grade Request Default Grade
    • Incomplete Grade Request Completion Requirements
    • Incomplete Grade Request Completion Due Date
    • Incomplete Grade Request Student Signature
    • Incomplete Grade Request Instructor Signature
  • Create a Materials type: Incomplete Grade Request Reason

Technical Design

Purpose

Define in detail the technical work that will need to be completed to deliver the final solution.


  • Leave of Absence Fully Executed Communication:
    • Create a communication in Slate Deliver with a query that checks against:
      • Leave of Absence Form review_status = "Fully Executed."
      • Leave of Absence Form suppress_notifications = "no."
      • Status of "approved" by advisor and program representative
      • Either not a medical leave of absence OR approved by the wellness representative.
    • If the leave is medical, the wellness alias should be CCed.
    • If the leave is voluntary or military, the student's advisor should be CCed.
    • The communication should be based on this template: https://docs.google.com/document/d/1wBMscCr-P_wG10yv4klIj21BSJbfNnDt3Rdl3zAs4nI/edit#heading=h.gjdgxs
  • Return from Leave of Absence Form
    • Create a form in Slate based on the existing form here: https://docs.google.com/document/d/1gnsfPTn_p4uE18fOW9mgFipxRqgQzDvvVX6qvukLOp4/edit?usp=sharing with the following fields:

      LabelField TypeSystem Field for PromptExport ValueSystem Field?
      First nameTextboxN/Afirst_nameYes
      Last nameTextboxN/Alast_nameYes
      Semester student requested LOASelectschool_year_termssemester_student_requested_loaNo
      Semester returning from LOASelectschool_year_termssemester_student_returning_from_loaNo
      Are You Applying for On-Campus HousingSelectYes/Noapplying_for_on_campus_housingNo
    • Create a confirmation email to be sent upon form submission with the following text: (The confirmation email text should be based on the form text.)
    • Make the form require SSO for completion.
  • FERPA Release Request
    • Create a form in Slate with the following fields based on the existing form here: https://assets.sps.columbia.edu/pdf/slar/slar-ferpa-release-form.pdf
    • The form should have the following fields:

      LabelField TypeSystem Field for PromptExport ValueRead OnlySystem Field?
      First NameTextboxN/Afirst_nameYesYes
      Last NameTextboxN/Alast_nameYesYes
      UNITextboxN/AuniYesYes
      Date of BirthDateN/Adate_of_birthYesYes
      Academic ProgramSelectprogram_of_studyprogram_of_studyYesYes
      AdvisorSelectstaff_assignedstaff_assignedYesYes
      Person/Organization NameTextboxN/Aferpa_organization_or_nameNoYes
      Person/Organization AddressAddressN/Aferpa_addressNoYes
      Person/Organization Email AddressEmailN/Aferpa_emailNoYes
      Person/Organization Phone NumberPhoneN/Aferpa_phoneNoYes
      Person/Organization FERPA release statusHidden Select Listferpa_waiver_statusferpa_waiver_status(hidden)Yes
      Electronic signatureTextboxN/Aelectronic_signatureNoNo
      Signature dateTextboxN/Asigned_dateNoNo
    • Set the FERPA release status to "Active" by default.
    • Create a confirmation email that students receive upon submitting the form. The spsadvising email alias will be CCed on the email.
    • Create a FERPA waiver tab on students' profile page. It will consist of two entity widgets:
      • Active FERPA waivers
      • Inactive FERPA waivers
    • A script should be added to the FERPA waiver widget forms to allow users to edit phone numbers, email addresses, etc, but not create new records.


  • Change of Modality Form
    • Create a form in Slate based on the existing form here: https://docs.google.com/document/d/1AVZhM0ydJRiOIVr7KOiOGeyoN-nH6A5tlRMuLxkjU7E/edit

    • The form should include the following fields:

      LabelField TypeSystem Field for PromptExport ValueRead OnlySystem Field?
      STUDENT FIELDS
      UNITextboxN/AUNIYesYes
      First nameTextboxN/Afirst_nameYesYes
      Last nameTextboxN/Alast_nameYesYes
      Advisor UNIHidden textboxN/Asys:field:person_advisor_uniYes (hidden)Yes
      Academic programSelectperson_programperson_programYesYes
      Current modalitySelectin-person/remotecurrent_modalityNoNo
      New modalitySelectin-person/remotenew_modalityNoNo
      Electronic signatureTextboxN/Astudent_signatureNoNo
      DateDateN/Astudent_signature_dateNoNo
      INTERNAL FIELDS
      The change of modality request has beenSelectApproved/Deniedapproval_decisionNoNo
      The change of modality will go into effect at the start of the following termSelectadvising_termadvising_termNoYes
      Academic program representative signatureTextbox
      academic_program_representative_signatureNoNo
    • A confirmation email should be sent to the student with their advisor and spsadvising@columbia.edu CCed.
    • Create a script that displays the internal only fields for the student to see but makes them Read-Only when the student is completing the form. That script can be found here in the AIS repository here: slate_advising/forms/incomplete_grade_request/form_script.js.


  • Incomplete Grade Request Form
    • Create a form in Slate based on the existing form here: https://docs.google.com/document/d/1IaMZCzNWwsFlJnmb_mHwxyHgewwIL5bMZJJN8yChLFk/edit

      LabelField TypeSystem Field for PromptExport ValueRead Only?System Field?

      STUDENT FIELDS

      CUID

      Textbox

      (hidden)

      N/Asys:field:person_cuidYesYes
      External ID

      Textbox

      (hidden)

      N/A(incomplete_grade_request_entity_id)YesYes
      Request dateDateN/Aincomplete_grade_request_dateNoNo
      First nameTextboxN/Afirst_nameYesYes
      Last nameTextboxN/Alast_nameYesYes
      UNITextboxN/AUNIYesYes
      Advisor UNITextbox (hidden)N/Asys:field:person_advisor_uniYes (hidden)Yes
      Columbia email addressTextboxN/Asys:field:person_cu_emailYesYes
      Course nameTextboxN/Acourse_name_from_formYesNo
      Section numberTextboxN/Asection_number_from_formYesNo
      Class Schedule Row GUID

      Textbox

      (hidden)

      N/Asys:entity:field:incomplete_grade_class_guidYesYes
      Term/YearSelectschool_year_termssys:entity:field:advising_termYesYes
      Instructor nameTextboxN/Ainstructor_name_from_formYesNo
      Instructor email addressTextboxN/Ainstructor_email_addressYesNo
      Course requirement to completeTextboxN/Acourse_requirementNoNo
      Sign here to indicate that you agree to the conditions aboveTextboxN/Ae_signatureNoNo
      INTERNAL FIELDS
      Approval statusSelectincomplete_grade_request_approval_statusincomplete_grade_request_approval_statusNoYes
      Default gradeTextboxN/Aincomplete_grade_request_default_gradeNoYes
      Completion requirementsTextbox (paragraph)N/Aincomplete_grade_request_completion_requirementsNoYes
      Completion due dateDateN/Aincomplete_grade_request_completion_due_dateNoYes
      Instructor signatureTextboxN/Aincomplete_grade_request_instructor_signatureNoYes
    • Create a portal which will consist of:
      • A query to generate a list of classes for which a student in eligible to request an incomplete grade.
      • A query to generate a list of the student's existing incomplete grade requests.
      • A view page, consisting of:
        • A hidden table consisting of the students' full list of classes - the name, section number, term, instructor name, and email address. Each field in the table should have an id defined by what the field represents and the GUID of the class's row in the student's class list (e.g. "section_number_[guid]")
        • A table presenting the student's incomplete grade requests along with their statuses, requirements, etc.
          • If the request has been approved and the student has not yet signed the request, there will be a button that the student can click to sign the form.
        • A link to the form on which to make the request.
      • Create JavaScript functionality to accomplish the following:
        • Provide a drop-down list of the student's classes that are eligible for an incomplete grade.
          • Classes for which the student has already submitted a request should be removed from the drop-down options.
          • If there are no available classes," an error should pop-up saying that the student does not have any classes eligible for an "incomplete grade request." 
          • Upon selecting a class, the "class name," "section number," "term," "instructor name," and "instructor email address" fields should be automatically populated (this can be. easily accomplished by using the hidden table at the top of the page). It should also update the external id field with the guid of the class and the date the form is filled out.
        • Make instructor-specific fields as well as the "student signature" field read-only when the student enters the initial request.
        • The request status field should show "awaiting submission," but the status should be set to "pending" after the student makes the initial submission. (This can be accomplished by setting the real field to "Pending,", hiding it, and having a fake field locked on "Awaiting submission").
        • Make student-specific fields read-only when the instructor updates the form.
        • Force the following conditions when the instructor updates the form:
          • If the request is being left as "pending," "default grade," "completion requirements," "completion due date," and "instructor signature" fields be left blank. 
          • If the request is denied, the "default grade" and "completion requirement" fields should revert to "N/A," the "requirement completion date" field should be blank.  The "instructor signature" field should be required.
          • If the request is approved, the "default grade," "completion requirements," "completion due date," and "instructor signature" field should be required.
        • Make all fields other than "preferred name" and "student signature" read-only for when the student enters their signature. Make "student signature" required.
    • Upon submission of the form, the student should see a confirmation page. A confirmation email should go to the student, their advisor, and spsadvising@columbia.edu.
    • Upon update of the form by the advisor, a confirmation email should go to the student, their advisor, and spsadvising@columbia.edu.
    • Upon the student signing the form, a confirmation email should go to the student, their advisor, and spsadvising@columbia.edu



Related content

FY24.1.x: Technical Design (Slate+Advising)
FY24.1.x: Technical Design (Slate+Advising)
More like this
FY24.2.x: Functional Design (Slate+Advising)
FY24.2.x: Functional Design (Slate+Advising)
More like this
FY23.3.x: Functional Design (Slate+Advising)
FY23.3.x: Functional Design (Slate+Advising)
More like this
FY24.1.x: Functional Design (Slate+Advising)
FY24.1.x: Functional Design (Slate+Advising)
More like this
FY23.3.x: Technical Design (Slate+Advising)
FY23.3.x: Technical Design (Slate+Advising)
More like this
FY23.1.x: Technical Design (Slate+Advising)
FY23.1.x: Technical Design (Slate+Advising)
More like this