 So, I am from the MOOC prototype team, here is our team, we have Avinapuri, we have Dhruva Bhaskar, we have Anushri Janget, Divya Pitta, Abilash Karanay, Kushali Alagarda and Mondra Mahendra. IITBX, you would be thinking what is IITBX? It is a MOOC prototype course as and we will be using edX as a base platform to enhance on it, that is what we have done on it. So, our project scope has been to design around the key principle of openness interaction and quality autonomy and the quality education that is free of cost and all that you can think in an education system which you have been barred with. So, IITBX, IITBX is a massive open online course, it is just a prototype name that we have kept now, it can be changed. So, the basic control flow for IITBX will go as we will have three parts, one will be the CMS and one with the LMS and course. The CMS is the content management system and we also call it as course management system and we can handle accounts, logins, create or delete courses in it, add all required material of the courses. The LMS we can handle the student login, the student can register for courses, search for them and the discussion forums will be an interaction between the students. So, the edX module, these are the modules that we have categorized into main components and extra components. The main components will have edX platform, edX platform is the base platform that we work on and the xBlock is the, it is not yet integrated into edX platform, but it will soon be integrated and it is the API that will be handling the component addition architecture and the xQ is a service which will let like when we want to do something and lot of logins together we can lead to problems. So, xQ handles them by adding them to a queue and processing them. The CS comment services are the discussion forums. Code gel is for secure execution of the code that will be running on the system and Xover and edX over are the analytic platforms. Then we have extra components, those are ease and discern, these are the AI components. Then Docker is a Linux engine, edX analytics are the analytic components which also uses ed insights. We have itbx again, so itbx is what we have built on the top of edX. So, it consists of the LMS and the studio as we talked and it uses the Django framework which is built on Python and uses the rake as the software task management tool to organize it. So, itbx will have LMS and CMS. The LMS is the only one which will interact with the discussion forums and each course has a data directory that will be the course.xml file which will contain all the entire description of the course. So, when an instructor wants to add a course he just needs to modify the course.xml file and he can add all the content to that. The LMS is the learning management system, it is the student side and it can handles the student accounts, the lecture order and videos, quizzes, exercises, assignments and everything that a student needs to do. And the CMS is the content management system, it is the instructor side where the instructor can add a course, delete a course, can add subsections, quizzes, assignments, handouts, etcetera. Now course structure, a course structure goes like this, it is divided into weeks and each week is divided into several sections which are called lectures and each lecture will comprise of modules. The module can contain problem, HTML pages, videos, etcetera. Now, we will be thinking why do we divide them into weeks? It is because an instructor might not be ready with all the course material at once. So, this section comes, this gives a challenge to them and so, what happens is, it eases their addition of the course one by one weekly, then we have activities that we did. So, first of all what we did was we designed the template for the MOOC and then we successfully try to install the edX platform and we installed it twice, once on the local machine and then again on the server and then we modified it to work remotely from SSH. And we tested all the different components that the major components that were needed to require like code gel, CS comment services which is known as discussion forum, added also the mailing services to it and integrated the Google Calendar so that a student can easily have a quick view of what he needs. Then the challenge is faced where the biggest challenge was proxy because we had to make all the apps to work around with proxy and we use different modules to do that and we modified even the installation script to work with proxy. The second was we had very less time, the source code was just released on 1st June. So, we had even less than a month to do this. The third was the version management and merging of all the commits because once we modify the code and then comes the major part because we are modifying something our collaborator is modifying something and then merging both of them together sometimes we have to do it manually. The unresolved challenges are still the unstaged and alpha stage components, unstaged are the unstable components and the biggest one is the platform dependency that we have to use on the NICS like platform which are either Unix or Linux. So, what we learned from this project was we learned Python, a programming language, Django, the basic framework which we worked on, we learned the MongoDB it is a no SQL database management system which uses a JSON like format and has an entire syntax of JavaScript and SAS, SAS is simply awesome style sheets, it gives us lot of reuse on even CSS. Then Rake, Rake was a software task management tool which we used and Git was the version control. So, what future plans we have we still which we are still developing and we will finish this hopes of before going. So, few of them we will finish this before going. So, the future plans we have is video tagging which is a self note taking like anyway a student is watching a video he does not understand it he queries around to find the answer and then he can add the note at that time giving the duration to of how much time the note can be displayed. Then we also have the bookmarks and then text highlighting in ebooks like when we are reading some study material or handout that is given by the instructor. So, directly we can add a note or we can highlight it at that moment itself and easy navigation in discussion forums because what happens is sometimes a post is too long and we will find it that it is not interesting enough to read. So, we will have to scroll down a bit if it is a long post we will have to scroll down. So, there will be a easy navigation like one click will switch to the next post and then advanced search filter until now the course are categorized into XML format. So, we are having difficulty in putting the search because it is giving an overload on the search system. So, we will try to enhance this as much as possible. So, thank you. Now I call upon Dhruv Bhaskar to give the demo of the project. Good afternoon. Myself is Dhruv Bhaskar and I am going to give a demo of the complete platform and since there are too many functionalities and therefore, we have decided to view it in video. So, let us start. So, this is basically the CMS, the candidate manual system. This is on the instructor's side he will basically authoring the courses over here but for that he will first of all have to sign up, have an account on this platform. So, he can do that by using his respective email just he have to provide all the credentials and once he sign up for that he will be getting a mail as you can see and then there will be confirmation link after that he will be there inside his dashboard where he can design the courses. So, here he actually designs the courses by providing the course name and inside the course we have sections which may be the week what is basically to be shown in a entire week and the inside that section we will be having such sections and such sections will be a particular topic that he the instructor wants to discuss about in that week and inside this we will be having certain units. Now, these units are basically the main course components. We have the discussion forum, we have plain HTML, we have videos and we have problems. So, this is a video component directly the video gets integrated from YouTube it is not necessary we can also integrate it from other video streaming sites like Vimeo as well. The video credentials can be modified like this and then this is the we are adding a problem we can add the basic problems this is the basic one just one a multiple choice question just one of them will be correct. Apart from this we have some advanced problems as well we will be discussing it when we will be discussing the code gel part and this is the basic estimate pace any particular say for example, if you have to discuss some problem statement and all that you can simply write it over here that will be just a estimate content that will be shown in that particular course content. Now, finally the course has to be made public unless you do not make it public it will not be shown in the respective elements site we will see it in the elements site just a while after. Now, this is the update pace any particular update that is to be given on a for a particular case that can be displayed over here any particular updates since announcements. The static pages here you can provide the Google Calendar integration goes over here or anything else what this is purely an estimate pace. So, anything that can be done in estimate can be integrated over here when one application can be to add the calendar and then this is the file uploads you can upload any image file or videos over here to the main server. Now, these are the settings now here you can basically describe the entire schedule of the course and this is the course info video which basically delineates what actually the course giving a rough idea to the students. And this is the grading part here you can customize the grading schemes the ranges for the different grading that you can do you can put the advanced grading rules in the policies also. So, this is as per the instructors decision how he wants to grade that particular course he can do that and this is a course team it usually happens that they the main instructor in a part from then they will be a number of assistants TAs the info about them will be going over here. And this is the advanced settings it is recommended that we should not interfere with these settings unless we are very sure because it will may cause the malfunctions unless we are very sure we do not basically change these settings. Now, this is the course export with see whenever we create a course that is the XML document. So we can once a course is created we can export it in the XML format and later on we can also import it. So, this is the course import so we can import that particular XML file and it will be integrated in our entire courses this is the course phase the info phase. And now we will be basically talking about the LMS part. This is the this will be basically the part which will be visible to the students. So this is how it appears to the students. So whatever course that is created over there in the CMS will be viewed over here and these are the courses that we have already added which are being displayed over here on the home page and we this is just a video introducing IITB the culture over here on the very home page. And for accessing the courses obviously he will have to log in and when he logs in he gets into the course dashboard he will have to find the course here we have implemented the search functionality a Django app basically. This is the search functionality by using the universities as the keys. So particular the courses for the from the particular university will be displayed and by using a particular keywords also we can basically search and finally by clicking on a particular course we get in we get inside and the course we can register the for that particular course from here the course registration phase. And this is the course if he he will just have to register he will just get into the course and finally he has the access to all the course components he can see the syllabus and other things. So this is the course welcome phase the instructor may welcome the student over here by giving the welcome messages and this is the main course wave part. So here you can see that there is some vertical vertical scrolls over here and these are basically the sections and subsections and the horizontal part is basically the units that we basically added in the CMS. So the units can be the problems it can be the videos and the static estimate pages and all that they basically come up in the horizontal section here we have video clicking on the next we get the next the problem subunit we can evaluate it we can see the explanation for that particular answer as well. And this is a course wiki pays a student basically can use it for himself to specify anything that he understand about the course or whatever info say he has to keep while doing the course here he can write those in force over here you can see that he is just adding an article for his reference letter reference and that is created. Now this is the progress phase here whenever a student basically answers a particular question or any assignments and all that they all are recorded and a particular graph is generated which shows the entire performance of the student in this graphical context. So this is automatically generated based on his performance and this is the help phase or any FAQs that a student wants to he can get from here all the relevant questions have been listed properly over here the confusion that a student may have while resting for course or while taking the course and now we were talking about more advanced modules like code gel it happens that sometimes we basically require the some program execution for designing the problems or we may want the student to write the code. But since that particular code is to be run on our server therefore that if that particular code is not safe it may screw up with your server. So for that particular purpose we will have to use code gel code gel is a sandbox sandbox basically means it's a virtual machine. So when a code is executed it is executed inside that temporary virtual machine and once that execution completes that virtual machine is destroyed. So for security purpose we basically make the use of this code gel we will see how this code actually function so we will be adding a problem a problem that basically makes the use of a python program and requires the python program execution. So we will be going to the advanced problems one custom python evaluated problem and inside that I am actually there is some default code it's a simple code but I have just written one extra code just to see whether this code gel is functioning or not. This particular code is the file write code now the code for file writing and if this particular sandbox doesn't have the permission to do that obviously it's not be allowed to mingle with your operating system and that we will be seeing that in one of the course I have added the permission and in other course I have I haven't and you will see the permission denied here coming up for this one because we haven't added a permission to this particular course. So we will save this particular problem and make it public so that it is visible in the animals part and this is the course in which I haven't added the permission and I have done similar thing for the another course but in there we haven't I have given the permission by adding that particular course to exception. So here I am creating a file the file to which the both of the courses we were trying to write. So first of all I am going to the course in which we don't have the permission to make the file writes. So it's it's just validating whether the sum is stand out in 20 but the additional code for file write which gets fired and that is basically showing that particular because it doesn't have the permission to make the right. Now I will be basically showing you the file where I have added the exception to the second course the android course which I have put the exception so that it can make file write. So there is a commented PY file inside the environments in the LMS directory. So we will have to add the regular expression for the corresponding course ID over here. So this is the course ID of the course which we basically want to put at exception in exception. Now this particular course since it has been given now it is put at exception therefore it has the permission to make the file write. The codes will not basically be telling that it should not make the write it will be giving the permission to make the file write. So the problem gets evaluated and that particular full line script is executed and you can see the file write has happened. I will be doing the cat to that trial file that I created previously. So you can see that that particular text has come up over here the file write has in fact taken place. So the code gel had not basically interfered with the file write for this particular course. So this how the code gel basically allows some of the courses to execute the unsafe code. If I put that course to exception but if I configure that code gel be restricting a particular course to make the file write or any OS related functionalities then you can do that. So for security purpose can be used now we will be having the discussion forum. So this is a discussion forum where the students can basically discuss about any particular problem. You can add a new post. So you can write a title and then specify whatever queries it has to discuss with the other fellow students. So this is a question that he has confusion on and somebody else will be answering this one and there it is. So this is how the discussion forum works and that is all about the demo. Thanks. Couple of things. Did you try to use, try to register for edx 0 0 1 and study? Yeah edx 101. 101. Yeah. So how do you register for edx 101? So there is a website as.edx.org. Right. On that particular website you will have to register. And you could easily register. Yeah. Second thing is what Prasar Aute was asking me. Why did you not try to take let's say NPTEL videos from a lecture and then create a course. So that can always be done once we know the video idea that we can always put it over there in the course. So how easy or difficult it is to upload video links and so on. So there is no difficulty in integrating any course into our course content. Once you have it there in YouTube or any other video streaming site, you can just provide that video ID and that iframe will be important as a course content. How would you compare that with Moodle in terms of learning management system or content management system? So actually Moodle can be used for small scale purposes. Mood websites basically the edx platform is for large scale if you want to implement it on a large scale. Good observation but what makes you say this? What do you find in the code which appears to suggest that the edx platform is much more scalable than Moodle? So the edx platform uses the Django framework. The Django framework has an excellent cache management system and it has lots of other modules also which increases the interaction level and even with what capacity the same configuration server, which Moodle might be having and then edx platform might be having and it can scale up to 10 times in that same configuration. Are there any performance figures quoted anywhere in the documentation? No sir they haven't performed but sir the Django framework like the next one which will be available, it will even be having a thread pool that will enhance it up to more four times. I see. Currently it doesn't use any thread pool. So currently it doesn't have a thread pool. It uses the operating system thread pool. Would you get an estimate of what is the total size of code for different modules of edx, number of lines of code? So the total size of code, sir actually it uses even the operating system and around we have around more than even 200 modules that are being used. Yeah that is okay. So each module can have say around 2000 lines of code. So 400000 lines. Yes sir. That's not too big a code. We used to routinely handle a team of eight people used to handle about 250000 lines of code. So how is the code structure? Could you just get any sense out of the style of code writing? Have they followed any writing principles or anything or you could not look at that? Only the thing that was missing there was the documentation. We had to understand everything on our own. That is pretty standard in almost all open source project. Yes sir. That is not good. So when you understood something have you tried to write some documentation on your own or no? It's in your minds only. No sir we tried to like wherever possible like where there was a necessity we tried to add. So is it recorded anywhere? Do we have that portion what you have added? It could be just few lines of code. The GitHub has all the commits that we have made. So we and anyone can view any version of the commit that we have made. In the GitHub how is this registered? Is it for IIT Bombay or is it registered under individual names of yours? So first I hosted it on my GitHub profile and then I added the collaborators to it. So it is all of you now? Few of us. You are not familiar with the teacher's training program but I had just one question related to that. I personally do not subscribe to the theory that everything online is adequate. I do believe that our students particularly will benefit if there is a group environment for discussion or problem solving or explanations. If we have to build that, is there a feature there where I could describe groups? The discussion forum has that sir like you can make groups for each of the components and then that group will be separate for each of them. No but that is based on the activity. Yes sir. It is not based on the activity. Can I define groups where all activities are the course? A group will conduct independent of another group. Independent of the course. Another group. So a group in Coimbatore, a group in physically, a group in Coimbatore, group in Jaipur, group in Calcutta where these groups will collaborate with each other. That even sir, edX uses it as like there is something, I don't remember the website name but they have registered and they create chapters across the all world. They call it SPOC. Yes SPOC. So can we create, is there a facility to create SPOC and cater to SPOC in the code which they have released? No sir. That's where they want to make money. But it is doable right? Yes sir. Good. Thank you so much. Let's give them a big hand.