My talk will focus on how I utilized Free and Open Source Software (FOSS) to create a competitive coding platform.
FOSS Community is in general very helpful. I will be sharing about to do we use the FOSS community to the fullest.
Let’s say we want to build a coding platform.
Building a coding platform from scratch can be quite complex. We need to ensure the code executes correctly and track the execution time and memory used. This is where we take the help of FOSS. Judge0 is an open-source online code execution system that evaluates all codes in an isolated environment, preventing users from damaging our systems. Judge0 will then expose the APIs that we can use in our application.
Now since we have our execution part planned up, let think about our application. We need to have a code editor also right? We can’t just use a text input box and tell users to code in that. Who codes in a notepad? We google about open source code editing libraries and see their are many.
For a user-friendly code editing interface, I chose the Ace editor. Another amazing thing about FOSS projects is their documentation. You can go through their docs and easy integrate them in your projects. So that’s what we can do. By using these tools, we can easily incorporate basic code execution and editing functionality into our website.
Once we have our platform ready, we can deploy it over the cloud. I personally use Azure because it offers free credits. We can deploy the frontend, backend, and database to Azure, and Judge0 can be deployed to a Virtual Machine (VM). While deploying, there are few things that we need to make sure. Things like our API is only called at our backend, and not our frontend, the Judge0 VM is only accessible from our backend. These are few minor mistakes many student devs do.