Our inspiration for this project came from experiences in our own academic lives. We've seen many professors each with a different protocol for accepting homework submissions. Some may just prefer a Blackboard submission, others a ftp submission to a web server, and some may even require a push to git repos. We set out to combine the best of these methods into a single api that went above and beyond to make everyone's lives easier.
What it does
Git Grader allows professors to register an account and set up their courses through our online portal. They may then invite their students via email to register under their courses. Under these courses the professor may add projects and multiple repositories for each one. Using git, students can pull these repos, finish the assignment, and then push the finished assignment back. Then, using docker, our server runs their code and compares their projects input/output with the expected input/output provided by the professor to assign the student a grade. This allows students to get instant feedback on their work and decrease the workload of professors and TAs who otherwise would need to compile and run each student's project separately.
How we built it
Challenges we ran into
At first there was a huge learning curve for us when starting to build our project. Since these were new frameworks for each of us, simple mistakes quickly became huge headaches. However, soon the project gained momentum and pieces started falling into place. Specifically we ran into challenges learning how these environments handle actions such as CORS requests and routing.
Accomplishments that we're proud of
We are proud of the progress we were able to make on this project and the amount we learned from it. This idea started out as a reach with the only goal being the knowledge gained along the way. While we certainly learned a lot about these new frameworks, we were actually able to release a functioning demo of our idea.
What's next for Git Grader
Git Grader is just in its demo phase right now, but we believe it still has potential to be of great use to many instructors and students. From here, we want to add a more appealing gui and implement full functionality to edit profiles, courses, and projects.