A website and webapi show the dependency tree of courses, help students choose which course need to be accomplished early and arrange their learning plan.
pip install -r requirements.txt
- install graphviz
- add the bin folder of graphviz to the PATH environment.
- modify 2 variables in file ./crawl_personalsis.py. Input the studentid and its password to access SIS system.
LOGIN_USERNAME = "2016baba"
LOGIN_PASSWORD = "2016lala"
- Step 1: crawling. It takes about 120 minutes.
cd viz
python ./crawl_personalsis.py
Output:../assets/CourseListdata.csv and,
../assets/CourseListdataextend.csv
Note: Must wait for a while, until an web browser open. This application will fill the username/password into the empty textbox. But you must entry captcha by yourself.
- Step 2: generate dependency graphs
python ./gentree.py
- Step 3: run web api
nodejs ./index.js
- Generate the condition tree of a single subject
python ./gentree.py -s subject
python ./gentree.py -s IT1110
- Generate the condition tree of a single subject and force a trial condition expression
python ./gentree.py -s subject -c condition
python ./gentree.py -s IT3030 -c "(IT111/IT1120/IT1130),IT2000"
- Generate the condition tree of a group of subjects, like a education programme
python ./gentree.py -n name -p subjectInCSV
python ./gentree.py -n IT1 -p IT2030,IT4991,IT3420,IT3020
GitHUB: https://github.com/neittien0110/CourseDependency.git
| Readme.docx
| README.md (guideline)
|
├───api
| | index.js (simple web server)
| | package-lock.json
| | package.json
| |
|
├───assets
| | CourseListdata.csv (crawling results)
| |
| ├───graph0
| | HE3011
| | HE3011.png
| | IT3030
| | IT3030.png
|
├───viz
| | crawl_personalsis.py (crawling program)
| | example.dot
| | gentree.py (crawling results to graph)
| | graphcoursemoredetail.py (not in used)
| | requirements.txt
| | Untitled.ipynb
| |
| ├───BrowserDrivers
| | chromedriver.exe
| | geckodriver.exe
| | msedgedriver.exe
| |
- Thư mục api chứa code web server
- Thư mục viz chứa code crawl data , dữ liệu được crawl và dữ liệu đã phân tích và render bằng graphviz
- Xem ảnh vẽ mối quan hệ phụ thuộc của 1 học phần nào đó: http://sinno.soict.ai:37080/course?id={courseid}
- Xem mối quan hệ phụ thuộc của 1 học phần nào đó ở dạng json, phù hợp để tích hợp vào một GUI control trên website khác: http://sinno.soict.ai:37080/course?id={courseid}&type=json
- Xem mối quan hệ phụ thuộc của 1 học phần nào đó ở các dạng đồ thị khác nhau: http://sinno.soict.ai:37080/course?id={courseid}&graph={index}