Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for graduating undergraduate dual majors & relax program checks #2282

Merged
merged 2 commits into from
Jul 19, 2022

Conversation

mark-dce
Copy link
Contributor

@mark-dce mark-dce commented Jul 14, 2022

OVERVIEW

Over the past six months, we have refactored and tightened up the
code that determines ETD publication eligibility. Emory has also introduced
new dual degree programs and asked us to relax checking at the program level.

We currently match the program provided in the registrar data to the corresponding
degree entered by the student. While registrar data includes degree information after
the student has graduated; only the program information is available prior to
graduation to help us determine whether the ETD is in a pending-graduation state.

Based on these changes, the code in this PR implements the following business rules:

RULES

  1. For each approved ETD
  2. Look for an exact match of PPID, school, and program (do this first since this is the most efficient form of lookup and works 90% or more of the time)
  3. If no exact match is found, look for a match of PPID & school (less efficient)
  4. If no student & school match found, look for a dual major match (“UBUS” vs. “UCOL”)
  5. Extract the graduation date from the best match (exact, or school, or dual-major in that priority)

ACTION

  1. If there is an exact match, and a graduation date is present, publish the ETD
  2. Otherwise, if there is a school match, and a graduation date is present, publish the ETD and log the program mismatch
  3. Otherwise, if there is an undergrad business match, and a graduation date is present, publish ETD and log the student provided school and program
  4. Otherwise, DO NOT PUBLISH the ETD and log any registrar records matching the PPID but not meeting graduation criteria (wrong school or pending graduation)

NOTE: this change also reformats the order of columns in the fixture data so relevant debugging and testing data is closer to the beginning of each record.

MORE BACKGROUND

ISSUE 1
Emory would like these student to list themselves as being part of
the "Emory College" program, but the Registrar is showing their
graduation record associated with the "Undergraduate Business" school.

This means the application expects to find a graduation record like
PPIDxxx-UCOL-BBA, but the Registrar data provides PPIDxxx-UBUS-BBA.

There are other students graduating in "UCOL" programs, so we can't
just change the mapping; we have to add an additional check for this
specific case.

It's also possible that they've listed their non-business degree, so we also
have to allow for program-vs-degree mismatches.

SOLUTION
This commit adds a secondary check when-and-only-when the student
has entered "Emory College" and also scans
Registrar data for the same student within the "Undergraduate
Business" program. In these cases, the program in the registrar data may also
not match the degree the student has entered because the student has
written the thesis as part of their liberal arts program instead of the business
program.

ISSUE 2
Emory has indicated that they would like to process graduation records
and ETD publication even if the student provided degree does not
exactly match the program data in the registrar data.

SOLUTION

  • When an exact match cannot be found, look for student and school matches
    ignoring program & degree mismatches
  • Use graduation status from exact matches when possible; otherwise, use
    relaxed matches if present, and log the differing data
  • Relax program checking for undergaduate dual degree candidates in the
    same way

The undergraduate college and business school have launched a dual
major program that allows students to complete both a liberal arts
and a business undergraduate degree.

**ISSUE**
Emory would like these student to list themselves as being part of
the "Emory College" program, but the Registrar is showing their
graduation record associated with the "Undergraduate Business" school.

This means the application expects to find a graudation record like
`PPIDxxx-UCOL-BBA`, but the Registrar data provides `PPIDxxx-UBUS-BBA`.

There are other students graduating in "UCOL" programs, so we can't
just change the mapping; we have to add an additional check for this
specific case.

**SOLUTION**
This commit adds a secondary check when-and-only-when the student
has entered "Emory College" and a "B.B.A" degree that also scans
Registrar data for the same student and degree within the "Undergraduate
Business" program.
@coveralls
Copy link

coveralls commented Jul 14, 2022

Coverage Status

Coverage increased (+1.8%) to 88.553% when pulling da4d94d on grad_ubus into f20fd8f on main.

@mark-dce mark-dce changed the title Add support for graduating undergraduate dual majors Add support for graduating undergraduate dual majors & relax program checks Jul 19, 2022
**ISSUE**
Emory has indicated that they would like to process graduation records
and ETD publication even if the student provided degree does not
exactly match the program data in the registrar data.

**CHANGES**
* When an exact match cannot be found, look for student and school matches
ignoring program & degree mismatches
* Use graduation status from exact matches when possible; otherwise, use
relaxed matches if present, and log the differing data
* Relax program checking for undergaduate dual degree candidates in the
same way
@mlooney mlooney merged commit 29c505d into main Jul 19, 2022
@mlooney mlooney deleted the grad_ubus branch July 19, 2022 19:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants