• Ruby on Rails
  • AngularJS
  • jQuery
  • Sass

GradeCraft is a learning management system designed to support gameful courses that is being developed at the University of Michigan.

  • Objective

    Support a non-traditional approach to grading where students start from 0 and build their grade up by earning positive points with each assignment.
  • Process

    Understand how to increase autonomy, belongingness, and community in the classroom and create an interface that allows instructors to build courses that accomplish this.
  • Solution

    A flexible application that allows instructors to create gameful experiences for their students while keeping assignments and grades organized and easy to track.

Biggest Challenge

The biggest challenge I have faced on GradeCraft has been working on a project of this size. The codebase has been in development for nearly five years and is the collective effort of many different developers. As the lead front-end developer on the project, I am responsible for the user experience and accessibility of the app, and am constantly trying to think of new ways to streamline styles and components for ease of maintenance by the rest of my team.

What I Learned

Working on GradeCraft has been one of the biggest learning experiences of my career so far. The tech stack alone lent itself to gaining exposure to a multitude of languages (Ruby on Rails, Angular, jQuery, Haml) and working in a team taught me a lot about Git and how to most efficiently contribute to large codebase. Some of my largest contributions to this project include: dashboards for students and instructors, refactored analytics with plotly.js, mobile menus, more extensible sass architecture and style guidelines, accessibility and responsive design updates, and user experience updates based on many rounds of user testing.

Up Next

Since GradeCraft is now publicly available, we are working to eliminate any user experience confusion as well as streamline the onboarding process for new instructors and students as we receive feedback from a much larger user community.