 So, we are the content tools team of Fundamental Research Collaborative Communities Portal. So I am Naveen, this is Dhanush, Aadash and Saurav. So the main name of this Collaborative Communities Portal is to increase the users to come forward from all over the world and update their contents and share their knowledge and that shared knowledge should be reached among like it should be reachable to many users. So for such platform it is necessary that the users should be provided with tools which extend their reach. It is also necessary that the contents created by the user should be validated, it should not be inappropriate because it is targeted to a wider audience. So we should have some tool which can detect the inappropriateness of the content creator. So in this internship period we created four modules, we integrated four modules with the collaborative community and one of them like listing are real-time collaborative editor and inappropriate content filter and wiki page for each community and integration of new content type H5P. Then these are the technologies used by us, Django is the basic web framework which Collaborative Community is built on and the wiki page integrated with this Django is Django wiki and Etherpad, Node and socket IO we have been we use this for integrating real-time collaborative editor and H5PP is the port for H5P in Python and PyTorch, Pandas, Glove, NumPy and B-Calls we have used it for inappropriate content filter. Now we will be explaining on each of the modules. So I will handle this to Aadash. So this is real-time collaborative editor. Now basically what is a collaborative editor? Over here like this is just like a normal text editor but additional feature is that not only one user but more than one user can edit the document simultaneously and at the same time they can see the others changes that they are making. So the two main examples that we see here are Google Docs and ShareLatech. They are real-time collaborative editor. Now why do we need it in our system? Actually in collaboration system when a community article is created it passes through four stages that is dry, visible state, publishable and published state. Now when the article is in visible state it is open for editing by all the users. So there we need a platform where the users can edit the document simultaneously. Here collaborative editor comes into play. The collaborative editor that we chose was Etherpad mainly because of these features. First of all it is real-time that it should be. Next it is scalable to thousands of simultaneous real-time users. It also allows us to export the document as HTML or PDF. Moreover it has many plugins available that enhances its features and last and the most important is it is based on operational transform and change sets. So how did we implement Etherpad? See what happens is this Etherpad instance it runs on the node server and in the Django server which contains the main system and instance of the Etherpad is run using an iframe. Now the communication, real-time communication happens through socket IO and the database that is used is common for both node server and the Django server. To make things more clear this is a workflow diagram. As you can see this is the node server. This node server runs the Etherpad instance on port 9001. Now this server helps in the article creation and editing. For the article creation and editing the store table of the collaboration database keeps all the required content in the form of change sets. These change sets they are very important regarding Etherpad. Now when the user has to view the article he uses the basic article table because here the article is not kept in the form of change sets but in a html format so that user can easily read it and this store table and the basic article table they are synced after every 3 seconds so that the user can be updated with the view. And this you can see the real-time thing happens through socket IO that is it by my side. Next is interactive content, so I will explain it. A very good evening to one and all. I will be explaining the second module that we have implemented that is interactive content. Now you would be wondering what is the need of integrating such a thing. The current system provided to us rendered only basic article and course creation and as you all know in this digital era we are in a stage that we need interactive learning and that there comes the need of interactive content and as you know for any project the aim has always been to expand, enhance and extend the system. This where we come into the pro-role and now what is H5P? H5P stands for HTML5 package which gives us the option of creating interactive content and in the current situation the official plugins are only available for WordPress, Drupal and Moodle. This package facilitates us the creation of interactive videos, interactive presentations and a whole lot of other H5P interactive contents. There are some examples. This is one of the course presentation that I was creating on the official website H5P.org. This is another one interactive video and now the our approach of integrating this in the collaborative communities portal. As you know the collaborative communities portal is a Django project and there is no official support for creation of H5P contents on Django. So after a long search we found out a open source plugin that is H5PP, HTML5 package for Python. It is available for Django but it is currently in beta stage. So this is the link of the GitHub repository that we were using. As you can see this is a workflow diagram whenever a user interacts with the collaborative community portal and he has to create an interactive content. He will be redirected to the H5P server where he can create or upload H5P content. After the creation when he clicks on save he will be redirected to the collaborative community server where he will be shown the list of community or group content. Then there he can click on the like view the interactive content and then he will be redirected again to the H5P server. This is as you can see these are some of the screenshots of our integration. As you can see this create resource option provides us with interactive content. When you click on this you will be redirected to the H5P server where you can create or upload H5P contents. When you click on save you will be redirected to this content list. These are the group of community contents. It includes articles as well as courses. So whenever you click on any interactive content then you will be redirected again to the H5P server where you will be able to view it. So that is it from my side. Now we will be explaining the third module and that is Vicky and it will be explained by Navin. So in the previous system for the description of a community we had only like a single paragraph where the community admin would be editing for at the first like at the time of creation of a community would be just editing and what this community is all about. But as the time goes on the communities they will have a vision and they will have some objectives which they have to follow for the better future of the community. So such content such overview of the community should be listed properly in a more structured manner. So that will reach like if a new user wants to join the community you should get the whole overview of the community. So that's where this Vicky page for the community comes in. So we have integrated Django Vicky for this content which had permission system like who can edit the article and who can view it and stuff and revision control like after each edit it will be saved each revision and you can add images, files and whatever you want like a normal Vicky page. So the structure of Django Vicky is like this the main reason for choosing Django Vicky is one because of its structure root Vicky will be there which will have the information of the whole collaborative communities portal and under that each community will have its own Vicky page and each group under each community will be having separate Vicky page. So this is screenshot of Vicky page of one of the communities. So now Dhanush will explain in a bit content filter. So like as said in the introduction like the as collaborative communities is open for huge like large range of people it is more appropriate that the content published in the community should be proper and it should not be like harassing for others. So in a recent survey it was found that 39% of the experts agree that the future will be more like on an online media future will be more shaped by harassment and troll like behavior. So that is the reason like inappropriate content filter is a necessary tool in a huge like in a huge open platform like collaborative systems. So what is inappropriate content filter? inappropriate content filter is a tool which checks the appropriateness of a piece of information for a large public audience. The inappropriate content filter that we built like it can be broadly segregated into two parts the encoder and the fully connected network. The encoder can again be segregated in two parts word embedding and the LSTM network. So this is how the data flow through the model finally it outputs a single number either 0 or 1. So for an overview of inappropriate content filter first thing it is implemented using PyTorch. Second one we got the data set to train the model from Kaggle and that is the link this is the link and the data set contains total of 15,571 records and we got an accuracy of 88.17% percentage and for in collaborative communities how we integrated it was when a user request for save changes the collaborative community server it is like the inappropriate content filter it is actually running on a node server. So the collaborative community sends a request to the node server and like the inappropriate content filter will send back either 0 or 1 based on the appropriateness of the article. So the next is dockerization Saurav will explain. So the current status of our code is like we the following modules have been fully dockerized. The h5p module runs as a separate docker container named h5p. A third bad runs as a separate docker container node and the collaborative communities runs on a web container and the database on db. So these four services have been defined the docker compose file inside the collaborative communities and these are fully operational. Since wiki was a Django wiki framework it has already been integrated inside the collaborative community system and it runs inside the web container. These are the links to our code you can surely refer it and now the coming to the conclusion on our future work in this project we have implemented etherpad which allows real-time collaborative editing of articles. Secondly we integrated interactive content which was facilitated using h5p which paves the path for user experiences towards interactive learning. Thirdly Django wiki app which facilitates describing the community's objective in a structured manner mainly a wiki page for a community and finally the inappropriate content filter which prevents or flags abusive or toxic content and maintains the integrity of the system. To be noted the system built by us has been tested using selenium by the OER repository team. Coming to the future work like on the etherpad our objective as future work is autosaving of articles should be implemented based on user activity. And secondly implementation of h5p should be there in an in an iframe like redirection to the server cost us a lot of time. And thirdly making the inappropriate content filter model more dynamic. And finally building an architecture to automatically flag the article regarding its appropriateness. Also in the wiki like wiki site we have we have currently the community wikis. What a future work is that we also should have group wikis. Like now we'll show a demo of the collaborative editor. So here is a demo of the collaborative editor. At this point of time we can see that in the right window pane a user is typing something and correspondingly the left pane has this like the same content coming up. So so basically the thing is that the different color shows that they are being typed by two different users and the thing is happening collaboratively. This is it. These are the references. Any queries if you have. Yes. I was actually expecting you to also show the how the merging of two change sets take place actually that would have been better. We can go into the theory part if you wish. Yeah but yeah it makes sense. Actually like due to lack of time we had to just cut through it otherwise we had. Sure maybe we can take that offline. So yeah the other question is why do you need wiki actually because the same thing that you're doing is already that is possible with collaborative communities as well. You can have an article for each of the each of these communities and sub community. Wiki is like a description for the community like whenever a new user whenever a new user like uses a collaborative communities when he browse through communities like he doesn't have idea what the community does or what it is meant for or to get an overview of the how the community works and what its ethics and objectives. The wiki helps like in wiki they can and that is being done collaboratively right. Yeah it is collaborative. The same thing but in case of articles we can't have like different pages but yeah wiki can have sub pages under it and all right. So basically it's more structured than article. Article is a single page and just things will be in this case we can attach files and images and create macros in this also. Yeah and maybe you could also edit it keep on editing it means like you can have new guidelines. Yeah it has markdown syntax so right. I think you should give some users to edit that wiki because that those guidelines would be very important for that community or that group not everybody should be able to edit that wiki. Actually we were trying to keep up with the original concept of wiki like wiki is lying on the concept that it should be open to one and all it should be open for editing but like there should be someone who restricts like who gets to like there is someone who gets to check upon those edits like it should be open to one and all because the concept is that the community will be there to. There is a problem here you don't have just one wiki you have a wiki for every community or every group right so once the guidelines are formed or framed so they remain for like one year two years without changing so you don't need to edit so you may have to block some permission if you understand responsible people responsible people can actually be allowed to edit that wiki. So now you define based on your reputation based on the reputation whether the person is responsible for editing wiki or not or the first person who starts the community. So I was just curious so this is not technical actually so you have actually implemented four different parts so is that the case that each one of you have implemented the part which you have presented is that the case or you have done collaboratively. Basically you have done two different models we worked in a pair of two like two people worked and we two worked on the real-time collaborative so you kept on adding as you got see your demo was good if you're just shown the demo with the two people collaboration have you tried with four people yeah we have tried with one on first page and second two group on third page two people are editing on first page and two people are editing on fourth page article is a single how the rendering does so it what happens is once the article is like I told you about the store table so when the users are editing it until then it is in the store table after that it goes into the basic article table through a use of API call what it does is it converts the chainsets into html form like everything is happening in real time that's where the chainsets come in oh yeah it operates along with operational transform and no you are showing on the web page yeah so on web page when a person is on first page editing something yeah like it's just a single page there's no first page second page it's just scrolling run okay thank you