tl;dr
Click: 课程点评 - Tomb
【The following information is outdated】
Please use the navigation bar Link → Course Review Community to open the standalone site.
Based on the source code of the USTC Course Review Community, it aggregates information about different courses and different teachers’ class sections.
XJTU Gate Course Review Community is live and integrated with the main site’s user system.
We welcome suggestions, reviews, and improvements/audits of the code.
URL: add /course (singular or plural) to any domain name
Basic Information
- Complete course catalog, covering all courses of the university
- ~200 elective courses have grade distribution, highest, lowest, and average scores information
- 250+ elective courses have review information
- 300+ elective courses have assessment methods, teaching modes, course summaries, and textbook/reference book information
Featured Features:
A few modifications were made on top of the USTC Course Review Community source code:
- Supports OAuth, meaning that as long as you are logged in on xjtu.app, your login identity is automatically synchronized with the Course Review Community after entering it.
Outdated info hidden
→ Why bother clicking the login button?
→ Because I originally wanted to develop a Discourse plugin to turn a category on this site into a review community. Unfortunately, the Ruby + Ember.js stack is less efficient than the Python + Flask + Plotly stack used by the USTC code. Whether to switch to a Discourse‑plugin approach later still needs consideration.
-
Interval score visualization, showing average, highest, and lowest scores.
→ Of course, the current chart is still quite rough; future improvements will address colors, text placement, and other details. Contributions via PR are welcome.
-
(Idea) Use NLP to perform sentiment analysis on existing comments, qualitatively assessing currently missing metrics such as “course difficulty, amount of homework, grading generosity, learning outcomes,” etc.
→ Crawl the USTC review data and train a sentiment/semantic analysis model.
Updates:
-
Enrich each course’s attributes: course code, offering department, instructor, credits (hours), elective category, and course description. Remove some irrelevant reviews. (Idea) Integrate with existing “mentor information” to link instructors to XJTU Gate mentor profiles.
-
(Ongoing) Use the
gpt-3.5-turbo-16kAPI to summarize comments for a specific course/class, similar to the site’s topic‑summarizing feature. -
Filter by elective category.
-
Improve the online editing of course information, similar to https://course.sjtu.plus/ (SJTU review site, based on Django).
(Technical) Installation Steps
git clone https://github.com/xjtumen/course-review
cd course-review
# Rename USTC references to XJTU
for suffix in py html js
do
list1="USTC 科大 中国科学技术大学"
list2="XJTU 交大 西安交通大学"
array1=($list1)
array2=($list2)
count=${#array1[@]}
for i in `seq 1 $count`
do
echo replace all ${array1[$i-1]} to ${array2[$i-1]} in all suffix files
find ./ -type f -name "*.$suffix" -exec sed -i "s/${array1[$i-1]}/${array2[$i-1]}/g" {} +
done
done
# Initialize the database (MariaDB) according to README.md
$ mariadb -u root -p
MariaDB [(none)]> CREATE USER 'dbuser'@'localhost' identified by 'MyPassword';
MariaDB [(none)]> CREATE DATABASE icourse;
MariaDB [(none)]> GRANT ALL ON icourse.* to 'dbuser'@'localhost';
MariaDB [(none)]> \q
Bye
# Create virtual environment
python -m venv ./venv
pip install -r requirements.txt
# Modify variables in config/default.py as needed (e.g., domain name)
# Adjust data import script according to data source: tests/import_courses_jd.py
python -m tests.import_courses_jd
# Start the service:
gunicorn jcourse.wsgi --bind 0.0.0.0:8000 --workers=5
# Configure reverse proxy; see `tests/conf/nginx-config` for reference
Because this is a \\beta test, brief service interruptions may occur due to feature updates/bug fixes; please refresh multiple times. All review data will be retained.
The provisional domain is c.xjtu.app.
Subdirectory reverse proxy has been set up, accessible as xjtu.app/course or xjtu.app/courses.
Background:
