 Good morning everyone. Thank you for joining me over here. This is Dixit and here are our TV members Pratik, Bhagyalakshmi, Shweta, Hengel and Sai. We had worked on the project in name and honored up to ask and answer the question in the video format. And the main object of building this application is to ask and answer the question in the video format. As we all know there are many websites where we can post the question and we can get the answer. But in most of the cases, there may be a chance of ignorance of the question, whether it may be due to the length of the question or may be the type of the question and the question by whom it has been asked. To overcome this problem, we had decided to build an application to ask and answer the question in the video format. And the requirements for our app are Linux server, MongoDB, Java on the server, iOS device with camera and microphone. And we had decided to build this application to get the solution for many of those who are unable to get the solution for their problem. And the app overview was in this project it consists of mainly two parts. One part is an Android app and the other is based on the server API. Android app, we had used Flutter with Dart and further server API, we had used Spring Boot with Java. Technologies used our Spring Boot, Flutter, Dart, Java and MongoDB. This Flutter is an open source mobile application. With the help of this Flutter, we can customize our widgets or we can create our own widgets. And there will be a possibility so that we can build application very faster. And for both the Android and as well as iOS device, there will be a single base code. And this Spring Boot, this Spring Boot is used for designing on the server side API. It is same as a Java applications and REST API. On the server side, we want to REST API. With the help of this REST API, we can communicate with the server and we can get access. Our application can be used by two kinds of users. First one is an individual and second one is the institute. If the user wants to sign up as an individual, the details that are taken are name, email, phone number, password, age and interest. Here the email is taken to identify the user uniquely. The interest field is taken so that the user can be provided with all the questions which he is likely to answer. If anyone asks a question, then the topic of that question is matched with the interest of the user. If it matches, then the questions which are available for the user come under the questions for me section provided by our application. The overflow of this is first the account is selected. That is, when the user tries to sign up, he is provided a dialog box wherein he can select whether he is a personal user or the institute. After that, form filling is done wherein he fills all the details. After that, it is sent to the server wherein all the details are then stored in the MongoDB. And then email is generated and the email is sent to the user. In the email, the link is provided in which verification of email is done. For email verification, we have used java mail sender and it is done by SMTP. A verification token is generated and the link is sent to the user which contains a type of the user. That is whether he is a personal user or institute and the verification token is sent. As soon as the user clicks on this link, the verification token gets destroyed and in the database, the user is marked as verified. So he can now login to the application. Now for signing up as the institute, the fields which are not provided are age and the interest. The interests are not provided since the institute can only ask the question and there is no provision for answering this question. And the extra field that is provided is the address of the institute. As I said earlier, an email verification is done when the user is marked as verified in the database. Now he is ready to log into the application. For logging into the application, two credentials are taken that is the email and the password. And the token ID gets generated each time the login is done. This token ID remains till the user logs out of the application. Each time the token ID that is generated is unique so the user can be identified using this token ID. On the recording video page, there are three buttons at the bottom. The first button is used to toggle between the front camera and the back camera. The second button that is the one which is in the blue is used to start the video recording. Now there is a message displaying that the recording video has started and now the red button is used to stop the video recording. And after recording the video, we are displaying the user with three options. That is the upload now, upload later and the discard option. The upload now option is used to upload the video on the server side along with the video. The name of the video, the gender of the user, the user ID and the topic of the video is also stored in the database. If the user wants to first view the video and then later upload it, then he can select the upload later option. And if the user wants to delete the video, then he can use the discard option. Now if the user wants to see all of his uploaded question, he can go to the uploaded question page. When the user opens this page and HTTP request is sent to the server side and the server side returns a list of all the video questions recorded by the user. On the client side, the video is loaded from the local storage if it is present in the local storage or it is downloaded from the server side. Now if the user has selected the upload later option, then the videos will be displayed here in the not uploaded section. We are providing two options, the upload option and the delete option. On selecting the upload option, the video gets uploaded on the server and the delete option is used to delete the video from the local storage. Thank you. Next, as we know that our system is connected with both the analysis part and the Raspberry Pi team also. So what happens? What is the use of this analysis team with us? So what we are doing is as soon as the user is uploading a video, we are just sending that video to the analysis team so that they can provide us with the tags, topics, gender and emotions which can be used to send the video to the appropriate users for answers. So the video is directly sent to the analysis team as soon as it is uploaded. After processing the video, the analysis team is sending us back the topics, the tags and all the things required by us. What we are doing is we are taking all those things and we are updating our video database so that now that video can be sent to appropriate users. The connection with Raspberry Pi. Actually, we have maintained an account of the institute type so that institute can have multiple devices. It will definitely have an Android device and after that it can have multiple Raspberry Pi's so that it can record videos. Each Raspberry Pi that they have has to be registered with the institute. So first, the Raspberry Pi team will send the device ID by just logging in with our mail and password. That device ID will be stored in our database so that it can hold which devices are its and not ours. After that, after this process is complete, we will be receiving videos from these Raspberry Pi's. After receiving the videos, we will store it in our database and as we were doing earlier, we will directly send it to the analysis team so that we can get the tags. After we get the tags, we will send these videos also to the appropriate users for answers. And as soon as we receive the answer from the user, what we will do is we will send the answer back to the Raspberry Pi team so that they can display on their device. So as Henil explained, there are a lot of sections that the user can view in our app. So I will be explaining these three of them. Basically, these are the answers to the user's questions, the answers given by the users and the questions that are available for the user to answer. So first I will be explaining the answers to the user's questions. So basically what happens here is the user is recognized by the token ID and then from the server, all the questions that are asked by this user are first fetched. And then from the answers database, all the answers that correspond to the questions are then fetched and then displayed on the screen. So this is how this looks. We also can see the user who gave the answer. So when we press on that name, it also displays the profile page of the user who gave the answer. The next section is the answers given by the user. That is all the answers that the user who is currently logged in has given to other users. And this also works in a similar way. It basically uses the token ID to find the user and then from the answers database, it finds all the video answers corresponding to the particular user logged in. The next section is the questions available for the user. And as I explained, it's based on the interest that the user has provided while signing up for the first time. So basically we have the videos associated with topics, right? So all the videos that have topics matching with the user's interests are displayed here and we have two options. One is the answer so that now the user would, if the user wants to answer that question, then the answer can be provided or the delete options. If the user is not interested to answer that question. In this app, we are providing profile page also. In this profile page, you can see the details, profile picture, number of questions asked, number of questions answered. And the personal details entered at the time of registration of the user. In this profile page, the user can view all the details of the user and he or she can edit those details. We are providing two options to change the profile picture. Choose from the gallery and capture using camera. Both these features are possible using the image picker module or flutter. This is the simple video. Scope for improvement of this app. A web app for using the system. Better mapping of the user with the questions and follow and directly send the questions to the user. Seeing the profile picture of the user who might be able to answer the questions. And personalized feed to the user according to his or her interests improve the current apps user interface. Finally, conclusion. The main goal of building this app is to provide the solution to the particular person by keeping his or her age and other factors in mind. Which is probably held by the application. At present, this application can suffice users interface at its best. And it helps both the knowledge seekers and the knowledge receivers to play their roles efficiently. Thank you. So, you mentioned that analytics team. Yeah. So what is the role of... I am asking a question, how they can decide my tags. Sir, the analysis team will process the video. So they will recognize all the face recognition, gender recognition, the age recognition that they will be doing. And they will also extract the test from the audio and then they will identify the topics that the video is related to. Sir, we are storing the... When we are registering the user, we are storing his interest so that he can answer the questions related to his interest. So they are providing us the tags. If the tags match with the user interest, we are sending that user the video so that he can answer. So it is required for this. So what kind of tags you are generated there? Because I am asking questions. I know what could be the tags related to the answers. Sir, currently we have some predefined topics. For example, 10 lists we have there like politics, health, sports. So according to that, only we have currently this broad 10 topics. So that can be... Initially, you can start that tagging. Why you are sending to the analysis team to that? Because there is a mediator in between that. Sir, we don't know the topics now. Sir, I am asking. I know the topic. Sir, if you are asking, means you are the asker, you sent us the video. What is your role there as an analysis team? Sir, as an analysis team, we will process the video, we will extract the tags. You are the associated tags as for the registration, the ads, the topics. Other tags could also be important. The tag which you are using, the ads, the name, the title, something. But there are many other metadata associated with that video. Could be more important in future. Sir, currently we don't have this feature where the user can tell what type of video is this. The user can only record the video and then it will process according to their algorithm. And then it will be answered accordingly. So, another question related to that, pushing the questions to the app. So, it is syncing with the database, retriving the videos from the database only or it is you are pushing video on that particular app interface. Sir, directly what happens is, as soon as the user records a video, it is saved locally also. And according to the option that we shown, upload now, upload later, discard. If the user clicks on upload now, then it is uploaded. I am not saying that. So, suppose I have handed questions, 1000 questions then. Sir, actually suppose the size of the screen, it is loading only those videos which can fit in the size of the screen. Suppose the size of the screen fits only 3 videos, at a time it is loading only 3 videos. That doesn't matter. Sir, I need to answer something. If 1000 videos are available, I can't figure out that without such other information. It is not related or it is not displaying there. You cannot go one by one to all the videos. Sir, currently we are just showing the… So, therefore I am saying that tagging is important. Extra tagging. Okay, sir. Extra tagging. Being a device owner, I should decide whether I want to download this video on my device or not. Even if it is one video, I should agree. So, rather than sending the video directly, you are supposed to display the thumbnail of the video. Okay, okay. Okay, rather than the video directly. It is not good actually. What is about the video? Sir, we can display it also. Sir, you are just concentrating only 2 or 3 videos. If number is very high, 1000, 2000, 5000, it could be 10,000. Sir, the tags that we are switching, we should display it. You need more taggings, more metadata. Very simple question. How do you compare this with stack exchange or stack core flow? What is that you have which they do not have? Sir, the main focus was only that video part. Means they are the mode of answering questions and sending questions is only test. So, as in the previous stream that you saw, it depends on who is asking the question. The type of answer that you are giving depends on who is asking the question. So, these information is provided by the video only. So, that is the benefit by using this system that using the videos you get more information and according to the context you can give better answers. Suppose I use stack exchange. I replace the text in stack exchange with video embedding. So, can that be better or this system? So, stack exchange is a well established system. So, it is open source. So, if it is replaced by the videos then as of now definitely that would be better. So, I see one thing which is I don't know how to represent it. But when you have question and then people answer and then there are ratings and then there are comments. So, how would you represent comments in a video form? Or that would be a link or something like that. I am just trying to visualize. Comments that can also be added means now it is not upload but I think that we can do is there will be a button of add comment then comment can be. So, comment also could be a video. Comment can also be a video and it can be a test. If it is a video, he will record it that will be uploaded to the server. Now, if you want to show the comment, we will not directly show the complete video as sir told. We will just show the link. If the user clicks on it, a dialog will pop up with the video playing, the comment video that is. So, there is one difference that is when you show text, I actually can read something of it. But when you show me a video, I don't know anything of it. Sir, so tags must be some simultaneously that we hadn't done now. We will just show in the video. In YouTube, you can see that video has some titles, some descriptions, some tagging. So, you should keep this in mind for future scope. Okay, sir. That will add. What is the motivation for a person answering the question? So, I have seen that these are the videos. Now, why will I answer the question? Like, am I getting some benefit out of it? Like, is there a leaderboard, a ranking or something like that? Sir, ma'am, we don't have something like leaderboard as of now. But that also can be done later as we mentioned like following and directly asking to the question. Sir, as of now it is just basic, simple, ask and answer. So, I want to comment on that. I mean, stack exchange versus video only. So, the thing is that even on stack exchange, the contribution of Indian is very low. The problem is many of times it's difficult to type whole answer in English. So, if there is a person who want to ask questions but he find everywhere if it is Kora, stack exchange or whatever, he has to first know how to use that device, then type answer, then write in English. Very difficult thing. So, if there is anybody who want to ask a question by simply pressing a button, he should ask. It's absolutely hassle free. No need to put title, no need to put description, no need to put tags. That part I wanted to handle via video processing because now we have technology. So, simply press button, ask question, done. No need to put any information at all. So, this is what my planning about that and about the comments also. So, what I assume in even on stack exchange, the comments are basically the answer. So, there is one question, then there is an answer and then there is another answer. So, all answers are basically comment to a particular read question in my case. So, this is why I decided not to put any burden on user side to put any information. And another thing about the textual information. So, we were in the process of doing that, but somehow one major service failed, they restricted their services. What was the plan? The plan was to display the text of the question on the answerer's device rather than the video. So, now we are unable to process the video to get exact textual information. But I believe in a year we will be there. So, then the answers will be, user will ask the question, we will automatically try to generate text and answerer will see the text. Based on the text, they will click on that, only then they will load the video. This is the plan. I mean, I like it, whatever you are doing. So, one more thing that you added is that the user needs an earphone. If you are using a mobile and if you want to hear the video, you need an earphone, right? I generally don't use an earphone or a headphone. So, video is always mute for me. Okay, thanks. One more thing, you created two parts, the institute part and the individual part. So, suppose you registered as an institute. How do you define the role of students or teachers under the institute? Sir, in the institute we are not made like a student or teacher. The institute is meant only for the students for us only. So, now there is no difference except the ads field. Sir, the institute cannot answer the questions. Means, in this part that what we have done is, the institute only consists of multiple students. So, how do you define the role of the students or how you associate the user with the institute? The login is only the same with the institute. If 50 students in the institute, how do you define the ID or particular identity of that student? Sir, particular identity is not there of the institute. For students, no particular identity is there. Means, the student who is asking the question, he has to recognize which question he has asked and get the answer for that only. Sir, since the answer is in video format and the question is also displayed with it. So, the first frame of video is always visible, so it can be easily recognized who has asked the question. So, the corresponding answers can be viewed by the student. So, I am just assuming that you have a device ID, right? Okay, and then you have, so okay, you want to solve the institute problem. Okay, so, I think maybe GPS is one way you can, no, it will not work. The idea behind generating institute user on a mobile app also was that there are schools which are in remote, correct? And they can afford the hardware which we have created. But there are institutes or there will be people who will say we have a mobile device and we can use it to record answers for our students. We will not take the hardware, Raspberry Pi hardware. So, what we did here, we created another account on our existing application where a person who is asked and can say that I am not going to use it for me personally. I will use it as an institute. So, the time he says it will be like an institute, the all information, personal information will not be recorded. So, it will be simply the video and then we will process the video the same way it was being processed by RPi. So, we will try to identify the phase, then we will try to identify the age and based on that they will receive the answer. So, rather than that hardware, this mobile phone with the institute profile registration will act as that hardware and many students can use it. Otherwise, it will be only one person who can use it.