Under the chapter of consumer behavior we are going to study weak axioms of revealed preference. So it is in the connectivity of our previous modules where we have studied revealed preference and non-revealed preference or indirectly revealed preference. So when we say the weak axioms of the revealed preference, so we can say that these are those principles that at least should be met when we are dealing or we are studying the revealed preference. So consumer is always facing certain competition and consumer is always in a fix. If I say that since the wish list is always big and resources are limited, then allocation is always decided between some combinations to optimize and optimize resources. So whenever consumer is facing these types of situations, then the behavior we study will be the consumer behavior. And now there are two bundles in which we are saying that there will be one bundle A in which there is a combination of x1 and x2 and there is a second bundle B in which there are some commodities which are y1 and y2. So it means these two bundles are so that the commodities included in these bundles, they are different to each other. They are not the same. So the concept of reflexivity will not be here. These two are the different bundles. And the minimum condition in this is that if the consumer has given a bundle A to B at any time, at any decision, then we have to see that he has expressed his own interpretation. He has revealed preference. So our principle is that whenever he has to decide between these two bundles, the bundle he has given today, he will always keep the same interpretation on bundle A, bundle B or combination of x1 and x2 on y1 and y2. Now if we see in this, then our assumptions are that we have to see that these two bundles are present on his budget line because any bundle may be outside of his budget line or in other words, we can say that he is outside of his precious purchase. So about the two bundles, the decision or competition is taking place. The first assumption is that the both bundles, they are within the price range. And we can see here that if we see that both bundles which are available, because the commodities are different, the commodities are different, their prices are also in the market. They can be the same or different. But because they are different commodities, we will note them in a different way. So our bundle is one in which we said that the bundle is x1 and x2. The second bundle is our y1 and y2. And the weak axiom says that they both are available on the same budget line and within the same budget range. Despite being inside or above the same budget line, if we say that he is purchasing one of them and both bundles are not the same, they are different. And this means that because they are not the same and he is purchasing x1, then x1 is directly revealed over y1, y2. And if he is purchasing y1, then y1 is directly revealed to x1. Now if we look at this, there are three assumptions at the back end. The one that is available for our consumer preference, no satiation or non-satiation means that the consumer always wants to purchase more and more commodities. He never completes the demand for them. Yes, there is some time, some time, it can be for one commodity that it can be because it is the concept of diminishing modernizability. Transitivity will be present here. Third, monotonicity. Monotonicity in simple words is that most of the things are preferred on the minimum or most of the amount of any commodity will always be in its translation. So if all the elements in any bundle that we have seen are in the bundle in which x1 and x2 are present, if the things in it are increased in any other combination, if the things are increased in size, then that bundle was already preferred, now it will be preferred. And A must be preferred to B. And looking at this condition, our conclusion is that whenever a bundle A is preferred to bundle B, in one condition, so whenever there will be any type of the situation, when A and B have to be decided, then they always prefer bundle A. And this is in its weak axioms. If we look at it as its diagrammatic, then if we look at this line which shows its budget line, if we look here, the budget line does not mean that its income changes in any other length. Because we always say that the budget means that will be equal to price plus like this. Or it can be equal to price 1 of y1 plus p1 y1 and the third level, it can be p1 z1 plus p3 z3. So these prices can be different. So when these prices they are different, so when we divide M by price, so this one, if x is the point, then this will be more because this is price of x. When we decide the price of y with respect to the income, then this point will be more. And similarly, when we divide the income for p1 which is z, then this will be more. So because of this, our budget line is that prices of x, y and z that can be different. So if x is selected when y was available, not in the market, rather within the budget line. So if we look at this budget line, within this budget line, what was available to it was just this preference of x whereas y was also available. And similarly, when y was selected and when x was also available, then we say that y was preferred over x. Now, looking at all these situations, we say that x and y are in budget line but z is not in the range of the budget. So if the z combination was not bought, then it was out of the range. So the two decisions that he made, if he was not buying one, then we will say that he did not prefer and whoever he purchased that is x. So in every future combination, he would prefer the combination of y. Now if we look at when is its violation? The principle we have explained is that he will always do it or there could be a difference. It is possible when we said that if x is preferred to y, that is one direction. But similarly, if he had to decide between these two combinations and he changed the last decision i.e. the decision that he would prefer on y, rather he would prefer the combination of y on x. So we will say that the violation that he did was the consistency of the preference theory. Because the consistency says that whatever he did today, he will always do it. So the consumer has bought the combination of x1 and he could buy the y1 one. And when he bought the y1 one, when he could do the x1 one, these two things show the opposite direction. So in the first bundle we say that x1, x2 was preferred on y1, y2. And in another combination y1 and y2 is preferred on x1, x2. So this is the theory against and if we see this then if we say the weak axioms of the revealed then it comes to the violation and rather the theory of consistency of the consumer preference is also against it. So that's why we decided that all these principles would be the same when our assumptions would be valid in which our consistency transitivity, reflexivity we follow all of them. Thank you.


I'm Jessica Skirbo. I'm the Section Chief of Pediatric Hematology Oncology at K. Hevenanian Children's Hospital. So we take care of children with benign hematology that's disorders of their white blood cells, red blood cells, and platelets. They can also have bleeding disorders or trouble with clotting, as well as oncology diagnoses. My special focus is an adolescent and young adult oncology, as well as survivorship. Right now, one in 300 children are cancer survivors, so the survivorship world is really expanding.  My personal care philosophy as a physician is to treat every child as if they're my own. I really want to make sure that they get the best treatment. The one thing that I truly love about oncology is getting to know the child, their siblings, their parents. It's really a family affair. At the end of their journey when they are cured, it's like watching a family member go off and live their lives, and it's really just inspiring for us, and it's life changing.


Over 10,000 arthropod species are currently considered to be pest organisms. They are estimated to contribute to the destruction of 14% of the world's annual crop production and transmit many pathogens. Spider venom peptides are now being investigated as potential sources of bio-insecticides. Their venom has proven to be a rich source of hyper-stable insecticidal mini-proteins. This article was authored by Glenn F. King, Monique J. Windley, Margaret C. Hardy, and others.


This video will cover part 3 of an introduction to the Integumentary System. As we go, we'll cover the following objective, describe the structure and function of the following accessory structures, hair follicles, erector pili, hair follicle receptors, pasinian corpuscles, myzner corpuscles, merkle cells, sebaceous glands, echorin glands, and nails. Hairs are composed primarily of keratin, growing out of the epidermis. Dead keratinized cells form the structure of the hair. The hair originates from modified epidermal tissue that folds deep into the dermis as a structure called the hair follicle. The hair shaft is the exposed part of the hair that's not anchored to the follicle, whereas the rest of the hair, which is deep underneath the skin anchored into the follicle, is known as the hair root. The deep enlargement of the hair follicle is called the hair bulb, and within the hair bulb is a layer of mitotically active basal cells, epithelial cells called the hair matrix that divide and differentiate in order to produce the epithelial cells that make large amounts of keratin, fill with keratin, and die, and produce the structure of the hair. The hair bulb surrounds a papula, the hair papula which is made of connective tissue, continuous with the dermis, and contains blood vessels, very small blood vessels called capillaries, and there are also nerves inside of the hair papula. The blood vessels provide nutrients to the growing epithelial cells in the bulb, just as the basal layer of the epidermis, stratum basale, divides and as cells differentiate, they migrate out towards the surface. In the hair follicle, basal cells divide and differentiate, and as they mature, they migrate out into the hair root, and as the hair root grows, the hair shaft pushes out past the skin and grows. The functions of the hair include protection, sensory input, thermoregulation, and communication. For example, the hair on the head can protect the skull, protect the top of the head from exposure to the sun. Hair in the nose and ears and around the eyes helps to protect the body by keeping small particles from getting into these openings. Hair of the eyebrows helps to prevent sweat from getting into the eyes. The sensory function of the hair, we'll see there's a hair follicle receptor that can detect movement of the hair and help contribute to our sense of touch. And for communication, hair grows in different parts of the body and thicker in the face on men to help communicate the maturity of a man after puberty. Then their hair becomes thicker, forming a beard, and this is a signal that the man is mature, and so is an important function for communication. Notice here there's a smooth muscle called erector pilae attached to the hair follicle. The erector pilae can pull on the hair follicle, and the hair stand up straight causing goose bumps. And in our ancestors that had more hair on the surface, more hair covering their body, the erector pilae causing the hair to stand up straight would have made them look more intimidating and also could have helped increase insulation. Hair can help to hold heat into our body and having our hair stand up on end would create a thicker layer of warm air surrounding the body to help insulate our body. Here's a light micrograph of a hair follicle. You can see the layers of epithelial cells within the hair follicle here that divide and differentiate and accumulate keratin as they differentiate dye forming the root of the hair that pushes up past the surface to form the shaft of the hair. We can also see adjacent to the hair follicle are a stratified cuboidal epithelium of the sebaceous gland. The sebaceous gland produces an oily secretion that will help to condition and lubricate the hair and protect against infection. The nervous tissue that's surrounding the hair follicle is called the hair follicle receptor. There are sensory nerve fibers that carry information from a variety of specialized amount of sensory receptors in the skin. The fibers carrying information from the hair follicle receptor detect movement of the hair which contributes to our sense of touch. There are also a variety of free nerve endings that we can see here in the illustration branching all through the dermis and epidermis. These free nerve endings contribute to our sense of pain as well as sense of temperature and itching sensations. The Bacinian corpuscle is a specialized touch receptor found deep in the reticular layer of the dermis that contributes to the sense of deep pressure and detecting vibration. Meisner's corpuscle is a touch receptor or somatosensory receptor that's found in the papillary layer of the dermis. These are especially common in the skin on the tips of our fingers that are very sensitive in order to detect light touch. The merkle cell is a specialized sensory receptor found in stratum basale of the epidermis which is sensitive to changes in the shape of the epidermis that stretch and pull on the merkle cell and then merkle cells communicate with sensory neurons that relay that information into the central nervous system to contribute to the somatosensation, the sense of touch the sense of our body position and the sense of touch in our skin. Here we see an illustration of a sebaceous gland and a light micrograph showing an image of a sebaceous gland attached to a hair follicle. Sebaceous glands have a stratified cuboidal epithelium and have the structure of a simple branched alveolar multicellular exocrine gland. The product that's secreted by sebaceous gland is an oil and this oil is known as sebum. Sebum helps to lubricate the hair and skin, condition the hair and skin to keep it from becoming brittle and dried out and also has an antibacterial property in order to help prevent infection. Here we can see an illustration showing an eccrine sweat gland and eccrine sweat gland is the most common type of sweat gland that produces a watery sweat in order to cool the body. They have a coiled tubular structure with a stratified cuboidal epithelium and the duct opens at the surface of the skin through the epidermis with a pore that opens to the skin surface and releases this watery secretion in order to help cool the body down. It's important to call this an eccrine sweat gland in order to distinguish it from another type of sweat gland called an apocrine sweat gland. Apocrine sweat glands are located in the axillary region, the armpit as well as the groin, face and nipples and they're stimulated by hormones during puberty and produce an oily sweat containing lipids and proteins that function as nutrients in order to support the growth of bacteria and this is what contributes to the characteristic odor associated with the body following puberty. Nails are another accessory structure produced from modified epidermal tissue. There are stem cells inside of the nail matrix that divide and differentiate and produce the hard keratin of the nails.  This matrix surrounds the root of the nail which is covered by a proximal fold of skin where the proximal skin fold meets the exposed nail is the cuticle or eponychium and the exposed region of the nail is called the body of the nail Blood vessels under the body of the nail give the appearance of a pink color to the nail because we can view the dermis through the body of the nail where the blood vessels are traveling through the dermis and in some cases the nail body becomes discolored as a result of metabolites in the blood. For example this can be used in the diagnosis of respiratory diseases. The functions of the nail include protection. Nails provide a little bit of extra strength to the tips of the digits to the tips of our fingers and the tips of our toes. So the tips of the fingers and toes are the most vulnerable exposed to great forces. The nails can also help with defense they can function for scratching and tearing, clawing. Nails can also be useful tools for helping us to grasp small objects to increase our grip on an object.


Food and Agriculture Organization in Myanmar has been supporting Myanmar people since 1978. Myanmar people are now facing critical challenges such as changing rainfall patterns, crop failure, rising commodity and farm input prices, supply chain disruption, food insecurity and poor nutrition, and loss of employment and loss of lives due to the COVID-19 pandemic. As a specialized agency of the United Nations, FAO in Myanmar will continue to enhance food security, nutrition and food safety in Myanmar and build the resilience of local communities and farming communities to the diverse hazards to which they are being exposed. In order to build resilience of the people, FAO has been implementing the sustainable cropland and forest management and priority agro-ecosystems of Myanmar. In the central dry zone, Ayurvedic Delta and Hilly region since 2016. On the job training is provided to farmers on climate smart agriculture practices through farmer field schools. In selected township, community forest user group ensure ecosystem-based sustainable forest management practices. The project provides online GIS training on participatory land use planning to community-based organization working in the area of sustainable land management. It is also strengthening capacity of all stakeholders involved with land use planning for sustainable land management. FAO in Myanmar will strengthen the resilience of rural communities through climate smart agriculture, sustainable forest management and sustainable land management.


Thank you very much. I just wanted to present the notion of language or signature of first order theory and the interpretations they may have in the topos or more generally in the category with finite products and these interpretations are called sigma structures. So by now I want to come to the notion of first order theory. So first order theory consists first in a language or signature sigma as before and secondly collection of axioms and these axioms have to be formalized and they are formalized as so-called sequence so this is denoted in this strange way which is familiar to logicians. So you have two letters phi and psi and these two letters are related by this strange symbol which just means an implication and phi and psi have to be formulas so more precisely geometric formulas. So the meaning of such an axiom is that one formula phi has to imply another formula psi. So for instance if you think about the theory of order relations one of the axioms is that if A is lesser than B and B is lesser than C then A is lesser than C. So here phi is the formula A lesser than B and B lesser than C and psi is the formula A lesser than C and in fact all the axioms of first order theories can be phrased in this way implications between formulas. So the formulas which appear in such theories are geometric formulas and they have to be formulas with variables so you see that in the example like just gave there were variables A, B and C. So here to write formulas and implications between formulas we need variables and each variable has to take values in some sort. So this means that any sequence has a context consisting in a finite family of variables and each one of them is associated to some sort and of course we may have several variables with the same associated sort. Okay so by now we want to make precise how formulas phi and psi are built. So geometric formulas are built from more elementary formulas which are called atomic formulas. So at the present moment I don't say what is an atomic formula it will be on the next page. I just say that the general geometric formulas are used from atomic formulas using three types of symbols. So first a symbol of finite conjunction. So for instance in the example I just said if you remember there was the formula L, S, R, and B and B, S, and C. So here you see there is and okay and this is this symbol of finite conjunction but we also allow arbitrary disjunction. When I say arbitrary I mean that it can be infinite but of course indexed by some set. And of course there is also the empty conjunction which is a true symbol and the empty disjunction which is a false symbol. So they have been noted in this way. And lastly there is also the existential quantifier in part of the variable. Okay so we are used to do that all the time when we write mathematics. Okay so by now what is an atomic formula? So an atomic formula is deduced from a relation formula. So a relation formula is a relation symbol half in the context of some sorts a1, an, but it is considered as a formula in some variables x1, xn affected associated with the source a1, an. And we also allow equality formulas between variables with the same associated source. Okay so an atomic formula is either deduce either it has either the form of inequality or of a relation associated with a relation symbol. But we also allow substitution of variables by terms. So what is a term? A term is just a function symbol in some variables or a composition of such function symbols. So the notion of term is defined in an inductive way. You start from a function symbol f in some variables x1, xn associated to the source a1, an of the function symbol. And you allow to replace one of the variables by another function symbol so g in some variables. But of course you have to respect the fact that the function symbol g takes values in a sort ci which is the sort of the variable you have decided to substitute. Okay so here you see it is just a formalization. We want to make precise what we do all the time. In mathematics we are always using variables and we are used to substitute variables with some more complicated expressions. And these more complicated expressions ultimately have to come from some function symbols. Okay so here we are just trying to write in a precise way what we are used to do all the time in mathematics. Okay so here is a remark which is the fact that of course in mathematics even in first order mathematics we may use some other symbols than the symbols which were listed in this definition. So these other symbols which we are used to employ are first arbitrary conjunctions not only finite conjunctions. So arbitrary conjunctions we already said existential quantifier we already said but we also use universal quantifier meaning for any variable. And also the implication symbol. And the negation symbol when we have a formula we sometimes we decide to take the negation of this formula. Or if we have two formulas phi one and phi two we can consider the formula phi one implies phi two. Okay so all of this as meaning it can be interpreted for instance is the context theory. On here in fact we have a full list of the symbols which are used in first order mathematics. So for people who don't know you may ask what is higher order mathematics. Higher order mathematics is when you also allow exponential operations such as replacing two sets by the set of maps from the first one to the second one or replacing a set by the set of subsets of this set. So these are exponential operations and in first order mathematics they are not alone. So here the theory we are talking with is a theory of classifying toposies for first order mathematics. In fact here I can mention that if you want to take into account higher order mathematics then you have to consider relative toposies. I mean a topos over one topos possibly over another topos and so on. And this is some work presently done by Olivia Caramello and her student Ricardo Zanfa and I think they will talk a little about it Olivia in her lectures and Ricardo in his talk next week. Okay but for my lectures I only talk about first order mathematics and here I want only to repeat what I already said is that if we have any first any first order theory including with this other symbol of universal quantifier then we can replace it with by a geometric first order theory which means with only finite conjunction arbitrary disjunction and existential quantifier without changing the set theoretic model. Okay so this means that this condition to be geometric is not restrictive at all and in fact to make a theory geometric it is as we shall see a way to make it topos friendly and in fact when we are doing mathematics it is a very good idea to formulate the theories you are interested in in in a way to make them topos friendly. Okay so by now I have explained what is first order geometric theory and I have to talk about the way such a theory can be interpreted. I have already explained how languages which mean signatures can be interpreted. So here let's consider a signature and first let's consider a term. A term is just a function symbol in some variables or a composition of such function symbols and let's consider a topos and let's consider a sigma structure m in this topos so what is the interpretation of this term so the interpretation is also defined in an inductive way it will be a morphism from the product of the objects associated with the source which are associated to the variables and it takes values in the object associated to the source where the function the term f takes values so if f is a function symbol the interpretation of f is just the associated morphism mf mf by definition is mf not okay when you have a sigma structure in particular the sigma structure consists in associating in associating to any function symbol a morphism and so this is the interpretation and by now if we have a term which is deduced from a simpler term by substitution of a variable by a function symbol then the morphism msk the interpretation msk is deduced from the interpretation msk minus one just by composition with the interpretation of the function symbol g so you see the definition is inductive and here we just use a categorical structure we just use the fact that it is possible to compose morphism in a category okay so by now we can move to the the interpretation of atomic formulas so let's consider once again a signature then a topos then a sigma structure m on an atomic formula so let's consider also the case of the formula true and the formula fails so if the formula is true in the variables x1 a1 xn an is interpretation by definition is the full sub-object f m1 cross m an if the formula we consider is false its interpretation is by definition the smallest sub-object of m a1 cross m an if you prefer it is the empty sub-object okay you see I am just seeing things which are obvious in the context of sets but in fact from the point of view of categorical structures a topos is just as good as the category of sets so everything which makes sense in the category of sets makes sense in the context of an arbitrary topos so by now if we consider an atomic formula which is just a relation symbol r in the context of some a1 an its interpretation by definition is a sub-object f m r of m a1 cross m an by now if we consider an equality relation between two families of variables then its interpretation is just a diagonal sub-object m a1 cross m an embedded diagonally in m a1 cross m an cross m a1 cross m an and by now if the term phi k excuse me the if the atomic formula phi k is deduced from a simpler atomic formula phi k minus phi k minus one by substitution by substitution of a variable by a function symbol then the sub-object m phi k is deduced from from the sub-object m phi k minus one by pullback by base change along the morphism associated with g the interpretation m g of g so and of course a pullback of a sub-object is a sub-object you see everything I have defined here is um is a sub-object if phi is a true formula the interpretation is a full sub-object if phi is a failed formula the interpretation is an empty sub-object if phi is a relation symbol the interpretation is associated sub-object just by definition of a sigma structure and if phi is an equality relation the interpretation is a diagonal sub-object and then when we substitute from these basic atomic formulas when we substitute variables with function symbols and do that repeatedly at each step we just take the pullback and the pullback of a sub-object is always a sub-object so these things atomic formulas are always interpreted as sub-objects okay and by now we can obviously interpret all atomic formulas so let's consider once again a signature a topos a sigma structure in this topos and a geometric formula a geometric formula in the context of some variables x a 1 x a n x 1 a 1 x n a n and then the the geometric formula was always been interpreted as a sub-object of m a 1 cross m a so let's consider the different cases so the first case is when we have a formula phi which is deduced from some simpler formulas phi 1 phi k by finite conjunction so we these simpler formulas phi 1 phi k are interpreted as sub-object m phi 1 m phi i of m a 1 cross m a n and in order to interpret phi we just take the intersection of this sub-object so the intersection is just a pullback it is a finite limit operation so of course it it perfectly makes sense in the context of the topos e then if phi is defined by arbitrary union of some family of formulas phi i so each phi i is interpreted as a sub-object m phi i of m a 1 cross m a n and we just take the union the union is by definition the biggest the smallest sub-object which contains all of them and here we remark that this union for this union we have a formula and the formula is a co-limit formula so the the the co-limit of the diagram i have written the diagram consisting of the interpretations m phi i and their fiber products by pairs their pairwise fiber products so you see that in this formula there are only finite limits and co-limits it only makes use of finite limits and co-limits okay and lastly we need to interpret the existential quantifier so then we have a formula psi in two families of variables x 1 the x i a i's and y j b j and then of course m psi is interpreted as a sub-object of m a 1 cross m a n cross m b 1 cross m b n and this big object has a natural projection on m a 1 cross m a n and here the interpretation of the existential quantifier is the fact that we replace this sub-object n psi by its image in m a 1 cross m a n and here we so the image by definition is the smallest sub-object of m a 1 cross m a n who spelled back contains m psi so this is the definition but because we are in autopos this image is given by your formula the formula is i have written it is once again the co-limit of the diagram consisting of m psi and the fiber product of m psi with itself over m a 1 cross m a n so this formula is obviously true in the context of sets and it remains true in the context of an arbitrary topos and this is very nice because you see for the interpretation of the universal the existential quantifier we once again we only need finite limits and arbitrary co-limits okay so this is a remark at the bottom of this page because we are in topos this we remarked that the all these formulas which only make use of finite limits and arbitrary co-limits are always preserved by base champ this is because in a topos base change not only respects limits but also arbitrary co-limits and they are also preserved by pullback functions by the pullback components of morphism of toposes because by definition of a morphism of toposes f from e prime to e the pullback component respects arbitrary co-limits on finite limits so this means that all the interpretations of formulas are respected by pullbacks and they are also respected by the pullback component of morphism of toposes so here we can remark that in fact the other symbols of first order mathematics so arbitrary conjunction universal quantifier implication negation they are also interpretable in any topos just as they are in any set in the context of set because once again from the point of view of categorical structures a topos a grottendig topos is just as good as the category of sets and the interpretations of these formulas are always respected by base change but if we have a topos morphism from f f from e prime to e the pullback function between the categories of sigma does not respect in general the interpretations of these symbols they do not respect arbitrary intersections they do not respect universal quantifier they only respect the symbols which are allowed in geometric first order theories so this is why when you have a first order mathematical theory if you phrase it in a geometric way you can say that you have made it topos friendly okay so by now at last we can talk about models so let's consider a signature let's consider a geometric first order theory and let's consider a topos so by definition a sigma structure in this topos m is called the model of t so here i have made a mistake it is t is here it is theory it is not the the symbol of cool okay so it is a model of t if for any axiom consisting in a second between two formulas phi and psi the sub-object which is the interpretation of phi in m and the sub-object which is the interpretation of psi in m so this of course has two sub-objects of the same object so they have to verify the inclusion relation the interpretation of phi is included in the interpretation of psi so when this is verified for any axiom of the theory you say your sigma structure is a model of the theory and a morphism of models of the theory is just the morphism of the underlying sigma structures so this is a definition so of course in particular it applies to the category of sets so in this way you get the notion of set theoretic model or set base model of a theory but it makes sense in the contest of an arbitrary topos okay and so with this definition we realize that the models of a theory t in a topos make up a category this is by definition the full category or the full sub-category of the category of sigma structures on the t models so the morphisms are the same they are just morphisms of sigma structures but the objects are the sigma structures which are models of t which means where all the axioms of t are verified and because the theory you consider is geometric and so the pullback components of topos morphism respect the interpretation of geometric formulas then we get that the pullback function f per star between the categories of sigma structures induces a function between the categories of models and so by now if we consider an arbitrary geometric theory t and an arbitrary model of t in in a topos e there is for any topos e prime an induced function from the category of topos this morphism from e prime to e to the category of models of t in e prime so the function just associated to any topos to any topos this morphism f the pullback of m by f okay and then the definition of the pacifying is what you require for a topos to be classifying the theory t is the fact that this function has to be an equivalence of categories for any topos e prime okay so what we want is that for any topos e and for any topos e the function which associates to any topos morphism from e to e t the pullback of the model ut of t in et so this we want this function to be an equivalence of categories and here it is a formal consequence of everything of the just the meaning of the statement that if such a couple ut exists it is unique up to equivalence but of course the existence of such a topos is a theorem and it takes some time to prove it okay and so by now i want to begin the proof of this i want to begin the proof of this theorem so i repeat what we want to do we start from first order theory which is presented in a geometric way we start from a geometric first order theory t and we want to associate with the topos but toposists are always constructed from a pair consisting of a category c endowed with a grotendic topology j so grotendic has called that a site a site is a pair consisting of a small or a socially small category endowed with a grotend with a topology and so what we need is in order to construct a classifying topos et is to define a category ct together with a topology jt on this category so that the associated topos et so the quotient topos of the category of the topos of issues on ct by the topology jt so this topos has to answer the question so more precisely we shall get the following first we will construct a category ct with enough categorical properties for the category of models of t in ct to be defined so ct be careful ct will not be a topos it will be much smaller in fact it will be an essentially small category but it will have enough categorical properties for geometric formulas to be interpretable into this category and so for the models to be defined and in these categories there will be a canonical model empty and and as i already said a topology gt such that denoting et is a classifying topos and ut the image of mt through the canonical functor you see the canonical functor l which goes from ct to the category of pre-shifts of ct so to ct at through yoneda embedding composed with the shiftification functor and so with this definition we will get that the functor from the for any topos e of the category of topos morphism from e to et to the category of t models in e so this functor to be unequivalent for any topos e so this is what we want to do okay and i just said that this category ct has to be good from it we need for this category enough categorical properties for geometric formulas to be interpretable in this category so here we give a definition of what we want uh so we call that a geometric category so a geometric category is a category where geometric formulas can be interpreted so what do we need first we need this category to have all finite limits in particular this means that for any morphism in the category p from x to y there is an induced functor on the associated categories of sub-objects so here you see i have denoted omega of y and omega of x the categories of sub-objects of x and y because in any category with finite limits if you consider a sub-object of y let's say y prime then the fiber product of y prime with x over y is a sub-object of x so in this way we define a pullback functor from the category of sub-objects of y to the category of sub-objects of x and what we want is this pullback functor to have a left adjoint and this left adjoint will be the interpretation of the existential quantifier so we denoted in this way with the existential quantifier on p as an index of course it has to go in the reverse direction from omega of x to omega of y okay and by definition it has to be an adjoint of the pullback functor okay and of course this uniquely determines this functor and we also want this image this functor of image this functor there exists in xp to be compatible with best charge so this means that for any cartesian square as i have written in the at the bottom of the page the associated square with you see at the horizontal level you have the pullback functors on sub-objects and the vertical rows are just the existential functors and so we want this square to be commutative as soon as the square on the left is cartesian okay so this is part of what we want for a category to be geometric but we also want the arbitrary adjunctions to be interpreted so this means that for any family of sub-objects as i of some object y then this family of sub-objects as a well-defined union so what is a union it is a sub-object such that for any subject s of y the union is lesser than s if and only if each si is lesser than s so we want this to exist for any family fsi of sub-objects so when it does exist for any such family we say that unions are well defined in our category only one not only unions to be well defined but also to be compatible with best charge so this means that for any morphism from x to y we want the pullback of the union to be equal to the union of the pullbacks okay so a category will be called geometric when it verifies all these properties and in fact we have already remarked that any topos is a geometric category and by now when we have a functor between two geometric categories we say that this functor is geometric if it respects first finite limits then the existential functions so this means that for any morphism from some x to y for any morphism p and for any subject x of x then the transform of the image of s by the functor f is equal to the image by the morphism f of p of the transform of the subject s by f okay so we want this property to be verified and we also want f to respect finite unions so if these three properties are verified we say the functor is geometric okay and by now we remark that if we have an arbitrary signature and the geometric category and the sigma structure m in this category then any geometric formula in family of variable phi with associated source a1 and n is interpretable as a sub-object m phi of x of m a1 cross m a n in fact we have already done that in the case of topos and here in the previous definition we have really defined the notion of geometric category in order for the interpretation process to be possible so there is such an interpretation and as the geometric formulas are interpretable it is possible to talk about the models of a geometric theory t in such a geometric category we say that a sigma structure m is a model of t if for any axiom of the theory phi implies phi then the sub-object m phi on m psi verify the inclusion relation m phi included into m psi and so the notion of model is well defined and we can define the category of models of t in c as the full category of the category of sigma structures c on models of t on the remark that if we have a geometric function between two geometric categories it induces a function between the associated categories of models in fact all the definitions were written to in order for this to be verified okay so by now we have the following theorem which is true for any geometric first order theory and the system says that we have what we want so we are able to associate to the theory phi a geometric category c t endowed with a canonical model m t such that the following property is verified for any category c if we associate to a j any geometric factor f from c t to c it's the image of the model m t by f which is well defined as a model of t in c then this is an equivalence of categories for any geometric category c on the second part of the statement is that this couple c t m t is well defined is uniquely determined up to equivalence okay so this means that at the level of geometric functions and of geometric categories on geometric functions the function of models of theory t is representable it is representable by a special category called the syntactic category endowed with a special model which can be called the universal model of the theory okay so this is a theorem and by now we can construct it so let's start with such a geometric theory and yeah before I say before I begin to construct it there is a remark which is the fact that if this theory endowed with this canonical model exists then it is unique up to equivalence so this is the part two of the theorem and this is former okay this is exactly as this is a categorical version of the yoneda lemma if a functor is representable by some object this object is unique up to unique isomorphism so here the functors don't take values in sets they take values in categories so for this reason the usual notion of isomorphism in the context of the yoneda lemma has to be replaced with the notion of categorical equivalence but the proof is exactly the same so this is okay for uniqueness but the difficult point is existence and in order to prove existence we are going to construct this category in a concrete way we shall actually construct such a category so these things we are going to list to give a list of objects a list of morphisms and a definition for the composition law of morphisms okay so let's do it let's start with such a geometric theory tip and we have to define the objects what are the objects of city what are the morphisms of city and what is the composition law of morphisms of city so here we decide that the objects of the syntactic category are just geometric formulas okay so geometric formulas were defined in the first lecture this morning so we consider all geometric formulas up to substitution of variables so we which means that we consider two geometric formulas as equivalents when one is deduced from the other by just a change of notations of the variables okay so this is of course is very natural so then we have to decide what is a morphism the idea is to define morphisms through the graphs so if we want to define a morphism from a formula to another formula from an object to another object in a category where of course the products will be well defined to define a morphism is the same thing to define a graph as a sub-object of the product object of phi of x and psi of y and the product object is of course as to be a formulas in the union of the variables x and y so this means that the morphism from phi of x to psi of y have to be formulas in the union of the of families of variables x and y and when you have such a formula yeah of course a formula will define sub-objects and what you will need in order for a sub-object to be a graph are three in fact three properties first you want the projections of this sub-object to go into phi of x on psi of y so this requirement this request is represented by an implication between formulas we want the formula theta which has to define the morphism to imply both the formula phi in the variable x and the formula psi in the variable y secondly we want the projection on the first part on phi of x to be in order to be a graph and this is represented by the following sequence if the formula phi is verified then there should exist some y such that the formula theta of x y is verified so you see this sequence will correspond to the property for the projection morphism to be on two in order to define a graph and lastly we want this projection on the first component phi to be an isomorphism so it has not only to be on two but also to be a monomorphism and so what does it mean it means that if the property theta is verified both by x on y on by x on y prime it has to imply y equal y prime okay so this we put as definition of formula theta to be provably functional so we want these three sequence to be provable in the theory t yes here i see i see that i have written at the last line are provable in theta in fact it is not theta this is are provable in t provable you want in your theories that these three sequence are provable so by now what will be the the composite of two morphism so here you you just have to think about the following question when you have two morphisms which are given by two graphs what is the graph of the composite morphism and the graph of the composite morphism is given by the formula i have written there at the last line of the part three we want we are considering here three variables x y and z and the definition of the graph of the composite is the image of the intersection of the graphs of the first and two morphisms you see so you take the image so this means you use the existential quantifier on the variable y apply to the conjunction of the formulas theta on theta prime and this defines the graph of the composite okay so here we have defined some things of course we have to verify it is a category and not only it is a category but it is geometric and it represents the filter of models so before we do that we remarked that first that in the definition sorry come back you see in the definition of objects objects are geometric formulas up to substitution of variables so you see that the list of objects does not really depend on the theory it only depends on the signature sigma okay it does not depend at all on the actions of the theory okay this is the first remark the objects only depend on the signature but of course the morphism depends on the notion of probability in the theory t so in order for our definition to make sense we need to make precise what it means for a sequence for an implication between formulas to be provable in the theory so this is another definition a sequence or if you prefer an implication between two geometric formulas it's called provable in a theory of signature sigma it if it can be deduced from the actions of the theory by the rules of logic okay which we are used to to use when we do mathematics when we do mathematics we are always making deductions and in order to make deductions we use implication rules and in fact is this definition we have given the full list of implication rules which are implied so these are all basic rules and every one of us is used to them but it is interesting to to to write them without forgetting any rule in fact I think the first one in history to do that to just list the usual rules of logic is Aristotle and in the context of mathematics of course it was done again by Hilbert so here are the deduction rules so first there is a second cut rule if phi one implies phi two and phi two implies phi three then phi one implies phi three okay then there is the identity rule for any term f true implies f equals f so this means that f equals very f has to be verified all the time then there are the identity rules if f one is equal to f two then f two is equal to f one if f one is equal to f two and f two is equal to f three then f one is equal to f three okay so then there are the substitution rules if we have two terms f one and f two and we consider another term f and suppose that the terms f prime one f prime two are deduced from f one f two by substitution of f to some variable you see we we suppose that f one and f two are in the same variables and we decide to replace one variable by f or we suppose that f prime one f prime two are deduced from f by substitution of f one and f two to some variable of f then of course we have that if f one is equal to f two then f prime one is equal to f prime two on the same goes for relations suppose we have two terms and a relation and by now we have two atomic formulas r one and r two which are deduced from r by substitution of the terms f one f two to some variable of r then if f one is equal to f two it implies that the atomic formulas r one and r two are equivalent each one of them implies the other okay so then there are the rules which define finitary conjunction first any formula phi implies true so this anything implies truth and if we have formulas phi and phi one phi k phi implies the conjunction of the phi i's if and only if phi implies each of the phi i's and there are the corresponding rules for in for arbitrary disjunction so first first uh felicity implies anything and secondly for any phi and phi i's possibly infinite the union of the phi i's the disjunction of the phi i's implies phi means that each phi i implies phi okay uh then uh there is the so-called distributive rules which is a factor that uh um um if we apply a conjunction with some phi to a formula obtained by disjunction we can commute the two operations so phi conjuncted with the disjunction of the phi i's is the disjunction of the phi i of the of the phi i's conjuncted with phi this is unequivalent so in one direction it is the consequence of the previous rules and in the other direction it is a rule we introduced by now there is a rule which defines existential quantification if we have a formula phi in the context x y on the formula psi in the context x then phi implies psi means that uh the existential quantifier and the variable y apply to phi so this considered as a formula in x implies psi so this is the definition of the meaning of the symbol of existential quantification and lastly there is a so-called Frobenius rule which is a fact that existential quantification commutes with conjunction okay so it is written there and so in one direction it has been introduced it has to be introduced as a new rule and in the other direction it is a consequence of the previous rules okay and by now we have the the meaning of provable something is provable in the theory when it can be deduced from the axioms by applying this list of rules so what is remarkable here is that this list of rules is finite it is finite it is completely explicit and so we know with utmost precision what it means to be provable so by now the syntactic category ct is well defined i remind you that in the definition of the category the notion of provability does not appear in the definition of objects which only depend on the signature but they appear in the definition of morphism morphism are formulas which are provably functional in the theory t okay um okay on the earth of course we have to verify that this is indeed a category that this category is geometric and that we can define a model in this category which is universal which means which represents all models in all geometric categories so this we shall do tomorrow and we shall continue with the study of classifying the opposites so for there is top here


