A scalable website that visualizes students’ past feedbacks on both courses and professors.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
examples/images
src
tests
.gitignore
.travis.yml
LICENSE
README.md

README.md

uoft-profs

BuildStatus

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
  • Given all the courses one want to take in a semester, automatically generate a timetable without conflict
  • Recommend courses in one's free time slots
  • Analyze course evaluation data
  • Publish this service to the Internet

Table of Contents

Requirements

Library Reference

Spider

Usage

echo -e "host\nuser\npasssword\nport" > database.info
cd src/spider/
python3 main.py -h
usage: main.py [-h] [-i] [-c] [-e]

optional arguments:
  -h, --help    show this help message and exit
  -i, --init    initialize the database
  -c, --course  scrape courses offered at uoft
  -e, --eval    scrape eval data from uoft blackboard

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

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

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

AnalyzeProf

Usage

cd src/analysis/
python3 analyze_prof.py -h
usage: analyze_prof.py [-h] [-p] instructor courseID campus

positional arguments:
  instructor  The full name of an instructor
  courseID    The id of a course, e.g., CSC240
  campus	  The campus where the instructor stays

optional arguments:
  -h, --help  show this help message and exit
  -p, --plot  Plot the graph in GUI mod (if this flag is not set on, an html 
		      img tag will be printed to stdout)

Demo:

profAnalyze

Web

Powered by Express.js and Bootstrap.

Demo:

webpage

webAnalysis