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.csv
file. An example can be found inpublic/config/dummy_grade_data.csv
.- Parameters
data (str) – The contents of a
grades.csv
file.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