Inspiration:

We drew inspiration from Gopher Grades, a platform widely used at the University of Minnesota that has over 50,000 users. Noticing that UMass Amherst lacks a similar resource, we wanted to create a tool to help students make more informed decisions when choosing courses or instructors. Our platform will enable students to view grade distributions, averages, and most common grade for each course and professor—information that can play a crucial role in academic planning.

What it does:

Our platform replicates and enhances the functionalities found on Gopher Grades. Users can type a course code/name, professor name, or department into the search bar to quickly access relevant results. For each course, users can view the instructors who have taught it, along with detailed grade distributions, the average grade, and the most common grade. If a professor is searched, students can view all courses taught by that professor, along with similar grade data. Departmental searches are also supported, making it easy for users to explore courses within a particular field. This tool is designed to give students a comprehensive view of academic history at UMass Amherst.

How we built it:

We developed the frontend using Next.js with JavaScript, HTML, CSS, and Tailwind CSS for styling, and built the backend with Java Spring Boot and Spring JDBC. We containerized the application using Docker to ensure easy deployment, and we use PostgreSQL as our database. Since we don’t yet have access to real UMass grade data, we generated mock data using the JavaFaker library, creating realistic sample records for courses, professors, and departments. To enhance the user experience, we implemented debouncing in the search bar, which optimizes performance by reducing unnecessary search operations as users type. This allows for faster, more responsive searching across classes and professors, delivering relevant results efficiently.

Challenges we ran into:

There were a lot of firsts for us in this project! For some of us it was first hackathon, first time using Docker, first time on back end, first time on front end. We really focused on making sure we all did something new and gained a new experience. There can definitely be challenges associated with this but we made sure to utilize as many of the HackUmass resources as we could (via the makerspaces and the mentors). This really helped us feel ready for anything and less afraid to ask for help in the future.

Accomplishments that we're proud of:

We're really proud of how much we collaborated in terms of helping each other out with new technologies. Because we all have different backgrounds in each of the technologies, there were a lot of times when we had to sit together and put our heads together to figure out an error or figure out how something worked. It was like being in an escape room with people you've never met before. By the end of it, we came out having learned a lot about each other and the tech stack.

What we learned:

We learned that hackathons are pressure cookers for learning and growing. If you're not ready for the pressure, you will get cooked. You definitely have to be really open to feedback, open to changes in the plans, and know how to work well in a team. We learned how much we know and we learned how little we know all at once. It was amazing.

What's next for UMassGrades:

We put in a request to Umass' Public Records Office to get access to the university's real grade distribution data. We did our best to anticipate the formatting of this data when creating the mock data, but we will likely need to adjust a little bit. Once we have the real data, we will string it up and start getting UMass students to beta test the web application and get their feedback.

Built With

Share this project:

Updates