Process subjects with the correct categories
Fixed some issues with the input data
This commit is contained in:
parent
e92c0b1a4f
commit
ab898d2344
5 changed files with 149 additions and 26 deletions
|
@ -69,7 +69,8 @@ Programtervező informatikus BSc_N (2017) [BSZKPTI-N1] mintatanterv,,,,,,,,,,,,,
|
||||||
◼◼◼,IBK507E‑00001,Bonyolultságelmélet (tehetséggondozó program),5,Kötelezően választható,Előadás,2,,2,,,,,,,,,,,,,,,
|
◼◼◼,IBK507E‑00001,Bonyolultságelmélet (tehetséggondozó program),5,Kötelezően választható,Előadás,2,,2,,,,,,,,,,,,,,,
|
||||||
◼◼,TE‑IBK507G,Bonyolultságelmélet,5,Kötelező,,,,2,2,,1,,,,,,,,,,,,
|
◼◼,TE‑IBK507G,Bonyolultságelmélet,5,Kötelező,,,,2,2,,1,,,,,,,,,,,,
|
||||||
◼◼◼,IBK507G,Bonyolultságelmélet gyakorlat,5,Kötelezően választható,Gyakorlat,1,,2,,,,,,,,,,,,,,,
|
◼◼◼,IBK507G,Bonyolultságelmélet gyakorlat,5,Kötelezően választható,Gyakorlat,1,,2,,,,,,,,,,,,,,,
|
||||||
◼◼◼,IBK507G‑00001,Bonyolultságelmélet gyakorlat (tehetséggondozó program),5,Kötelezően választható,Gyakorlat,1,,2,,,,,MK‑SZT,Szakmai törzsanyag,,Kötelező,,,,52,52,,
|
◼◼◼,IBK507G‑00001,Bonyolultságelmélet gyakorlat (tehetséggondozó program),5,Kötelezően választható,Gyakorlat,1,,2,,,,
|
||||||
|
,MK‑SZT,Szakmai törzsanyag,,Kötelező,,,,52,52,,
|
||||||
◼,TT‑IB402,Operációs rendszerek,,Kötelező,,,,4,4,2,,,,,,,,,,,,,
|
◼,TT‑IB402,Operációs rendszerek,,Kötelező,,,,4,4,2,,,,,,,,,,,,,
|
||||||
◼◼,TE‑IB402e,Operációs rendszerek,2,Kötelező,,,,2,2,,1,,,,,,,,,,,,
|
◼◼,TE‑IB402e,Operációs rendszerek,2,Kötelező,,,,2,2,,1,,,,,,,,,,,,
|
||||||
◼◼◼,IB402e‑00001,Operációs rendszerek (tehetséggondozó program),2,Kötelezően választható,Előadás,2,,2,,,,,,,,,,,,,,,
|
◼◼◼,IB402e‑00001,Operációs rendszerek (tehetséggondozó program),2,Kötelezően választható,Előadás,2,,2,,,,,,,,,,,,,,,
|
||||||
|
@ -133,7 +134,8 @@ Programtervező informatikus BSc_N (2017) [BSZKPTI-N1] mintatanterv,,,,,,,,,,,,,
|
||||||
◼◼◼,IB042e‑00001,Digitális képfeldolgozás (tehetséggondozó program),6,Kötelezően választható,Előadás,2,,2,,,,,,,,,,,,,,,
|
◼◼◼,IB042e‑00001,Digitális képfeldolgozás (tehetséggondozó program),6,Kötelezően választható,Előadás,2,,2,,,,,,,,,,,,,,,
|
||||||
◼◼,TE‑IB042g,Digitális képfeldolgozás,6,Kötelező,,,,2,2,,1,,,,,,,,,,,,
|
◼◼,TE‑IB042g,Digitális képfeldolgozás,6,Kötelező,,,,2,2,,1,,,,,,,,,,,,
|
||||||
◼◼◼,IB042g‑00002,Digitális képfeldolgozás gyakorlat (tehetséggondozó program),6,Kötelezően választható,Labor,1,,2,,,,,,,,,,,,,,,
|
◼◼◼,IB042g‑00002,Digitális képfeldolgozás gyakorlat (tehetséggondozó program),6,Kötelezően választható,Labor,1,,2,,,,,,,,,,,,,,,
|
||||||
◼◼◼,IB042g,Digitális képfeldolgozás gyakorlat,6,Kötelezően választható,Labor,1,,2,,,,,MK‑DSZ,Differenciált szakmai ismeretek,,Kötelező,,,,52,52,,
|
◼◼◼,IB042g,Digitális képfeldolgozás gyakorlat,6,Kötelezően választható,Labor,1,,2,,,,
|
||||||
|
,MK‑DSZ,Differenciált szakmai ismeretek,,Kötelező,,,,52,52,,
|
||||||
◼,MK‑DIF‑MATSZT,Differenciált matematikai és számítástudományi ismeretek,,Kötelező,,,,,14,,,,,,,,,,,,,,
|
◼,MK‑DIF‑MATSZT,Differenciált matematikai és számítástudományi ismeretek,,Kötelező,,,,,14,,,,,,,,,,,,,,
|
||||||
◼◼,TT‑MBNXK112,Diszkrét matematika II.,2,Kötelezően választható,,,,,5,2,,,,,,,,,,,,,
|
◼◼,TT‑MBNXK112,Diszkrét matematika II.,2,Kötelezően választható,,,,,5,2,,,,,,,,,,,,,
|
||||||
◼◼◼,TE‑MBNXK112E,Diszkrét matematika II. előadás,2,Kötelezően választható,,,,,2,,1,,,,,,,,,,,,
|
◼◼◼,TE‑MBNXK112E,Diszkrét matematika II. előadás,2,Kötelezően választható,,,,,2,,1,,,,,,,,,,,,
|
||||||
|
@ -832,7 +834,8 @@ Programtervező informatikus BSc_N (2017) [BSZKPTI-N1] mintatanterv,,,,,,,,,,,,,
|
||||||
◼◼◼◼◼,IB470G,Mobil alkalmazásfejlesztés,3,Kötelezően választható,Gyakorlat,2,,2,,,,,,,,,,,,,,,
|
◼◼◼◼◼,IB470G,Mobil alkalmazásfejlesztés,3,Kötelezően választható,Gyakorlat,2,,2,,,,,,,,,,,,,,,
|
||||||
◼◼◼◼,TE‑IB472E,Multiplatform alkalmazásfejlesztés C++-ban,,Kötelezően választható,,,,,3,,1,,,,,,,,,,,,
|
◼◼◼◼,TE‑IB472E,Multiplatform alkalmazásfejlesztés C++-ban,,Kötelezően választható,,,,,3,,1,,,,,,,,,,,,
|
||||||
◼◼◼◼◼,IB472E,Multiplatform alkalmazásfejlesztés C++-ban,4,Kötelezően választható,Előadás,2,,3,,,,,,,,,,,,,,,
|
◼◼◼◼◼,IB472E,Multiplatform alkalmazásfejlesztés C++-ban,4,Kötelezően választható,Előadás,2,,3,,,,,,,,,,,,,,,
|
||||||
◼◼◼◼,IB001e‑00055,Képfeldolgozó Nyári Iskola,,Kötelezően választható,Előadás,2,,3,,,,,MK‑SZV,Szabadon választott,,Szabadon választható,,,,10,10,,
|
◼◼◼◼,IB001e‑00055,Képfeldolgozó Nyári Iskola,,Kötelezően választható,Előadás,2,,3,,,,
|
||||||
|
,MK‑SZV,Szabadon választott,,Szabadon választható,,,,10,10,,
|
||||||
◼,TT‑BSZV00,Biológia SZV,,Nincs megadva,,,,0,0,,,,,,,,,,,,,,
|
◼,TT‑BSZV00,Biológia SZV,,Nincs megadva,,,,0,0,,,,,,,,,,,,,,
|
||||||
◼◼,TE‑BSZV00,Biológia SZV,,Szabadon választható,,,,2,2,,1,,,,,,,,,,,,
|
◼◼,TE‑BSZV00,Biológia SZV,,Szabadon választható,,,,2,2,,1,,,,,,,,,,,,
|
||||||
◼◼◼,BSZV00‑00325,molekuláris biológia 2 BSc szeminárium,,Szabadon választható,Előadás,2,,2,,,,,,,,,,,,,,,
|
◼◼◼,BSZV00‑00325,molekuláris biológia 2 BSc szeminárium,,Szabadon választható,Előadás,2,,2,,,,,,,,,,,,,,,
|
||||||
|
@ -1509,9 +1512,11 @@ Programtervező informatikus BSc_N (2017) [BSZKPTI-N1] mintatanterv,,,,,,,,,,,,,
|
||||||
◼◼◼,XN0211‑02631,Német B2 gazdasági szaknyelv 1x2,,Szabadon választható,Gyakorlat,2,,2,,,,,,,,,,,,,,,
|
◼◼◼,XN0211‑02631,Német B2 gazdasági szaknyelv 1x2,,Szabadon választható,Gyakorlat,2,,2,,,,,,,,,,,,,,,
|
||||||
◼◼◼,XN0141‑02637,Német idegenforgalmi szaknyelv B2 1. szint 2x2,,Szabadon választható,Gyakorlat,4,,4,,,,,,,,,,,,,,,
|
◼◼◼,XN0141‑02637,Német idegenforgalmi szaknyelv B2 1. szint 2x2,,Szabadon választható,Gyakorlat,4,,4,,,,,,,,,,,,,,,
|
||||||
◼◼◼,XN0141‑02642,Angol idegenforgalmi szaknyelv B2 1. szint 2x2,,Szabadon választható,Gyakorlat,4,,4,,,,,,,,,,,,,,,
|
◼◼◼,XN0141‑02642,Angol idegenforgalmi szaknyelv B2 1. szint 2x2,,Szabadon választható,Gyakorlat,4,,4,,,,,,,,,,,,,,,
|
||||||
◼◼◼,XN0141‑02646,Angol idegenforgalmi szaknyelv B2 2. szint 2x2,,Szabadon választható,Gyakorlat,4,,4,,,,,MK‑SZD,Szakdolgozat,,Kötelező,,,,20,20,,
|
◼◼◼,XN0141‑02646,Angol idegenforgalmi szaknyelv B2 2. szint 2x2,,Szabadon választható,Gyakorlat,4,,4,,,,
|
||||||
|
,MK‑SZD,Szakdolgozat,,Kötelező,,,,20,20,,
|
||||||
◼,TE‑IB3000G,Szakdolgozat készítése,5,Kötelező,,,,10,10,,1,,,,,,,,,,,,
|
◼,TE‑IB3000G,Szakdolgozat készítése,5,Kötelező,,,,10,10,,1,,,,,,,,,,,,
|
||||||
◼◼,IB3000G,Szakdolgozat készítése 1.,5,Kötelező,Gyakorlat,2,,10,,,,,,,,,,,,,,,
|
◼◼,IB3000G,Szakdolgozat készítése 1.,5,Kötelező,Gyakorlat,2,,10,,,,,,,,,,,,,,,
|
||||||
◼,TE‑IB3001G,Szakdolgozat készítése,6,Kötelező,,,,10,10,,1,,,,,,,,,,,,
|
◼,TE‑IB3001G,Szakdolgozat készítése,6,Kötelező,,,,10,10,,1,,,,,,,,,,,,
|
||||||
◼◼,IB3001G,Szakdolgozat készítése 2.,6,Kötelező,Gyakorlat,4,,10,,,,,MK‑SZG,Szakmai gyakorlat,,Kötelező,,,,,,,1
|
◼◼,IB3001G,Szakdolgozat készítése 2.,6,Kötelező,Gyakorlat,4,,10,,,,
|
||||||
|
,MK‑SZG,Szakmai gyakorlat,,Kötelező,,,,,,,1
|
||||||
◼,IB000pi17G,Szakmai gyakorlat (2017-től felvettek részére),0,Kötelező,Gyakorlat,,320,0,,,,,,,,,,,,,,,
|
◼,IB000pi17G,Szakmai gyakorlat (2017-től felvettek részére),0,Kötelező,Gyakorlat,,320,0,,,,,,,,,,,,,,,
|
||||||
|
|
Can't render this file because it has a wrong number of fields in line 72.
|
91
spec.js
91
spec.js
|
@ -1,36 +1,91 @@
|
||||||
const szak = document.getElementById("szak");
|
const szak = document.getElementById("szak");
|
||||||
const lk = document.getElementById("leckekonyv");
|
const lk = document.getElementById("leckekonyv");
|
||||||
parseExcel = function (file) {
|
promiseOnLoad = async loadable => new Promise(((resolve, reject) => (loadable.onload = ev => resolve(ev)) && (loadable.onerror = ev => reject(ev))));
|
||||||
const reader = new FileReader();
|
parseExcel = async function (file) {
|
||||||
|
try {
|
||||||
|
const reader = new FileReader();
|
||||||
|
const evpr = promiseOnLoad(reader);
|
||||||
|
reader.readAsBinaryString(file);
|
||||||
|
const ev = await evpr;
|
||||||
|
const data = ev.target.result;
|
||||||
|
|
||||||
reader.onload = function (e) {
|
|
||||||
const data = e.target.result;
|
|
||||||
const workbook = XLSX.read(data, {
|
const workbook = XLSX.read(data, {
|
||||||
type: 'binary'
|
type: 'binary'
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
workbook.SheetNames.forEach(function (sheetName) {
|
workbook.SheetNames.forEach(function (sheetName) {
|
||||||
const XL_row_object = XLSX.utils.sheet_to_row_object_array(workbook.Sheets[sheetName]);
|
const XL_row_object = XLSX.utils.sheet_to_row_object_array(workbook.Sheets[sheetName]);
|
||||||
const json_object = JSON.stringify(XL_row_object);
|
const json_object = JSON.stringify(XL_row_object);
|
||||||
console.log(json_object);
|
console.log(json_object);
|
||||||
console.log(XL_row_object[0]["Tárgykód"]);
|
console.log(XL_row_object[0]["Tárgykód"]);
|
||||||
|
});
|
||||||
})
|
} catch
|
||||||
|
(ex) {
|
||||||
};
|
|
||||||
|
|
||||||
reader.onerror = function (ex) {
|
|
||||||
console.log(ex);
|
console.log(ex);
|
||||||
};
|
}
|
||||||
|
}
|
||||||
reader.readAsBinaryString(file);
|
lk.onchange = async () => await parseExcel(lk.files[0]);
|
||||||
};
|
szak.onchange = async () => {
|
||||||
lk.onchange = ev => parseExcel(lk.files[0]);
|
|
||||||
szak.onchange = async ev => {
|
|
||||||
if (szak.value === "nope") return;
|
if (szak.value === "nope") return;
|
||||||
let response = await fetch(document.URL.substr(0, document.URL.lastIndexOf('/')) + '/data/' + szak.value + "_bsc.csv");
|
let response = await fetch(document.URL.substr(0, document.URL.lastIndexOf('/')) + '/data/' + szak.value + "_bsc.csv");
|
||||||
let data = await response.text();
|
let data = await response.text();
|
||||||
let obj = Papa.parse(data);
|
let obj = Papa.parse(data);
|
||||||
console.log(obj);
|
const szakError = document.getElementById("szakError");
|
||||||
|
szakError.innerText = "";
|
||||||
|
if (obj.errors.length > 0) {
|
||||||
|
for (const error of obj.errors)
|
||||||
|
szakError.innerHTML += error.type + " - " + error.code + ": " + error.message + "<br />";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
console.log(obj.data);
|
||||||
|
let cat;
|
||||||
|
for (let i = 2; i < obj.data.length; i++) { //2: Skip header
|
||||||
|
const sdata = obj.data[i];
|
||||||
|
if (sdata.length < 10)
|
||||||
|
continue;
|
||||||
|
if (sdata[5].length === 0) { //Course type, only present at leaf nodes
|
||||||
|
let tempcat = tryGetCat(sdata[1]);
|
||||||
|
if (tempcat !== undefined)
|
||||||
|
cat = tempcat;
|
||||||
|
if (sdata[2].indexOf("specializáció") === -1)
|
||||||
|
continue;
|
||||||
|
const spec = new Specialization(sdata[1], sdata[2],
|
||||||
|
new SubjectCategory(sdata[1] + "‑MATSZT‑A", sdata[2] + " matekos tárgyak"),
|
||||||
|
new SubjectCategory(sdata[1] + "‑INF‑A", sdata[2] + " infós tárgyak"));
|
||||||
|
specs.push(spec);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (cat === undefined) {
|
||||||
|
console.warn("No category found!");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
subjects.push(new SubjectData(sdata[1], sdata[2], sdata[8], cat));
|
||||||
|
}
|
||||||
|
const specsSpan = document.getElementById("specs");
|
||||||
|
specsSpan.innerHTML = "";
|
||||||
|
for (const spec of specs) {
|
||||||
|
const count = subjects.reduce((pv, cv) => cv.category.spec === spec ? pv + 1 : pv, 0);
|
||||||
|
specsSpan.innerHTML += spec.name + ": " + count + "<br />";
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function tryGetCat(categoryID) {
|
||||||
|
const spec = specs.find(spec => spec.matcat.id === categoryID || spec.infcat.id === categoryID)
|
||||||
|
return (spec && (spec.matcat.id === categoryID ? spec.matcat : spec.infcat)) || [
|
||||||
|
kotvalEgyebCat,
|
||||||
|
szakdogaCat,
|
||||||
|
szakmaiCat,
|
||||||
|
szabvalCat
|
||||||
|
].find(cat => cat.id === categoryID);
|
||||||
|
}
|
||||||
|
|
||||||
|
let subjects = [];
|
||||||
|
let specs = [
|
||||||
|
kotSpec,
|
||||||
|
kotvalSpec
|
||||||
|
];
|
||||||
|
(async () => {
|
||||||
|
await szak.onchange(undefined);
|
||||||
|
await lk.onchange(undefined);
|
||||||
|
}
|
||||||
|
)();
|
||||||
|
|
8
spec.md
8
spec.md
|
@ -11,6 +11,7 @@ Az adatok tájékoztató jellegűek, a kiírt eredményekért felelősséget nem
|
||||||
## 1. Válaszd ki a képzést
|
## 1. Válaszd ki a képzést
|
||||||
|
|
||||||
<label>
|
<label>
|
||||||
|
Képzés:
|
||||||
<select style="color: black" id="szak">
|
<select style="color: black" id="szak">
|
||||||
<option selected value="nope">---- Szakok ----</option>
|
<option selected value="nope">---- Szakok ----</option>
|
||||||
<option value="gi">gazdaságinformatikus</option>
|
<option value="gi">gazdaságinformatikus</option>
|
||||||
|
@ -18,6 +19,7 @@ Az adatok tájékoztató jellegűek, a kiírt eredményekért felelősséget nem
|
||||||
<option value="mi">mérnökinformatikus</option>
|
<option value="mi">mérnökinformatikus</option>
|
||||||
</select>
|
</select>
|
||||||
</label>
|
</label>
|
||||||
|
<span id="szakError" style="color: red"></span>
|
||||||
|
|
||||||
## 2. Neptun leckekönyv export
|
## 2. Neptun leckekönyv export
|
||||||
Szükség lesz a Neptunban a Tanulmányok -> Leckekönyv -> Minden félév -> XLS export (ikon jobb oldalt) eredményére.
|
Szükség lesz a Neptunban a Tanulmányok -> Leckekönyv -> Minden félév -> XLS export (ikon jobb oldalt) eredményére.
|
||||||
|
@ -27,7 +29,7 @@ Szükség lesz a Neptunban a Tanulmányok -> Leckekönyv -> Minden félév -> XL
|
||||||
## 3. Teljesítések:
|
## 3. Teljesítések:
|
||||||
<span id="specs"></span>
|
<span id="specs"></span>
|
||||||
|
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.16.6/jszip.js"></script>
|
<script src="xlsx.full.min.js"></script>
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.16.6/xlsx.js"></script>
|
|
||||||
<script src="papaparse.min.js"></script>
|
<script src="papaparse.min.js"></script>
|
||||||
<script src="spec.js"></script>
|
<script src="specdata.js"></script>
|
||||||
|
<script src="spec.js"></script>
|
||||||
|
|
38
specdata.js
Normal file
38
specdata.js
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
class SubjectData {
|
||||||
|
constructor(id, name, credit, category) {
|
||||||
|
this.id = id;
|
||||||
|
this.name = name;
|
||||||
|
this.credit = credit;
|
||||||
|
this.category = category;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class SubjectCategory {
|
||||||
|
constructor(id, name) {
|
||||||
|
this.id = id;
|
||||||
|
this.name = name;
|
||||||
|
this.spec = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Specialization {
|
||||||
|
constructor(id, name, matcat, infcat) {
|
||||||
|
this.id = id;
|
||||||
|
this.name = name;
|
||||||
|
this.matcat = matcat;
|
||||||
|
matcat.spec = this;
|
||||||
|
this.infcat = infcat;
|
||||||
|
infcat.spec = this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const kotMatCat = new SubjectCategory("MK‑ALA", "Kötelező matekos tárgyak");
|
||||||
|
const kotInfCat = new SubjectCategory("MK‑SZT", "Kötelező infós tárgyak")
|
||||||
|
kotSpec = new Specialization("KOT", "Kötelező tárgyak", kotMatCat, kotInfCat);
|
||||||
|
const kotvalMatCat = new SubjectCategory("MK‑DIF‑MATSZT", "Kötvál matekos tárgyak");
|
||||||
|
const kotvalInfCat = new SubjectCategory("MK‑DIF‑INF", "Kötvál infós tárgyak");
|
||||||
|
kotvalSpec = new Specialization("MK-DIF", "Specializáció nélkül", kotvalMatCat, kotvalInfCat);
|
||||||
|
kotvalEgyebCat = new SubjectCategory("MK‑DIFF‑EGYEB", "Kötvál egyéb tárgyak");
|
||||||
|
szakdogaCat = new SubjectCategory("MK‑SZD", "Szakdolgozat");
|
||||||
|
szakmaiCat = new SubjectCategory("MK‑SZG", "Szakmai gyakorlat");
|
||||||
|
szabvalCat = new SubjectCategory("MK‑SZV", "Szabadon választható tárgyak");
|
23
xlsx.full.min.js
vendored
Normal file
23
xlsx.full.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue