Skip to content

jamesjiang52/uoft-courses

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

uoft-courses

This library intends to offer course selection advice to students at UofT, e.g., whether the prof is good, whether the course is difficult, etc. Moreover, it automates the generation of one's timetable based on one's course selection.

Functions to implement ...

  • Scrape all the course evaluation data from blackboard
  • Given all the courses one want to take in a semester, return a best time table based on time conflicts, course evaluation, etc.
  • Recommend courses in one's free time slots
  • Publish this service to the Internet

Table of Contents

Requirements

Library Reference

Spider

echo -e "host\nuser\npasssword\nport" > database.info
cd src/spider/
python3 main.py 

Then all the data of courses currently offered at UofT & all the evaluation data will be sent to the given database. Courses' data is in table "Course" and evaluation data is in table "Eval". The two tables are both under the new created database "uoftcourses"

database.info Example:

cat database.info
127.0.0.1
root
123456
3306

Note:

host: ip address of the SQL server

user: user name of the SQL server

password: password of the user

port: the port number that the SQL server is listening to

CourseSpider

echo "host\nuser\npasssword\nport" > database.info
cd src/spider/coursespider/
python3 cspider.py 

Use this if you only need course data.

Data source:

Course Finder

Schema of the table Course:

Course(cID, cName, credits, campus, department, term, division, prerequisites, exclusion, br, lecNum, lecTime, instructor, location, size, currentEnrollment)

Demo:

courseTable

EvalSpider

echo "host\nuser\npasssword\nport" > database.info
cd src/spider/evalspider/
python3 espider.py 

Use this if you only need course evaluation data.

Data source:

Faculty of Arts & Science Course Evaluations

Schema of the table:

Eval(department, cID, cName, lecNum, campus, term, instructor, instructorFullName, intellectuallySimulating, deeperUnderstanding, courseAtmosphere, homeworkQuality, homeworkFairness, overallQuality, enthusiasm, workload, recommend, numInvited, numResponded)

Demo:

evalTable

About

Facilitate students at UofT selecting their courses

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%