Howamidoing¶
Howamidoing is a tool that displays and forecasts grades for lower-div EECS classes at UC Berkeley.
If you are a current student or staff, you can visit howamidoing.cs61a.org to see it in action!
Features¶
Students:
Authentication with okpy
View grade breakdown per assignment
Grade planning: test possible scores and view minimum score needed on final for specific grade boundaries
Staff:
View histogram
Export scores
Import grades from CSV
Edit configuration
Setup¶
To develop, create a venv and install the python dependencies in
server/requirements.txt, run yarn, then run yarn dev. yarn dev will
concurrently run python3 main.py (backend) and yarn start (frontend).
Uploading Grades¶
A grades.csv file can be uploaded to the server to update grades for students.
You can view an example
here.
Name, Email, SID fields are required (in that order), and the following
fields correspond to grades for each assignment.
Editing Configuration¶
A config.js script can be uploaded to the server. You can view a sample config
here.
Here is some data that may be customized:
Object |
Description |
|---|---|
|
List of numerical cutoffs (inclusive) corresponding to each grade |
|
Name for each grade corresponding to each bin in |
|
String ID of the course |
|
Appears on the top of the page in the student view |
|
Appears on the top right of the page in student view |
|
Set to |
|
Set to |
Setup Functions¶
This file contains server-side utilities needed to set up and manage grade tracking.
-
howamidoing.server.setup_functions.set_default_config(db)[source]¶ Sets the configuration to the default configuration, found in
public/config/config.js.- Parameters
db (func) – A database query function yielded by
common.db.connect_db()- Returns
None
-
howamidoing.server.setup_functions.set_grades(data, course_code, db)[source]¶ Sets the grades for a particular course based on some input
grades.csvfile. An example can be found inpublic/config/dummy_grade_data.csv.- Parameters
data (str) – The contents of a
grades.csvfile.course_code (str) – The course to set grades for (e.g. ‘cs61a’).
db (func) – A database query function yielded by
common.db.connect_db()
- Returns
None
Main¶
This file creates all necessary apps and functions to display up-to-date course grades.
-
howamidoing.server.main.last_updated()[source]¶ - Finds the timestamp of when the current database was last updated
for this course.
Uses a database query function yielded by
common.db.connect_db()and the course code returned bycommon.course_config.get_course()
- Returns
Timestamp or
Unknown(string) if any exceptions occur while fetching from the current database