Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

« Previous Version 6 Next »

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.

  • HBCU/CUNY Fellows
    • Create a prompt key called "Fellowships" with a prompt called "HBCU" and a prompt called "CUNY."
    • Create a select multiple field called "Fellowships" that utilizes the fellowships prompt.
    • Create a source format called Fellowships, with the following settings:
      • Type: Cumulative/Replaceable
      • Update Only: Update Only

Technical Design

Purpose

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

  • HBCU/CUNY Fellows
    • Upload a spreadsheet consisting of a column for PID and a column for Fellowship. PID should match to CUID and Fellowship should match to Fellowships. Each student should have a row for each fellowship (in the unlikely case that one student has both fellowships, s/he should have one row for each on the spreadsheet).
    • Add a field on the dashboard pages of students, former students, and alumni that shows "Fellowships" and lists any fellowships that the student has.
    • Create a population for HBCU Fellows and one for CUNY Fellows.
    • Create a rule called "Assign HBCU Fellows" and one called "Assign CUNY Fellows." Assign students who have either value to the appropriate population.
  • Advisor Scheduling
    • Make a copy of the "Meet our Advising Team Portal" called "Schedule an Advising Session."
      • Create a view for each advisor called "Advisor - [advisor's name]."
        • This view will consist of the advisor's scheduling widget(s) as a well as a blank div below them.
      • Create a method for each advisor called "Advisor - [advisor's name]
        • The action that trigger's that method should be: show_schedules_[advisor's UNI]
        • The method should have an output type of "AJAX Popup/No Branding."
        • The method should have a view of the respective advisor's view page.
      • Create a view page called "my_advisor" comprised of:
        • Advisor information - which comes from the displayed information about each advisor in the "Meet our Advising Team" protal.
        • A heading for the section containing the scheduling widget.
        • A section that makes LazyFetch api call to retrieve and display the advisor's seheduling widgets.
        • A javascript section at the bottom, have code that repeats every millisecond to see if the blank div exists. Because this div is below the advisor's schedule widgets, it will be rendered after them. Therefore, once the blank div has been rendered, we can check to see whether the advisor has any scheduling widgets. If either the blank div does not exist OR the advisor does not have widgets, display an error that the adivsor does not have online scheduling.
        • Each of the above sections is wrapped in an if/then statement based on whether the advisor has a first name. If not, the query to obtain advisor information yielded no results. Therefore display an error that the user has reached an invalid page.
      • Create a default method called "advisor_scheduling."
        • The method will use the advisor_uni parameter in the URL to call the advisor_info query to obtain information about the selected advisor. The query should filter for people with a role as an advisor. So that if the uni is a match to user, but that user is not an advisor, no information will be returned.
        • The method will display the "my_advisor" view page.
      • Change the URL of the "Meet our Advising Team" portal to a dummy one.
      • Make the "Meet our Advising Team" portal inactive.
      • Change the URL of the new portal to: https://advising.sps.columbia.edu/portal/advising_team for a seamless user experience.
  • No labels