codexec

Volhacks III

Inspiration:

Codexec was designed with the intention of making grading large numbers of CS projects more manageable. Often TA's and Professors can spend weeks trying to keep up with the workload of grading these projects, and fall behind in the course curriculum. While this project was designed with college professors in mind, the flexibility and modularity of its design allow for it to be applied in a wide range of academic environments and courses.

What it does:

Codexec offers services to automate code grading through test cases and code analysis by examining file length, documentation usage, library and language usage, and execution time. These results are displayed graphically making the job of grading and evaluating student's code much easier and efficient.

How we built it:

Using a python and c++ backend hosted on Google Cloud Services, we created a dynamic environment for all sorts of CS labs. In order to allow for different languages, we utilized standardized docker images for student submissions and captured their outputs. The frontend is handled via html, css, javascript, and php file operations.

Challenges we ran into:

We had a lot of trouble using PHP (Pretty Hard PHP). Nobody on our team had used it extensively, so we were consistently bottlenecked by frontend / backend interfacing.

Accomplishments that we're proud of:

We were able to fully implement our docker image submission solution! We think that with more broad coding allowances, students will be able to develop important experiences and personal styles. Codexec is able to provide such an environment without sacrificing coding standards.

What we learned:

We learned how to more effectively create a website with a team by dividing functions but paying special regard to intersecting portions. We greatly improved our ability to use docker and Google Cloud Services as well.

What's next for codexec?

Next, we plan to perform more statistical analysis on code features, check for plagiarism, and improve the aesthetic of the website and presentation of the information.

Share this project:

Updates