 Hello, everyone. I'm Sanjay Gupta. I welcome you on Sanjay Gupta Tech School. Today, we are going to learn Lightning Web Component Part 3. So last week, I delivered two sessions on Lightning Web Component. So in continuation with those two sessions, this week also like two to three sessions I will be delivering. And I will be sharing some insight related to Lightning Web Component, the basic things that you need to learn if you want to implement Lightning Web Component. And this is our day 80 for Salesforce Learning Bootcamp. So I'm happy like today I'm delivering 80th session to you, which is related to Lightning Web Component. Like this week and next week, I'm trying to finish this Lightning Web Component thing. And then few, few more things are planned for you. So I will show you that also today. Okay, so moving forward, if you are on this channel for the first time, so you should know about me. So with this slide, you will be able to know like who I am and what I have done for the community and whatever I am doing. So moving forward, always remember consistency is key. So please do regular practice. And I as I promised you like for aura and Lightning Web Component, I will provide you a few exercises. So I'm just preparing those and will be sharing one document with you where lots of use cases will be available that you can practice. Yeah, so I will share one project as well that you can practice. So I will be creating a document for you or maybe in our exercise sheet, I will paste those things so that you can practice. And if you have joined this session for the first time, and if you want to become part of Sanjay Gupta Tech School community, so you can just join this telegram group. And we are in week 24. So this week, I'm completing 24 weeks for this session. So step by step, like you can see, in January, we started with the admin concepts and now we are about to complete Lightning Web Components. And if I show you the session tracker, so I already updated it. So everybody, those who are watching it live and those who will be watching the recording. So you should know like in this month, we will be having deployment related sessions. So you will get to know what deployment is, how you can use chainset, how you can deploy through VS code workbench and migration tool, we will show you get and get up. And you will be having sessions on QA role as well. So lots of folks are wondering like what QA quality analyst does. So I have my friend who is working as a quality analyst in an organization. So he will be sharing his experiences with you. And believe me, he he is basically non tech folk who learn Salesforce through me. And he is now working as a Salesforce QA. So we are good friends. So I just told him, like, if you can share your knowledge related to QA, so it would be good. So he will be with us to share that knowledge. And these are few boot camps. So I'm planning to have be a related sessions as well. And somewhere at the end of this month, we will be having omni studio sessions also, right? And Appian, we are starting from next week. So two, three things new will be starting from this month. So as I promised you, like, if you follow Sanjay Gupta Tech School, so lots of things are happening around me. And I'm regularly connecting with the folks who are willing to share their knowledge, whatever they have learned. So Appian is the outcome of that. Appian is basically not related to Salesforce, but in industries, Appian is used as a tool. So if you if you want to grow your knowledge, and you want to learn new tools, so that bootcamp will be for you. And a lot other bootcamp will be there. So like, if you follow this YouTube channel, or this organization, Sanjay Gupta Tech School, so I'm sure lots of things will be happening in future as well, which are planned. So this is about the introductory part. Now let's quickly jump. So before jumping onto the topic, I just want to ask you one more time, like, please share a review or feedback about the bootcamp, because it is it has completed almost six months and 24 weeks. So I need reviews and feedback so that I also get some motivation from your site, like whatever I'm doing, it is helping you or not. So you can share your reviews anywhere. You can share it on YouTube, you can share it on telegram, you can share it on LinkedIn, whatever you feel you can share your reviews. I'm reading everything, whatever you are writing about me. So it gives me lots of confidence if you write a feedback or review, whatever I'm doing for the community. Okay, so someone is asking like Manikanta is asking what is the objective of Appian Tool. So for this, like, we'll be having an overview session. So I'm just sharing that link with you in the chat. So this session will be happening on 6th of July. So if you join this session, so you will be understanding everything about Appian, what Appian is and why it is useful. So here you can see I have added one tab in the same sheet where Salesforce related stuff is available. So here also you will find this day zero. So whenever I start any bootcamp, so I just have overview session for that. So on 6th of July, you will be having an overview session. So Ankit Agarwal is the instructor who is an expert in Appian. He's having eight plus years of experience. So he will be sharing all the insight about the Appian. And then if you like, you can just follow this bootcamp. So there will be two sessions every week so that like slowly you can try and learn this tool. And this is not so long. It will take like 13, 14 weeks to learn like I think in two to three months, you will be able to learn everything about Appian. So it is a small tool, but useful. Okay, so coming on to the Salesforce side now. So in last session, I discussed about the lightning web component bundle. Now, if you if you know the bundle, now you need to know like how we can implement the lightning web component. So so in this session, I will be explaining everything theoretically, I won't be implementing the code. So I just want you to follow this session and implement everything in your system and with the help of Visual Studio Code. And then you can test it, right? So how how you can implement your first lightning web component. So for that, like we have this, this video, if you watch this, so you will be able to set up your Visual Studio Code and you will be able to execute your first lightning web component. Okay. So here I will be sharing all the topics in this session. And if you have any doubt, if you have already gone through with some of the topics related to lightning web component, if you are having any doubt, so you can ask and discuss. Okay, so this is the template, which is for HTML and here and you can see lots of divs are available where name company designation and salary are written. And as I told you, like in a lightning web component, whenever you want to use any variable, so we cannot create any variable in HTML file. So in aura, we used to create attributes in HTML file. But here in lightning web component, you can use the variables that you will be creating and those variables you will be creating in JavaScript and that you can use this way in your HTML file. So in curly basis, we have used name company designation and salary. So if I move forward, so this is our JavaScript file. And here you can see I have created all the variables. So again, remember in JavaScript, whatever variable you create, these are known as property, right? So we have four property that we have created. So name company designation salary, these are properties and john Salesforce manager and this 100k, this this dollar value is a salary. And if you want to use these properties in the HTML file, so this is the syntax, you just need to enclose them in curly basis. Okay, so moving forward, if you want to use lightning web component base base lightning web component. So I already told you, like this lightning web component is on top of lightning, like whatever HTML CSS and JavaScript is provided by a worldwide web consortium. So on top of that, we can use lightning specific elements or components. So lightning bad is an example of that. Okay, so if you want to see more more components like that, so here you can come. So here you can see we have lightning web component and here you have a list of components. So accordion accordion selection, all the all the things are available here. So whatever you want to use, you can click and like if you want to use formatted email, so it's code will be available here from here, like this lightning formatted email, you can just copy and you can use it in your code. Okay, and if you if you want to see a demo for it. So here it is. So this way it will be available. So an email icon will be available. It will be having a link if you click so something will happen. Right. So this way, these are lightning specific components that you can use in your code and it is very much important. So as a beginner, if you're if you're learning this lightning web component for the first time, so you should go to this link and here you will find all the examples. Okay, and if you have any question, you can just ask in the chat. So I will try to answer. Okay, so next is decorators. So these are also important if you talk about lightning web component. So we have three decorators at the rate API at the right track and at the right wire. And in interview, like, this is a generic question which is being asked by the interviewers. So at the right API, basically, we used if you want to mark any property as public. So if you create a property in your lightning web component, and if you want to use it as public property so that it can access value from outside the component so that that variable or property you need to declare as at the rate API. So HTML markup can access the components public property. So if you if you create any property like it is private or public, so HTML can access that. But if you want your property should be available outside the component, then it should be public. So next we have all public properties are reactive. reactive means the framework observes the property for change. So when property changes value, then the framework reacts and renders the component, right? And field and property are interchangeable terms. So both are similar. So generally, we say like if you're using any variable or field, so it is property in lightning web component. So later we will see it's example as well. So here you can see if you write at the rate API with any property, so it will become public. If you don't write anything, it will be private by default. And one more thing, like you need to import this API functionality, right? Then only your at the rate API decorator will work. Okay, so I hope this is very easy. Now, at the rate track, so in initial days of lightning web component, for this kind of private property, we used to use at the rate track. So on Google, if you search for some of the blocks, for example, so you will see at the rate track is used for properties, but nowadays, you don't need to write any at the rate track for any property. It is basically used to observe the changes to the properties of an object or to the elements of an array. So at the rate track is basically having a limited limited use uses as of now. And basically framework render the component when changes occur. So if you have created a property with at the rate track and if you change that property, so it will be rendered automatically on the framework. And the third one is at the rate wire. It is very much important to know. So it basically provides a way to get and bind data from a Salesforce org. So basically, if you want to connect your lightning web component with your s objects, where your data is available. And if you want to submit some new data into particular object, or if you want to modify any existing data, or if you want to delete any existing data. So if you want to perform those kind of operations, like you want to get some data, or you want to, like send some data to your s object. So in that case, you can use at the rate wire. So the wire service provisions and immutable stream of data to the component. Each value in the stream is a newer version of the value that precedes it. So objects passed to a component are read only. And to mutate the data, a component should make a shallow copy of the object objects, it wants to mute it. Right? So this is the brief explanation about at the rate wire. So if you use at the rate wire, so you will be having streams of data that you can use for whatever calculations or whatever data you want to show on UI. So that will be available and it can be used. So one thing you need to remember whatever data is available there. So it is in form of read only. So if you want to modify it, so we just need to create a copy of that. And in that copy, we can do some changes. So how we can use it. So there is a syntax for that, like how you can use at the rate wire. So that you need to know. So it is very simple, like you need to use import then adapter ID and then from adapter module. And after the import statement anywhere in the JavaScript, you can write at the rate wire, using that adapter ID which you imported, and the adapter configuration where you will be passing some parameters. And then you will be having property or function. So if you have property, so whatever data you are receiving that will be stored in that property. And if you want to process that received data through a function so that you can define as well. Okay, so this is the description about this method. So now I think you are able to read everything. So just go through all the points. So adapter ID is basically an identifier of the wire adapter, then adapter module. So the identifier of the module that contains the wire adapter function in the format, namespace slash module name. So basically this adapter module is predefined. This is predefined or it can be custom as well. So you just need to import it and whatever function you are importing, its ID will be available with this adapter ID. Okay, and this adapter configuration like configuration object specific to the wire adapter. So configuration object property value can be either settings or references to objects and fields imported from at the rate Salesforce slash schema. So in next slide, you will see some examples so that you will be able to understand how it will be working actually and property or function so a private property or function that receives the streams of data from the wire service. So basically if you write property, so property means it is a variable which can store the data directly. And if you have a function so you can apply some processes as well. So both the options are available whatever goes as per the requirement you can use. Okay, so this is the example with which you will be able to understand how we can use at the rate wire. So actually in this example, you will see both at the rate API and at the rate wire, right? Now, if you see the first line, it says import lightning element, then API, then wire. So these are three functionalities that we need to import and all are available in LWC module. Okay, now next we have this import statement which is using get record, then from and then lightning slash UI record API. So basically this UI record API is a adapter. So if I take you back so it is basically an adapter module and fields. Okay, so we are using get record get record adapter ID. So it means we are trying to get particular record. So which record we want to get its ID we need to pass. And what fields you want to fetch that also you need to pass from here. Okay, and here we have record ID property which is decorated as at the rate API. So this is basically public property. Okay, and this public property. So this this public property will actually access the record ID from the UI. So basically, whenever you will be implementing this component as a whole, so you need to place this component on the account record page. And if you place it on the account record page that account record ID will be available automatically with this property record ID. Okay, so this way. So here you just need to understand how we can use at the rate wire. So this is not a complete example. And don't try to run it because it is a JavaScript only, you don't have any HTML code associated with this. So this I'm explaining for demonstration purpose. So later in the boot camp, I will be having specific sessions to at the rate wire where I will be explaining you both HTML and JavaScript once again. So right now we are just discussing about decorator. So giving you a little bit idea like what is the purpose of at the rate wire. So whatever data we will be receiving that will be stored in this record property. Okay, so any get is asking, can you please explain again? So any get can you tell me which part I need to explain? Because if I explain everything again, so it will take lots of time. So if you if you let me know which line you need to be explained once again. So there is one question, Srivanti is asking about velocity cloud. So those sessions are right now not available on the YouTube, they will happen live Srivanti, Srivanti. Okay, so yes, Ashish, all the prebuilt like we have only three decorator, so they need to use you need to use as is. Okay, so any get last line means here at the rate wire is a decorator. Then this get record is the adapter ID that we used above, right? So this get record is basically connected with this UI record API. So actually we need to process this UI record API UI record API basically is responsible to get some data from s object. So here we are passing that ID get record and we are passing the record ID of particular record that we want to fetch and the field that we need to fetch. Okay, so that information we are passing here. And record ID we will be receiving in this property, which is decorated as at the rate API. So basically when we will be implementing this component completely. So this component we need to place on the account record page. So the account record that you will view that account records ID will be available into this record ID variable automatically. And basis on that the data data data will be fetched and it will be available into this record property. And this record property actually we will be using in the HTML. So right now this is incomplete example. I'm again saying so I just want to show you how we can use at the rate wire so that I can give you a little bit inside. So if you have any adapter module predefined and if you want to use that so you can use at the rate wire for that purpose, right? So there's one more question from Ashish. Why do we say that wire service provisions data? Yeah, so basically it works in the background. Whenever we load the component, so it works in the background. That's why it is so and we have to pass every field name. Is there any way to call all the fields? Yes, whenever we need to pass it individual fields, maybe you can create a list and that collection you can pass but you need to specify particular fields. So this is another example where we have created a class and here in this class a method is available get contacts where we are passing account ID and basis on that we are fetching some information of contact. And here you can see return type is list of contact and here we have an annotation or are enabled. So whenever you want to use any Apex class method in your lightning web component, so you need to use this annotation. And we have public with sharing with sharing means sharing rules will apply. So you won't be able to access all the data. By default, it is without sharing. So in that case, we can access all the data. And here with security enforced is mentioned. So it is for object and field level security. Right. So with sharing is for record level security and with security enforced is for field level security. Right. So moving forward here, you can see how we can use it. So if you have created an Apex class and you want to call its particular method. So this statement you need to write line number two import then get context. So this name can be anything from and then Salesforce slash Apex slash class name slash method name. Right. And then that method you can use here like this at the retire get context. Then we are passing record ID. So this ACC ID is the parameter that we created here. So basically we are passing record ID as a parameter, it will go to this ACC ID and it will start its process. And whatever data we are getting, it will be available in this context. So this context is a property actually, it is a variable, which will be having list of contacts automatically. And this record ID is public property. Okay, so two more modules are imported like refresh Apex and update record from these. So this is incomplete example. So it is just here to show you how we can call Apex methods in lightning web component. So in upcoming sessions we will deep dive. So let me show you the session tracker one more time so that you can have that context. So here you can see we have two, three more sessions like working with Salesforce data. So base lightning components, then lightning data service wire adapter and function, then Apex and LWC to work with. So we'll be learning these concepts in detail as well. So there I will show you all the code like HTML, JavaScript, and you will be able to relate like how things will be working. Okay, so there is one more question. What is the purpose of this ad-rate or I enabled cacheable equals to true. So yeah, so this or I enabled I already explained whenever you want to call the method in your lightning web component. So you just need to use this or I enabled annotation and cacheable equals to true like if you if you want fresh data every time. So you just need to pass this parameter as true, right whenever this method will be called. So like you will be getting the refreshed data. So normally a copy of the data that you are receiving will be created. So if you write it so it will be refreshed. Okay, so let me just see in the chat, there are a few more questions. So Janardhan is asking, could you please explain about track decorator? So Janardhan don't focus on track much. It is very less used nowadays. So maybe I will figure out one example where I can explain you the use of track. So right now, like track, we don't use much. So that's why I just demonstrated API and ad-rate wire in detail. Yes, I am Ankitish. Apex class knowledge also required if you want to work with lightning web component because we can access data without Apex as well. But sometimes if you have any Apex class where you have implemented complex SOQL, and if you want to have that data in your LWC. So for that purpose, you need Apex. Yes, Leo tech, if you remove ad-rate or I enabled, you won't be able to call the methods. So Shivam security enforced means if I go back, so here, we have with security enforced, so it is basically for field and object level security. So if if you have logged in through particular profile user, and on that profile, like for particular object and field, you don't have any permission. So those data won't be accessible. And this with the sharing is for record sharing. Okay, so next is data binding, which is also important. So here you will get to know how we can link data between HTML and JavaScript. So these are the examples which you can implement and practice, right? This is the example which you can implement and practice. So here you can see first is your HTML file and below you can see the JavaScript file. So here we have hello and then greeting greeting is the property. So if anything is enclosed in curly basis, so it will be a property, then we have lightning input, it is base component and label, then value equals to greeting. So it will be having value through this greeting property. And on change is the event that we discussed in aura as well. And handle change is the function. So this handle change function will be defined in the JavaScript. So if you if you change anything in the lightning input, so on change will work and this handle change function will be executed. So below you can see JavaScript where greeting properties available. Initial value is world. Then if you change anything in the lightning input, so this handle change will work. And this event will be having all the information. So through this event or target dot value, whatever value will be available into this so that value will be assigned into this dot greeting. And that greeting will be updated automatically. And you might be thinking why we used this dot. So if you have created any property, property means the variable that you created in JavaScript. If you use that property in your JavaScript code after declaration, so every time you need to use this dot, it is important. If you miss this dot, so your code won't be working. And always remember if if there is any mistake in your HTML and JavaScript, so it is very difficult to debug because there is no syntax error available. Sometimes it gives syntax error as well, like if you save your code in VS code. But if there is any error which is not highlighted, then you need to debug it properly to identify the errors. So third line is basically lightning input. Lightning input is a component. And I already told you like in lightning web component, we used this kebab notation kebab case. So here you can see it is hyphen, then label his name, value is greeting. So initially this lightning input will be having the value as greeting. Greeting is having words, so its initial value will be world. And if you type something else in your lightning input, lightning input will show you a text box, right? So that will if you change so that on change will call this handle change. And through that this function will be executed. So whatever new value you type in your lightning input, that will go to the greeting and greeting will be updated automatically. So here hello and then whatever you write in that lightning input will show here with the help of greeting. Okay, so as part of practice, you can implement this lightning web component in your Visual Studio code. And you can place this lightning web component on the homepage, right? And then you will test it out. Okay, practice is important. Again, I am saying lightning web component skill is like demanding skill. Whenever there is an interview for developers, so most of the interviewer questions will be from lightning web component. So I'm trying to revise all the lightning web component basics to you. So please practice everything. And this is very simple. So this is another example like we can fetch data using caters. So here you can see we have a dev lightning input lightning input to lightning inputs are available first name last name, then we have on change name is same function name is same. So at a time we change only one lightning input, right? If you have a form and you have lots of input boxes, so at a time you will be working on one. So that's why if you have one function, so that will work. And here we have a paragraph which will show uppercase full name. So whatever first name last name I will be typing that will be displaying here with the help of this uppercase full name property. Okay, so right now, here in JavaScript, you can see we have first name last name properties. Then we have handle change function, which is receiving event through event dot target dot name. So I'm receiving the name of the lightning input. So in previous example, I received the value, right? In this example, I am receiving the name. So name means this, the thing which we are providing identification, first name, last name, right? So it will go to this field. Field is again a property. If it is equals to first name. So now we are getting event dot target dot value, it will go to the first name first name is declared here. So that's why we are using this dot first name. Then else if if this condition is false, so this else if part will be checked and it will check if the field value is equals to last name, then again, even dot target dot value will be assigned into this last name. So any time like either the true block will execute or false block will execute. And accordingly, first name last name will be having the values. And at the bottom, you can see we have uppercase full name. So this way if you create any property, so it is known as getter. If you use get with any property name, so it will become a function. And you can do some processing and you can use a return keyword. And whatever process you are doing, the result of that process will return and it will be available here at this place. Okay, so these kinds of properties are known as getter. So we can create two types of properties. One is direct property where we can assign some data. And second is getter property where which is like function like property where you can do some calculations as well. Okay, so if you have any doubt, you can ask and these are two separate examples. So this is one example HTML and JavaScript. This is example number two. So this is the HTML and this is the JavaScript. So these are two separate examples. So try to implement it and try to type at your own. So you can pause the video anytime whenever you see like this slide, you need to type. So just type don't copy paste. So as a beginner, if you type the code, you will get get to know what you are typing what what is the meaning of that particular line. So initially try to type all the code at your own don't copy paste so that you can understand things. So this dollar symbol is basically used for fetching the values from these properties. And these this code is basically for concatenation purpose. So this is this is the part of syntax. Okay, so Ashish is asking what is the use case for setter. So Ashish, if you have more than one components, if you have more than one components and from one component, you want to pass any value into another component. So in that case, we can use setter property. Yeah, so Rajeev I already explained. So getter I hope you understood within a component from this JavaScript if you want to pass the value to HTML so you can use getter. It works as a function. And we can have setter. So setter basically receives the values from another components. I think I created one example for that if I go to study salesforce.com. So here under lightning web component. So yeah, so here if you want to understand it in detail. So here is one video where I implemented all the code. So knowingly in this live session, I'm not implementing all the code because those are already available with these videos which are pre recorded. So you can just go through and here you will find everything implemented by me. So I typed everything. So here we have getter setter at number 16. So you can just go through and understand this. Okay, so getter is basically to provide some value from JavaScript to HTML and setter we use when we have more than one components. Okay, so next we have masses passing between lightning web component. So it is also important to understand. So if you have more than one component, so how we can use them. So for example, this is our child component child HTML and child JavaScript. So it is very simple. Here we have hello and then first name is the property and this property is having world as a value. If we go here, so this is this is our second component, which is only having HTML. It is not having any JavaScript. And here with this notation, you can understand C hyphen child. So this way we are using child component here. So now what will happen if you create these two separate components, one is child and one is parent. So on UI, you will be rendering, you will be placing only parent component. And with the help of this parent component, child component will render automatically. Right. And here we are using this first name as a private property. Okay, now if I move ahead. So here you can see the example of public property. So this is public property first name which is initially having world. So initially, first name will display world. But here you can see why calling this child component. So to that child component property first name, we are passing some value. So why it is happening, because here we have declared this property as public using Android API. Okay, so here, we are calling it twice in the parent component. So every time whenever you are calling the child component, you can pass different values and accordingly results will be available. So again, these are two components. So first you need to implement this component, then you will be implementing this component. And on homepage, you can place your parent component. But you need to deploy both child as well as parent. Both you need to deploy from VS code to your org. Then only if you place parent component on homepage, so it will be rendering the child information. Okay, so I hope this way you are able to understand another use of Android API, which is public property. Now we have conditional rendering in HTML. So it is very simple, like if you want to apply if else in your HTML, so we can use this template if true, if false. And this is a Boolean variable are details visible. So this is Boolean, which is declared here. So it is initially having false. And here we have handle change. So handle change we have called here. So here we have lightning input whose type is checkbox. So if you check the checkbox or uncheck the checkbox, so it is like on change event, and handle change function will be executed. And here in this code, we are using lightning card as well. It is another lightning specific component. Right? So you can also implement this code at your own. And whenever you will be changing that checkbox, so if it is checked, so it will be assigned true. If it is unchecked, so it will be having false automatically. So accordingly, your true and false block will be rendered on the UI. So if it is checked, so it will show this is true block. If it is unchecked, so it will show this is false block. Okay, so but you need to implement these at your own so that you can understand. These are important. And next is rendering list in HTML. So if you want to implement a loop, so that is also possible. So this way you can implement a loop. So you need to write for each. Then here you can pass the list. Then one by one items from this list will go to the variable, which is associated with for item. And data will be available into this contact record and through that, like you're assigning a key. So here we are using list item. So in inside unordered list, we are iterating and one by one list item will be created. So it will be creating an unordered list. And I hope if you have gone through the HTML related video, so that's why I already covered HTML basic HTML because you need to use those elements here. So unordered list, I hope you remember then we have the part as list item. So here we need to pass the key. We're passing contact ID as the key. And then contact name and contact title will be shown as a list item. So one by one from this context list contact will be having the data and basis on that name and title will be visible. And this way here, a contact list is created. So in square bracket, we have the data. And this data will be rendered on the UI. So we can have some data quite from apex as well. So we'll see that later on. So these are some sample data that you can use. Okay, so this is the stuff that I prepared for today. And you can practice these. So I hope if you if you already know Lightning Web Component, so this would have brushed brushed up your memory. And you got some more insight. And on study Salesforce, like everything is arranged properly. And this playlist is available on YouTube as well. So you can anytime go through with these videos and you can practice. So these are specific videos topic wise and a few more I need to create. So I will be creating them once I complete this boot camp because right now I'm not getting enough time to record some videos. So I will try to cover the concepts in this boot camp related to LWC but specific example related videos, scenario based videos, I will be recording once I complete the boot camp related sessions. Yeah, so I will people are asking people are asking about scenarios and projects. So we'll create a document and we'll share with you. Thank you, Badal for appreciating my efforts. Avanish is asking how to be motivated and consistent. So so this this is a good question. And I am not a motivational speaker, but you can see how consistent I am. So don't think much. If you have to do things, just do it. Right? If you think think so much, then you need a motivation. So don't think just do practice. If you do practice, do learning. So something will gonna happen. Right? So don't think so much. This is the only thing I can say. If you think so much, then you will need lots of motivational speaker and you will you will become happy by listening motivational speaker. But again, at the end, you need to do the things. So what I do, I also need some motivation. So what I do whenever I I am in a situation like I need motivation. So I don't think I just start doing things. And after that, I don't need any motivation because if you are doing things, you you automatically get motivation from yourself. So self motivation is the best motivation. So do things regularly prepare some schedule like I prepared this session tracker. So this is the biggest motivation. So I already announced like I will be doing the these things for you. So now I have something planned. So I have a deadline. I need to complete those. So these kind of sheets you can prepare for your yourself as well. And you can also learn the way I'm delivering the content. Yes, I vanquished. We don't hard code data. So we will be using custom labels or we will be getting the data. So right now in this example, the example which I showed you. So this is not appropriate here. This is just hard coded data. So this is not appropriate way. This I just showed you to demo this thing. But every time we'll be getting the data from database or we'll be getting the data from custom labels. So we won't be writing data directly or we won't be hard coding things. Okay, so Avnish, I hope you got some motivation now. So don't don't search for motivation. Do do whatever you love to do. So that is the key for motivation. Otherwise on YouTube, you will find lots of motivated motivational videos. But that is endless loop in my opinion. Okay, so thank you so much for joining today's session and tomorrow I will cover a few more topics. So if you want to discuss so you can just go through the videos which I already recorded and uploaded. And then in these sessions, you can ask doubts. So in today's session, I saw lots of doubts people asked and I hope they are clear. So if you if you go through those sessions already, so it will help you. Okay, okay, so I am I am happy to know like you are in the same profession. So yeah, I can understand the pain. And yeah, so this this I am doing for like if because it is my passion. So I know it is very tough job. But it seems like it is very easy job. But believe me, instructor job is very, very difficult. Okay, thank you so much everybody. And soon like I will be launching personalized batch as well, like it will be kind of internships. So I just want to share that information with you those who are live or maybe watching that recording. So I will be starting offline online batches. So maybe from mid of August or start of September. So there will be specific online offline batches. And those batches will be focusing on the jobs. So we'll have like, I will be having some folks CVs like we'll do some screening if they are good, their CVs looks good, and they have good communication skills. So we'll create small, small batches where I will be connecting on zoom call and will be giving personalized training so that in this live training, I am delivering on one way. But in those zoom sessions, it will be two way interactions. So you will be asking lots of doubts and I will be focusing on that small group. It may be 1520 folks only. And I will try to cover everything for you, including your mock interviews, your personality development and technical sessions, whatever is lacking in you and will try to give you some job opportunity like if there is any job opportunity, so how you can present yourself so that you can crack that interview. So I'm planning that kind of internship, both offline and online and having new website as well that will be launching soon. I'm working on that. And that will be having a little bit amount associated because for that, I will be having other folks involved, but will make sure it won't be too much. It will be very less. And if you are really searching for job and you want to become a skilled IT professional, so those courses will be for them. And if you think you are not able to pay, so I already delivered everything free of cost that is available on YouTube. So it is not a force for you. So if you if you have like that small amount to pay and you want to nurture yourself, so those sessions will be for you. Otherwise, everything is available freely for you. So you can just go through those. Right. So my prime objective is to deliver quality content free of cost. And secondly, like if you need some personalized training, because I'm receiving lots of email and request, we need one on one sessions. So one on one is very difficult. So I will be creating small groups. And then I will focus more on your success. Okay, so this is it for today. Thank you, everyone, those who appreciated my efforts. And we'll connect tomorrow again. We'll with new topics. Thank you for joining today's session. Bye. Take care.