Inspiration

In high school, I took a lot of national standardized tests in Ethiopia. All the exams were multiple-choice because that was the only way the state could automatically grade the hundreds of thousands of exams. The types of questions made cheating easy for students, and this affected the dynamic passing and grade scale for the entire country. That was when I became curious about how we could create an automatic grader that was accurate and would work to easily and efficiently grade open-ended work. Not only could it be used by professors and schools to grade students' work, but students could use it themselves to grade their work before submitting it so that they know where they stand. For example, students writing essays can self-grade their essays against the teacher's rubric to get detailed feedback on their work and to identify points of improvement.

What it does

It grades any open-ended work such as tests with short-answer questions, essays, and other assignments. It gives a grade and detailed feedback. It has the option to upload a rubric or to grade without a rubric (grade based on factual correctness). The first method is ideal for essays while the second is ideal for tests or short-answer-containing assignments.

How we built it

The backend is built using Python and Flask. There is a SQLite database also used to store file paths of previously uploaded files.

Challenges we ran into

The Gemini API didn't accept pdf files, so I had to convert each uploaded pdf into a png. However, doing so resulted in creating multiple png files for each file of the pdf. So, I had to come up with a creative way of resolving this by storing the contents of each png in a txt file using Gemini to transcribe the content.

Accomplishments that we're proud of

I am proud that this is my first independent full-stack project. To be honest, I'm just proud that it works as expected. I learned SO MUCH along the way, from NextJS, to Flask to SQLite, and I value that most of all. Finally, I am proud that the grade worked very accurately. It gave me an A- for an essay that my real prof gave me a 94% on, so I would say Professor Gemini did pretty well.

What we learned

Technical Skills Gained: NextJS Typescript Sqlite Flask Various JS libraries Calling commercial APIs Working with Gemini's API

What's next for Professor Gemini

I want to make it more swift so that people would be motivated to use it in their day-to-day learning and teaching.

Share this project:

Updates