Inspiration
After our experiences taking CSE classes, we knew that active participation is important when about programming. That is why we wanted to model our project after Kahoot and extend it to programming. Kahoot provides a fun interactive experience while still testing and reinforcing student knowledge. However, it would be awkward to use it for programming assignments. That's where Codalize comes it.
What it does
Our project allows instructors to give a coding problem and sample code in languages of their choosing, as well as providing custom test cases to thoroughly test student's code. The code will be run in a sandboxed environment on a backend server. We currently support python and javascript, with the ability to easily add more. Instructors can create test cases using any number of string or number inputs.
How we built it
We used Nextjs with the createt3app template. That includes tailwind, trpc, and more. On the backend, docker and multiple js scripts to pass data through stdin to be tested against an autogenerated test file using either jest or pytest. Input code is parsed with treesitter to find the correct function to test. The code is run in a docker container on a remote server after being passed through a rabbitMQ queue. That allows us to maintain security from malicious code.
Challenges we ran into
Time was a big issue for us, but were were eventually able to create a working prototype of Codalize.
We also opted to use an in memory database to reduce complexity, but ran into issues with nextjs rebuilding the file while in development mode.
Unfortunate we were not able to deploy a demo site.
Log in or sign up for Devpost to join the conversation.