Empowering everyone to code with Google's Eye
Link to open source: https://github.com/Aniket762/playground
Inspiration
In India, more than 95% of schools don't allow smartphones in class. Being a Computer Science teacher becomes very difficult as it is nearly impossible to check the handwritten code of each student line by line. Also talking in India, in most schools, the students don't have the privilege to have one computer each for them so that they can run their code on their own. So it becomes a nightmare for the teacher as they might have to manually type each code of each student and run it or take the risk of missing out on bugs.
While in recent times, the world has started moving towards Codelisation, being a good programmer is not easy it requires consistency, determination, problem-solving ability, and a lot more but, most importantly it requires you to get started. I did a small survey in my community and got to know more than 80% of them started properly coding after joining university and the major reason was lack of the personal computers and laptops. In developing countries, 3 out of 10 people have access to computers in comparison to 8 out of 10 people who have access to smartphones. Let's see how project playground solves this problem and empowers even someone from a remote village in India to start coding.
To solve these issues, we came up with Playground!
What is it?
There are two subsystems of the Playground:
- Evaluation of answer sheets of the exams conducted traditionally is a tedious and critical task. A lot of time and energy is invested by the teachers to check every single line of code, look for bugs and find the corresponding output. So, with Playground, you can simply upload a picture of a student's handwritten code and we will handle the rest. Using Google's Vision API, we scan the image and retrieve the text and give it back to you in a code editor. But unlike teachers, machines are not always right, so if some minor flaws are there you can edit them in the code editor, which will then run the code and give you the output. So instead of going through the entire code, use Playground to do it in less than 2 mins.
- Teachers have to work hard every day. Starting from explaining the concepts at a pace all students understand, to giving proper assignments, to clearing all the doubts. So we thought let us make another important job for our teachers super easy. With Playground, you can also easily create question papers and assignments for your students. This is done by crowdsourcing. Students and teachers across the world can add their favorite questions through a form and then you'll get a variety of coding questions which are pre-approved by us. So just select some of the random questions from our page and you're done with the assignment! It's that simple!
How we built it?
We used Next.js in the frontend and Node.js in the backend with MongoDB as our database. Next, we used the Google Vision API for scanning the image and retrieving the handwritten text. The handwritten text was displayed in a code editor with full syntax highlighting and available for currently two languages, c++, and python. When you click submit, we generated a new code file for the corresponding language and displayed its output on the screen. For the second section of Playground, we created a form that adds data to the database. Then we retrieve the data through Axios and display the questions that are approved. We created a special route with a passcode for admins, where they can manually approve the questions in the database
What's next for Playground?
Next, we want to increase the support by providing more options for languages like javascript, java, c, and so on. We also want to increase the variety of questions varying through a variety of topics and difficulty levels. In addition to that, we plan to create a neural search framework that will allow us to filter the questions on the basis of topic and difficulty and help you find similar questions. Lastly, we wish to build our very own OCR model for text extraction. This will solve our problems of billing while using external models.






