 We now have the project named LTI integration under the mentorship of Mr. Rajnikant. Good morning everyone. We, an army of seven interns have worked on this project titled LTI 2.0 standard implementation of AK-6R Question Bank. We have tried our level best to keep this presentation error free. And if there is any mistake from our side, please keep patient with us. This is going to be the presentation, roadmap of the presentation. We'll first discuss about the goals and achievements. Then we'll have a short presentation about LTI 2.0 and UTP, that is the universal tool provider. Then we'll have a presentation about messaging flow. Then short demo. Then it would be followed by the system architecture. Then it would be a short, there would be a short demo about quiz creation tool and quiz presentation tool. Then we'll proceed with conclusions, challenges, learning, goals and achievements. Our goals are to develop an universal LTI 2.0 tool provider. We have to use AK-6R Question Bank as a separate tool to test with the universal tool provider. We have to integrate AK-6R with Question Bank through UTP to model for testing. We also had to integrate AK-6R Question Bank through UTP to IIT Bomb Bakes, which could not be achieved. Now I give up the presentation to Mukul. First of all, let us know what is LTI? Basically, LTI stands for Learning Tool Interoperability. So, LTI stands for Learning Tool Interoperability. And it says that it is a standard way of integrating our tools with the LMS. Let us look at the diagram. First of all, there are many LMS it's shown here, that is Blackboard, Model, Sakai. And we have our tool that is simple demo tool. So, if we want to use that tool in our LMS, then we need a standard way to integrate it with any LMS. So, we have LTI here. So, basically what LTI does is to integrate our tool with any LMS. If it is, let us say this tool is LTI 2.0 component, then it will be integrated with any kind of LMS which support LTI 2.0. So, why do we need LTI? First of all, writing integration for third-party tool is a nightmare. Let us say if we want to integrate our tool with any project. So, we have to hire a developer which will write a code to integrate with, let us say we have to use it LMS. So, he have to write a code to integrate with LMS. So, it might be a nightmare for him to integrate successfully or he might face many difficulties like it might not be faster. But if we use LTI standard, apart from it will be faster enough and it will also be used in any LMS. If we use LTI standard, second is seamless user experience. That is if any user is, let us say login in any LMS. If we want to use that tool, then he need not to login in again that tool. So, what does our LMS do is to send all the details to the tool and that tool verifies all the details. And then he need not to login in that tool. So, what are the key elements in our LTI? First one is LTI consumer. Basically LTI consumer is an LMS which provide extra facility that is we can add our tools in the LTI, in an LMS. So, second one is LTI provider that the term suggests it provides the tool. That is it is an interface which act, it is an interface which will be, with the help of which we will be able to integrate our tool with the LMS. And third one is tool. It is a basically simple application which the user use for its functionality. That is we have, we can say we have developed extra question banks. So, what does it do? First of all teacher it provide functionality that teacher will create the quiz and student will able to attempt it. And second is WordPress and so next topic is tool proxy. It is the main element in our LTI. So, what is tool proxy? Basically we have our tool profile and sorry tool profile and tool consumer. Basically in tool profile we have ID and what product it is of. So, in product instance we have the details of all the product resource handling and other things. And in tool and in we can tool profile and tool consumer. And tool consumer it will provide what capabilities it is providing to the tool. That is if it is providing name, value, context ID and capability it will be there. And its ID LTI version that is 1.1.2.0. So, first of all they will exchange their information that is tool profile and tool consumer. After exchanging information then they will create a tool proxy with security details. So, after exchanging their information we will create tool proxy. What it does? Does it have all the information about them plus security details. So, what is security details here? So, while transferring the message from tool to consumer or consumer to tool definitely we need a security so that our message will not be altered by any third party user. So, what we have done here? We have the same shared security. And we have used oath authentication protocol. So, with the help of this what it does? It sign the message and then it passes to the tool consumer. And then it will have message and that sign. So, it will again decrypt that message with the help of security and then it will match. If it will match then it will authenticate that that is the message is providing from the tool profile. So, this is our basic LTI architecture we will not go into the technical details. So, first there is tool consumer and tool provider. So, I have said earlier tool consumer has its profile and tool provider. So, what it does is every tool has its tool provider. As I said earlier that this tool provider acts as an interface which will help to integrate with the tool consumer. So, this tool provider, this tool has tool provider. Okay, then its tool has this profile then they will exchange the information then it will create the tool proxy in the tool consumer. Okay, and then after that if user want to use that tool. So, what he needs to do? He needs to use that tool. What it does is that we have to transfer the message. The message contain names, context ID, user name, something like that. And so, message will be transferring with the help of authentication protocol and it will confirm here. So, user need not to login here in the tool. So, basically now we have implemented universal tool provider. Basically, in the first diagram we have shown here that basic architecture is that every tool has a tool provider. That is this tool provider can be used for only one tool. So, but we have integrated universal tool provider. So, how does it work basically? So, first of all there are two, three steps. First of all in UTP, we have to, the tool admin. Tool admin have to share all its details with the UTP. After that, the UTP generate the registration URL. So, that URL will be used by any tool consumer or we can say LMS to connect, to integrate with that tool. And then the UTP will act as a tool provider for that tool in case of that registration URL. And so, if any LTI consumer can use URL to register the tool. And then next thing is and it will manage the UTP. Our UTP will manage all the tool proxy registration and LTI launch manage, LTI launch, sorry. So, now my friend Shashank will give a short demo of our project. Thank you. Good afternoon everyone, myself Shashank. And as Mukul explained and gave a glimpse of LTI, I would be giving a short demo of how we have integrated and the Ek Shiksha tool with the Moodle. And I would be giving a short demo to explain that. Suppose I was a, as I was saying that suppose I was a faculty named Mukul Gupta and I log into my Moodle account. Suppose I want to create a quiz of physics. So, what I would be doing is I would be clicking on the physics tab. As soon as I open physics tab, I can see an option of add an activity or resource here. So, to make a quiz, I would be clicking on add an activity or resource. Or clicking add an activity or resource, a new window pops up and we can see that here there is an option of external tool. So, I would be selecting external tool from here. As soon as I click external tool, this window comes. Now, here we have to specify the theme of our activity. What we want the activities name. So, suppose I type physics quiz. And since I know that the external tool type is of Ek Shiksha quiz tool. So, I would be selecting Ek Shiksha quiz tool from here. The third launch URL would be specified automatically when we select Ek Shiksha quiz. The launch container specifies that in what type of window we want to open our tool. So, I want to open my tool in a new window. So, I would be selecting new window from the launch container tab and then I would be clicking on save and return to course. As soon as I click on save and return to course, we can see that an additional activity has been added in our model. So, on clicking on physics quiz, as soon as I click on physics quiz, a new web page gets opened and this is what we have made. This is Ek Shiksha quiz creation form where the user has to specify all the details of his quiz. So, one by one, I would be explaining the quiz creation form. The first one is the quiz name. As the name suggests, quiz name means you have to specify the name of the quiz. Short description, which means that you have to give a very short description of the quiz. Then ownership. Ownership specifies whether this quiz is public or private. If the quiz is public, then it would be visible to all. If it is private, then it would be visible to only a specific students only. Then the tab is of graded. If we select graded, then we have to enter the marks of the quiz. And then the tab is of timed. Timed means what should be the quiz duration. Suppose I click on timed, yes. So, I have to specify the hour and the minute of the quiz for which the quiz has to last long. So, let me fill one by one entries of all. So, as I filled quiz name, short quiz description, ownership, I have selected public. Graded, I want to create a quiz of 50 marks. Timed, suppose I want to create a quiz of suppose four minutes. Randomness says whether it should be auto or manual. If the user select auto, then an automatic algorithm runs and it computes the specification that you have given on this form and generates specific sets of questions that meets your criteria. If you select manual, then you can drag and drop questions from the question bank as you have seen in shopping carts, where you are able to drag and drop your items to which you want to purchase. Then the option is of question bank. If you want that the questions should not be from the general pool or you have a set of questions, then you can select private pool from where you can select questions. So, I would be selecting general pool only because the Aik Shiksha question bank is the general pool which contains 11,000 questions of different topics. Then the tab comes off the options. Options here, we have to select the weightages. So, as soon as we click on weightage, we can see that a topic tree comes here and we have to select some topics of whose questions we want to enter into our quiz. So, suppose I select Aik Shiksha and from Aik Shiksha, I was making of physics. So, I would be selecting some random topics such as electricity and magnetic effects and I would be clicking on select. As soon as I click on select, these two topics comes in a table form and here we have to specify the weightages of each of the topic in our quiz. So, suppose I would be entering 50, means I want 50% weightage of electricity and 50% weightage of magnetic effect. Then the tab comes off of enter the marks of each category. That is to say of what marks we want easy questions, of what marks we want medium questions and of what marks we want difficult questions. So, suppose I write one marks for easy, two marks for medium and three marks for difficult. Then the tab comes up of select the type of the questions you want from the question bank. Suppose I want multiple choice questions and true and false. So, I would be selecting multiple choice and true and false and the validity of the test. That is to say for which period of time the test should be valid. So, I select suppose 30th July would be the validity date that for this period of time it should be valid. As soon as I click on submit, a pop-up comes that successful creation and a new window comes. This is somewhat okay. It's because of small window it has been misformatted. This tab is of the question in quiz which represent the questions that would be present in your quiz. Then there is the graph that shows the percentage of what specification you had entered and what specification the randomized algorithm has met. And there is a tab of select question. Here the thing is that if you want some more questions from the quiz. So, you can select it from here and drag and drop to your panel. Suppose I was not satisfied with my quiz that was generated here and I want some more questions to be added. So, suppose I click on physics and on from mechanics tab I added. As soon as I click on add button, the questions of the mechanics get appended here and you can perform a drag and drop to place those questions from here to there. So, suppose I wanted that this particular question should also be added. So, by dragging and dropping the questions get placed in that panel and the upper panel depicts that these are the questions that would be present in your quiz. And these are the questions that have been generated from the Tropic Tree that I selected from there. An additional functionality we have added is of save point. Suppose you were not ready to complete the quiz. So, you can create a save point on clicking that save point. The instance of this all gets saved in the database and whenever you reopen your this quiz the exact questions would be available again. So, suppose I want a save point. So, as I click on save point and the pop-up comes that a save point has been established and suppose if I want to log in again and I want to complete the quiz afterwards. So, I can do that also. You people are exactly 10 minutes more and I am going to stop it. Okay. I thought you said this was a short demo. Okay. So, as soon as I click on physics quiz the incomplete quiz has been shown here and if I want to complete it then I would be clicking click to enter. And now I was satisfied with my questions that were here and I would be clicking on submit. As soon as I click on submit a unique quiz ID gets generated which is 18 and the grading is schema pattern which would be there for the grading is also visible. So, the quiz ID was 18. Okay. So, suppose I come out and I have to make a quiz of this. The quiz that I have generated which would be visible to the students. So, I would be adding external tool and quiz. I would be selecting again and default new window. And one more extra custom parameter I had to pass here. So, I would be passing quiz underscore ID which is equal to 18 that was generated there and I would be clicking on save and return to course. As I explained that an additional activity again comes up which is quiz. So, suppose I was a student and I wanted to attempt the quiz. Okay. So, the user is sort of Paul as you can see there. So, he is a student. So, he comes over to the physics tab and he sees that a quiz has been generated of this quiz. So, he would be clicking on this quiz. As soon as he clicks on this quiz he sees instruction for physics quiz that we have generated. Four minutes marks and basic instructions. And he would be clicking on start quiz. Okay. Because of short lack of time we would not be showing this thing. But a small description that this would be the required progress rate. This would be the current progress rate. This is the time remaining and these are all the questions that are and this all are the status. And you can end next, next, next. And end test now on clicking on end test our performance reports gets generated. Okay. This is the report card that you have made. Since you have not attempted any questions so 23 and you have failed and this is the performance chart. And these are all the correct answers that you have to that were the right answers. And log out. Okay. Thanks. You'll have to wrap up by showing a few slides just walk through it. Okay. Let's not talk about this. We'll go to conclusions. All this we don't have time. The short demo became a big demo. Challenges and conclusions. Okay. I would start with the challenges and conclusions. Our first challenge was to make a universal LTI 2.0 tool provider. Not only for the AK 6.0 question bank any tool can come and register in our LTI 2.0 tool provider. We have made a universal tool provider. Then testing AK 6.0 question QB tool through UTP with Moodle was successful. We had to test it with Moodle. We had a lot of challenges while we were integrating with Moodle. It took almost a week to integrate it. So finally we have achieved it. Then we also had to test the question bank tool with IIT Bomb Bakes. But IIT Bomb Bakes was a bit over the outdated because it was LTI 1.1 compliant. But our tool was LTI 2.0 compliant. So we couldn't integrate it with IIT Bomb Bakes. Then we had a stretch task of converting AK 6.0 as a tool consumer. It couldn't be done. Then I'll come out with what we have learned in this thing. As for the technical aspects are concerned. We got our hands dirty with the Java based web technologies like Java, JSP and Servlets. We have learned HTML bootstrap, JavaScript and jQuery. Believe it we were just nervous with all these technologies. But after coming here we have learned a lot under the mentorship of Inash sir and Rajnikan sir. And we have learned rather the non-technical aspects. We have learned how to work in a team. We've started being more dynamic at work. And we had meetings, weekly deadlines. We had to cope up with those deadlines. And we have learned industry standard coding. And future scope of this project would be like this. Implementing the LTI result service. Until now the student would just view the result in the final page. But the result is not getting stored in the model. So future we can implement that. Then we can store the quiz result in the database for further use. So that there can be any analytics work could be done on that. And we can optimize the randomized quiz generator algorithm. LTI compliant? Yes. It can consume your LTI. So it can consume your LTI? Yes sir. We have implemented LTI 2.0. But did you test whether it could consume your LTI? Yes sir. I mean I didn't. Because when you go from Moodle it has to consume it, right? Yes sir. That's why we are... You are going on Ekshikshya only. That's what I see. Actually sir that tool we have shown here. That tool is integrated into Moodle only. No. I think you are integrated only the metadata of your tool. We have implemented LTI. So can I take the whole quiz in Moodle itself? Whole quiz can be done. I don't think it's like that. So how did it consume then? What does it consume? So that's I mean. Because in... Suppose we want to integrate an external tool. For that we may need to write integration code for that. Integration code for that. It will be very difficult for us. But because of this LTI specification. Because of this LTI specification. That we have created our tool as the LTI compliant. So it can be consumed in any LMS that is LTI compliant. So here in this... Let me understand. Say I have just a link on Moodle. And I do a single sign-on on some sort of... Wherein I can create a quiz on your platform. And then I have the same link here. So I just go there and answer the quiz and come back. So is that what you are trying to say? It's a single login for both. The user that... The one who is logged in in Moodle. That credential will be passed into that... You don't have to log in again. Single login. Have you used IIT Bombay X LTI services? Actually we couldn't integrate with IIT Bombay X. So if I use IIT Bombay X a molecular... Some sort of chemistry LTIs or physics LTIs. I can actually create inside IIT Bombay X. I don't have to go anywhere else. I can create a tool inside IIT Bombay X. So that's different. Moodle also have that... It's a consumer. It consumes the whole tool inside. And it displays accordingly whatever... You know the tags that you have. Yeah. If Moodle... Yeah. Right. So you can try that out. That would be interesting. Yes. Right. Yes. That's right. No, no. The complete web page would come in that window. Yes. Okay. So another question. I saw some Q235 and things like that. So when you are displaying to the user, do you display Q235? Question number or... I'm just asking. So we couldn't implement that 235 question ID. No, from a user point. So I'm answering a quiz. Is it Q235? No, no, no. That when you would be... How do you change it? I'm doing the quiz. Then you won't be seeing that Q235. I will not see it. No. Okay. Only that teacher can see. Okay. And that also only when you drag and drop. After again you would... So that's for the teacher to understand which quiz it is. Right. Which questions. Yes. Or somewhere that question exists. And if there are any problems with that quiz, maybe we can change that. Right? Okay. Yeah. Thanks. Because... What we have developed. Additionally, we have developed universal tool provided. Okay. Since we have created the universal tool provided, so any tool can come to us. They will just share the information with us. You told recently that you took a lot of effort in integrating with the Moodal. Okay. Suppose tomorrow we will come with some other such kind of content management system or whatever thing. Again you have to take a lot of effort. Right? So what the universal means? So what is the universal mean plug and play? Oh. Universal tool provided means that whatever the code for LTI provider that has been written in UTP. Universal tool provided. Suppose any... They have developed one tool. They didn't write any code for LTI. They just share the details with us. And we have... So you just develop a bridge between the... Both the side. But whether to accept this bridge or for doing the bridging work, whether you have to do any modification either on the Moodal side or on to the Ek Shiksha side. No need to make any modification. On Moodal, the Moodal admin has the authority to take any tool. Okay. So he accepts the Ek Shiksha tool. So they've logged in as a Moodal and said that I will authorize the Ek Shiksha tool. Once that comes, then all the tool details are shared by the UTP with Moodal. That's how it goes. The entry has to be controlled by the admin on that side. And on this side, the entry has to be controlled by the Ek Shiksha admin. Because he is using that. So then what type of effort you have to take on Moodal's side? What was the problem you face while integrating the Moodal? Inside the Moodal. Moodal admin just, suppose Moodal admin wants to use that Ek Shiksha tool. Okay. They just visit our site. Suppose I suggest that we just make the database available to the Moodal. Moodal has got all questions, MCQ development tools available, analysis tool available, graphing tool available, everything is available. So what is the basic difference between going through only the, giving a login through this and making the metadata simply database available to the Moodal? How you compare this with the approaches? Are you getting the thing? My question is very simple. In spite of only authenticating for the login and using independently Ek Shiksha, suppose you create something what we called as the API kind of solution wherein the only database access has been given. Just give the API. That API is integrated with whatever tool whether it is a Moodal or any other Drupal or Jumbla or Daisy or JLibrary, whatever. And then the same thing can be available. That's the difference. So what is the difference? That is why I want to know what is the comparison between the... We need to write integration code. Why? If you have given the API and they have got a standard quizzing model available, just pass the API and get it done. Everybody knows Google gives the API and so many location based services work on that. Similar kind of thing. That can be done but because of this LTI that... That is what the question is. What is the benefit of using this LTI and all such kind of stuff what you are explaining? What is the basic benefit of Google? It is okay. What they have given. Why we accept? What is the benefit to the end user or the developer? What I mean to say? A standard way of doing this. You would be integrating one by one. LTI would be integrating these tools universally. Means you don't have to write any external extra code and you won't have to login again and again in two different pages. You would be coming in model and you would be signed up automatically in the... That's what the benefit is. You don't have to login again. Yes. If at all we have to go by that way. In model whenever we want to create a quiz we need to call a model expert again. We need to draft a quiz. Here we already have a ready made tool. We just need to integrate it to it. We don't need to... LTI has got advantages. In fact you have a particular standard and then you take that particular whatever you know. There is a particular sort of tagging as you have shown. That is one advantage actually. So you don't have to rewrite everything. At a very high level. I don't think they are just integrating with it directly. Right. So I have another question. Maybe out of scope. How do I trust your tool? You may give me virus tomorrow. You are saying you... Yes. No. If I consume your tool. If I write a consumer. I will consume your tool. It has no issues with models sir. No. Consume the service. The data that you provide. Yeah. Whatever. It could be... It could be whole of questions or whatever. So how do I trust your tool? Is there a way? Okay. Thanks. It was nice.