 I am Gunjan Agriwal and he is Chitendra and we are here to present the work which we had done during our internship program. The topic of our project is Rest API Enabled Learning Objective Repository. So let's start. These are the topics which we are going to cover. So the first question is what is learning objective? So learning objectives are basically the statements that define the expected goal of a curriculum, course, lesson, or any activity in terms of demonstrable skills or knowledge that will be acquired by a student as a result of instruction. So let me give a simple example of any learning objective. So if a user wants to learn something in HTML, so creating a basic HTML page will be a learning objective. Also, we can say that learning objectives plays an important role in instructional design and assessment. And it is also not easy for any teacher to create learning objective as creating learning objective needs some skills. And also there might be the case of lack of proper learning objectives or the non-availability of learning objective can lead to improper instructional delivery and non-aligned assessment which can lead for any student to not gain the knowledge effectively. So we come up with an idea to create a common repository known as learning objective repository where teachers can create or fetch learning objectives from that repository. And also it will be helpful for the students who don't know how to create the learning objective so that they can easily fetch the learning objective from the repository to design instructions to support any kind of learning. Also with the help of this repository, the time in rewriting the learning objectives can be saved. Suppose if any learning management system has created a learning objective, it can store the learning objective in the repository which can be further used by any other learning management system for fetching the learning objectives. So the technologies which we use for designing this overall system is, for API designing we had used Springboard and for database like storing our data, we had used MySQL database and for the front end web application development, we had used Angular 8 framework. We had also incorporated some amount of bootstrap to make our front end look more attractive and responsive. So the work which we had done during our internship program period is, we had created a total 95 API endpoints which can interact with our learning objective repository. We had also created a web application to demonstrate how to use these APIs. So this is the overall structure of the system implemented by us. There are these entities along with these relationships and the circles like the bubbles which are marked on the entities are the endpoints. The blue colored bubble shows the put request, put means update. The green colored bubble shows the get request, orange color is the post request and the pink color is the delete request. So this is the detailed diagram of what we had created. So coming to our main entity which is learning objective, it has two attributes, learning objective ID and learning objective name. The learning objective will be related to taxonomy, like one taxonomy can have many learning objectives. The taxonomy will be related to level and level will be related to verb. On the other hand, we can see that a learning objective needs to be maintained in some hierarchical structure like domain, field, subject and topic. So the domain, field, subject and topic forms a complete structure which will be stored in a category. So learning objective will be associated with a particular category as well. Also we can have some interrelationships among the learning objective like one learning objective can be a child or parent to another learning objective. Also the one learning objective can be a sibling to another learning objective. So this relationship has also been implemented by our system. So let's explain in detail the main entity which is learning objective. So there are total 18 endpoints associated with this entity. So these are the APIs which we had created. These are the APIs only for the learning objective. So we had used the best practices to design any API, like the API should be designed in the form of slash api slash the name of the entity on which the action is to be performed. So here the name of our entity is LOS, LOS is the abbreviated form of learning objective. So and the actions are defined by the HTTP post, HTTP methods like there can be methods post, put, get and delete. So first API is posting the LOS in the database. So that learning objective will be passed as a JSON body to our system and it will be stored in the database in the form of my SQL tables and contents. This is the output screenshot of how we can call an API and what could be the output. So that API call will be like the method is get and the API is slash api slash LOS which means we are fetching the learning objectives from the repository. Here we had used made use of the basic authentication. So we need to pass the username and password as a header to each request. And the output will be the list of learning objectives which are stored in our database and these are the displayed in the JSON format. Now, where we can use the APIs? These APIs can be used by any instructional delivery platforms to create or fetch learning objectives according to their needs. Like we can integrate our learning objective repository with IIT Bombayx platforms spoken tutorial, which uses Python, Moodle, which uses I guess PHP and any other mobile application or web application are easily integrable with our learning objective repository using the REST APIs. So in the diagram in the next slide, I'm going to show how IIT Bombayx unit page will look like after integrating it with the repository. So the figure image on the left hand side shows the current scenario of how IIT Bombayx unit page looks like after integrating it with our learning objective repository. The learning objectives can be listed down here. So it will be easy for any student to decide whether or not to go through this unit for its requirement. Like if a user actually wants to write a procedure in C programming, then only he needs to go through this unit. Otherwise, he had to skip this unit. Now, Chitendra will continue. So various features of our learning objective repository are, it can interact with our MySQL database and it has basic authentication like user registration and logging. And also it can interact with client and it can handle all the API calls. And it can handle exception as well if occurs. Now comes to our web application. It is created in Angular front using Angular framework. And this web application is designed for creating the learning objective and corresponding relationship. In our project, client is the Angular web application. And the server is Spring Boot application. And the interaction is done via REST API calls. In Angular, it is composed of components. And components are combination of templates and classes. Templates means they are displayed units and by classes we can control our templates. So here I'm going to explain our flowchart of a web application. So if a user navigate to our website, then user will be rendered to the home component. And from there, user can sign up and log in. After successful sign up and log in, user can create learning objective and corresponding relationship. If user is admin, then he can also update the role of the users. Here are some snapshots of our web application. So on the home page, we are displayed all the learning objectives. This is the sign up page where user can register himself. This is login page after filling our right credentials, then user can log in. And then he can create learning objective. If the user is admin, then he can see the user's links also. So if user is authorized, then he can create taxonomy, warps, level, and category also. User's page, if the user is admin, then he can see all the users. And also he can update the role of the users. So this one is the creator page. If the user is simply a creator, then he can only create the learning objectives and relationships only. So now come to the morning. So this is the API documentation link. We had created 95 APIs in total. So all these can be how to access the APIs, and all the details are stored in this link. And the links to our source code project is also given here. Now coming to the future possibilities of our project, we can link the learning objectives to learning objects. Learning objects are basically the units which are designed to fulfill, to achieve a particular learning objective. So somewhere we need to link the learning objectives with the learning object so that at the time of need, we can easily fetch the learning objective. Also we can implement the knowledge unit and learning path. Knowledge unit is nothing but a set of learning objectives, and learning path is a set of knowledge unit, for example. If a user wants to be a web developer, then the part to it will be like he needs to understand what is HTML, what is CSS, what is JavaScript, and all those stuff. And explaining like understanding HTML is a knowledge unit, and to attain that the user needs to go through various learning objectives. And for understanding HTML, he needs to learn how to create tags, how to create body, head, et cetera. So this is the overall presentation of our project. Thank you. Out of 95 APIs, have you tried with the IIT BombayX model or some? No, sir. For that, we need some integration with IIT BombayX. Like IIT BombayX platform needs to create some system which can interact with our system using the APIs. So have you tried with some other platform? Like for that, for the demonstration, how to use the APIs, we had created the web application using Angular. I don't know whether you have heard of LTI, Learning Tools Interoperability, and ADAC supports LTI, even Moodle supports LTI. And if you are able to create, consume, I mean, IIT BombayX can consume it. And if you are able to make an object of that type, so it should be possible. So that would be an easy way to do it, because you will follow a particular standard. And IIT BombayX or Open edX already follows that standard in that particular way. So it will be able to consume, display anything that is required. Okay, sir. Thank you.