There are a lot of learning platforms available online and in our experience, the best ones always have an amazing community. Be it a YouTube Channel, a MOOC or a website dedicated to learning altogether. So, we decided to create a platform where community is where the tutorials come from! If students and even people from non coding platforms have a platform where they can share their knowledge with their own perspective, people who are from similar back grounds will be able to connect with the tutorial in a better manner. And thus we created an online community driven learning and sharing platform.
What it does ❓❔
Code Share is an online community driven learning and sharing platform which allows users to write "tutorials" in a blog like fashion. They can create a rich blog with code snippets, images and videos and then add a practice question to go with the tutorial upon getting it published.
The Platform also has an online python IDE, where users can practice and solve the questions which accompany the tutorials they are interested in. They can keep a track of their profile which shows how many tutorials they have authored in total and how many did they complete.
How we built it 🏆🥇
We used bootstrap to create the layout of the website, made the necessary changes with CSS and HTML and we had the front end with us. We then used Django to create the back-end and hooked it up with cockroach-db for our database. For the IDE, we used the sys library available in python to help execute the input code written by the user, and printed the output via HttpResponse.
Challenges we ran into 🧿🤔🤨
Creating an online IDE was a big deal! We wanted to create an IDE which will support C/C++, Java and python, plus other major programming languages. We didn't feel like simply embedding a third party tool on our website like replit (where's the fun in that ;) ).
So for the sake of a prototype, we defined our own "input" function which took the user input over a POST request, split it on '\n' (endline) characters and than split it again on spaces, basically giving us a dictionary of dictionaries. Not Ideal, but we got it working. This is where we faced most tricky bugs
Accomplishments that we're proud of 🥳💪
Thinking an off the beat project and actually managing to implement a working prototype! We learnt that it is very difficult to code an online IDE ourselves as there are many security threats involved with running scripts on an Http server. So for now, we just went ahead with the python server(because sys is comparatively safe and we did not make any database queries through the IDE).
What we learned 😍😁
Although we didn't make an ideal online compiler, we still learnt a lot about how IDEs actually work. Also, we learnt some "best practices" to follow while dealing with system requests.
What's next for Code Share 🧿
Making it compatible with other languages than python, make some corrections on the front end and deploy the project with a proper domain name. This project could have some potential!