Now I think I'm audible. So once again, welcome everybody. I am Sanjay Gupta and I welcome you on Sanjay Gupta Tech School. So from last two weeks, you were learning integration from Ankit and now onwards, I will be taking all the sessions and this week we will be learning about development things. So I will be explaining you different things like all the topics which we discussed in past few weeks, how we can apply those in our recruitment app, right? So I hope now voice is coming and I'm audible. So please confirm if I'm audible. So I hope you had a great weekend and like I feel is also finished yesterday. So I hope you are having enough time now in the evening to practice Salesforce and to learn new things, right? So I hope everybody is able to listen me now. Okay. So once again, welcome those who joined late. So now I'm going to jump onto the slides quickly. So I just wanted to do some chat chat with you. So okay. So let's jump on the slides now and whatever your thoughts are in your mind related to this bootcamp. So you can just share your thoughts in the chat. I'm just reading all the chat messages. So if you have anything in your mind, how this bootcamp is going on and you want to share some feedback because we have almost completed two phases. So we completed admin phase and we completed backend development. So if you have any feedback, any suggestions that you want to give, so that will be appreciated, right? So I'm just waiting for those messages. So in couple of minutes, I will be jumping onto the topic that we are going to discuss today. Okay. So meanwhile, you are just sharing some feedback about the bootcamp and how we can improve and what all things you need in future. So just share your thoughts in the chat so that I can read those and going forward, whatever your suggestions, feedbacks will be there. So I will be including them. So someone is asking about LWC bootcamp. So from next week, LWC bootcamp will be starting. So this week, like in three sessions, I will give you a little bit insight like how we can leverage whatever development things we have done in our recruitment app, right? So from next week, first, we'll be covering the basics of LWC that is HTML, CSS and JavaScript and then we'll be starting that. Okay. So I can see Vinay saying integration part was too good, but I'm getting the session IDX by issue while. Okay. So maybe you can like I will pass your query to Ankit and maybe Ankit will be resolving that. Okay. So yeah, Vladimir, I will be covering platform event stuff, but maybe after a few weeks because I also need needs to do some hands-on with that. So I will be shortly implementing those. So Naveen Kumar, if you do regular practice, then only you will be able to remember everything. So Pooja VS code, I will be demoing when we'll start learning lightning web component, right? So then I will be starting. Okay. So very few comments are there. So jumping on to the real topic now. So I'm going to share my screen so that we can start with the topic. Okay. So as you can see today, we are going to start our development project and in this project, I will be covering few features, those we already discussed, right? So this is part one of development project that I'm going to present in front of you, right? So you can see this is day 66 and part one of development project, right? So moving forward, those who don't know about me. So this slide is for you. So with the help of this slide, you can get to know who is your instructor. So basically I'm running my own venture that is Sanjay Gupta Tech School and under that Tech School, I am running this bootcamp apart from that. Like I created lots of YouTube videos and my courses are available on Udemy as well. And soon I'm going to launch some some like limited seeds batches as well, right? So maybe from July, August, I will be launching some different different boot camps, which will be focusing on a journey of a fresher to consultant, right? So I'm working upon that. So soon you will hear from me regarding those. So that will be done under my own venture that is Sanjay Gupta Tech School. And as you can see, I worked with Salesforce, Traction, Aperio. So these are some companies where I worked on lots of projects and I created lots of scenarios. Those are available on my YouTube channel and in total I have 16 plus years of experience and my experience is very rare. So generally those who are working in education industry, they don't jump into IT and those who are in IT, they don't jump into education industry, but for I'm fortunate enough like I have both industries experience. So right now what I'm doing, whatever I have learned in past six years in IT industry because of my education industry experience, I'm sharing that knowledge with you, right? So this is kind of rare experience and because of that, like people are appreciating my teaching and in that to in IT industry and because of that, I decided to run this bootcamp totally free of cost for everybody across the globe and my primary focus is to help student freshers and professionals to ramp their career in Salesforce ecosystem. So those who are struggling. So I just want to make you comfortable learning Salesforce and want to save your hard earned money, right? So like you can see how systematically all the sessions are planned. So this I'm doing and these are some virtual learning best practices that we are following from the beginning. So I'm just skipping this slide and want to focus on this slide. So you can see today I'm doing 66th session of this bootcamp. So you can see the consistency and I always follow consistency, whatever I want to do, I just focus on the consistency because if you are consistent enough, then you will do something in your life, right? So I have done 66 live session in front of you, which is a big deal and I can bet you like there is no YouTube channel or no organization which have done this ever for whole Salesforce community free of cost, right? Everybody is charging too much amount and I just I decided like let's do something different for the community so that I can save your money and I can give you consistent knowledge week by week, day by day, right? So my request is just do regular practice because it will take at least six months to prepare yourself for any job in Salesforce ecosystem, right? So consistency matters and this is a telegram group which I created for people and this telegram group is very clean. There is no paid promotion. Nothing only knowledge sharing is happening. So you can join this telegram group and you can become the part of the community where lots of freshers and experienced professionals are available and you can ask questions and you can interact each other, right? So this will help you grow and if you have any lead like related to job or you have something related to interview, so you can share in that group so that others can be benefited. So see like sharing is very much important. Whatever you learn day by day, you need to share. So you can utilize this group to share whatever knowledge you have in your mind. It can be related to job. It can be related to interviews. It can be related to like Salesforce technical skills. So whatever skills you have, you can just utilize this group to share it with other people, right? So this is now third phase of Salesforce bootcamp. So you can see right now what I did in last phase, like in last six weeks, we discussed about Apex trigger test class, asynchronous Apex, visual force integration. So that is done at backend, right? That is related to backend development. Now here you will see something different things. So first we'll be covering development project in this week and after that you can see all the topics are related to front-end development. So we'll see how HTML, CSS and JS works. Then we'll see aura component like how we implement aura components in Salesforce because these are not used much but still you need to have knowledge about aura component and after that we'll be focusing on LWC. LWC is very demanding nowadays lightning web component. So right now I decided three weeks but we'll see how things goes in future and if there is a need for one or two weeks, so I will be extending this timeline and we'll be having some sessions on deployments, some sessions on QA skills, some sessions on BA skills. So all those are planned. That will be fourth phase of this bootcamp. So in fourth phase you will be having deployment, QA, BA and some other cloud related stuff, right? So I hope this will help you out. So moving forward, if you have not followed Sanjay Gupta Tech School, so I assure you, please follow this platform on YouTube, LinkedIn, Instagram and Telegram and all the updates will be shared with you, whatever I will be doing in future and all the important links are available in video description so you can just go through and whatever project related things we'll be discussing today. So that project document is also available in the description of this live stream. So you can access it from there, okay? So just one request in return from you, no money, just provide a pure review or feedback on the live stream or maybe on LinkedIn or Telegram, whatever you feel like you want to promote my work. So you can just share a feedback and if you want to show some gratitude or support, so help me to reach till 100k subscribers on YouTube. So share my YouTube channel with as many folks as you can. So you can share this channel with students, freshers, non-tech folks or technical folks, right? So everybody will be benefited because I have something more things planned in future, right? So if you share this channel with other folks, so maybe directly or indirectly, they will be benefited and one more thing I want to announce like soon, like next to next week, I will be starting one more bootcamp. So what I saw like lots of people, those who are students from non-CSIT branch, freshers, those who are from non-technical background, they are struggling to understand logics behind Flows, Apex, Triggers or maybe Lightning Web Components, so where languages those are required for everybody. So I will be launching one more bootcamp that will be based on C and C++ programming languages. So in my opinion, if you want to become a programmer or if you want to switch your career into IT sector, so you must know about C and C++ programming language and in Salesforce, whatever logic building or development you are doing for this, for that, base is basically C and C++, right? So I will be focusing on that. So if you want to upskill your technical knowledge and you see like your relatives, your friends, your junior who are just starting their BTEC or they are in BTEC or like no matter what their branch is, you can just share this channel and let them know like soon C and C++ bootcamp will be there and I will be explaining each and everything in detail live on YouTube. So I think it will benefit lots of people across India. So I think it will be the largest bootcamp related to C and C++ that will be happening on this channel and totally free of cost, right? So I will be explaining all the concept. Theoretically, I will let you know how you can build the logics easily and if you complete that so Apex learning will be very much easy for you. Okay. So after this discussion, let's jump on to the next part of this session, which is Salesforce Development Project, right? So I'm going to show you the recruitment app that we implemented as part of admin project because what I'm going to do, I'm going to extend that admin project that we implemented already so that we can have few features implemented as part of development project, right? So lots of folks are writing that recruitment project as part of their skill development. So admin is not sufficient. You just need to focus on the development part as well, right? So if I take you further, so here you can see we have a session tracker that we are following. So in this session tracker here it is clearly mentioned like I'm sure lots of people joined this session today only and they don't have, they might not have idea about like what is a recruitment app and what we did in admin project. So here you can see we have this project dock link and if you scroll up so you will find 16 to 21 session. So for your ease, I just created this project document link and this project document link is having all the admin related sessions. So day 16 to 21, these six videos are basically covering all the Salesforce admin project implementation. So you just need to build the data model. This data model we already implemented. So we created position job application candidate job posting review and employment website objects. In this part of this project like development project, we will be creating two more objects that is candidate skill and skill object, right? So these two objects we also need to implement. So maybe tomorrow or day after tomorrow, we'll be creating and we'll be implementing some of the logic around this. So this will be your complete recruitment app object relationship. So about these six objects you can go through with these six videos, right? Then only you will be able to follow this development part. Now if I go down, so here you can see everything about development, everything about the project is mentioned. So after this development, like I will little bit modify this project as well, project description. So if I go down here, you will see something related to Salesforce development, right? So if you already have implemented that recruitment app. So in real time, like whenever any consultant is working on the project as a developer. So what happens? They have client requirements like we have something that needs to be built, right? So you can see here we have a requirement. So the thing which I highlighted it is a requirement. So for example, you are working on a project which is based on recruitment application and in that recruitment application, we have two objects. One is position and one is candidate. So now the client requirement is there should be a block or there should be a component on the home page. So you can see there should be a component on home page. If we go to home page through that component, so we need to see two options in a pick list that is position or candidate and if I select position, so position record field should be available if I provide some input. So position record will be created and there should be a link if I click on that link. So I should be redirected to that newly created record and same with the candidate. So this way your requirement will be available. So right now this requirement is mix of the client requirement as well as some solutioning is also there like you will be creating screen flow. You will be placing that screen flow on the recruitment pay recruitment app home page. So this is kind of technical solutioning of the problem. So in real time what client will be doing client will be just saying like on home page we have a component. We should have a component where if we select position the position record should be created if we select candidate. So candidate record should be created. So this way you will be having the requirement and basis on that requirement like this I return as a technical specification, right? So when we'll be having business analyst session, so at that time you will have clarity like how you will be having client requirement and how that client requirement will be written in a technical specification. So there are different roles business analyst will be gathering the requirement architect will be writing the technical solutioning and developer will be actually building those solutions. So if you're working as a developer, so you will be having this technical specification with you and this technical specification will be provided by the architect. So right now as like we are learning development in this week, so you can think yourself as a developer and let's say I am an architect. So I just provided you this technical solutioning. So we just need to implement this solutioning as a developer. Right? So this is the idea. Okay. So I hope everybody understood.  So everything whatever is written over here one by one like in three days will be implementing. So you can see first is related to screen flow. Then we have record trigger flow or we can implement this through trigger as well. So this will be basis on your choice. Okay. Then we have schedule triggered flow and we can implement schedule apex as well and for apex trigger and test classes the detailing I will be providing you. So till tomorrow use cases related to apex trigger and test classes will be available in front of you in this document, right? So this way up small, small requirements are available so that whenever you see that recruitment application, so you will be seeing all the admin implementation as well as development implementation also. Okay. So you might be thinking like flow is part of admin or developer. So it is kind of mix. So sometimes developers implementing flows. Sometimes admin also implement flow. So flow is very much important and flow is purely like logic based unit to apply some logic. So right now what we are going to do we are going to create a screen flow and that screen flow will be placing on the home page and through that screen flow either position or candidate record will be created. Okay. So if you want to implement this along with me so you can do if you want to watch like how I'm implementing so that is also welcome and later you can just watch this stream again it will be available on YouTube forever and through that recording you can just see how I implemented and you can implement it at your own. So I'm jumping to the org. And here I'm going to open my recruitment application. So this is my recruitment application that I created as part of admin projects. So you can see home position candidates job application reviews employment website job posting report all the tabs are available here and if you click on any tab so you will see lots of records are there that we created so lots of functionalities we implemented and by any chance if you missed and you are interested to implement that project because without implementing that project you won't be able to complete the development related features as well. So my suggestion would be like all the previous recording links are available in the beginning. So one by one just go through the recording follow all the steps those I implemented so it is it is totally six hours work I did it in six hours. So if you devote six hours you will be having that recruitment project implemented in your org. Okay. And after that whatever I'm going to explain right now you can just follow these streams and you will be able to implement those in your org as well. Right. Okay. So moving forward so here like we have a home page and on this home page like somewhere I will be placing that screen flow so that we can create contact and position records. So jumping here I'm just refreshing this page. Okay. No. So I'm just opening setup from here. And in setup I'm going to search for flows. So flows are available here. So I'm just clicking on new flow so that I can create a new screen flow. So here we have first option that is screen flow.  So I'm going to create a screen. So here screen label will be object selection. Right. So my screen label is object selection. Now here I'm going to select a pick list. So here I just want to show two options. User will be selecting position or candidate. So in this pick list like label will be select an object and I'm marking it as required. Now here I need to create choices. So I'm just clicking on new choice resource and from here I will be selecting choice. Okay. So in flow I'm going to create these choices manually. So I'm just first selecting choice and here I'm writing label as sorry API name as position choice label will be position and choice value will be position. Okay. So this way I just need to create first choice resource that I'm clicking on done. So this option is created now again I'm clicking on add choice and clicking on new choice resource clicking on choice and then candidate. So this I'm copying and pasting everywhere like choice label and choice value and clicking on done. So this way two options are created here. One is position and one is candidate right. So this is my first screen that I created now at bottom right corner I have a done button so I'm just clicking on that done button. So this way my first screen is created now if you select position or candidates accordingly I should be having two directions. Okay. So what I'm going to do clicking on plus and and I'm here I'm selecting decision. So we need we just need to check the object which we selected. So I'm writing position question mark here. So position we already used for choice. So here you can see for API we are getting error like it is already used. So I'm I'm going to change it. So I'm writing it as is position and we created a pick list on screen component. So I'm selecting it like it is select an object. Okay. So if it is equals to position so you can just search for position that choice will be available here. So this is our first outcome. Now I'm clicking on plus. So here I'm writing is candidate. So if it is candidate so again select an option equals and here I'm typing candidate. So if my object selection is equals to candidate. So this will be my second outcome. We have default outcome as well if you want to utilize you can use it as well but I created my own custom outcomes is position is candidate. So I'm going to use them. Okay. So here we have these here we have this decision and we have these lines where we can create more screens. Okay. So now yeah. So I'm sorry Mohan I think in previous videos there were issue with Mike but now I think it is resolved. So now you won't be facing any issue and okay I was on this thing position and candidate. So first I need to create position and then I need to create candidates so moving here clicking on position if I click on new so we have two things we have technical position record type and non-technical position record type and if I click on next so here we have this required field that is position name and we have other fields as well. So first of all what we need to do like if I clicked here we have two record types technical position and non-technical position. So before moving forward we just need to get these record type IDs. Okay. So that particular type of record we can create. So what I'm going to do from here I'm just using get records. Now you might be thinking why I'm getting this record type ID because in flow I don't have record type ID but at the time of position record creation I need to pass record type ID then only that position record will be associated with that particular record type. So I'm going to get record type info now record type is also an object record type is also an object. So from here I'm selecting record type now here we need to pass the record type name unique name so for that you will be choosing this thing developer name record type developer name so I'm choosing developer name equals now what I need to do I need to go to object manager and I'm searching for position object under record types I will find technical position if I click on technical position. So here I will be having developer name. So this technical position this is the unique name that is record type name so I'm just copying it. It is basically a unique name and here I'm going to paste it. Right. So if record type developer name is equals to technical position so that record will be queried and here we will be selecting only the first record because we are going to query only one record for that particular record type. Okay. So I'm just clicking on done. So here we have record type information right now after that I'm creating a screen and the screen label is position info so the screen will be receiving position information so here I'm having a text. So this text will be having the position name so this text I just picked from left you just need to search click on this text it will be available at right hand side then here you can provide label and API name. So this is the position name. Now if I move here and try to create new position so let's see what all fields available here so we have status so we can have that as well and status is a pick list right. So let me show you how we can have this pick list in the flow. So from left I will be searching for pick list if I click on this pick list it will be available in the middle of the screen as a component. So here I'm writing its label as status. Okay for this position I'm marking it as required and status so from here I will be clicking on new choice resource. Now with this pick list what I want to do I just want to connect the existing status pick list that is available under position object. So what I'm going to do from here I will be selecting pick list choice set labeling it like providing API name as position status then here I'm writing position so position is our custom object which is available here then data type pick list and pick list name is status. So this way you just need to configure this new choice resource that is pick list choice set right. If you provide all these information then just click on done and your object pick list is now connected with this pick list which is available on the screen right then just click on done. So this position screen is created all the required information like position name status you will be receiving from here and now next is we need to create the record whatever information we receive we are receiving through the screen basis on that we need to create the record. So I'm just selecting this create record element. So we will be creating position we need to create one position so I'm selecting one and we have data in separate resources and literal values and then position object I'm selecting then here I just need to map the values. So name I will be napping with position name then I need to map the status so status I am going to map with status. So here we have two status one is pick list choice set and one is screen component. So remember you will be selecting this screen component status pick list right now third is record type. So if you search we need to populate record type ID. So if we if we don't query record type information so we won't be having record type ID and here we need to pass the record type ID right. So that's why I just use that get record element to query the record type. So here I'm just using get record info. So get record type info dot and I'm just typing ID. So here we have this ID field. So this way you will be having record type ID. So this is get record element and through that I'm just having the ID. So the position which I'm going to create this position will be of technical record type. Similarly if you want to create a record for non-technical so you need to query that as well with the help of get record. Okay. So this way it is done now in our requirement it is mentioned like whenever position or candidate record is created. So what we need to do we just need to click on a link and through that link we need to redirect to the newly created record. So by default it doesn't happen by default through screen flow it doesn't happen but we can show a message and if you click on that message so we can redirect to the newly created record. So for that what I'm going to do I'm just checking this check box so that here I can create a variable where I can store the newly created position ID. I'm repeating again what I need I just need the newly created position record ID so that I can redirect to that particular record right after clicking on some text. So here we just need to create a variable so I'm clicking selecting new resource from here I'm selecting a variable so I'm just repeating the steps I just clicked here then clicking on new resource from here I'm selecting a variable variable name is position ID and data type will be text that's it you don't need to check all these checkboxes those are not required as of now and click on done. So this way the newly created position record ID will be stored in this position ID. Right now I'm clicking on done so this is one path that is completed now we need to do the same for candidate as well. So if I move here and click on candidates if I click on new so for candidate I think we just need to provide first name last name and I don't think like fields are required so we'll be fetching first name and last name and through that we'll be creating candidate and we don't have any record type here okay so it will be quick. So here I'm going to create a screen screen label is candidate info and from left I'm searching for text I clicked on text labeling it as first name then again I'm clicking on text labeling it as last name right. So this way this screen is created which is quite easy clicking on done and now here I'm selecting create record element so it will be creating candidate records one record use separate resources and literal values then search for candidate then here we have first name so just map it with first name screen component then we have last name so map it with last name screen component right. So Aris is asking how we can get non-technical record type yeah so you are right we need to use another get record component if you want to get idea of that particular record type so through one get record you can get one record for particular record type because you can get multiple records as well but we are applying a filter condition like if record type name is matching with particular record type then only that record should be fetched so record type names are unique so at a time one record will be fetched. So this way this data is mapped now again manually assign variables so here I'm going to create new resource this will be off type variable and candidate ID then here I'm selecting text and clicking on done. So this way both position and candidate IDs will be stored in these two different variables and I'm clicking on done right now we need one more screen so after this I will be having a screen so we need to show position message so here what I'm going to do I'm using this display text so confirmation message one and here congratulations position record is created successfully and click here to be directed to record so this is the text where I will be creating a link and if I click on that link you will be redirected to the newly created record so here you can see this button is available right this button is available it is for link if I click on this link so it will show me like here I can type the URL okay. So here what URL I need to type so basically what I need to do I just need to put slash then curly basis then exclamation sign and then I will be writing position ID the variable which I created right so this I'm typing and then clicking on save so this way you can see a hyperlink is created and on this hyperlink we just added this now you might be thinking why I use slash nothing is written before slash so basically if you put this slash so before this slash whatever this domain name like whenever we open any record let me open a record so here like if you if you focus on the URL so we have this domain in the beginning we have this domain so this domain will be available automatically if you put that slash that domain will be available automatically if you put that slash and this will give you the position ID where we actually want to redirect okay so this way it is for position. I'm clicking on done now I just need to create it for candidate as well so now what I'm going to do I will be copying this element and pasting it. So I'm just clicking on it. Here we have copy element so I'm copying it clicking on plus and here I'm selecting paste one element and opening it so here we have this message so let me just change the label of this so copy of position so here I'm writing candidate message so this will be the API name now here I just need to modify this so it will be confirmation message to and congratulation then here I am writing candidate record is created successfully and here with this link I am providing candidate ID and clicking on save right so this way the screen flow is created and now what I can do I'm just clicking on save so create position or candidate record okay so this way either position or candidate record as per the requirement of user will be created so I'm just clicking on save activating it and if you have any doubt like before activation you want to test it you want to debug it so you can just click on debug test it and then click on activate right so either way you can go and you can just test and then use so what we need to do just go to home page and on recruitment page recruitment app home page is available and from here through this gear icon what you can do just click on edit page if you click on edit page so here you will find this lightning app builder and in this lightning app builder you will be able to place your flow so from here I am just searching for this flow component and I'm going to place it on the top and from here you will be having lots of flows so you just need to search for your flow so here it is create position or create candidate record so just click on it so it will be available click on save if activation is required so activate otherwise in our case activation is already done so if this page is already assigned for recruitment app only so I'm just clicking on back and on home page you will see a flow screen flow and with the help of that flow you will be able to create position or candidate as per the requirement so here is the flow right here we have two options we have position as well as we have candidate if I zoom in so you can see position or candidate options are available right now what I'm going to do first time selecting position so I will be creating both the records first time creating position clicking on next here I need to provide the position and status so recently if you know Salesforce announced one more certification that is for sales representatives so I'm creating a position for that role sales representative and status is new position right and clicking on next so here you can see so this message is available and here we have a link if I click on this link I will automatically be redirected to that newly created record so I'm clicking on this link and you can see new tab is open and I'm on positions tab and the positions position record that I created right now is available in front of me and position image sales representative and record type is technical position right so this way you can see I'm able to implement this flow and this record is created and if I click on this link then only I will be redirected to the newly created record so this way like whenever you have some requirement in your project so that requirement you need to understand or maybe your technical architect will be understanding that technical architect will be defining some technical specifications for you so that as a developer you will be able to implement the solution and nowadays like companies are hiring people basis on multiple skills like you should have business analyst skill QA skill development skill admin skill right so that's why learning these skills like you should know how to create flow no matter on what role you are working because if you have those skills you will be having enough confidence right so I hope this way you are able to understand it now what I'm going to do I'm going to refresh this page or maybe like I could have clicked on finished button so if I click on that finished button so through that automatically this page will be available so right now what is happening here from this pick list we can select one option so we have two objects position and candidate so if I select candidate and click on next so here we have two options first name and last name right so I just need to provide two options either I can provide first name or last name so that a candidate record will be created so I'm creating a candidate record as per my name so so let me just check whether it is available already or not otherwise the duplicate will be okay so I just need to check so here yeah with my name this record is already available so let's say I'm creating with this name and clicking on next and here you can see this record is also created and if I click on this link so automatically it is redirecting and one more record is created and here you can see candidate number is populated automatically because it is a auto number and first name and last name is also provided okay so this way what you can do you can just understand the requirement and you can build the solution as per the business requirement so you can think like an architect you can think like a developer and accordingly you will be implementing the solution so in this process if you have any doubt so I know like I already explained it in detail still if you have any problem you can ask so let me just open the chat so that I can show you the questions as well yeah so someone is asking like cider ready is asking about position non-technical so for that case what you need to do in this flow you have to first ask like you you will be having a screen here you will be having a screen which will show you which type of position you want to create technical or non-technical and basis on that you will be having a decision and basis on that decision you will be having the elements so this way like you can consider that for your assignment like you can create a screen then have a decision and have to direction so that you can implement those two directions to create the records okay I'm just going to add this in this document right so create a process to gather position both technical or non-technical or candidate information like so I just showed you how we can gather position related to technical position now if you have both the requirements so what you need to do I'm just explaining it again you need to have a screen here that screen will be showing you two options so you can use radio buttons for that or you can use pick list basis on that you can apply decision and you can have two directions one for technical one for non-technical for technical you will be using get record type info for non-technical you need to create separate get record info get record type info right so this way you can implement and you can try and let me know if you are not able to implement so tomorrow I will modify this flow and we'll let you know how we can do that okay so I can see some more questions are there yeah so when I already answered your question you can show a drop down where you can ask record type info as well yes Bhavani so first screen will be same object selection screen will be same and after that you will be adding that screen so at this position you will be adding the screen once this decision is checking like you are trying to create position record so is position after that you will be creating a screen which will be having a pick list technical or non-technical or you can have radio button as well and basis on that selection you will be having two directions one for technical and one for non-technical yeah so choices which I created those are API name but we need to provide label and values as well so keep everything same okay so this much so tomorrow we'll be doing some more stuff this document link is already with you right so it is available in the session tracker from here you can track it and it is available in our exercise sheet also so from here also you can have it so this is a document we are this first use case we implemented and these are some more use cases so what I want to do you try these first through both of these record triggered flow or trigger and when I will be implementing so what I will do I will implement like couple from record triggered flow and couple from trigger so that both aspects will be implemented but for you like all four use cases you need to implement through record trigger flow or as well as trigger like so once you test it with record trigger flow then you can deactivate it and then you can implement a trigger for that and after that you can write a test class also right so you will be having all the scenario and mark my words like in real time projects also we have a requirement in the same way so this is a technical specification document when we'll be having business analyst related sessions so they are you will get to know like how in layman terms business requirements will be there and how we will be converting that into technical specification right so here like technical solution is there like what you need to do but you can just read it in layman terms as well so here we have this requirement like if a position is open for more than 30 days then close the position automatically so this is the business requirement right run a job weekly on mid Friday midnight so this is business requirement right and later like I just added some technical specification as well schedule triggered flow this is also technical specification so business requirement will be straightforward then you just need to refine that you need to write down the solutioning of that and then then only you will be able to implement that okay so this is kind of technical documentation from the beginning and in real time like business requirement will be in different way so in business analyst session you will be having you will be knowing the differences like how be a receives requirement from the client and how architect write them as a technical specification and whatever we are doing it is kind of development okay so I hope with this session you got to know how things we implement as a development project so this is just an idea lots of use cases are already available with you and till tomorrow you will have some more use cases related to apex trigger and test class so I think if you are new to Salesforce ecosystem you are student or fresher or career gap guy or you are like shifting from non technical background to technical background so just try to implement these don't think you are not good in development or programming right just give it a try because I already explained you everything so you can just go step by step and you can try it like implementing the way I did okay and those who are new for them I already told you before starting all these you just need to see the six hours video so I just implemented whole admin project in six hours so if I am able to implement that in six hours you should be and you can see all these recordings these are hardly one hour length so you can just implement and soon you will be having that complete app in your system and basis on that you can just start developing as well and like this is a reference from trailhead so that object model is available with trailhead that I leveraged provided some additional features as per the current requirement of the market so after implementing development thing you can consider this project as a whole having admin plus development stuff right and in your CV you can write like for a skill development skill improvement upskilling you just implemented this project and basis on that like you can give some interviews okay so this is part one of Salesforce development project tomorrow like I will be trying to implement lots of scenarios in front of you and if three days are not sufficient so I will be adding one more day or maybe tomorrow and day after tomorrow I will stretch a little bit more so maybe we'll be having one hour 30 minute sessions tomorrow and day after tomorrow so that everything will be covered properly right and once we will be completing lightning web components so maybe we'll be having few scenarios related to lightning web components as well and we'll try to implement those with this project only so with this project everything will be done like admin flow back in development and front end development so I think this is enough for you to explain anything in an interview if you are a fresher student career gap having career gap or non tech for and if you are an experienced person so I think it will be brushing up your skills and like if you're jumping from QA or be a to development so that way it will help you shortly. So this is it for today thank you so much for joining this session and don't miss tomorrow and day after tomorrow session because you will be learning lots of things by going through this stream and share Sanjay Gupta Tech school with as much people as you can and help me grow. I'm helping you so that you can grow and because of you only I will be able to grow so I need your support. Right so if you have like now if you have any doubt you can ask otherwise I'm done with the session. So there is one question all mandatory fields need to be assigned. Yes. So Cider is asking all mandatory fields needs to assign the flow. Yeah. So whatever mandatory fields are available on the record. So those you need to assign while creating the record. So Daniel is asking will be record. So I didn't get you're asking about the recording or something else and one more thing if you want to share some feedback so you are open. I would love to see your comments in the chat. So when I can you ping me this issue separately in the telegram so that I can forward this to Ankit Ankit is out of station this week. So maybe once he's back so he will be able to answer. And maybe like I will have him once again for one week to three sessions so that some some topics are remaining so he will be covering those as well. Okay. I don't see any question. Someone is asking about debtorama. So no right now it is not part of this boot camp. Okay. So thank you so much for joining this session. I am just ending the session and see you tomorrow. Thank you everybody. Bye.