Inspiration
Our inspiration stemmed from our team's personal experience with instructional faculty grading. We noticed that oftentimes essays and assignments particularly heavy on the free-response side would be returned at a significantly slower rate than multiple-choice exams and quizzes. This becomes a problem especially when considering faculty time spent grading and the lack of valuable feedback given to students in a timely manner. This was especially noticeable in a class that all of our team members share this semester; every week we're assigned homework that consists of 3-4 free response style questions. These problem sets consistently took multiple weeks to be returned and would become a huge concern when quizzes and programming assignments building off of these problem-set topics started coming up. This eventually led to the idea of our LLM utilizing auto-grader.
What it does
Our application takes in questions, answers, and rubrics and organizes this information into a LLM for rubric coherency and point evaluation. We have two use cases for the auto-grader. Our web application for manual upload for copy-and-pasting and our mobile application for scanning/upload. After the inputting of questions for grading, We display all the questions scored out of their respective max point values and also aggregate a total points value for all the questions in an assignment.
How we built it
GradeBuddy was built with React.js (Javascript, HTML, CSS) on the web application front-end, Swift on the mobile application front-end, and a shared Node.js + Firebase DB back-end. The inputted information is organized into a collection of question objects on the front end and is passed to the back end through API endpoints for evaluation. Then we retrieve the allotted points for each question, calculate the total score, and display all of this information back to our front end.
Challenges we ran into
One of the biggest challenges we ran into was integration. Since we attempted to use technologies with which we were not familiar, it required a lot of research into how to integrate these systems and have them work cohesively. We spent considerable time studying documentation and experimenting with various integration strategies to overcome the complexities.
Accomplishments that we're proud of
We are proud of our intuitive user interface that has both mobile and website capabilities. Additionally, we take pride in pushing ourselves beyond our comfort zone and utilizing technologies that were previously unfamiliar to us, such as Firebase, Node.js, and SwiftUI. By adopting these new technologies, we not only delivered a feature-rich product but also expanded our skill set and fostered a culture of continuous learning within our team.
What we learned
One major thing we learned is that it's really important to fully design your software upfront and get everyone on the same page before starting to build it. At first, we didn't realize how crucial that step was, and it caused a lot of issues and inefficiencies when we were actually developing the software. Having a well-defined architecture and making sure the whole team understands it is key for keeping everything cohesive, scalable, and easy to maintain. We figured out that spending time discussing, documenting, and getting input from all angles helps lay a solid foundation. That way, everyone is working towards the same goal before any code gets written.
What's next for GradeBuddy
GradeBuddy still has many features that would improve the overall efficiency of the product, but also expand the functionality. For instance, we could incorporate a more specific implementation for partial credit for each question using multiple bulleted rubric points and also provide feedback on what the student is missing in their solution. We could also expand the data structure, so that we can store accounts and save questions for graders who grade the same question over and over again.
UVA computing IDs for SDE extra credit: Aaron Park: ync4hn Phong Le: cxj8ar
Built With
- css
- figma
- firebase
- firebase-firestore
- firebase-functions
- html
- javascript
- llm
- mobile-app-dev
- node.js
- openai
- react.js
- swiftui
- web-dev
Log in or sign up for Devpost to join the conversation.