daniel-dws/CIS41B-FinalProject
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
CIS 41B Final Project - CIS Course Catalog
Team Members: Ben Hung & Daniel Wong
Project Description:
Our application consists of a backend and a frontend. Our backend scrapes class data across De Anza, from 2010-present, and stores the data in a SQL database. Our frontend uses the database to allow the user to access different statistics such as detailed information about a De Anza CIS professor (e.g., the courses they teach), as well as other statistics like ratios of online vs in person classes.
Python Libraries Used:
* tkinter (for GUI)
* requests (for web scraping & for accessing api)
* Beautiful Soup (for web scraping)
* json (for storing class data)
* sqlite3 (for database)
* regex (for text manipulation)
* defaultdict (for easier dictionary usage)
This Project has total 6 files.
* CourseCatalogBack.py (backend)
* CourseCatalogGUI.py (frontend)
* Course.py (data structure)
* CourseData.db (database)
* data.json (class data)
* courseListings.json (web-scraped data)
* quarters.json (De Anza quarters data)
How to run the project:
1. Import required dependencies
1. Create the database (run CourseCatalogBack.py)
3. Run CourseCatalogGUI.py, a MainWindow shows and users have 3 choices.
a) Click "Professor Stats" brings down a list-box menu of professor names. Users can choose one teacher
- Displays a Professor Result Window of the teacher selected
* A counter for the total number of classes taught
* A listbox of classes taught by that professor
* A pie chart of the ratio of Online to In-Person courses taught
- Upon the selection of a course in the listbox, a DisplayTimes Result Window is created
* Overall chart of Monday-Sunday Schedule across each term
b) Click "Course Stats" brings down a list-box menu of class names. Users can choose one course
- Displays a Course Result Window of the course selected
* A counter for the number of times the course has been taught
* A listbox of teachers that have taught the class
* A pie chart of ratio of Online to In-Person courses taught
* A bar plot of times taught each year
* Adjustable scale for the start year and end year to select a range of years to display on the pie chart and bar chart
c) Click "Misc Stats" will open a window of general statistics
- Displays a Misc Result Window
* A counter for which professor has taught the most over the years
* A counter for which classroom was used the most over the years
* A line plot for the trend of Online to In-Person classes over the years
New features:
* Pie Chart for online and in-person
* Scale feature