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 in- public/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 by- common.course_config.get_course()
 - Returns
- Timestamp or - Unknown(string) if any exceptions occur while fetching from the current database