OSU Course Analytics
Project description
OSU Course Analytics (Osuca)
Analyze student review responses for courses in the Computer Science (CS) program of Oregon State University (OSU)
Description
This program allows analyzing the online survey of course reviews from the CS students in OSU. It helps students answer questions such as:
- Does course difficulty vary from term to term?
- Does course difficulty increase if I take other courses in the same quarter?
- Which course combinations are most difficult taken together?
It also exposes several services for client programs to query course analytics in JSON format. See Communication Contract for further details.
Getting Started
Dependencies
Osuca requires Python 3.7 and newer. It can run on any operating system with Python.
Installing
Create a virtual environment and activate it.
macOS/Linux
$ mkdir osuca
$ cd osuca
$ python3 -m venv venv
$ . venv/bin/activate
Windows
> mkdir myproject
> cd myproject
> py -3 -m venv venv
> venv\Scripts\activate
Install Osuca and dependencies from PyPI
(venv) pip install osuca
Executing program
Set environment variables
macOS/Linux
$ export FLASK_APP=osuca
$ export OSUCA_DATA_SOURCE='https://docs.google.com/spreadsheets/d/1MFBGJbOXVjtThgj5b6K0rv9xdsC1M2GQ0pJVB-8YCeU/export?format=csv'
Windows
> $env:FLASK_APP = "osuca"
> $env:OSUCA_DATA_SOURCE = "https://docs.google.com/spreadsheets/d/1MFBGJbOXVjtThgj5b6K0rv9xdsC1M2GQ0pJVB-8YCeU/export?format=csv"
Run Osuca
flask run
View output in your browser at http://localhost:5000
Communication Contract
Osuca returns JSON objects for the following valid HTTP GET requests:
- /courses
- /course-year-aggregates
- /course-quarter-aggregates
For example, $curl http://localhost:5000/courses will return a JSON list of course objects to the clients.
UML Sequence Diagram
As shown in the diagram, Osuca requests a CSV document that resides in Google documents containing the scraped student responses. Then it serves the contents of this document in JSON form to clients.
Service Details
The following shows example responses to the requests.
/courses
[
{
"subject": "CS",
"id": "419",
"name": "Capstone"
},
{
"subject": "CS",
"id": "325",
"name": "Analysis of Algorithms"
}, …
]
/course-year-aggregates
[
{
"course": {
"subject": "CS",
"id": "261",
"name": "Data Structures"
},
"year": "2018",
"aggregate": {
"count": 11,
"sum": 31,
"mean": 2.81
}
}, …
]
/course-quarter-aggregates
[
{
"course": {
"subject": "CS",
"id": "290",
"name": "Web Development"
},
"quarter": {
"term": "Spring",
"year": "2022"
},
"aggregate": {
"count": 6,
"sum": 15,
"mean": 2.5
}
}, …
]
Authors
Tolga Ozbakan | tolga@ozbakan.com
License
This project is licensed under the MIT License - see the LICENSE file for details
Acknowledgments
Inspiration, code snippets, etc.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file osuca-2.2.2.tar.gz.
File metadata
- Download URL: osuca-2.2.2.tar.gz
- Upload date:
- Size: 509.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ba2894ce1aa6fdd8d7be07605a0048cc1c065f6f603019ce24cebc7685b0774
|
|
| MD5 |
c061f995ffc06e7c94c5fe33699c9fbd
|
|
| BLAKE2b-256 |
ee88e00f5d86845f5a9dcb3ff366c0fa0d444bb75ca912ba23e2c3a55f1e39f1
|
File details
Details for the file osuca-2.2.2-py3-none-any.whl.
File metadata
- Download URL: osuca-2.2.2-py3-none-any.whl
- Upload date:
- Size: 495.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
872650062906d77269503986cb1c1c51ee912d1cc902cbc3871ac6740d9a8b4c
|
|
| MD5 |
c2523cf9f3ab5b2b3ce98b37ec32e060
|
|
| BLAKE2b-256 |
7114af68ba428e0859bff145fbf8fcb7ff38d6dcf0311166ddb499a665c4ebe0
|