4 Commits

Author SHA1 Message Date
ef357ec1fa Wait that was pretty smooth 2023-04-29 05:45:06 -05:00
1556395b73 check for multiple 2023-04-29 05:43:10 -05:00
2b2050a729 simplified label 2023-04-29 05:33:58 -05:00
565c326bfc oops almost broke everything again 2023-04-29 05:31:26 -05:00
2 changed files with 16 additions and 8 deletions

View File

@@ -59,7 +59,7 @@
<label for="dropdown">Semester (under construction):</label> <label for="dropdown">Semester (under construction):</label>
<select id="semester" name="dropdown"> <select id="semester" name="dropdown">
<option value="f2022">Fall 2022</option> <option value="f2022">Fall 2022</option>
<option value="sum2022">Summer 2022</option> <option value="s2022">Summer 2022</option>
<option value="sp2022">Spring 2022</option> <option value="sp2022">Spring 2022</option>
<option value="f2021">Fall 2021</option> <option value="f2021">Fall 2021</option>
</select> </select>

22
main.js
View File

@@ -7,7 +7,8 @@ if(chartDiv.getAttribute('value') == 'invisible'){
} }
var gradeChart; var gradeChart;
const ctx = document.getElementById("gradeBar"); const ctx = document.getElementById("gradeBar");
const labels = ['A', 'A-', 'B+', 'B', 'B-', 'C+', 'C', 'C-', 'D+', 'D', 'D-', 'F']; const gradeLabels = ["A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "F"];
/* /*
Parse the input form and class data Parse the input form and class data
*/ */
@@ -46,10 +47,11 @@ async function PapaParse(department, num, name, sem) {
case 'f2022': case 'f2022':
url = 'https://derec4.github.io/ut-grade-data/2022%20Fall.json'; url = 'https://derec4.github.io/ut-grade-data/2022%20Fall.json';
break; break;
case 'sum2022': case 's2022':
url = 'https://derec4.github.io/ut-grade-data/2022%20Summer.json'; url = 'https://derec4.github.io/ut-grade-data/2022%20Summer.json';
break; break;
case 'sp2022': case 'sp2022':
// Temp, change when other data sets are added
url = 'https://derec4.github.io/ut-grade-data/2022%20Spring.json'; url = 'https://derec4.github.io/ut-grade-data/2022%20Spring.json';
break; break;
case 'f2021': case 'f2021':
@@ -68,7 +70,7 @@ async function PapaParse(department, num, name, sem) {
.filter(cData => cData["Course Title"].includes(name)); .filter(cData => cData["Course Title"].includes(name));
if(selectedClass.length == 0) { if(selectedClass.length == 0) {
// Possible that the class name was typed wrong; try again with just the course number // Possible that the class name was typed wrong; try again with just the course number
console.log("Invalid name; trying again with just course number and prefix"); console.log("Invalid name; trying again with just the course number");
selectedClass = cData.filter(cData => cData["Course Prefix"].includes(department)) selectedClass = cData.filter(cData => cData["Course Prefix"].includes(department))
.filter(cData => cData["Course Number"] == num.toString().toUpperCase()); .filter(cData => cData["Course Number"] == num.toString().toUpperCase());
} }
@@ -79,6 +81,7 @@ async function PapaParse(department, num, name, sem) {
} }
console.log(selectedClass); console.log(selectedClass);
let gradeDist = { let gradeDist = {
"A": 0, "A": 0,
'A-': 0, 'A-': 0,
@@ -94,19 +97,24 @@ async function PapaParse(department, num, name, sem) {
'F': 0, 'F': 0,
'Other': 0 'Other': 0
}; };
let lableName = selectedClass[0]["Course Title"];
for(i in selectedClass) { for(i in selectedClass) {
let letterGrade = selectedClass[i]["Letter Grade"]; let letterGrade = selectedClass[i]["Letter Grade"];
let cnt = selectedClass[i]["Count of letter grade"] let cnt = selectedClass[i]["Count of letter grade"]
gradeDist[letterGrade] += cnt; gradeDist[letterGrade] += cnt;
if(!(lableName === selectedClass[i]["Course Title"])) {
lableName = "Multiple courses found using the same ID; try specifying a course name!"
}
// console.log(selectedClass[i]["Letter Grade"]); // console.log(selectedClass[i]["Letter Grade"]);
// console.log(selectedClass[i]["Count of letter grade"]); // console.log(selectedClass[i]["Count of letter grade"]);
} }
console.log(gradeDist); console.log(gradeDist);
if(gradeChart) { if(gradeChart) {
gradeChart.config.data = { gradeChart.config.data = {
labels: labels, labels: gradeLabels,
datasets: [{ datasets: [{
label: 'Grade distribution for \"' + selectedClass[0]["Course Title"] +"\"", label: 'Grade distribution for \"' + lableName +"\"",
data: Object.values(gradeDist), data: Object.values(gradeDist),
borderWidth: 2, borderWidth: 2,
// borderColor: '#36A2EB', // borderColor: '#36A2EB',
@@ -115,7 +123,7 @@ async function PapaParse(department, num, name, sem) {
}; };
gradeChart.update(); gradeChart.update();
} else { } else {
loadChart(gradeDist, selectedClass[0]["Course Title"]); loadChart(gradeDist, lableName);
aboutDiv.style.visibility='hidden'; aboutDiv.style.visibility='hidden';
chartDiv.style.display = ''; chartDiv.style.display = '';
} }
@@ -125,7 +133,7 @@ function loadChart(gradeDist, courseName) {
gradeChart = new Chart(ctx, { gradeChart = new Chart(ctx, {
type: 'bar', type: 'bar',
data: { data: {
labels: labels, labels: gradeLabels,
datasets: [{ datasets: [{
label: 'Grade distribution for \"' + courseName + "\"", label: 'Grade distribution for \"' + courseName + "\"",
data: Object.values(gradeDist), data: Object.values(gradeDist),