 project is educational development in JUMLA under that project some sub project have been allocated during this internship during this internship process. So these are the people involved involved in that. So under the guidance of Fatak sir and under the guidance of Avinash Shavartisar these people are working all these people are M Tech RAs for doing their M Tech as well as they are working on a funded project this is a funded project by MHRD. So last time the interns had contributed a lot to this project last time only this project was started the interns had given a lot a contributed lot towards this project they only developed a basic model of this project basic model of this portal was already developed and it is already up and the features of this portal where there is a quiz module in that there is a video lecture series there is a forum for discussion and repository of various resources which the teachers have contributed. So IIT Bombay conducts workshop for teachers as all of you know I think so about every time about 10000 teachers are involved in this these teachers after the end of the workshop they contribute many resources such as questions assignments projects all those things. So our aim was to develop a one stop portal for storing all this in a good fashion that is our aim. So up to certain extent we were able to develop such a portal. So the quiz module quiz module here was a major part in this the teachers had contributed lot of questions so about 3000 questions these questions were to be given in a quiz fashion. So the teacher teachers there were many options such as the teachers can choose the time of the quiz that they want the difficulty level of the quiz the subtopic they subtopic which they are interested to give the quiz. So there were many options in that completely flexible type of quiz the teacher can give a 10 minute quiz which is of easy type on some variable on I mean topics such as variable or data structures or any other any other things. So this is about the quiz module the back end logic was difficult one the interns ensured that the quiz are not repeated for a specific for a specific user for example the if I give a quiz at this point of time they stored all the all the questions which the user had given at that point of time and they ensured that next time these questions are not given to the user unless the database is exhausted. So they made sure that the questions are not repeated. So the logic behind was complicated and I hope I am expecting the interns who are this time who are working on this project this time to go through this code and make I mean understand the logic behind this. So it is slightly difficult and the video lecture there was video lecture series which was not too difficult but yet this there was streaming problems and other such small problems and there is a forum which was actually a plug in which was already available but to configure that plug in it was slightly difficult. So the interns took some amount of effort to configure that plug in and all and repositor of various resources. So these resources are just put up over there links of each of these resources are available. So what we expect the interns from this I mean the work of the interns who have come this time. So the sub projects under this topic are multiple portal component for the quiz module we had already we had given plug in development actually but it is actually component development. Then there you have to you will have to develop a wide board and chat module. So for multiple portal right now our portal has only C questions. So we want to extend this portal to other subjects such as database or thermodynamics or any other such topics. So we will have to create an interface by which new portals can be created easily. So that it will be easy to extend this portal when whenever new new workshops are being conducted. We are actually lagging behind there are about eight workshops have been already conducted and we have actually deployed only one portal. So we are lagging behind. So we should ensure this time I expect the interns from this time to put up effort so that this lag is minimized. Then component development for quiz module actually the quiz module is like they have coded in PHP. So it is not actually a module. So we want to compile component I mean component. So it is it is not a component it is so we have to create a component out of it so that whenever whenever a new zoom loop portal is being installed just we need to install this component on to that zoom loop so that it can be reused again. And there is it we have put up one more project wide board and chat module. Chat module I think it is already there in the forum but we will have to see how it works and whether all the features are being met or not. So these are the snapshots of what we have developed already. So this is the main home page. There are links for lectures, resource, quiz, forum, registration of users, new users all those things. So this is the forum. The students will explain how to create a new component, component for zoom law. Let me introduce myself. I am Dasagir working as a system administration. I am an open source enthusiastic and I am an active member of Indian Linux user group and the originator and member of congeal Linux user group. Here I am going to explain about the zoom law. It is a beautiful open source tool. This is not for only people who allocated for zoom law project. It is for everybody. How many of you created your own website? Consider you have you want your website which I have some pages and you have the content. How long it will you take to create your website? It depends upon the program. See myself I take 5 hours or 10 hours. So if you want to create a website in 5 minutes, you should use a content management system. So the tool is zoom law. What is actually this zoom law set? It is a free and open source of PHP application. It is developed in PHP and it is a content management system framework and it is a model view controller web application framework. I will explain you what is that? What is this content management system? See you have website already content is there. So you want to change the content every 5 minutes. For example, take quick info. For every ball it is the content is changing. See if we developed our website in a pure coding without the content management system, we have to manually edit for the every 5 minutes or every one ball. It is really horrible. So we need a management system. It is content management. So it is a computer system that allows publishing, editing and modifying content as well as site maintenance from a centralized page. You have a website you can edit and publish your articles from any over any system. See what is the core feature of this CMR? Allow large number of people to share your data. It has control access data based on the user role. These user have writing permission. These user have published permission. These user have review permission. We can define using this CMR. So this is it is reduce duplicate input and simply it is simplify the report writing and communication among the users. It is improving. What is this model view controller? It is a software design pattern. Why do we need a design pattern? See you have developed a website. You are facing some problem. Another person developing another website. I mean another web application. Web application. He facing the same problem. Why can't he use the problem, the solved problem which already he faced? So if we have a pattern, we can reuse problem solving technique. So we have this software design pattern. This software design pattern divides application into three parts. Three areas of responsibility. One is the model. What is the actual work of this model? See the model it encapsulates data. It has actual data. So what to display to the user? So these have some functions add and remove, update and something. What is the actual view path? Actual part of the work of view path? It observes data from the model and view to the user. View to the people and controller. See this is actually controls what to display, how to display. It is actually translate the user input into the operations. So these are total architecture. See controller gets the request from the browser and it demands the model. It actually demands the model from the model and model retains the data to the controller and the controller gets the help of view to view the data. So you have the basic data. So you want to develop your website. You should familiar with Jumbla installation and some administration stuff. I will tell you how to install the Jumbla. To install Jumbla, we need different packages already installed, Apache, MySQL and PHP. I have already downloaded the version. For myself I used 1.6. You can use your own. So I have extractor and copy this and place it in the WDB. So after placing, you should give the permission. You have given permission to read, write, open your browser. This is the first step. Choose your language. I selected English and this is the instruction check. These are the settings. This is GNU public license, database configuration. MySQL username password you have to give here. Database name like Jumbla or GNU. FTP configuration, you just keep it. Your site name, for example, some internship, admin email, admin password. So this is the final section. This is the first step. Installation is completed. You have to remove manually the installation folder from let us see our site. We have created a site. Let us see the administration page. It has all the managers, module managers, extension manager, media manager. You can add your content here. You can add content. You can add multiple menus. We have only one menu. You have a website, Jumbla website. So you want to extend it. How to extend? You want to, if you want to create new modules, new applications to place into your website. How can we do that? By developing a plugin and module component for Jumbla. See, Jumbla extend our website in three ways. One is plugin development and one is module development and one more is component development. This component is a separate web applications. It is using MBC structure. It is a separate web application. Module is a module to the already present application, a single module. Plugin is a single function. Jumbla have two entry point. One is public. One is administration. Public only have access to view and administration have access for do any things. We have to create two files, important two files. Public display. We are going to create a component for public display. Create a hello world.php file. I am just going to print hello world. So you have created a hello world program. How to test that? So the hello world is printing here. Some error loading. I will tell you what is happening there. So we have inserted our component in Jumbla for administration style. Do the administration and do the components. Here you can create the same file for administration. How to test that? So hello admin from error loading. So now we have created a hello world and we tested. So you notice that one error. So according to the Jumbla, we should create a component as an installable. It should be an installable. See we did not any installation. We just created a file inside the component in administration and people use. This is not a correct view. So we should make our component as an installable file. So for that we have to create a directory. Here we need hello world.xml file. Already created. You do not have time. So I will copy that. We should create a hello world.xml file and site for the, see we have two entry point. One is site and one is admin. Inside the how to create a hello world.php and index.html file. In admin part, same hello world.php and index.html file. In index.html, we just give it a blank empty page. I will tell you the reason why we should give an index.html. This is an XML file. Should have all the information. This is an extension type is component. We can create a module and create plugin also. This is the component type and the name of the component is hello world and the author name and the author email ID. This is the component version 0.01 and give your descriptions about your model. These are the folders, site folders and administration admin folder. We are going to install. In site folder, we have index.html file and hello world.php file. In admin, same thing. These are the things we need to install our component in Joomla. How to compress it as a GIF format? How to install this? Now, we will delete which we already created. In Joomla administration page, we have extension manager. Through this, we can install plugin templates, modules, whatever. Browse your file and install. So, the installing component was successful. Shall we test the same? Now, the error is gone. This index.html file should be placed in all the folders. Why? Because some security reasons. If any unauthorized persons who trying to view your site, it secures. So now, we have seen, already seen that component installation. Is this correct way? Joomla component development? See, we did not follow any MBC pattern rules. We did not follow. We just echo hello world within. Is that correct way? Definitely not. Then how? We should use an MBC pattern. In Joomla framework, third party developers, we split our component in three parts. A module, controllers and views. I already explained what is that. So, now I am going to add MBC part to our hello world component. Here, I have added one more folder called model, models and views and a controller. Let us see what inside is that. Little bit stuff you cannot understand. The people who know PHP, they can understand. So, this is the way. We should write our web application using MBC software design pattern. This hello worlder PHP is outside of inside. This hello worlder PHP is an entry point. Entry point, I told you that our site have to entry point. One is administration and one is people view. So, this hello worlder PHP is an entry point. Whenever we call our component, it goes to this file. So, here this first line is for access, restriction access. You cannot directly access this page. This is this importing controller modules. This method get instance. This get entry point to the object of the hello world controller. I told you that client requesting controller. The controller gets the data from model and the model, after getting the model, the controller views the data using the view. So, first the entry is getting the request, getting the request. I mean it goes to the controller. The request is that do some task. See in Jumla, this is the code to get a task. The controller's default task is that we did not any, there is nothing, any task defined here. The default task is that display. So, this class will ask the view to get data from the model. See this is view.html.php. This view.html, this why we are giving html here, the mode of display. See view.html.php. This html means that the display mode. We are going to display as an html mode. So, this function defines the default function is display. The controller default function, we did not give here. So, the default function is display. So, it calls the display function here. See in this function, it is getting the message. I mean the data from models. So, the model is here. Here actually we define the data. So, we assigning here the data to the variables here. So, it returns this data to the view. After getting the data, this view use some template to view the data. So, it sends the data to the template to view the data. That is called a default.php. Here actually we are printing the data. So, the model view architecture is that, we are getting a request and asking demands, and we are getting a request. Actually we are getting request from the controller. The controller demands the data from the modules and model returns the data to the controller and controller as the view to view the data. So, this is the pattern we should use. So, we have to install that. See in XML file we have a created a folder. So, views folder we created and models folder we created. So, we have to specify here. And we compressed as a zip file. So, I am going to install that. We have installed test your component, hello world administrator. So, we have controller develop templates. We have package run. So, we have created and models and we have tested. See how people know we have to specify that option equal to some component model. How the people know that? They did not know to call the model. So, we have to add this model component in a main menu. If we give as a main menu they can select and they do perform. So, now I am going to add this component in main menu. To do that do the main menu manager and go to the main menu and create a new and select menu item type. Here I am going to give that path, external path. Menu title is hello world. Here we should give that link is hello world. The state should be published and the access should be public. Everything is ok. Save, view, site. We have added our component here. Click and get in the hello