>();
+ const { toggle, open } = useAccordionAnimation(innerRef, () =>
+ semester.courses.length === 0 ? '140px' : '170px',
+ );
const {
handleSelectCourses,
@@ -96,8 +103,8 @@ export const MemoizedSemesterTile = React.memo(
// QUESTION: isValid color?
return (
@@ -110,7 +117,7 @@ export const MemoizedSemesterTile = React.memo(
open ? '-rotate-90' : 'rotate-90'
} ml-auto h-3 w-3 transform cursor-pointer text-neutral-500 transition-all duration-500`}
fontSize="inherit"
- onClick={() => setOpen(!open)}
+ onClick={toggle}
/>
@@ -153,8 +160,8 @@ export const MemoizedSemesterTile = React.memo(
/>
)}
{semester.courses.map((course) => (
diff --git a/src/components/planner/TransferBank.tsx b/src/components/planner/TransferBank.tsx
index b36e6155f..80b55a24e 100644
--- a/src/components/planner/TransferBank.tsx
+++ b/src/components/planner/TransferBank.tsx
@@ -1,16 +1,21 @@
-import React, { FC, useState } from 'react';
+import { FC, useRef, useState } from 'react';
import ChevronIcon from '@/icons/ChevronIcon';
+import useAccordionAnimation from '@/shared/useAccordionAnimation';
interface TransferBankProps {
transferCredits: string[];
}
const TransferBank: FC = ({ transferCredits }) => {
- const [open, setOpen] = useState(true);
+ const bankRef = useRef(null);
+ const { toggle, open } = useAccordionAnimation(bankRef, () => '50px');
return (
-
+
Transfer Credits
= ({ transferCredits }) => {
open ? '-rotate-90' : 'rotate-90'
} h-3 w-3 transform cursor-pointer text-neutral-500 transition-all duration-500`}
fontSize="inherit"
- onClick={() => setOpen(!open)}
+ onClick={toggle}
/>
@@ -31,9 +36,7 @@ const TransferBank: FC = ({ transferCredits }) => {
{transferCredits.map((credit, i) => (
- void }) {
}
}
}
+
// TODO: Consider whether credit was earned or not before adding to credits list
const credits: Credit[] = [];
let isTransfer = true;
@@ -158,6 +159,7 @@ export default function CustomPlan({ onDismiss }: { onDismiss: () => void }) {
}
}
}
+
const dedupedCredits = credits.reduce((acc, curr) => {
if (!acc.some((i) => i.courseCode === curr.courseCode)) {
acc.push(curr);
diff --git a/src/shared/useAccordionAnimation.tsx b/src/shared/useAccordionAnimation.tsx
new file mode 100644
index 000000000..ee06a8b7d
--- /dev/null
+++ b/src/shared/useAccordionAnimation.tsx
@@ -0,0 +1,40 @@
+import { useState, useCallback } from 'react';
+
+const useAccordionAnimation = (
+ ref: React.RefObject | null,
+ getClosedHeight: () => string,
+) => {
+ const [open, setOpen] = useState(true);
+ function collapseSection(element: HTMLElement, closedHeight: string) {
+ const sectionHeight = element.scrollHeight;
+ element.style.height = sectionHeight + 'px';
+ setTimeout(() => {
+ element.style.height = closedHeight;
+ }, 100);
+ }
+ function expandSection(element: HTMLElement) {
+ const zero = performance.now();
+ function animate() {
+ const value = (performance.now() - zero) / 700;
+ if (value < 1) {
+ element.style.height = element.scrollHeight + 8 + 'px';
+ requestAnimationFrame(animate);
+ }
+ }
+ requestAnimationFrame(animate);
+ }
+
+ const toggle = useCallback(() => {
+ if (!ref || !ref.current) return;
+ setOpen((prev) => !prev);
+ if (open) {
+ collapseSection(ref.current, getClosedHeight());
+ } else {
+ expandSection(ref.current);
+ }
+ }, [open, ref, getClosedHeight]);
+
+ return { toggle, open };
+};
+
+export default useAccordionAnimation;
diff --git a/validator/.vscode/major.schema.json b/validator/.vscode/major.schema.json
index 32e310a58..169c7b4d1 100644
--- a/validator/.vscode/major.schema.json
+++ b/validator/.vscode/major.schema.json
@@ -61,15 +61,11 @@
"type": "string"
}
},
- "requirements": [
- "id"
- ]
+ "requirements": ["id"]
}
},
"additionalProperties": false,
- "requirements": [
- "metadata"
- ]
+ "requirements": ["metadata"]
},
{
"type": "object",
@@ -90,15 +86,11 @@
"type": "string"
}
},
- "requirements": [
- "id"
- ]
+ "requirements": ["id"]
}
},
"additionalProperties": false,
- "requirements": [
- "metadata"
- ]
+ "requirements": ["metadata"]
},
{
"type": "object",
@@ -119,15 +111,11 @@
"type": "string"
}
},
- "requirements": [
- "id"
- ]
+ "requirements": ["id"]
}
},
"additionalProperties": false,
- "requirements": [
- "metadata"
- ]
+ "requirements": ["metadata"]
},
{
"type": "object",
@@ -151,15 +139,11 @@
"type": "string"
}
},
- "requirements": [
- "id"
- ]
+ "requirements": ["id"]
}
},
"additionalProperties": false,
- "requirements": [
- "metadata"
- ]
+ "requirements": ["metadata"]
},
{
"type": "object",
@@ -183,15 +167,11 @@
"type": "string"
}
},
- "requirements": [
- "id"
- ]
+ "requirements": ["id"]
}
},
"additionalProperties": false,
- "requirements": [
- "metadata"
- ]
+ "requirements": ["metadata"]
},
{
"type": "object",
@@ -215,15 +195,11 @@
"type": "string"
}
},
- "requirements": [
- "id"
- ]
+ "requirements": ["id"]
}
},
"additionalProperties": false,
- "requirements": [
- "metadata"
- ]
+ "requirements": ["metadata"]
},
{
"type": "object",
@@ -241,15 +217,11 @@
"type": "string"
}
},
- "requirements": [
- "id"
- ]
+ "requirements": ["id"]
}
},
"additionalProperties": false,
- "requirements": [
- "metadata"
- ]
+ "requirements": ["metadata"]
},
{
"type": "object",
@@ -267,15 +239,11 @@
"type": "string"
}
},
- "requirements": [
- "id"
- ]
+ "requirements": ["id"]
}
},
"additionalProperties": false,
- "requirements": [
- "metadata"
- ]
+ "requirements": ["metadata"]
},
{
"type": "object",
@@ -302,15 +270,11 @@
"type": "string"
}
},
- "requirements": [
- "id"
- ]
+ "requirements": ["id"]
}
},
"additionalProperties": false,
- "requirements": [
- "metadata"
- ]
+ "requirements": ["metadata"]
},
{
"type": "object",
@@ -337,15 +301,11 @@
"type": "string"
}
},
- "requirements": [
- "id"
- ]
+ "requirements": ["id"]
}
},
"additionalProperties": false,
- "requirements": [
- "metadata"
- ]
+ "requirements": ["metadata"]
},
{
"type": "object",
@@ -366,15 +326,11 @@
"type": "string"
}
},
- "requirements": [
- "id"
- ]
+ "requirements": ["id"]
}
},
"additionalProperties": false,
- "requirements": [
- "metadata"
- ]
+ "requirements": ["metadata"]
},
{
"type": "object",
@@ -401,15 +357,11 @@
"type": "string"
}
},
- "requirements": [
- "id"
- ]
+ "requirements": ["id"]
}
},
"additionalProperties": false,
- "requirements": [
- "metadata"
- ]
+ "requirements": ["metadata"]
},
{
"type": "object",
@@ -436,18 +388,14 @@
"type": "string"
}
},
- "requirements": [
- "id"
- ]
+ "requirements": ["id"]
},
"required_4000_level_courses": {
"type": "integer"
}
},
"additionalProperties": false,
- "requirements": [
- "metadata"
- ]
+ "requirements": ["metadata"]
},
{
"type": "object",
@@ -471,17 +419,13 @@
"type": "string"
}
},
- "requirements": [
- "id"
- ]
+ "requirements": ["id"]
}
},
"additionalProperties": false,
- "requirements": [
- "metadata"
- ]
+ "requirements": ["metadata"]
}
]
}
}
-}
\ No newline at end of file
+}
diff --git a/validator/.vscode/requirements.code-snippets b/validator/.vscode/requirements.code-snippets
index f20d22521..8dd5d3778 100644
--- a/validator/.vscode/requirements.code-snippets
+++ b/validator/.vscode/requirements.code-snippets
@@ -1,129 +1,87 @@
{
"CourseRequirement": {
- "prefix": [
- "cr",
- "CourseRequirement"
- ],
+ "prefix": ["cr", "CourseRequirement"],
"description": "Empty body of CourseRequirement",
"body": "{\n \"matcher\": \"CourseRequirement\",\n \"course\": \"\",\n \"metadata\": {\n \"id\": \"$UUID\"\n }\n}",
"scope": "json"
},
"AndRequirement": {
- "prefix": [
- "ar",
- "AndRequirement"
- ],
+ "prefix": ["ar", "AndRequirement"],
"description": "Empty body of AndRequirement",
"body": "{\n \"matcher\": \"AndRequirement\",\n \"requirements\": [],\n \"metadata\": {\n \"id\": \"$UUID\"\n }\n}",
"scope": "json"
},
"OrRequirement": {
- "prefix": [
- "or",
- "OrRequirement"
- ],
+ "prefix": ["or", "OrRequirement"],
"description": "Empty body of OrRequirement",
"body": "{\n \"matcher\": \"OrRequirement\",\n \"requirements\": [],\n \"metadata\": {\n \"id\": \"$UUID\"\n }\n}",
"scope": "json"
},
"FreeElectiveRequirement": {
- "prefix": [
- "fer",
- "FreeElectiveRequirement"
- ],
+ "prefix": ["fer", "FreeElectiveRequirement"],
"description": "Empty body of FreeElectiveRequirement",
"body": "{\n \"matcher\": \"FreeElectiveRequirement\",\n \"excluded_courses\": [],\n \"required_hours\": 0,\n \"metadata\": {\n \"id\": \"$UUID\"\n }\n}",
"scope": "json"
},
"SelectRequirement": {
- "prefix": [
- "sr",
- "SelectRequirement"
- ],
+ "prefix": ["sr", "SelectRequirement"],
"description": "Empty body of SelectRequirement",
"body": "{\n \"matcher\": \"SelectRequirement\",\n \"requirements\": [],\n \"required_count\": 0,\n \"metadata\": {\n \"id\": \"$UUID\"\n }\n}",
"scope": "json"
},
"HoursRequirement": {
- "prefix": [
- "hr",
- "HoursRequirement"
- ],
+ "prefix": ["hr", "HoursRequirement"],
"description": "Empty body of HoursRequirement",
"body": "{\n \"matcher\": \"HoursRequirement\",\n \"required_hours\": 0,\n \"requirements\": [],\n \"metadata\": {\n \"id\": \"$UUID\"\n }\n}",
"scope": "json"
},
"PrefixBucketRequirement": {
- "prefix": [
- "pbr",
- "PrefixBucketRequirement"
- ],
+ "prefix": ["pbr", "PrefixBucketRequirement"],
"description": "Empty body of PrefixBucketRequirement",
"body": "{\n \"matcher\": \"PrefixBucketRequirement\",\n \"prefix\": \"\",\n \"metadata\": {\n \"id\": \"$UUID\"\n }\n}",
"scope": "json"
},
"OtherRequirement": {
- "prefix": [
- "or",
- "OtherRequirement"
- ],
+ "prefix": ["or", "OtherRequirement"],
"description": "Empty body of OtherRequirement",
"body": "{\n \"matcher\": \"OtherRequirement\",\n \"description\": \"\",\n \"metadata\": {\n \"id\": \"$UUID\"\n }\n}",
"scope": "json"
},
"CSGuidedElectiveRequirement": {
- "prefix": [
- "csger",
- "CSGuidedElectiveRequirement"
- ],
+ "prefix": ["csger", "CSGuidedElectiveRequirement"],
"description": "Empty body of CSGuidedElectiveRequirement",
"body": "{\n \"matcher\": \"CSGuidedElectiveRequirement\",\n \"required_count\": 0,\n \"starts_with\": \"\",\n \"also_fulfills\": [],\n \"metadata\": {\n \"id\": \"$UUID\"\n }\n}",
"scope": "json"
},
"BAGuidedElectiveRequirement": {
- "prefix": [
- "bager",
- "BAGuidedElectiveRequirement"
- ],
+ "prefix": ["bager", "BAGuidedElectiveRequirement"],
"description": "Empty body of BAGuidedElectiveRequirement",
"body": "{\n \"matcher\": \"BAGuidedElectiveRequirement\",\n \"required_count\": 0,\n \"required_hours\": 0,\n \"prefix_groups\": [],\n \"metadata\": {\n \"id\": \"$UUID\"\n }\n}",
"scope": "json"
},
"SomeRequirement": {
- "prefix": [
- "sr",
- "SomeRequirement"
- ],
+ "prefix": ["sr", "SomeRequirement"],
"description": "Empty body of SomeRequirement",
"body": "{\n \"matcher\": \"SomeRequirement\",\n \"requirements\": [],\n \"metadata\": {\n \"id\": \"$UUID\"\n }\n}",
"scope": "json"
},
"MultiGroupElectiveRequirement": {
- "prefix": [
- "mger",
- "MultiGroupElectiveRequirement"
- ],
+ "prefix": ["mger", "MultiGroupElectiveRequirement"],
"description": "Empty body of MultiGroupElectiveRequirement",
"body": "{\n \"matcher\": \"MultiGroupElectiveRequirement\",\n \"requirement_count\": 0,\n \"requirements\": [],\n \"minimum_hours_in_area\": 0,\n \"metadata\": {\n \"id\": \"$UUID\"\n }\n}",
"scope": "json"
},
"ATECPrescribedElectiveRequirement": {
- "prefix": [
- "atecper",
- "ATECPrescribedElectiveRequirement"
- ],
+ "prefix": ["atecper", "ATECPrescribedElectiveRequirement"],
"description": "Empty body of ATECPrescribedElectiveRequirement",
"body": "{\n \"matcher\": \"ATECPrescribedElectiveRequirement\",\n \"requirement_count\": 0,\n \"requirements\": [],\n \"minimum_hours_in_area\": 0,\n \"metadata\": {\n \"id\": \"$UUID\"\n },\n \"required_4000_level_courses\": 0\n}",
"scope": "json"
},
"PsychologyPrefixesOrCourses": {
- "prefix": [
- "ppoc",
- "PsychologyPrefixesOrCourses"
- ],
+ "prefix": ["ppoc", "PsychologyPrefixesOrCourses"],
"description": "Empty body of PsychologyPrefixesOrCourses",
"body": "{\n \"matcher\": \"PsychologyPrefixesOrCourses\",\n \"required_hours\": 0,\n \"accepted_courses\": [],\n \"accepted_prefixes\": [],\n \"metadata\": {\n \"id\": \"$UUID\"\n }\n}",
"scope": "json"
},
"$comment": "Generated by gen_schema.py on 2023-08-04 18:20:08.360644"
-}
\ No newline at end of file
+}
diff --git a/validator/.vscode/settings.json b/validator/.vscode/settings.json
index 0cc661165..ee68d46c5 100644
--- a/validator/.vscode/settings.json
+++ b/validator/.vscode/settings.json
@@ -8,10 +8,8 @@
"python.analysis.typeCheckingMode": "basic",
"json.schemas": [
{
- "fileMatch": [
- "/degree_data/**.json"
- ],
- "url": ".vscode/major.schema.json"
+ "fileMatch": ["/degree_data/**.json"],
+ "url": ".vscode/major.schema.json"
}
],
"python.formatting.provider": "black"
diff --git a/validator/.vscode/utils.code-snippets b/validator/.vscode/utils.code-snippets
index 2bbaf97b3..844de0a60 100644
--- a/validator/.vscode/utils.code-snippets
+++ b/validator/.vscode/utils.code-snippets
@@ -1,22 +1,22 @@
{
- // Place your degree-validator workspace snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and
- // description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope
- // is left empty or omitted, the snippet gets applied to all languages. The prefix is what is
- // used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
- // $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders.
- // Placeholders with the same ids are connected.
- // Example:
- // "Print to console": {
- // "scope": "javascript,typescript",
- // "prefix": "log",
- // "body": [
- // "console.log('$1');",
- // "$2"
- // ],
- // "description": "Log output to console"
- // }
- "gen": {
- "prefix": "gen",
- "body": "$UUID"
- }
-}
\ No newline at end of file
+ // Place your degree-validator workspace snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and
+ // description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope
+ // is left empty or omitted, the snippet gets applied to all languages. The prefix is what is
+ // used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
+ // $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders.
+ // Placeholders with the same ids are connected.
+ // Example:
+ // "Print to console": {
+ // "scope": "javascript,typescript",
+ // "prefix": "log",
+ // "body": [
+ // "console.log('$1');",
+ // "$2"
+ // ],
+ // "description": "Log output to console"
+ // }
+ "gen": {
+ "prefix": "gen",
+ "body": "$UUID"
+ }
+}
diff --git a/validator/degree_data/2023/Business Administration Energy Management Concentration(BS).json b/validator/degree_data/2023/Business Administration Energy Management Concentration(BS).json
new file mode 100644
index 000000000..df0dedd3d
--- /dev/null
+++ b/validator/degree_data/2023/Business Administration Energy Management Concentration(BS).json
@@ -0,0 +1,550 @@
+{
+ "catalog_uri": "https://catalog.utdallas.edu/2022/undergraduate/programs/jsom/business-administration",
+ "minimum_credit_hours": 120,
+ "school": "Naveen Jindal School of Management",
+ "subtype": "Major",
+ "year": "2023-2024",
+ "requirements": {
+ "core": "@import ./core.json",
+ "major": [
+ {
+ "matcher": "AndRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-0",
+ "name": "Major Preparatory Courses"
+ },
+ "requirements": [
+ {
+ "course": "ACCT 2301",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-1"
+ }
+ },
+ {
+ "course": "ACCT 2302",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-2"
+ }
+ },
+ {
+ "course": "BLAW 2301",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-3"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "course": "MATH 1325",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-5"
+ }
+ },
+ {
+ "course": "MATH 2413",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-6"
+ }
+ },
+ {
+ "course": "MATH 2417",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-7"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-4"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-8"
+ },
+ "requirements": [
+ {
+ "course": "OPRE 3360",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-9"
+ }
+ },
+ {
+ "course": "STAT 3360",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-10"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": "SelectRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-11"
+ },
+ "required_count": 2,
+ "requirements": [
+ {
+ "course": "BA 1310",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-12"
+ }
+ },
+ {
+ "course": "BA 1320",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-13"
+ }
+ },
+ {
+ "course": "ECON 2301",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-14"
+ }
+ },
+ {
+ "course": "ECON 2302",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-15"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "matcher": "AndRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-16",
+ "name": "Major Core Courses"
+ },
+ "requirements": [
+ {
+ "matcher": "OrRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-17"
+ },
+ "requirements": [
+ {
+ "course": "BCOM 1300",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-18"
+ }
+ },
+ {
+ "course": "BCOM 3300",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-19"
+ }
+ }
+ ]
+ },
+ {
+ "course": "BA 3300",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-20"
+ }
+ },
+ {
+ "course": "BCOM 4300",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-21"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-22"
+ },
+ "requirements": [
+ {
+ "course": "BPS 4305",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-23"
+ }
+ },
+ {
+ "course": "ENTP 3320",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-24"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": "OrRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-25"
+ },
+ "requirements": [
+ {
+ "course": "BPS 4395",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-26"
+ }
+ },
+ {
+ "course": "ENTP 4395",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-27"
+ }
+ }
+ ]
+ },
+ {
+ "course": "FIN 3320",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-28"
+ }
+ },
+ {
+ "course": "IMS 3310",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-29"
+ }
+ },
+ {
+ "course": "ITSS 3300",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-30"
+ }
+ },
+ {
+ "course": "MKT 3300",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-31"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-32"
+ },
+ "requirements": [
+ {
+ "course": "OBHR 3310",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-33"
+ }
+ },
+ {
+ "course": "OBHR 3330",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-34"
+ }
+ }
+ ]
+ },
+ {
+ "course": "OPRE 3310",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-35"
+ }
+ },
+ {
+ "course": "OPRE 3330",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-36"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-37"
+ },
+ "requirements": [
+ {
+ "course": "BPS 4396",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-38"
+ }
+ },
+ {
+ "course": "ENTP 4340",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-39"
+ }
+ },
+ {
+ "course": "MKT 4360",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-40"
+ }
+ },
+ {
+ "course": "BA 4095",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-41"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "matcher": "AndRequirement",
+ "metadata": {
+ "name": "Major Related Courses",
+ "id": "Business Administration(BS) Energy Management Concentration-42"
+ },
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENGY 3301",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-43"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENGY 3302",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-44"
+ }
+ },
+ {
+ "matcher": "SelectRequirement",
+ "required_count": 2,
+ "requirements": [
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENGY 3340",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-47"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BLAW 4301",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-48"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-46"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "FIN 4313",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-50"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENGY 4313",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-51"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-49"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MECO 4342",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-52"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-45"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "BA 4V90",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-54"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BA 4090",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-55"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-53"
+ }
+ },
+ {
+ "matcher": "HoursRequirement",
+ "required_hours": 12,
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "BA 4V90",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-57"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BA 4090",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-58"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENGY 3340",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-60"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BLAW 4301",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-61"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-59"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENGY 4313",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-62"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "FIN 4340",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-63"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "FIN 4345",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-64"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "GEOS 1303",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-65"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "MECO 3330",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-67"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENGY 3330",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-68"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-66"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MECO 4342",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-69"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "NATS 2333",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-70"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "OPRE 4330",
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-71"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-56"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": "FreeElectiveRequirement",
+ "required_hours": 6,
+ "excluded_courses": [],
+ "metadata": {
+ "id": "Business Administration(BS) Energy Management Concentration-72"
+ }
+ }
+ ]
+ },
+ "display_name": "Business Administration(BS) Energy Management Concentration",
+ "id": "21dc5715-5b1b-4c02-99ce-32eb8bc90325"
+}
diff --git a/validator/degree_data/2023/Electrical Engineering(BS).json b/validator/degree_data/2023/Electrical Engineering(BS).json
new file mode 100644
index 000000000..90465e4cb
--- /dev/null
+++ b/validator/degree_data/2023/Electrical Engineering(BS).json
@@ -0,0 +1,586 @@
+{
+ "catalog_uri": "https://catalog.utdallas.edu/2022/undergraduate/programs/ecs/electrical-engineering",
+ "minimum_credit_hours": 128,
+ "school": "Erik Jonsson School of Engineering and Computer Science",
+ "subtype": "Major",
+ "year": "2023-2024",
+ "requirements": {
+ "core": "@import ./core.json",
+ "major": [
+ {
+ "matcher": "AndRequirement",
+ "metadata": {
+ "name": "Major Preparatory Courses",
+ "id": "Electrical Engineering(BSEE)-0"
+ },
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "CHEM 1111",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-1"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "CHEM 1311",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-2"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "CS 1325",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-3"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 1100",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-4"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ECS 1100",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-5"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 1202",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-6"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENGR 2300",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-7"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 2310",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-8"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "PHYS 2125",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-9"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "PHYS 2126",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-10"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "PHYS 2325",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-11"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "PHYS 2326",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-12"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "RHET 1302",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-13"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "AndRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "MATH 2413",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-16"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MATH 2414",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-17"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MATH 2415",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-18"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-15"
+ }
+ },
+ {
+ "matcher": "AndRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "MATH 2417",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-20"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MATH 2419",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-21"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-19"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-14"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MATH 2420",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-22"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": "AndRequirement",
+ "metadata": {
+ "name": "Major Core Courses",
+ "id": "Electrical Engineering(BSEE)-23"
+ },
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 3161",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-24"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ECS 3390",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-25"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 3201",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-26"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 3202",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-27"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENGR 3300",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-28"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 2301",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-29"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 3302",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-30"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 3310",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-31"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 3311",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-32"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 3320",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-33"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENGR 3341",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-34"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4301",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-35"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4310",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-36"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4370",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-37"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4388",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-38"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4389",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-39"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4201",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-41"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4202",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-42"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4203",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-43"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4204",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-44"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4205",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-45"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-40"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": "HoursRequirement",
+ "required_hours": 12,
+ "metadata": {
+ "name": "Major Guided Electives",
+ "id": "Electrical Engineering(BSEE)-46"
+ },
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4V97",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-47"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4V98",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-48"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4399",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-49"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4168",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-50"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4325",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-51"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4340",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-52"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4368",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-53"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4V95",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-54"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4202",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-55"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4304",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-56"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4V95",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-57"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4201",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-58"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4330",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-59"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4391",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-60"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4371",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-61"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4V95",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-62"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4204",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-63"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4362",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-64"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4363",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-65"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4V95",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-66"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4205",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-67"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 3350",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-68"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4331",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-69"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4342",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-70"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4360",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-71"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4361",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-72"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4365",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-73"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4367",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-74"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4V95",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-75"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4203",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-76"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4399",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-77"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "EE 4V98",
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-78"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": "FreeElectiveRequirement",
+ "required_hours": 9,
+ "excluded_courses": [],
+ "metadata": {
+ "id": "Electrical Engineering(BSEE)-79"
+ }
+ }
+ ]
+ },
+ "display_name": "Electrical Engineering(BSEE)",
+ "id": "2abe1b82-15a2-4854-8875-8b4c5a812610"
+}
diff --git a/validator/degree_data/2023/Global Business(BS).json b/validator/degree_data/2023/Global Business(BS).json
new file mode 100644
index 000000000..8a4b53aaf
--- /dev/null
+++ b/validator/degree_data/2023/Global Business(BS).json
@@ -0,0 +1,1245 @@
+{
+ "catalog_uri": "https://catalog.utdallas.edu/2022/undergraduate/programs/jsom/global-business",
+ "minimum_credit_hours": 120,
+ "school": "Naveen Jindal School of Management",
+ "subtype": "Major",
+ "year": "2023-2024",
+ "requirements": {
+ "core": "@import ./core.json",
+ "major": [
+ {
+ "matcher": "AndRequirement",
+ "metadata": {
+ "name": "Major Preparatory Courses",
+ "id": "Global Business(BS)-0"
+ },
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "ACCT 2301",
+ "metadata": {
+ "id": "Global Business(BS)-1"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ACCT 2302",
+ "metadata": {
+ "id": "Global Business(BS)-2"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BLAW 2301",
+ "metadata": {
+ "id": "Global Business(BS)-3"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "course": "MATH 1325",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Global Business(BS)-5"
+ }
+ },
+ {
+ "course": "MATH 2413",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Global Business(BS)-6"
+ }
+ },
+ {
+ "course": "MATH 2417",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Global Business(BS)-7"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-4"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "OPRE 3360",
+ "metadata": {
+ "id": "Global Business(BS)-9"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "STAT 3360",
+ "metadata": {
+ "id": "Global Business(BS)-10"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-8"
+ }
+ },
+ {
+ "matcher": "SelectRequirement",
+ "required_count": 2,
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "BA 1310",
+ "metadata": {
+ "id": "Global Business(BS)-12"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BA 1320",
+ "metadata": {
+ "id": "Global Business(BS)-13"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ECON 2301",
+ "metadata": {
+ "id": "Global Business(BS)-14"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ECON 2302",
+ "metadata": {
+ "id": "Global Business(BS)-15"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-11"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": "AndRequirement",
+ "metadata": {
+ "name": "Major Core Courses",
+ "id": "Global Business(BS)-16"
+ },
+ "requirements": [
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "BCOM 1300",
+ "metadata": {
+ "id": "Global Business(BS)-18"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BCOM 3300",
+ "metadata": {
+ "id": "Global Business(BS)-19"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-17"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BCOM 4300",
+ "metadata": {
+ "id": "Global Business(BS)-20"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "FIN 3320",
+ "metadata": {
+ "id": "Global Business(BS)-21"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "IMS 3310",
+ "metadata": {
+ "id": "Global Business(BS)-22"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "IMS 4395",
+ "metadata": {
+ "id": "Global Business(BS)-24"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BPS 4395",
+ "metadata": {
+ "id": "Global Business(BS)-25"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENTP 4395",
+ "metadata": {
+ "id": "Global Business(BS)-26"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-23"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ITSS 3300",
+ "metadata": {
+ "id": "Global Business(BS)-27"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 3300",
+ "metadata": {
+ "id": "Global Business(BS)-28"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "OBHR 3310",
+ "metadata": {
+ "id": "Global Business(BS)-30"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "OBHR 3330",
+ "metadata": {
+ "id": "Global Business(BS)-31"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-29"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "OPRE 3310",
+ "metadata": {
+ "id": "Global Business(BS)-32"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": "AndRequirement",
+ "metadata": {
+ "name": "Major Related Courses",
+ "id": "Global Business(BS)-33"
+ },
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "BLAW 4301",
+ "metadata": {
+ "id": "Global Business(BS)-34"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "FIN 3380",
+ "metadata": {
+ "id": "Global Business(BS)-35"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "IMS 4320",
+ "metadata": {
+ "id": "Global Business(BS)-37"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4320",
+ "metadata": {
+ "id": "Global Business(BS)-38"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-36"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "IMS 4330",
+ "metadata": {
+ "id": "Global Business(BS)-39"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "IMS 4350",
+ "metadata": {
+ "id": "Global Business(BS)-40"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "IMS 4373",
+ "metadata": {
+ "id": "Global Business(BS)-41"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "IMS 4310",
+ "metadata": {
+ "id": "Global Business(BS)-43"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "IMS 4340",
+ "metadata": {
+ "id": "Global Business(BS)-44"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "IMS 4v94",
+ "metadata": {
+ "id": "Global Business(BS)-45"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-42"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": "AndRequirement",
+ "metadata": {
+ "name": "Elective Requirements",
+ "id": "Global Business(BS)-46"
+ },
+ "requirements": [
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "IMS 4V90",
+ "metadata": {
+ "id": "Global Business(BS)-48"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "IMS 4090",
+ "metadata": {
+ "id": "Global Business(BS)-49"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BA 4090",
+ "metadata": {
+ "id": "Global Business(BS)-50"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-47"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "IMS 4335",
+ "metadata": {
+ "id": "Global Business(BS)-52"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BPS 4396",
+ "metadata": {
+ "id": "Global Business(BS)-53"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENTP 4340",
+ "metadata": {
+ "id": "Global Business(BS)-54"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4360",
+ "metadata": {
+ "id": "Global Business(BS)-55"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BA 4095",
+ "metadata": {
+ "id": "Global Business(BS)-56"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-51"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "AndRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "FIN 3350",
+ "metadata": {
+ "id": "Global Business(BS)-59"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MECO 4303",
+ "metadata": {
+ "id": "Global Business(BS)-60"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MECO 4351",
+ "metadata": {
+ "id": "Global Business(BS)-61"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MECHO 4352",
+ "metadata": {
+ "id": "Global Business(BS)-62"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-58"
+ }
+ },
+ {
+ "matcher": "AndRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENGY 3301",
+ "metadata": {
+ "id": "Global Business(BS)-64"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENGY 3302",
+ "metadata": {
+ "id": "Global Business(BS)-65"
+ }
+ },
+ {
+ "matcher": "SelectRequirement",
+ "required_count": 2,
+ "requirements": [
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENGY 3340",
+ "metadata": {
+ "id": "Global Business(BS)-68"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BLAW 4301",
+ "metadata": {
+ "id": "Global Business(BS)-69"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-67"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "FIN 4313",
+ "metadata": {
+ "id": "Global Business(BS)-71"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENGY 4313",
+ "metadata": {
+ "id": "Global Business(BS)-72"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-70"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MECO 4342",
+ "metadata": {
+ "id": "Global Business(BS)-73"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-66"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-63"
+ }
+ },
+ {
+ "matcher": "AndRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENTP 3301",
+ "metadata": {
+ "id": "Global Business(BS)-75"
+ }
+ },
+ {
+ "matcher": "HoursRequirement",
+ "required_hours": 9,
+ "requirements": [
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENTP 3320",
+ "metadata": {
+ "id": "Global Business(BS)-78"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENTP 3321",
+ "metadata": {
+ "id": "Global Business(BS)-79"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENTP 3360",
+ "metadata": {
+ "id": "Global Business(BS)-80"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "FIN 3360",
+ "metadata": {
+ "id": "Global Business(BS)-81"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-77"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENTP 4311",
+ "metadata": {
+ "id": "Global Business(BS)-82"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENTP 4320",
+ "metadata": {
+ "id": "Global Business(BS)-84"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENTP 4350",
+ "metadata": {
+ "id": "Global Business(BS)-85"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENTP 4360",
+ "metadata": {
+ "id": "Global Business(BS)-86"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENTP 4398",
+ "metadata": {
+ "id": "Global Business(BS)-87"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENTP 4399",
+ "metadata": {
+ "id": "Global Business(BS)-88"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENTP 4V00",
+ "metadata": {
+ "id": "Global Business(BS)-89"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-83"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-76"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-74"
+ }
+ },
+ {
+ "matcher": "AndRequirement",
+ "requirements": [
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "RMIS 3370",
+ "metadata": {
+ "id": "Global Business(BS)-92"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "FIN 3370",
+ "metadata": {
+ "id": "Global Business(BS)-93"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-91"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "RMIS 4331",
+ "metadata": {
+ "id": "Global Business(BS)-95"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "FIN 4331",
+ "metadata": {
+ "id": "Global Business(BS)-96"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-94"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "RMIS 4332",
+ "metadata": {
+ "id": "Global Business(BS)-98"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "FIN 4332",
+ "metadata": {
+ "id": "Global Business(BS)-99"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-97"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "RMIS 4333",
+ "metadata": {
+ "id": "Global Business(BS)-101"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "FIN 4333",
+ "metadata": {
+ "id": "Global Business(BS)-102"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-100"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "RMIS 4334",
+ "metadata": {
+ "id": "Global Business(BS)-104"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "FIN 4334",
+ "metadata": {
+ "id": "Global Business(BS)-105"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-103"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-90"
+ }
+ },
+ {
+ "matcher": "AndRequirement",
+ "requirements": [
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "REAL 3305",
+ "metadata": {
+ "id": "Global Business(BS)-108"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "FIN 3305",
+ "metadata": {
+ "id": "Global Business(BS)-109"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-107"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "REAL 3358",
+ "metadata": {
+ "id": "Global Business(BS)-111"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "FIN 3358",
+ "metadata": {
+ "id": "Global Business(BS)-112"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-110"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "REAL 3365",
+ "metadata": {
+ "id": "Global Business(BS)-114"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "FIN 3365",
+ "metadata": {
+ "id": "Global Business(BS)-115"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-113"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "REAL 4321",
+ "metadata": {
+ "id": "Global Business(BS)-117"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "FIN 4321",
+ "metadata": {
+ "id": "Global Business(BS)-118"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-116"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "REAL 4332",
+ "metadata": {
+ "id": "Global Business(BS)-120"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "FIN 4332",
+ "metadata": {
+ "id": "Global Business(BS)-121"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-119"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-106"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-57"
+ }
+ },
+ {
+ "matcher": "AndRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 3330",
+ "metadata": {
+ "id": "Global Business(BS)-123"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 3331",
+ "metadata": {
+ "id": "Global Business(BS)-125"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4332",
+ "metadata": {
+ "id": "Global Business(BS)-126"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-124"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4331",
+ "metadata": {
+ "id": "Global Business(BS)-128"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENTP 4331",
+ "metadata": {
+ "id": "Global Business(BS)-129"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-127"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "OBHR 4352",
+ "metadata": {
+ "id": "Global Business(BS)-130"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-122"
+ }
+ },
+ {
+ "matcher": "HoursRequirement",
+ "required_hours": 18,
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "IMS 4V90",
+ "metadata": {
+ "id": "Global Business(BS)-132"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "IMS 4090",
+ "metadata": {
+ "id": "Global Business(BS)-133"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BA 4090",
+ "metadata": {
+ "id": "Global Business(BS)-134"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "IMS 4335",
+ "metadata": {
+ "id": "Global Business(BS)-135"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENTP 4340",
+ "metadata": {
+ "id": "Global Business(BS)-136"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4360",
+ "metadata": {
+ "id": "Global Business(BS)-137"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BA 4095",
+ "metadata": {
+ "id": "Global Business(BS)-138"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENTP 3301",
+ "metadata": {
+ "id": "Global Business(BS)-139"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENTP 3360",
+ "metadata": {
+ "id": "Global Business(BS)-140"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "FIN 3360",
+ "metadata": {
+ "id": "Global Business(BS)-141"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENTP 4311",
+ "metadata": {
+ "id": "Global Business(BS)-142"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENTP 4320",
+ "metadata": {
+ "id": "Global Business(BS)-143"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENTP 4350",
+ "metadata": {
+ "id": "Global Business(BS)-144"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "RMIS 3370",
+ "metadata": {
+ "id": "Global Business(BS)-145"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "FIN 3370",
+ "metadata": {
+ "id": "Global Business(BS)-146"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "RMIS 4331",
+ "metadata": {
+ "id": "Global Business(BS)-147"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "FIN 4331",
+ "metadata": {
+ "id": "Global Business(BS)-148"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "RMIS 4332",
+ "metadata": {
+ "id": "Global Business(BS)-149"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "FIN 4332",
+ "metadata": {
+ "id": "Global Business(BS)-150"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "RMIS 4333",
+ "metadata": {
+ "id": "Global Business(BS)-151"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "FIN 4333",
+ "metadata": {
+ "id": "Global Business(BS)-152"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "RMIS 4334",
+ "metadata": {
+ "id": "Global Business(BS)-153"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "FIN 4334",
+ "metadata": {
+ "id": "Global Business(BS)-154"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "REAL 3305",
+ "metadata": {
+ "id": "Global Business(BS)-155"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "FIN 3305",
+ "metadata": {
+ "id": "Global Business(BS)-156"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "REAL 3365",
+ "metadata": {
+ "id": "Global Business(BS)-157"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "FIN 3365",
+ "metadata": {
+ "id": "Global Business(BS)-158"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "REAL 4321",
+ "metadata": {
+ "id": "Global Business(BS)-159"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "FIN 4321",
+ "metadata": {
+ "id": "Global Business(BS)-160"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "REAL 4328",
+ "metadata": {
+ "id": "Global Business(BS)-161"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "FIN 4328",
+ "metadata": {
+ "id": "Global Business(BS)-162"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 3330",
+ "metadata": {
+ "id": "Global Business(BS)-163"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 3331",
+ "metadata": {
+ "id": "Global Business(BS)-164"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4332",
+ "metadata": {
+ "id": "Global Business(BS)-165"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4331",
+ "metadata": {
+ "id": "Global Business(BS)-166"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENTP 4331",
+ "metadata": {
+ "id": "Global Business(BS)-167"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "OBHR 4352",
+ "metadata": {
+ "id": "Global Business(BS)-168"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Global Business(BS)-131"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "display_name": "Global Business(BS)",
+ "id": "e2a06098-9169-457d-b1e4-bc726295f777"
+}
diff --git a/validator/degree_data/2023/Information Technology And Systems(BS).json b/validator/degree_data/2023/Information Technology And Systems(BS).json
new file mode 100644
index 000000000..0016c4248
--- /dev/null
+++ b/validator/degree_data/2023/Information Technology And Systems(BS).json
@@ -0,0 +1,644 @@
+{
+ "catalog_uri": "https://catalog.utdallas.edu/2022/undergraduate/programs/jsom/information-technology-systems",
+ "minimum_credit_hours": 120,
+ "school": "Naveen Jindal School of Management",
+ "subtype": "Major",
+ "year": "2023-2024",
+ "requirements": {
+ "core": "@import ./core.json",
+ "major": [
+ {
+ "matcher": "AndRequirement",
+ "metadata": {
+ "name": "Major Preparatory Courses",
+ "id": "Information Technology and Systems(BS)-0"
+ },
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "ACCT 2301",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-1"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ACCT 2302",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-2"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BLAW 2301",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-3"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ITSS 3311",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-4"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "ITSS 3312",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-6"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ITSS 4381",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-7"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-5"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "course": "MATH 1325",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-9"
+ }
+ },
+ {
+ "course": "MATH 2413",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-10"
+ }
+ },
+ {
+ "course": "MATH 2417",
+ "matcher": "CourseRequirement",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-11"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-8"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "MATH 1326",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-13"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "OPRE 3340",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-14"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-12"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "OPRE 3333",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-16"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MATH 2333",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-17"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-15"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "OPRE 3360",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-19"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "STAT 3360",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-20"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-18"
+ }
+ },
+ {
+ "matcher": "SelectRequirement",
+ "required_count": 2,
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "BA 1310",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-22"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BA 1320",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-23"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ECON 2301",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-24"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ECON 2302",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-25"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-21"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": "AndRequirement",
+ "metadata": {
+ "name": "Major Core Courses",
+ "id": "Information Technology and Systems(BS)-26"
+ },
+ "requirements": [
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "BCOM 1300",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-28"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BCOM 3300",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-29"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-27"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BCOM 4300",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-30"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "FIN 3320",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-31"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "IMS 3310",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-32"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ITSS 3300",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-33"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 3300",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-34"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "OBHR 3310",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-36"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "OBHR 3330",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-37"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-35"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "OPRE 3310",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-38"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BA 4095",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-39"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": "AndRequirement",
+ "metadata": {
+ "name": "Major Related Courses",
+ "id": "Information Technology and Systems(BS)-40"
+ },
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "ITSS 4300",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-41"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ITSS 4330",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-42"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ITSS 4351",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-43"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ITSS 4360",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-44"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ITSS 4370",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-45"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "ITSS 4395",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-47"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BPS 4395",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-48"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-46"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "ITSS 4090",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-50"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BA 4090",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-51"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-49"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": "AndRequirement",
+ "metadata": {
+ "name": "Guided Electives",
+ "id": "Information Technology and Systems(BS)-52"
+ },
+ "requirements": [
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "HoursRequirement",
+ "required_hours": 12,
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "ITSS 4352",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-55"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ITSS 4353",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-56"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ITSS 4354",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-57"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ITSS 4355",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-58"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-54"
+ }
+ },
+ {
+ "matcher": "HoursRequirement",
+ "required_hours": 12,
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "ITSS 4340",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-60"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ITSS 4343",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-61"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ITSS 4344",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-62"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "ACCT 4342",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-64"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ACCT 3322",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-65"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-63"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-59"
+ }
+ },
+ {
+ "matcher": "HoursRequirement",
+ "required_hours": 12,
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "ITSS 4340",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-67"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 3330",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-68"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4331",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-70"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4332",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-71"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-69"
+ }
+ },
+ {
+ "matcher": "PrefixBucketRequirement",
+ "prefix": "ITSS",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-72"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-66"
+ }
+ },
+ {
+ "matcher": "HoursRequirement",
+ "required_hours": 12,
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENTP 3301",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-74"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENTP 3320",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-75"
+ }
+ },
+ {
+ "matcher": "PrefixBucketRequirement",
+ "prefix": "ITSS",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-76"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-73"
+ }
+ },
+ {
+ "matcher": "HoursRequirement",
+ "required_hours": 12,
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "ITSS 4356",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-78"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ITSS 4361",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-79"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ITSS 4362",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-80"
+ }
+ },
+ {
+ "matcher": "PrefixBucketRequirement",
+ "prefix": "ITSS",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-81"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-77"
+ }
+ },
+ {
+ "matcher": "HoursRequirement",
+ "required_hours": 12,
+ "requirements": [
+ {
+ "matcher": "PrefixBucketRequirement",
+ "prefix": "ITSS",
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-83"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-82"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-53"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": "FreeElectiveRequirement",
+ "required_hours": 0,
+ "excluded_courses": [],
+ "metadata": {
+ "id": "Information Technology and Systems(BS)-84"
+ }
+ }
+ ]
+ },
+ "display_name": "Information Technology and Systems(BS)",
+ "id": "1b43a1ff-ea55-42c5-b702-b75b489e5cfb"
+}
diff --git a/validator/degree_data/2023/Marketing(BS).json b/validator/degree_data/2023/Marketing(BS).json
new file mode 100644
index 000000000..521bceb0a
--- /dev/null
+++ b/validator/degree_data/2023/Marketing(BS).json
@@ -0,0 +1,524 @@
+{
+ "catalog_uri": "https://catalog.utdallas.edu/2022/undergraduate/programs/jsom/marketing",
+ "minimum_credit_hours": 120,
+ "school": "Naveen Jindal School of Management",
+ "subtype": "Major",
+ "year": "2023-2024",
+ "requirements": {
+ "core": "@import ./core.json",
+ "major": [
+ {
+ "matcher": "AndRequirement",
+ "metadata": {
+ "name": "Major Preparatory Courses",
+ "id": "Marketing(BS)-0"
+ },
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "ACCT 2301",
+ "metadata": {
+ "id": "Marketing(BS)-1"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ACCT 2302",
+ "metadata": {
+ "id": "Marketing(BS)-2"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BLAW 2301",
+ "metadata": {
+ "id": "Marketing(BS)-3"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "MATH 1325",
+ "metadata": {
+ "id": "Marketing(BS)-5"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MATH 2413",
+ "metadata": {
+ "id": "Marketing(BS)-6"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MATH 2417",
+ "metadata": {
+ "id": "Marketing(BS)-7"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Marketing(BS)-4"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "OPRE 3360",
+ "metadata": {
+ "id": "Marketing(BS)-9"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "STAT 3360",
+ "metadata": {
+ "id": "Marketing(BS)-10"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Marketing(BS)-8"
+ }
+ },
+ {
+ "matcher": "SelectRequirement",
+ "required_count": 2,
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "BA 1310",
+ "metadata": {
+ "id": "Marketing(BS)-12"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BA 1320",
+ "metadata": {
+ "id": "Marketing(BS)-13"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ECON 2301",
+ "metadata": {
+ "id": "Marketing(BS)-14"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ECON 2302",
+ "metadata": {
+ "id": "Marketing(BS)-15"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Marketing(BS)-11"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": "AndRequirement",
+ "metadata": {
+ "name": "Major Core Courses",
+ "id": "Marketing(BS)-16"
+ },
+ "requirements": [
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "BCOM 1300",
+ "metadata": {
+ "id": "Marketing(BS)-18"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BCOM 3300",
+ "metadata": {
+ "id": "Marketing(BS)-19"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Marketing(BS)-17"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BCOM 4300",
+ "metadata": {
+ "id": "Marketing(BS)-20"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "FIN 3320",
+ "metadata": {
+ "id": "Marketing(BS)-21"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "IMS 3310",
+ "metadata": {
+ "id": "Marketing(BS)-22"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ITSS 3300",
+ "metadata": {
+ "id": "Marketing(BS)-23"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 3300",
+ "metadata": {
+ "id": "Marketing(BS)-24"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "OBHR 3330",
+ "metadata": {
+ "id": "Marketing(BS)-26"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "OBHR 3310",
+ "metadata": {
+ "id": "Marketing(BS)-27"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Marketing(BS)-25"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "OPRE 3310",
+ "metadata": {
+ "id": "Marketing(BS)-28"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": "AndRequirement",
+ "metadata": {
+ "name": "Major Related Courses",
+ "id": "Marketing(BS)-29"
+ },
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 3330",
+ "metadata": {
+ "id": "Marketing(BS)-30"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 3340",
+ "metadata": {
+ "id": "Marketing(BS)-31"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4330",
+ "metadata": {
+ "id": "Marketing(BS)-32"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4337",
+ "metadata": {
+ "id": "Marketing(BS)-33"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4395",
+ "metadata": {
+ "id": "Marketing(BS)-35"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENTP 3320",
+ "metadata": {
+ "id": "Marketing(BS)-36"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BPS 4395",
+ "metadata": {
+ "id": "Marketing(BS)-37"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENTP 4395",
+ "metadata": {
+ "id": "Marketing(BS)-38"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Marketing(BS)-34"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": "AndRequirement",
+ "metadata": {
+ "name": "Guided Electives",
+ "id": "Marketing(BS)-39"
+ },
+ "requirements": [
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4V90",
+ "metadata": {
+ "id": "Marketing(BS)-41"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4090",
+ "metadata": {
+ "id": "Marketing(BS)-42"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BA 4090",
+ "metadata": {
+ "id": "Marketing(BS)-43"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Marketing(BS)-40"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "BPS 4396",
+ "metadata": {
+ "id": "Marketing(BS)-45"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENTP 4340",
+ "metadata": {
+ "id": "Marketing(BS)-46"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4360",
+ "metadata": {
+ "id": "Marketing(BS)-47"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BA 4095",
+ "metadata": {
+ "id": "Marketing(BS)-48"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Marketing(BS)-44"
+ }
+ },
+ {
+ "matcher": "HoursRequirement",
+ "required_hours": 12,
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 3320",
+ "metadata": {
+ "id": "Marketing(BS)-50"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 3331",
+ "metadata": {
+ "id": "Marketing(BS)-51"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4331",
+ "metadata": {
+ "id": "Marketing(BS)-52"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4332",
+ "metadata": {
+ "id": "Marketing(BS)-53"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4333",
+ "metadata": {
+ "id": "Marketing(BS)-54"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4334",
+ "metadata": {
+ "id": "Marketing(BS)-55"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4335",
+ "metadata": {
+ "id": "Marketing(BS)-56"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4336",
+ "metadata": {
+ "id": "Marketing(BS)-57"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4338",
+ "metadata": {
+ "id": "Marketing(BS)-58"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4339",
+ "metadata": {
+ "id": "Marketing(BS)-59"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4340",
+ "metadata": {
+ "id": "Marketing(BS)-60"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4341",
+ "metadata": {
+ "id": "Marketing(BS)-61"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4350",
+ "metadata": {
+ "id": "Marketing(BS)-62"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4360",
+ "metadata": {
+ "id": "Marketing(BS)-63"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4370",
+ "metadata": {
+ "id": "Marketing(BS)-64"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4390",
+ "metadata": {
+ "id": "Marketing(BS)-65"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4V83",
+ "metadata": {
+ "id": "Marketing(BS)-66"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4V90",
+ "metadata": {
+ "id": "Marketing(BS)-67"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4V93",
+ "metadata": {
+ "id": "Marketing(BS)-68"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Marketing(BS)-49"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": "FreeElectiveRequirement",
+ "required_hours": 15,
+ "excluded_courses": [],
+ "metadata": {
+ "id": "Marketing(BS)-69"
+ }
+ }
+ ]
+ },
+ "display_name": "Marketing(BS)",
+ "id": "e7ba4ce4-dcbc-44f1-9382-e106d38fc311"
+}
diff --git a/validator/degree_data/2023/Supply Chain Management(BS).json b/validator/degree_data/2023/Supply Chain Management(BS).json
new file mode 100644
index 000000000..48b120673
--- /dev/null
+++ b/validator/degree_data/2023/Supply Chain Management(BS).json
@@ -0,0 +1,619 @@
+{
+ "catalog_uri": "https://catalog.utdallas.edu/2022/undergraduate/programs/jsom/supply-chain-management",
+ "minimum_credit_hours": 120,
+ "school": "Naveen Jindal School of Management",
+ "subtype": "Major",
+ "year": "2023-2024",
+ "requirements": {
+ "core": "@import ./core.json",
+ "major": [
+ {
+ "matcher": "AndRequirement",
+ "metadata": {
+ "name": "Major Preparatory Courses",
+ "id": "Supply Chain Management(BS)-0"
+ },
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "ACCT 2301",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-1"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ACCT 2302",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-2"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BLAW 2301",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-3"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "MATH 1325",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-5"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MATH 2413",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-6"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MATH 2417",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-7"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Supply Chain Management(BS)-4"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "OPRE 3340",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-9"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MATH 1326",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-10"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Supply Chain Management(BS)-8"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "OPRE 3333",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-12"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "STAT 2333",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-13"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Supply Chain Management(BS)-11"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "OPRE 3360",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-15"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "STAT 3360",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-16"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Supply Chain Management(BS)-14"
+ }
+ },
+ {
+ "matcher": "SelectRequirement",
+ "required_count": 2,
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "BA 1310",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-18"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BA 1320",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-19"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ECON 2301",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-20"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ECON 2302",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-21"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Supply Chain Management(BS)-17"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": "AndRequirement",
+ "metadata": {
+ "name": "Major Core Courses",
+ "id": "Supply Chain Management(BS)-22"
+ },
+ "requirements": [
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "BCOM 1300",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-24"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BCOM 3300",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-25"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Supply Chain Management(BS)-23"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BCOM 4300",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-26"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "FIN 3320",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-27"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "IMS 3310",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-28"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ITSS 3300",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-29"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 3300",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-30"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "OBHR 3310",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-32"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "OBHR 3330",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-33"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Supply Chain Management(BS)-31"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "OPRE 3310",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-34"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": "AndRequirement",
+ "metadata": {
+ "name": "Major Related Courses",
+ "id": "Supply Chain Management(BS)-35"
+ },
+ "requirements": [
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "OPRE 4395",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-37"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BPS 4395",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-38"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENTP 4395",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-39"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Supply Chain Management(BS)-36"
+ }
+ },
+ {
+ "matcher": "SelectRequirement",
+ "required_count": 6,
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "OPRE 3320",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-41"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "OPRE 3330",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-42"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "OPRE 4310",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-43"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "OPRE 4320",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-44"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "OPRE 4330",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-45"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "OPRE 4340",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-46"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "OPRE 4362",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-47"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Supply Chain Management(BS)-40"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": "AndRequirement",
+ "metadata": {
+ "name": "Major Guided Electives",
+ "id": "Supply Chain Management(BS)-48"
+ },
+ "requirements": [
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "OPRE 4V90",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-50"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "OPRE 4090",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-51"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BA 4090",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-52"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Supply Chain Management(BS)-49"
+ }
+ },
+ {
+ "matcher": "OrRequirement",
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "BPS 4396",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-54"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENTP 4340",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-55"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4360",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-56"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BA 4095",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-57"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Supply Chain Management(BS)-53"
+ }
+ },
+ {
+ "matcher": "HoursRequirement",
+ "required_hours": 12,
+ "requirements": [
+ {
+ "matcher": "CourseRequirement",
+ "course": "OPRE 4V90",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-59"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "OPRE 4090",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-60"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BA 4090",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-61"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "IMS 4335",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-62"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ENTP 4340",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-63"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4360",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-64"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BA 4095",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-65"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "OPRE 4350",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-66"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "OPRE 4357",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-67"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "ITSS 4340",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-68"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4330",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-69"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "OPRE 4355",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-70"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 3320",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-71"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 3330",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-72"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "OBHR 4352",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-73"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "OPRE 4337",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-74"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "OPRE 4350",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-75"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "OPRE 4353",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-76"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "MKT 4341",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-77"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "OPRE 3370",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-78"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "OPRE 4345",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-79"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "OPRE 4362",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-80"
+ }
+ },
+ {
+ "matcher": "CourseRequirement",
+ "course": "BPS 4305",
+ "metadata": {
+ "id": "Supply Chain Management(BS)-81"
+ }
+ }
+ ],
+ "metadata": {
+ "id": "Supply Chain Management(BS)-58"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": "FreeElectiveRequirement",
+ "required_hours": 6,
+ "excluded_courses": [],
+ "metadata": {
+ "id": "Supply Chain Management(BS)-82"
+ }
+ }
+ ]
+ },
+ "display_name": "Supply Chain Management(BS)",
+ "id": "a1525a33-2c07-4300-be04-5ef54fa79c98"
+}
diff --git a/validator/requirements.txt b/validator/requirements.txt
index fe24f0ca6..398743593 100644
--- a/validator/requirements.txt
+++ b/validator/requirements.txt
@@ -17,7 +17,7 @@ gunicorn==20.1.0
idna==3.4
iniconfig==2.0.0
itsdangerous==2.1.2
-Jinja2==3.1.2
+Jinja2==3.1.3
jira==3.5.2
jsonschema==4.17.3
limits==2.8.0