 Hello everyone, we are the meaningful feedback team. My name is Pallavi Chetya and in our PowerPoint presentation we are going to talk a little bit more about our project. So in most online tutorial platforms, it is very difficult for the content creators to understand the usability or the usefulness of their content. This is because most voters and users have either the choice of liking or disliking the content and that is why it does not give a great deal of understanding to the content creators. So the objective of our project was to create a web application where we could allow the voters some flexibility in providing meaningful feedback and by providing that feedback the content creators can then analyze it and they can use that feedback to improve the quality of their tutorials. The motivation for our project was based on a research paper on the effects of effective and cognitive feedback in online peer assessment systems. We have also cited the research paper for anybody who wants to have a look at it. From the research paper we came to understand that cognitive feedback is anything which targets on summarizing, specifying and explaining the different aspects of the work. In our case it is an online tutorial or any online learning platform whereas effective feedback mostly focuses on the quality of the work so it uses effective language to either provide positive feedback or negative feedback. Moving on the different technologies that we used for the project are Django framework for the backend. We also used Ajax for form submissions and for frontend we mostly stuck to HTML, CSS, JavaScript and some bootstrap to make it more responsive and better looking. Next on I am going to talk in brief about how the Django framework works. So Django is a free open source web framework and it is very useful because it is written in Python so it is very easy to learn and use. Also most of its code can be reused so it works on the do not repeat yourself principle and it has the model view template architecture. So model is a single definitive source of information which has the different data fields and behavior of the data that you want to store in the database. It connects to the views where there are certain set of functions and upon receiving a URL request or an HTTP request it is forwarded to the appropriate view which then delegates with the template to give you the HTTP response or the HTML document where the data is presented and the users can interact with it. Now we are going to talk more about how our application looks like, what are the different pages in the application and how we can go through it. So the first page is the register page and it is only accessible to the publisher or the person who wants to embed our app in their website. So it is the educator who wants to embed the app on his online tutorial website. So as you can see it contains some information about the app, demo of the app and it allows the publisher to register with his name, the URL of the page where he wants to embed the app and also his email address. On submitting iFrame code is generated. This can then be copy pasted into the HTML file of the learning tutorial website. Once that is done the app is successfully embedded and now this is the first page that can be seen by any student or user who is on the website taking the online tutorial. So for any new user an account has to be created so they can use the sign up link and this will take them to the sign up page where they can sign up using their information. Once they sign up they are again taken back to login page so they can login using the credentials and finally when a user is logged into the system they can view the voting page. So as you can see we have included the two aforementioned options of effective and cognitive feedback. For effective we have three choices boring, confusing and engaging which specify the overall quality of the content and for cognitive we have difficult and easy which specify the, which summarise the difficulty level of the content. Each voter can vote only once for both the options and once the voting is done the total number of votes for each of the choices is displayed. So if I vote on boring for effective and easy for cognitive it will show me something like this which means that only one person voted the content as boring and only one person voted the content as easy and it also means that two other users had voted the content as confusing and engaging and same for cognitive. So this gives educator an idea of the different votes that the content received and from here on they can make necessary changes in their content to make it better. Next on we are going to talk about what goes on in the backend of the Django database and my teammate Prabhjit is going to take over. I will be talking about the Django database administration. I will basically talk about the database structure which we have used in this application. In our models we have used three classes one was effective, one was cognitive and one was URL. So whenever a user clicks on votes for effective for example in effective as we have seen we have three choices boring, confusing and engaging. So when a user clicks on boring an object named boring will be created let's say easy a user chooses easy for cognitive and another object will be created for cognitive which will be named easy. So what happens is that each object contains three attributes one is the URL, one is the user and one is the name of that object. The requirement of URL is we embed this code in code sarah.com or edx.com so we need to differentiate that for which website we have received this feedback and we also need to differentiate that which user voted for what option on what website. There is also an option for URL so when a URL object is created it contains itself the publisher name. Now this publisher name is basically the name of the educator who has created that online video tutorial. So here we can see the use case diagram. So a student is able to log in sign up vote or view the vote count whereas an educator is able to register his URL and view the vote count for his tutorial. Now the first figure you see on the right hand side is the context level DFD. Context level of level 0 DFD gives the bird's eye view of the application. So you can see that a publisher will enter the URL name into the application and this application will generate a unique code for that publisher. And then that publisher can embed that unique iframe code into his application and then after that a student can enter his login credentials and then give his feedback on to the tutorial and the vote count will be returned to the student. Similarly below that you can see the level 1 DFD. In level 1 DFD the meaningful feedback process is divided into two parts. There is one part for publisher where a publisher can register URL and iframe code will be generated and then a URL ID will be stored in the database. And then when a student wants to give feedback the application will fetch the URL ID from the database and then the corresponding feedback will be stored in the database. This is the GitHub link for our application and now let's talk about some scope for future work. There is one limitation that a user cannot change his option after he has voted once. So this can be worked upon. Another important thing is that if a user wants to vote for multiple sites then a user will have to login multiple times for different video tutorials. And so we can use cookies and using cookies we can maintain sessions and then this problem can also be removed. And we can also develop a dashboard for the educator to maintain a record of the votes on which the educator has received. Thank you. Just couple of quick questions. If I am part of the community portal I already have my login credentials and I would have logged into that portal. Why should then I be required to login again? Because that sounds pretty stupid having to have multiple. As it is you have realized that multiple logins may be required and that you have put in as a future work. But why should I have to login at all if I am already logged into the portal? We have developed this application to be used in multiple websites. So as a standalone application you have done that? Yes. So now this is the more important question. If this application is to be used as an integral part of the community portal, do you have a ready made API which can get the authentication information about the user automatically if the user is logged in? Yes sir. Or integrating your system with the present portal will mean change of coding in both sides? Just we can replace the login method. No, no you can. But do you have an inbuilt provision to do it as of now? No. So this is some warning that I would like to issue to all of you. We all develop code without realizing that we are developing it in a monolithic fashion. We do not provide for automatic interfacing with other systems including those which we do not even know or cannot imagine today. Going forward any code that you write, any code will have to interface with other applications. Never ever therefore build any code which does not have implicit availability of APIs to do all of these things so that integration will be easily possible. So this is a lesson. So now they themselves have realized that one may have to log in multiple times which they have indicated as a subsequent. What I am saying is if somebody is already logging into some platform, my credentials are known to the system. Why should I have to log in again for doing anything else? And especially a whole lot of time is spent by people in preparing the login scripting in a very stable fashion. That is completely useless. You should not even have to talk about it unless you are going to become a part of a larger system. So just keep that in mind. But good that you have realized that multiple things. One more question that I have is why are you capturing only the user ID and this? Are you not capturing the timestamp? So I give an opinion on say 6th July at 9.30 versus somebody gives an opinion on 8th July at 11.30. So you are not doing that. I would suggest that even before going tomorrow you can just add that field to your model. So please remember event logging is an integral and essential part of every system that you build now. And therefore whenever you are capturing any log of activity, try to include at least the timestamp. You never know how and when that timestamp could be useful for further analysis. Suppose you had just as an example, you had let's say 10,000 votes. And suppose you suspect that some votes were automatically generated or came at a short time. Wouldn't event log be able to tell you if there was a spark of 5,000 votes within 2 minutes? So these are the simple things that you should keep in mind. In any case, whenever you capture a log, never forget to capture a timestamp. So that is just one suggestion I would like. Good work. Thank you. One question. If you see if a content is having high engagement, I mean engaging, you have a lot of votes and it is also difficult. Is it possible? High votes in difficulty and high votes in engagement. Yes, it is possible. So see this application is made specifically for teachers. So by getting likes, I do not know what to change. By getting dislike, I don't know what to change. So if I am teaching rocket science, just a topic, I don't know whether it's difficult or easy. If I am teaching some difficult topic, I know it is difficult. So getting difficult votes is not a surprise for me. I am happy with that. But if a student says that this content is difficult but as well as engaging, then I am happy about this. But if I am teaching an easy topic and a student voted on difficult, that means I have to change the topic in some manner. I have to change my teaching style or I have to improve the content. So it is possible to get difficult as well as engaging votes on same content. It's just a suggestion for all of you. When I was a student, I used to distinguish between teachers implicitly on some of these aspects. Although we never recorded votes because votes were not permitted. You have to sit down quietly and listen to a teacher. But your generation would be able to do this. Why not think of using this system for implementation amongst the student groups in your own institution so that a useful anonymous feedback can be given to teachers with a greater granularity than what is currently available? You think it could be useful? I may suggest to IIT Bombay to adopt this. We used DJango specifically because it provides REST APIs. And the system is now ready to use with any system. The only thing that we need to write the modules for that specific system. For example, IIT Bombay, we need to write a module. I think we have taken more time than permitted. Thank you so much.