Browse By

Open Shiksha: e-Learning Made Easy

The most beneficial aspect of Information Technology is that it equips people with the gift of ‘free will’. It allows people to be creative and productive and lets them learn things at their own pace which can prove to be impactful. Open Shiksha is one such initiative that surmises all of the above statements.

Open Shiksha is an online education platform designed for students in underprivileged communities. It provides teachers, students, parents, and administrators with a cloud based interface to assign, complete, evaluate, and analyze student homework. What Open Shiksha does best is that it moves away from the ‘One size fits all’ approach by using advanced analytics and formulaic question-templates while introducing students to the supremacy and convenience of using technology productively.

Open Shiksha was founded by Sharang Pai, a second year student of MIT Manipal, along with his elder brother and his friend back in 2012. In tenth grade, Sharang often wondered, not uncommonly, about how different the education system could be if students enjoyed doing their homework and if they could strive to develop their strengths, rather than dabble in the ‘numbers game’. Sharang claims that this was Open Shiksha’s ultimate purpose.

The platform disseminates textual material using two models: The Open Model and The Partnership Model. The Open Model is designed for students such that they can create accounts directly from the website and access all the content for free. They can complete assignments at their own pace, after which the algorithms will provide personalized feedback and suggestions on their performance. The platform’s interface is clean and simple, and has been explicitly designed to be intuitive. It can be accessed on any internet connected device (computer, tablet or smartphone). They also offer an Android App that students can download in order to work offline.

The Partnership Model caters to educational non-profits and schools with administrator accounts which they can use to create virtual classrooms and subsequently add student, teacher or parent accounts. Teachers assign questions from question banks and students log in to complete the questions. This enables these organizations to improve student performance, analyze different teaching methods, and make data driven decisions. The world of WebDev is very dynamic, something that is popular today might not exist tomorrow. There are three main aspects to WebDev: Frontend, which deals with the appearance; the Database System, which holds all the data and Backend, which processes the data. Here’s the Technical Framework:

Technical Frameworks/Languages Used

Languages/Techniques :-

  • HTML (Front-end)
  • CSS (Front-end)
  • JavaScript (Front-end)
  • SQL (Database)
  • Python (Back-end)

Backend Stack :–

  • Operating System: Ubuntu
  • Database Management System: mySQL
  • Backend Framework: Django

Open Shiksha chose ‘Django’ as a framework since it ensures a rapid-development and quick-performance developer environment. Being frontend-agnostic and designed around the DRY (Don’t repeat yourself) ability, it functions without ‘knowing’ the underlying details of a system that it is working within, thus keeping the code simple and non-repetitive.

  • Web Server Gateway Interface (WSGI):  Gunicorn 
  • Web Server/Load Balancer: Nginx 

Frontend Stack :–

React would eventually allow a transition to a maintainable Single Page Application.

Google charts was easy to use and powerful ‘enough’. Eventually they would have moved to D3.js from Google charts for visualizations due to customization limitations. Another limitation was the google connectivity requirement.

Testing, Provisioning, and Deployment :-

Driven by python code and easy to use, Fabric was powerful ‘enough’ for Open Shiksha’s needs.

Open Shiksha used Circle CI for Continuous integration with free tier pricing, GitHub integration, and simple UI.

Docker allowed QA deployment in setting up the entire production system with all the micro-services like cabinet (question bank) on continuous integration servers with wit-free tier pricing. Docker would have eventually been used in development and production to reduce divergence.

Final Deploy Stack (nginx/gunicorn/mysql/supervisor/linux) :-

These are open source, have widespread adoption, and play well with ‘Django’ which is why they suited Open Shiksha’s requirements well.

Hosting Service Digital ocean

Digital Ocean has an easy setup, great pricing for low volume, and is easy to scale.

There are two ways to go about developing a platform like this. You can begin writing bad code and correct all the errors that you come across; they say ninety percent of the code you write initially is thrown away anyway. Or, you can spend enough time beforehand and write good code. In the making of Open Shiksha, the second approach was used. The questions generated using algorithmic constraints are formulaic, which means that there are an unlimited number of practice questions for every topic. For example, if you have been asked how five chocolates can be distributed between three children, the next time you are attempting this question, the variables change. You could be asked how twelve pizzas can be distributed between six college students.

Developing the algorithms to process corrected data and provide dynamic as well as adaptive suggestions for areas where the student could improve on, was an ordeal that Open Shiksha had to overcome. They made sure that the analytics were well tested by examining the result on small groups, and then extrapolating the data to make sure it stayed relevant, even in larger sets. The adaptive algorithms are a mixture of the classic ‘percentage’ and modern ‘percentile’ systems; implementing and testing these dynamic algorithms was one of the biggest roadblocks they claim to have faced.

Structuring the code of the template engine to respond well to dynamic changes in the future was carried out with a great amount of thought. This was done by using code modularity, with strict standards of coding and version control. It cannot be stressed enough that for mainstream projects in the commercial world, coding and development guidelines are of high priority. Simple concepts such as comment coding and indentation can cut production time by a magnitude of ten times.

Technically, the most challenging part for them was structuring the entire application as a scalable, agile web application. This meant using continuous integration which is, essentially, integrating all available code to a remote repository and running checks through automated test suites that is built to enable early detection of problems. They also used multiple deployment environments and service dockerization (Running a service in a loosely isolated environment called a container to test the integrity of parts of the code) so that the development-environment could be set up easily while also being similar to the production and QA (Quality Assurance) environments. This meant maintaining the best of the current practices and taking time to map out the class structure as well as modularize every functionality to its basic core. Thus, making sure that the code in the future would not just be mutable but also secure, fast, and expandable in order to facilitate a sound codebase. Testing is usually one of the uncrowned kings of coding and though it might not be required for smaller projects, it is absolutely imperative in projects of such scale. Hence a lot of time was devoted to setting up a development and production environment.

Integrating the code forms to make sure the whole team was working in the same MMM (Minimal, Maintainable, and Modular) style in order to prevent the code base from overflowing was quite a stimulating task. This keeps the code clean and lean so that changes can be accommodated in the future (thus achieving ‘scalability’). Using strict version control is not just an option, but a necessity. Sticking to the core idea while adding ‘essential’ features without ‘feature creep’ i.e. wasting time on non-essential features and adding features of lower priority, can also turn out to be difficult.

Discipline in code and thought is important. Hence constant discussions to make sure that the entire team was on the same page is something that most people won’t talk about in a technical aspect but it remains substantial.  Since 2012, Open Shiksha has come a long way. It is one such initiative that helps students ace at academics, contradicting the belief that homework simply cannot be fun.

By Aditi Bhat

The End-Semester Playlist is here!Tune in