Gopher Grades V2
November 2022
Gopher Grades Version 2 (GGV2) ↗ is a grade transparency platform tailored for students at the University of Minnesota - Twin Cities. Widely adopted by the student body, the tool is utilized by over 50,000 students and garners more than 5 million page views annually. The project is actively maintained and welcomes contributions, fostering student participation in its ongoing development.
GGV2’s frontend is built using Next.js and Chakra UI, while the backend—under my leadership—is powered by Python, NumPy, Pandas, and SQLAlchemy. Additionally, we developed a Google Chrome extension, written in JavaScript, enabling students to view grade distributions directly on the University’s Schedule Builder.
Background
Upon enrolling at the University of Minnesota as a Computer Science and Data Science major, I was introduced to GopherGrades, a tool aimed at helping students plan a balanced course load. Initially, it served its purpose, but as I progressed into upper-division classes, I noticed that the data was often inaccurate or outdated, especially for advanced courses. This led me to take initiative and co-develop a solution that would offer reliable grade distribution data. Along with fellow contributors from Social Coding , including Samyok Nepal ↗ and Joey McIndoo ↗ , we began working on GGV2.
Backend Development
As the lead data engineer, I analyzed a dataset of 150,000 records from the University of Minnesota, spanning from Summer 2017 to Spring 2020. I designed a relational database schema in SQLite, ensuring grades could be accurately attributed to both professors and courses. One key enhancement over the original GopherGrades was linking courses to their respective departments, giving students more refined options when selecting courses for their major or minor.
Prototyping
Once the data was ingested into the database, the team and I began prototyping the frontend. Initial designs were built using Bootstrap with a table-like structure, but after multiple iterations, we settled on a more polished and visually engaging interface that better captured school spirit. The final design, created in Figma, was implemented using Next.js and Chakra UI.
Data Validation
While examining the data, it became evident that GopherGrades had several inconsistencies. For instance, teaching assistants were often mislabeled as professors, and key grading categories like Satisfactory/Non-Satisfactory and Withdrawal (S/N/W) were not reflected, skewing grade distributions. To address this, I introduced a “most-common” grade attribute to ensure that outliers did not distort a course’s overall performance.
Improvements
After refining the data validation process, we expanded the scope of the information available to students. Joey and I integrated data from ClassInfo (now Coursedog), ASR, and the Student Rating of Teaching, adding details such as course titles, RateMyProfessor scores, liberal education requirements, and course ratings. We also developed a Chrome extension ↗ , allowing students to access grade distributions directly through the University’s Schedule Builder.
Version 2.1
By the conclusion of the Fall 2022 semester, our team had grown significantly, enabling us to implement new features to improve user experience. We extended the database schema to allow students to view grade distributions by term, which also helped us flag anomalies, such as changes due to the COVID-19 pandemic. We also launched a Firefox version of the extension to increase accessibility.
Version 2.2
With the project’s growing complexity, optimizing data processing became a priority. Our initial API request structure led to long delays in fetching data, so I implemented Multiprocessing and Asyncio to significantly reduce data processing time—from hours to minutes.
Version 2.3
For the Spring 2023 semester, we introduced several highly requested features, including a class map viewer and a schedule-to-Google Calendar converter. The class map viewer helps students visualize their course locations on campus, and allows them to export their route to Google Maps for better commute planning. The schedule converter streamlines the process of adding courses to a calendar, simplifying schedule sharing and organization.
Impact
I’m extremely proud of the progress the team and I have made on Gopher Grades. The platform has become an indispensable tool for over 50,000 students and continues to evolve with over 5 million page views per year. With an open and collaborative development process, I’m excited to see where the project heads in the future, ensuring it remains a trusted resource for students to make informed academic decisions.