 Good afternoon to one and all. Myself Suresh and they are my team-mates Akshay and Sumeda. So today we are here to present our project event logging and content versioning system. To begin with I'll start with a few lines of motivation. So you might be intrigued about how Google, Amazon and YouTube know exactly what videos, products and articles you are interested in. So do they have psychic abilities? Apparently not. They do keep an eye on your online activities and which indeed is event logging. So another thing that we can answer right now is how do these companies develop such flawless products? Do they do that in one go? Don't they goof up in making such big products? Of course they do. But they have a saved working prototype of their previous versions where content versioning comes into the picture. So what qualifies as an event? An event can be anything which does a substantial addition to your event log database where you can analyze and have some analytical questions of yours answered. What is content versioning? So best example of content versioning can be good. You can also think of content versioning as just as a game which has 100 levels. That's your checkpoint. So that is a content version of your previous success. To begin with our architecture, basically Drupal has the core Drupal module, users, administrators and the complete code is written and runs on PHP which is connected to a web server, has a database and we have added the event log and real-time logs as a backup. Next we'll be continued by Akshay. I'll give a brief description of what our project is all about and what we have tried to include. Why Drupal 7? Sir Drupal 7 is the most widely used version of Drupal 8. So Drupal 7 has a wide documentation which... Sir Drupal 7 is most widely used. So why not Drupal 8? See there is a marginal architectural difference between 6 to 7 and 7 to 8. So what you... Yes, use difference. So if you do something on 7, it is not going to be used by it. And you know the future is it. So why 7? Actually the... Doesn't matter. Let's do what you're done. Drupal 7 is wrong. Definitely wrong. So actually we are the main purpose. I'll explain it. We have tried to enhance the functionality of the existing event log module in Drupal 7. The present module has several backlogs we can say. Presently it does not support the basic features and which are very, very necessary. We have implemented some of the features like clearing the logs, getting a backup of the entire event log database and at the same time we are logging the logs on the cloud also. We will give a detailed description in the further slides. So you are protecting the logs. There is a logging system which is unprotected. So you are protecting it. We are basically storing them. Logging system stores it anyway. Sir, we are actually creating a kind of backup for them. Correct. So you are protecting it. Yeah. Kind of. Secondly... Does Drupal 8 protect its log system? Drupal 8 does not have a system as of now. Come on, man. I can't believe such statements. Drupal 8 is the future. They don't have a logging system. Then it is not of any use. No, not the logging, the backup system that we have made. Correct. So Drupal 7 does not have. Drupal 8 does not have, you are saying. Sir, actually we don't know about Drupal 8. We have worked with Drupal 7, so we are quite clear about... Drupal 7 does not have. You have added the backup system. Secondly, we have tried to... The logs are captured in a file. Sir, presently they are in a table. MySQL database there. We are trying to... Okay, fine. So what are you doing when you back it up? Sir, we have provided multiple functionalities. We are also storing them... Go and tell me the functionalities. Sir... I am interested very much. According to me, the world has lots of databases. Yes, sir. Okay. Nobody writes backups for them. The databases themselves have got something called a check point, which is a backup. Okay. And the n number of systems which can backup a data and say check point, right? They store it every day, every month. Banks are using that. Banks are logging systems. They don't have that. The database gets backed up. So I don't know what you are doing anyway. Go. Purpose of this thing. Go ahead. We have implemented the use of Cron also. Sir, actually it is not in the functionality, existing functionality. We have added some of the features. Because it is not a functionality. We have added... Cron job is a job of an administrator. It is not given anywhere as a functionality. Sir, no. The way that we are taking backup are real-time logs and there is a purpose why we are doing that. Correct. So tell me the purpose of real-time log of a logging system. Basically, while we are taking backup in the local system by just the click of a button in a file. Okay. What is special about this file? It has standard backup practices. So what you can do to get it back to structured form is you can just write a script which will delimitate the existing log by white spaces and you can get it back to your structured SQL database. The other thing that we are doing is storing all the backups on the cloud instantaneously. See, I have got two issues now. First is that whenever you talk about backup, backup is normally is not our only copy. It is a compressed different format which is being time marked so that we can recover it based on the time. Right? You are saying that you are taking a backup in databases. That actually doesn't call as backup. It is just a copying the database. You are taking a backup of database either. You are saying real-time. I don't know. This slide doesn't say but real-time. When real-time, you need not have to take a backup. Backup is something which is taken post. Real-time when you take, we didn't call it as a backup. It is best practice then save it simultaneously to different servers. Just save here also and save there also. It doesn't call as a backup. Then it is called as a saving at the multiple locations and this also is a standard practice in the banking server, share and other, they save it to the different continents for the security purpose. So, I didn't understand what exactly your motive is. If you clear your aims and objectives, initially it will be better for us to analyze your work. So, I think let's go to the second one. You said crowd sourcing. So, you mentioned something else. Sir, we are providing an interface for the collaborating communities. Collaborating communities is another project of FRG. We are providing them the necessary information that they require for the development of the recommendation system. Basically, collaborating communities is a project under FRG. It's a separate project. Sir, they require some sort of tags and articles or top 10 articles, rated articles. So, we are basically implementing two types of features under this. It has received excellent response and even Pankajar has expressed his desire to include it in his Sardar Vallabhbhai Patil portal website under NVLI. Under this project feature, firstly we are showing the top 10 viewed articles just on the click of a button. Sir, they are presently using Drupal 8, but he has expressed his desire. Sir, collaborating communities project is also in Drupal 7 actually. Yeah, probably 8 should have used it. Okay, so that's a mistake. Second thing, I'll just give an overview. So, you have a Drupal system here. Yes. And then what you want is to login every activity of the user. Yes, sir. Right? That is what is your aim. You are logging every activity of the user. Yes, sir. I mean, when you are trying to give that module to collaborative community project, so their project needs that event logging mechanism. That is the poor kind of work. Second thing, they had a problem. Actually what they did, they put up everything in the database. So, the database came as a free lunch, right? I mean, along with the module. The module which they picked up, you know, the database, it was required for the module to log in the database. Yes, sir. Then I think it happened quite late that when we interacted, they said that this is not a good solution. So, the good solution would be, like push all the logs to some file distributed storage kind of. So, we have put it in the future. So, that is the work in progress and they have not been able to do it. So, I will give you a very good example of the every activity login that is MediaViki. If you go to the Wikipedia or somebody, if you put any activity you are doing, it is being logged. You have got a version control also. You can go and check the differences between those versions also. So, MediaViki has excellently executed the version control and logging system, which is a transparent and the stability of the MediaViki you know very well. World-wide people are using Wikipedia, but still never crashes. So, anyway that is a very good architecture they have come up in MediaViki. I think that similar kind of architecture may have, some module may have been available in Drupal, you people may have been checked. So, we actually firstly have to identify the right module for making the changes. There are a number of modules available. So, here. We show the top 10 and show the top 10 good articles. Sir, actually. These are available. These are standard modules available actually. Crowd-sourcing and a number of modules are available if you search. I don't know. Sir, top 10 good articles is not available actually. We have developed it. Top 10 will be available. Sir, we can make it for N. We have provided. No, but it will be available. Sir, I understand. They have created two features. Sir, this is to be incorporated with the event. So, visualizations are also there. I have seen so many forums like Phala Forum and other thing, which gives the built-in feature. Top 10 viewed, latest visitor, many things. So, this is very common feature. I am surprised you are claiming that Drupal doesn't have this. I don't know actually. I am not claiming. They are in splits of different modules. Sir, we are also providing APIs for them so that they can fetch the data in the desired format that they want. Sir, these are the top 10 viewed articles by a particular user. Left side shows the name of the article. While the right side shows the tags corresponding to that article. Sir, now the log data visualizations. Sir, this is the visualization. This visualization basically shows... These graphs are being plot by you or Drupal? Sir, we have used D3JS. Pardon? D3JS. It's a JavaScript library. D3JS library you have used. Yes, sir. So, you have passed the data through the IRA to the library and it is visualizing, okay? Sir, this visualization basically shows the triggering of each operation for a particular month. Sir, this is basically a force-directed graph. Now, Suraj will explain. So, what this graph basically does is... So, you have to give your start URL of your website and then it will scrape all the web pages that are corresponding to the source code of that URL. Is it already made JS you have used? No, no, no. So, JS is used for this visualization. This is a force-directed graph. Okay. The data is captured using the process I'm telling you. So, you get all the crawl pages and once you have crawled all the pages we are using page-ranking algorithms to rank these pages. So, these small circles are actually pages and the circle with the most diameter has the most page-rank, the largest page-rank. So, we'll be showing that in the demo. You have developed any algorithm or something or ready-made libraries you have used? Page-ranking we have actually implemented. Not implemented, we have taken source... My question is very specific. There are so many libraries available, functionalities available. You have to pass on your links and then it will get the data visualized. Yeah, yeah, any URL. So, this is actually... we chose courtship.com because courtship is built on Rupal. Have you done it with IIT? Yeah, we have done it. We have done it. It's working. Currently, it has 10 because... IIT copies are available. Sir, we haven't... Every node is actually a page, but if you take all the pages what happens is once the page-rank algorithm runs the lower pages almost have equal page-rank. So, there is no point in visualizing those pages which are the same page-rank. What does it show? This actually... Does it show all the pages or it shows 10 ranks? So, what I am saying is that it is better to show your contribution rather than showing the other API you have used and passed on because these are very standard, so many tools available. You get the entire tree also, all wings also, because these are the APIs written by somebody else and you are just passing the URL and getting the output and then showing it, visualizing it. We will be more interested if you tell us what you have created. Your own creation rather than the application. Actually, we have to make it compatible with Rupal also. It has various issues. Incorporating everything in the module was a challenge. So, we have taken bits of pieces that will be useful. So, what this will be useful for is, for example... Okay, let's come back to it. Whatever great things you have done with Rupal, how you publish it to Rupal? Sir, we have contacted Brandon Allen of Rupal Association and we are about how to contribute. He has sent us a mail back and we are going through it. Actually, we just sent them in last week, so we are finding out the process of how to make the contribution. We have contacted them. Yeah, the contribution is in progress and the main... This can be useful for generating revenue. Why? Because you can post advertisements on the page which has the most hits. And that page is the one with the most diameter, that circle. We show you that in the demonstration. This complete... Okay, next. Yeah, so the challenges that we faced include... So, we had to identify a module which we had to contribute to. We had many options like this log, event log. But we found event log the most suitable because it had four basic operations which include user and node CRUD operations and taxonomy operations. And the main challenge was writing these modules and making them compatible and getting in synchronization with the existing event log module. So, that was the second one. And the other thing that was an issue in the event log module is the permissions. Every directory had different permissions. So, when we had to take a backup or when we had to store this live data, we could not do it. And there is a file known as default. All files. Where we have public permission. There is one very good software available. Lock for PHP. They have a lock for series available. Lock for J is also available for Java. Lock for PHP for PHP. If you study Lock for PHP, this work has been done very easily for them. You have to just take it, put it on any software, even your own developed software also. And it creates all the kind of graphs and events and everything, captures everything. What kind of browser people have used, what kind of ways they have, what kind of click they have, every single click. And you decide what exactly you have to customize to produce the report or to store into the database and whatever. But anyway, good work. I think that you should conclude. And next people should come. Next group.