Author: Amjad Izhar

  • Microsoft Project 2021: Comprehensive Guide

    Microsoft Project 2021: Comprehensive Guide

    The provided text from “01.pdf” offers a comprehensive introduction to the Microsoft Project interface, explaining the contextual ribbon, the “Tell me” search box, and the timeline view. It details the Gantt chart’s components and customization options, along with the status bar’s functionalities for view switching and task scheduling. The text also clarifies the role of ribbon tabs in organizing commands and introduces various methods for switching between project views. Furthermore, it describes tables as a way to view and edit different project information and outlines exercises for practicing basic navigation and customization, as well as configuring project options and calendars. Finally, the text differentiates between manually and automatically scheduled tasks, explains linking tasks and task dependencies, describes task constraints and viewing options, and details how to organize projects with summary tasks and subtasks, including importing tasks and managing project structure, deletion, WBS codes, and outline codes for resource structures.

    Microsoft Project Review: Project Interface and Task Management

    Quiz

    1. Describe the purpose of the contextual ribbons in Microsoft Project. Provide an example of when and why a contextual ribbon might appear.
    2. Explain the functionality of the “Tell me what you want to do” box. What are two ways a user can access and utilize this feature?
    3. What are the two main components of the Gantt chart view, and what information does each part primarily display? How can a user adjust the size of these components?
    4. Identify at least three elements found in the status bar at the bottom of the Project interface and briefly explain the information or functionality each provides.
    5. Explain the purpose and benefit of the Quick Access Toolbar. How does it differ from the ribbon in terms of accessibility?
    6. Describe the primary function of the Task tab on the ribbon. Give two examples of commonly used commands found within this tab.
    7. What is the significance of setting the default start and end times in Project Options to match the project calendar? Why is it important to apply these settings to “all new projects”?
    8. Explain the fundamental difference between automatically scheduled and manually scheduled tasks in Project. How does Project handle date and duration calculations for each?
    9. What is a milestone task, and how is it typically represented visually in the Gantt chart? How does a milestone task affect project duration?
    10. Describe the purpose of a summary task and its relationship to subtasks. How are the duration and start/finish dates of a summary task determined?

    Quiz Answer Key

    1. Contextual ribbons in Microsoft Project are designed to display commands that are relevant to the currently selected element or view. For example, if a user clicks on the timeline, the “Timeline Format” ribbon appears, providing tools specifically for managing and formatting the timeline view. This helps to keep the interface organized by showing only the necessary tools.
    2. The “Tell me what you want to do” box allows users to search for specific commands within the Project ribbons or access help documentation on particular topics. A user can click in the box and type keywords related to the command or help they need. Alternatively, the keyboard shortcut Alt + Q will immediately place the cursor in this box for quick searching.
    3. The Gantt chart view consists of a task table on the left and a graphical chart on the right. The task table lists all project tasks in a grid format with columns for information like name, duration, and start/finish dates. The chart uses horizontal bars to visually represent the duration of each task and their relationships. Users can adjust the size of these components by hovering the mouse over the vertical border between them and dragging it left or right.
    4. Three elements found in the status bar include: task scheduling mode (indicating whether new tasks are Autos scheduled or manually scheduled, which also acts as a toggle to switch between modes), the current view name (displaying the view the user is currently working in), and the zoom slider (allowing users to zoom in or out of the project view).
    5. The Quick Access Toolbar provides a customizable collection of frequently used commands that are always visible, located just above or below the ribbon. Its purpose is to offer quick and easy access to these commands without needing to navigate through different ribbon tabs. Unlike the ribbon, which is context-dependent, the Quick Access Toolbar remains constant.
    6. The primary function of the Task tab is to provide access to commands related to managing and formatting individual tasks within a project. Two examples of commonly used commands found in this tab include “Cut,” “Copy,” and “Paste” for editing tasks, and options for formatting task fonts and styles.
    7. Setting the default start and end times in Project Options to match the project calendar ensures that when new tasks are created, their default working hours align with the defined working times of the project. Applying these settings to “all new projects” makes these synchronized default times consistent across every new project a user creates.
    8. Automatically scheduled tasks have their start and finish dates and durations calculated automatically by Project based on dependencies, constraints, and resource assignments. Manually scheduled tasks allow the user to directly input and control the start and finish dates and duration, with Project providing less automation in scheduling.
    9. A milestone task represents a significant event or checkpoint in a project with zero duration. It is typically visually represented in the Gantt chart as a diamond-shaped icon. A milestone task does not inherently increase the project duration; its placement indicates a point in time.
    10. A summary task is a higher-level task that groups related subtasks together, representing a phase or a major component of a project. The duration of a summary task is determined by the overall span of its subtasks, from the start date of the earliest subtask to the finish date of the latest subtask. Similarly, the start and finish dates of the summary task reflect the earliest start and latest finish dates of its constituent subtasks.

    Essay Format Questions

    1. Discuss the advantages and potential challenges of splitting a large project into multiple subprojects linked to a master project and a shared resource pool. What factors should a project manager consider when deciding whether to take this approach?
    2. Compare and contrast outline numbering and Work Breakdown Structure (WBS) codes in Microsoft Project. In what situations might one be preferred over the other for identifying and structuring tasks?
    3. Explain the concept of custom fields in Microsoft Project and discuss their benefits in project management. Provide specific examples of how different types of custom fields (e.g., text, number, flag, outline code) can be utilized to enhance project tracking and reporting.
    4. Describe the process of setting up and utilizing recurring tasks in Microsoft Project. What are the key considerations and potential limitations of using recurring tasks for project scheduling?
    5. Discuss the various methods for managing and tracking resource costs in Microsoft Project, including standard rates, overtime rates, cost per use, and cost rate tables. How can project managers account for changes in resource costs over the course of a project?

    Glossary of Key Terms

    • Contextual Ribbon: A set of commands and tools in the Microsoft Project interface that appears and disappears depending on the currently selected element or view, providing relevant options for that specific context.
    • Gantt Chart: A horizontal bar chart used in project management to visually represent the project schedule, showing tasks, their durations, start and finish dates, and dependencies.
    • Timeline View: A visual summary of key project tasks and milestones displayed horizontally at the top of the Gantt chart view, providing a high-level overview of the project schedule.
    • Status Bar: A horizontal bar at the bottom of the Microsoft Project window that displays helpful information such as the current task scheduling mode, view name, and options like the zoom slider.
    • Quick Access Toolbar: A customizable toolbar located above or below the ribbon that contains frequently used commands for quick and easy access.
    • Task Tab: The primary ribbon tab in Microsoft Project that contains commands related to managing and formatting individual project tasks.
    • Project Calendar: Defines the working and non-working days and hours for a project, influencing the scheduling of tasks.
    • Automatic Scheduling: A task scheduling mode where Microsoft Project automatically calculates task start and finish dates and durations based on dependencies, constraints, and resource assignments.
    • Manual Scheduling: A task scheduling mode where the user directly inputs and controls the start and finish dates and duration of a task, with less automated scheduling by Project.
    • Milestone Task: A task with zero duration that represents a significant event or checkpoint in a project schedule.
    • Summary Task: A higher-level task in Microsoft Project that groups related subtasks and represents a phase or major component of the project; its duration and dates are determined by its subtasks.
    • Subtask: A smaller, more detailed task that is part of a larger summary task in a project hierarchy.
    • Work Breakdown Structure (WBS): A hierarchical decomposition of the total scope of work to be carried out by the project team to accomplish the project objectives and create the required deliverables. In Project, WBS codes are unique identifiers assigned to tasks.
    • Outline Numbering: A hierarchical numbering system automatically applied to tasks in Microsoft Project based on their indentation level, reflecting the project’s structure.
    • Custom Fields: User-defined fields in Microsoft Project that allow for storing and displaying additional information about tasks, resources, or the project beyond the standard fields.
    • Lookup Table: A predefined list of values that can be selected for a custom field, ensuring data consistency.
    • Graphical Indicators: Visual cues (icons or symbols) that can be displayed in custom fields based on defined criteria or formulas.
    • Formula (in Custom Fields): An expression used to automatically calculate the value of a custom field based on other project data.
    • Cost Variance: The difference between the budgeted cost and the actual cost of a task or project.
    • Outline Code: A type of custom field that allows for creating a hierarchical coding structure to represent different aspects of a project (e.g., cost centers), where the user manually defines the code values.
    • Recurring Task: A task that repeats at a specified interval (daily, weekly, monthly, yearly) over a defined period.
    • Budget Cost: The planned or estimated cost for a task, resource, or the entire project.
    • Cost Rate Table: A feature in Microsoft Project that allows for defining multiple standard and overtime rates for a single resource, which can be applied to different tasks or at different times.

    Briefing Document: Microsoft Project Interface, Task Scheduling, Project Structure, Customization, and Cost Management

    This document provides a detailed review of the main themes, important ideas, and facts presented in the provided excerpts related to using Microsoft Project. Quotes from the original sources are included where appropriate.

    1. Understanding the Microsoft Project Interface:

    • Contextual Ribbons: The ribbon at the top of the Project window changes based on what the user has selected. For example, selecting the Gantt Chart view displays the “Gantt Chart Format” ribbon, while clicking on the timeline activates the “Timeline Format” ribbon.
    • “ribbons will appear and disappear depending on what we’re clicked on that’s why we call them contextual”
    • “Tell me what you want to do” Box: Located next to the ribbon tabs, this search bar allows users to find specific commands or access help documentation. Typing keywords like “timelines” will provide a list of related help topics. The keyboard shortcut “Alt + Q” quickly jumps to this box.
    • “what I can do from up here is that I can use this little bar to search for different Comm commands on the ribbons if I was struggling to find something or this is where I can come to get help on something specific”
    • Timeline View: Situated just under the ribbons, the timeline provides a visual overview of the project. It can be toggled on or off via the “View” tab.
    • “the timeline is a really nice way of just kind of getting an overview of everything that’s going on on your project”
    • Gantt Chart View: This is the primary working area, consisting of a grid listing tasks and a visual representation of these tasks as bars showing duration. The size of both sections can be adjusted by dragging the border between them. A horizontal splitter also allows for adjusting the space allocated to the timeline and the Gantt chart. Scroll bars enable navigation through the task list.
    • “the Gant chart consists of two parts really we have all of our tasks listed in a grid form and then on the right hand side we have that represented with these visual bars which make it really nice and easy for us to see the duration of each task and how all of our tasks link together”
    • Status Bar: Located at the bottom of the window, the status bar displays information such as the default scheduling mode for new tasks (Auto Scheduled or Manually Scheduled). Clicking on this area often acts as a toggle to switch between these modes. The right side of the status bar allows users to switch between different project views like “Task Usage,” “Resource View,” and “Resource Sheet.” A zoom slider is also present for adjusting the magnification.
    • “if you take a look over on the left hand side you can see it’s telling me that all new tasks are Autos scheduled and if I click on this I can switch between Autos scheduled and manually scheduled tasks”
    • Quick Access Toolbar: Found above the timeline and below the ribbons, this customizable toolbar allows users to add frequently used commands for quick access, eliminating the need to navigate through the ribbons.
    • “this is a customizable toolbar which allows us to add commands that we use frequently to it so that they’re quick and easy to access and we don’t have to hunt through the ribbons”
    • Ribbon Tabs: These organize commands logically into groups. Common tabs include:
    • Task Tab: Contains frequently used commands like cut, copy, paste, font formatting, task management (updating progress, linking/unlinking), scheduling mode, and adding summary tasks and milestones. The “Properties” group here provides access to project information.
    • “the task tab this is where you’re going to find a lot of the commonly used tasks… it’s also where we can go to manage everything related to our tasks”
    • Resource Tab: Provides tools for managing project resources, including assigning resources, creating resource pools, and accessing leveling options.
    • “the resource tab is where we would go for everything related to resources that we’ve added into our project”
    • Report Tab: Used for creating various project reports to analyze data, including cost and progress reports, and visual reports.
    • “the report tab is where we come to create reports in Project once you have your project up and running you’re you’re probably going to want to start running some reports to analyze that data”
    • View Tab: Enables users to change the project view (e.g., Gantt Chart, Task Usage, Resource Sheet), toggle the timeline, and manage window arrangements.
    • Project Tab: Contains high-level project management commands, including accessing project information, changing working time, defining WBS codes, and managing resource pools and master projects.
    • “the project Tab is where you’re going to find all of your project wide settings and information”

    2. Managing Project Calendars and Options:

    • Project Calendar: Defines the working and non-working days and hours for the project. The standard calendar is initially set to 8:00 a.m. to 12:00 p.m. and 1:00 p.m. to 5:00 p.m. Users can modify the working time of the standard calendar or create new custom calendars (e.g., for part-time staff). This is done via “Project” tab -> “Properties” group -> “Change Working Time.”
    • “we need to go to the project Tab and in the Properties Group Change working time”
    • Project Options: These settings apply to the Project application as a whole or to the currently open project. It’s crucial to synchronize the “Calendar options for this project” (accessible via the “Options” button in the “Change Working Time” dialog) with the defined project calendar. This includes setting the default start and end times to match the project’s working hours. For changes to apply to all new projects, ensure “All New Projects” is selected in the calendar options.
    • “the final thing you want to check in here is right at the top where it says calendar options for this project and we have the project that we’ve got open right now listed now if we click the drop down we want to make sure we change this to all new projects”
    • Calculating Days per Month: Project estimates 20 working days per month based on roughly four weeks per month and five working days per week (4 * 5 = 20).
    • “if you’re wondering how it calculates this 20 days per month project basically says there’s roughly four weeks in a month and there are five working days per week so 4 * 5 is effectively 20 days per month”

    3. Automatic vs. Manually Scheduled Tasks:

    • Default Scheduling Mode: New tasks can be either “Manually Scheduled” or “Auto Scheduled.” The default setting can be changed in “File” -> “Options” -> “Schedule” under “Scheduling options for this project.” To change the default for all new projects, modify the setting at the top of the dialog. The status bar also indicates the current default scheduling mode for the open project.
    • “notice it says any new tasks that are created are going to be manually scheduled and this applies to this project only… I want to change this so that every task I schedule is Autos scheduled across all of the projects that I create”
    • Auto Scheduled Tasks: Project automatically calculates task dates and durations based on dependencies, constraints, and resource availability. This is generally recommended for large, complex projects.
    • “Autos scheduled tasks mean that project is automatically going to calculate task dates and durations which is extremely helpful particularly for large complex projects”
    • Manually Scheduled Tasks: Users have full control over the start and finish dates and duration of these tasks. Project provides warnings if there are scheduling conflicts but does not automatically adjust dates. This mode can be useful for tasks with uncertain timelines or when more control is needed.
    • “With manually scheduled tasks on the other hand project gives you complete flexibility and control over the scheduling of those tasks”

    4. Utilizing Milestones:

    • Definition: Milestone tasks represent significant checkpoints or key events in a project and have a duration of zero days. They do not affect the project’s overall duration or resource time.
    • “Milestone tasks don’t have any duration so it’s always going to default to zero days… Milestone tasks don’t increase the project duration in any way or reflect on the work or resource time”
    • Insertion: Milestones can be inserted via the “Task” tab -> “Insert” group -> “Milestone.” They are typically inserted above the currently selected task.
    • Representation: In the Gantt Chart, milestones are visually represented by a diamond icon on the timeline.
    • “Milestones are represented with this little Diamond icon”
    • Predecessors: Milestone tasks can have predecessors, indicating that they depend on the completion of other tasks. Conversely, other tasks can also have milestone tasks as predecessors.

    5. Organizing Projects with Summary Tasks and Subtasks:

    • Purpose: Summary tasks help organize projects into logical phases or groups of tasks, providing structure and making the project easier to read and understand.
    • “Summary tasks help us organize our project and they also give our project structure”
    • Creation: To create a summary task for existing tasks, select the tasks that should become subtasks, navigate to the “Task” tab -> “Insert” group -> “Summary,” and a new summary task will be inserted above the selected tasks. The selected tasks will automatically become subtasks, indented under the summary task.
    • Naming: The “New Summary Task” can be renamed by clicking in the task name field.
    • Collapsing and Expanding: Summary tasks have a small black triangle next to their name, which allows users to collapse and expand the subtasks within them.
    • “as soon as I do that I get this little black triangle next to the summary task so this is a collapsible and expandable group”
    • Duration and Dates: The duration and start/finish dates of a summary task are automatically determined by the earliest start date and latest finish date of its subtasks. Users do not typically manually edit the duration or dates of summary tasks.
    • “the duration of the summary task is very much defined by the durations of the subtask below it… the start date that you see up here for this summary task is going to be the start date of the earliest task in this group and the Finish date is going to be the Finish date of the latest task in this group”
    • Visual Representation: Summary tasks are displayed as black bars on the Gantt Chart timeline.

    6. Deleting Tasks, Subtasks, and Summary Tasks:

    • Deleting Individual Tasks: To delete an entire task, click on the task number (ID) to select the entire row and then press the “Delete” key. Alternatively, clicking in a field and pressing “Delete” will only clear that field’s content, but a cross icon will appear, offering the option to delete the entire task.
    • “if you want to delete an entire task you need to make sure that you have the entire task selected by clicking on that task ID”
    • Deleting Summary Tasks and Subtasks Together: If a summary task and its subtasks are selected, pressing “Delete” will prompt a confirmation asking if you want to delete the summary task and all its subtasks. The same prompt appears if only the summary task is selected for deletion.
    • “deleting it will delete all of its subtasks as well… I have a choice I can continue and delete expenses and its subtasks or I can cancel and not delete anything”
    • Deleting a Summary Task While Keeping Subtasks: To delete only the summary task and keep its subtasks, first select the subtasks and use the “Outdent” button (in the “Schedule” group of the “Task” ribbon) to move them to the same outline level as the summary task. Then, delete the summary task. The subtasks can be re-indented if necessary.
    • “if I want to delete the summary tasks but keep the subtask I first need to select the subtasks and put them on the same level as the summary task… we’re going to go up to the schedule group on the task ribbon and use our outdent button”

    7. Utilizing Work Breakdown Structure (WBS) Codes:

    • Definition: WBS codes are unique codes used to identify each task in a project. They can be particularly helpful in projects with tasks that have the same name. The task ID is simply the row number and not a unique identifier across changes in the project structure.
    • “what a WBS code is is a unique code that helps us identify each task in our project”
    • Insertion: A “WBS” column can be inserted into the project plan by right-clicking on a column header (e.g., “Task Mode”) and selecting “Insert Column,” then choosing “WBS” from the list.
    • Customization: Default WBS numbering can be customized to be more relevant to the project. This is done via “Project” ribbon -> “Properties” group -> “WBS” -> “Define code.”
    • “to create our own WBS codes we need to jump up to the project ribbon and in the Properties Group we have a WBS option if we click the drop down we can go to Define code and this is where we can create our own work breakdown structure codes”
    • Project Code Prefix: A prefix can be added to the WBS codes to uniquely identify the project.
    • Code Mask: This area defines the structure of the WBS code, including the type of characters (numbers, uppercase letters, lowercase letters), the length of each level, and the separator between levels. Multiple levels can be defined. A “Code preview” shows how the codes will look.
    • Options: The “Generate WBS code for new task” checkbox ensures that new tasks automatically receive a unique WBS code. The “Verify the uniqueness of new WBS codes” option prevents the use of duplicate codes.
    • Behavior During Restructuring: Unlike outline numbers, WBS codes are generally more static and tend to stay with their assigned tasks even when the project structure is changed (tasks are moved or indented). Project might assign new WBS codes to moved sections, potentially leading to gaps in the original numbering sequence.
    • Resetting WBS Codes: The “Re-number” option under “Project” -> “WBS” can reset all WBS codes back to their default sequence based on the current project structure.

    8. Working with Subprojects and Master Projects:

    • Scenario: For large projects, it can be beneficial to split them into smaller, more manageable subprojects. A master project can then be created to link these subprojects together. Resource pools can be shared across these linked projects.
    • Resource Pool Linking: When opening a project that shares resources from a resource pool, Project prompts the user with “Open Resource Pool Information,” asking whether to open the resource pool file. Choosing “Yes” opens the resource pool file (often in read-only mode) alongside the project file, allowing Project to track resource assignments across the shared files. The paths to other linked project files using the same resource pool are often visible in resource-related views like the “Resource Usage” sheet, even if those project files are not currently open.
    • “this file shares resources from a resource pool what do you want to do and I can choose to open resource pool to see assignments across all shareer files or do not open other the files”
    • Inserting Subprojects: To incorporate a subproject into a master project, select a blank line in the Gantt Chart view, navigate to the “Project” tab -> “Insert” group -> “Subproject,” and browse to select the MPP file of the subproject to be inserted. A subproject is visually indicated by a project icon in the information column.
    • “we do this by inserting a sub project… we’re going to go into the project tab and notice in the insert group we have sub project”
    • Maintaining Links: When a project is split, links between tasks in different parts of the original project might not be automatically maintained in the subprojects. These links (predecessors and successors) need to be recreated in the master project after inserting subprojects.
    • Recreating Predecessor Links to External Tasks: To link a task in a subproject to a task in the main (master) project, select the predecessor task in the main project, hold down the “Ctrl” key, and select the successor task in the subproject. Then, click the “Link” button in the “Task” ribbon (“Schedule” group). The predecessors column in the subproject will show the full path to the linked task in the master project. The standard method of selecting a predecessor from a dropdown within the subproject typically only shows tasks within that subproject.
    • “we have to use the link option on the toolbar so let’s select book venue we’re going to go down hold down control and select perform risk assessment and then on the task RIS bur we’re going to choose link”
    • Recreating Successor Links to External Tasks: The process is similar to predecessors, but the task to be linked from (the predecessor in this case) should be selected first, followed by the task to link to (the successor in the main project).
    • Deleting Original Tasks After Inserting Subprojects: Once the links have been successfully recreated, the original set of tasks that were moved into the subproject can be deleted from the master project, leaving only the subproject link.
    • Saving Changes with Resource Pools: When saving a master project with linked resource pools, Project may prompt to update the resource pool to reflect the changes.

    9. Considerations for Project Consolidation and Resource Sharing:

    • Straightforward Requirements: Consolidation and resource sharing in Microsoft Project work best when project requirements and resource needs are relatively simple and clearly defined.
    • Complexity: For more complex scenarios involving multiple resource pools, fluctuating resource needs across projects, or numerous projects sharing resources, Microsoft Project’s native capabilities can become challenging to manage without meticulous attention. Small errors can have significant consequences.
    • Project Server/ERP: For complex resource management needs, consider using Microsoft Project Server or enterprise resource planning (ERP) systems, which offer more flexible and resilient ways to handle shared resources from multiple pools.
    • Multiple Project Managers: When several project managers are working on a consolidated project and resource pool, clear rules and protocols are essential to avoid conflicts and ensure data integrity.

    10. Setting Up Recurring Tasks:

    • Definition: Recurring tasks are tasks that repeat on a regular basis (daily, weekly, monthly, yearly).
    • Accessing the Feature: To create a recurring task, go to the “Task” ribbon -> “Insert” group, click the dropdown under “Task,” and choose “Recurring Task.”
    • Task Details: In the “Recurring Task” dialog box, users need to specify:
    • Task Name: The name of the recurring task (e.g., “Project Meeting”).
    • Duration: The length of each occurrence (can be specified in hours, days, etc.).
    • Recurrence Pattern: The frequency of the recurrence (daily, weekly, monthly, yearly) and the specific details (e.g., every month on the 29th, the second Wednesday of every month).
    • Range of Recurrence: The start date and either the number of occurrences or an end date for the recurring task. The start time is also specified here.
    • Calendar for Scheduling: The project calendar to be used for scheduling the recurring tasks.
    • Time Component in Dates: Project can display and schedule tasks with a time component in the start and finish dates. This can be enabled by changing the “Date format” in “File” -> “Options” -> “General” to include time.
    • Handling Non-Working Time: If a recurring task falls on a non-working day, Project will display a warning and offer options to:
    • Reschedule to the first available working time (Yes).
    • Not create the occurrences that fall on non-working time (No).
    • Cancel the creation of recurring tasks (Cancel).
    • Modifying Recurring Tasks: Editing the duration of the main recurring task will likely recreate all individual occurrences, potentially requiring users to re-adjust any previously made exceptions. Individual occurrences can have their start and end times adjusted via their task information.
    • Extending Beyond Project End Date: Recurring tasks can be scheduled beyond the project’s end date, but this will extend the overall duration of the project.
    • Visual Representation: Recurring tasks in the Gantt Chart are grouped under a parent task with a collapsible/expandable arrow. Individual occurrences are numbered for easy identification.
    • Assigning Resources: Resources can be assigned to the main recurring task, and they will be assigned to all individual occurrences. This is done by right-clicking on the main recurring task and selecting “Assign Resources.”

    11. Creating and Using Custom Fields:

    • Purpose: Custom fields allow users to store and display additional information relevant to their specific projects, beyond the standard fields provided by Project.
    • Types of Custom Fields: Custom fields can be created for tasks, resources, or the entire project. Different data types are available, including text, number, date, duration, cost, flag (yes/no), and outline code.
    • Accessing Custom Fields: Custom fields are managed via “Project” tab -> “Properties” group -> “Custom Fields.”
    • Defining a Custom Field:Select Entity Type: Choose whether the field is for “Task,” “Resource,” or “Project.”
    • Select Type: Choose the data type of the custom field (e.g., “Text,” “Number,” “Flag”).
    • Choose a Dummy Field: Project provides a set of generic custom fields (e.g., “Text1,” “Number1”) that can be renamed and customized.
    • Rename Field: Give the custom field a meaningful name using the “Rename” button.
    • Custom Attributes: Define how data is entered or calculated in the field:
    • None: Allows users to enter any value of the selected data type.
    • Lookup: Provides a dropdown list of predefined values that users can select from. The order and default value of the lookup table can be customized.
    • Formula: Allows users to define a formula to automatically calculate the value of the custom field based on other fields or functions.
    • Calculation for Summary Rows: Determine how the custom field value should be calculated or displayed for summary tasks based on the values of their subtasks.
    • Graphical Indicators: Associate images or icons with specific values in the custom field to provide a visual representation. These can be set for non-summary rows, summary rows, and can inherit criteria. The “Show data values in tooltip” option displays the underlying value when hovering over the indicator.
    • Inserting the Custom Field Column: To display the custom field in a view like the Gantt Chart, insert a new column and select the newly created custom field from the list.
    • Formulas for Custom Fields: Formulas can use mathematical operators, operators (e.g., greater than, less than), built-in Project fields, and functions (categorized by type, including logical functions like “IF” and “SWITCH”). Nested “IF” statements or the “SWITCH” function can be used to create complex conditional logic for calculating field values. The “SWITCH” function can be more flexible than nested “IF” statements when dealing with multiple conditions. Project performs a syntax check on formulas when they are saved. Help documentation provides details on available Project functions for custom fields.
    • Flag Custom Fields: Flag fields have a data type of “Yes/No” and can be used to mark tasks based on certain criteria. Formulas can be used to automatically set the flag to “Yes” or “No” based on the values of other fields. For example, flagging tasks with a finish variance greater than a specified threshold. When working with durations in formulas for flag fields, be aware that durations are often stored in minutes within Project.

    12. Managing Resource Costs and Rates:

    • Budget Resources: Resources of type “Cost” can be designated as “Budget” resources. These are typically used to track overall budgeted amounts for specific cost categories (e.g., service costs). Budget cost resources are assigned to the project summary task and their costs are entered in the “Budget Cost” column (often in Task Usage view or by inserting the column in other views). Units and cost per use cannot be directly entered for budget resources at the assignment level.
    • “we’re going to give it a type of cost let’s give it some initials… but what I’m going to do is I’m going to create a little group so we’re going to call this service costs group… on the general tab notice over on the right hand side we have a little budget checkbox so we’re going to select this”
    • Assigning Cost Resources: Regular cost resources (not designated as “Budget”) can be assigned to specific tasks, and their associated costs can be entered (e.g., cost per use for a consultant).
    • Resource Groups for Cost Tracking: Resources (including budget and regular cost resources) can be assigned to groups. This allows for reporting and analysis of costs by category using the “Group By” feature in views like “Resource Usage.” Grouping by the resource group can clearly show the budgeted costs versus the actual costs for a specific category.
    • “we created a group called service cost group so we’re going to assign both of those resources to that same group… if we jump up to Resource usage View and go up to the data group you can see we have a little group by field just here”
    • Cost Rates: Resources can have multiple cost rates defined (Rate A, Rate B, Rate C, etc.). Rate A is the default rate. Each rate table can have a standard rate and an overtime rate.
    • Viewing Assigned Cost Rate Table: The “Cost Rate Table” column in resource-related views (like Resource Usage) shows which rate table (A, B, C, etc.) is currently being used for each resource assignment.
    • Changing Cost Rate Table for a Task Assignment: While the rate table cannot be directly specified when initially assigning a resource to a task in Gantt Chart view, it can be changed for individual task assignments in the Task Usage view by double-clicking on the assignment and selecting a different rate table in the task information dialog.
    • Scheduling Cost Rate Changes: Future changes in resource cost rates can be scheduled within the cost tab of the resource information dialog (for each rate table). Users can add multiple rows with effective dates and the new standard and overtime rates. This allows Project to automatically apply the new rates from the specified date onwards. Rate increases can also be specified as a percentage increase on a particular date.

    This briefing document summarizes the key concepts and functionalities discussed in the provided excerpts, offering a foundational understanding of how to navigate the Microsoft Project interface, manage tasks and project structure, customize the application, and handle resource costs. Remember to refer back to the original sources and utilize Project’s help documentation for more in-depth information and practical application.

    Frequently Asked Questions about Microsoft Project Based on Provided Sources:

    1. What are contextual ribbons in Microsoft Project, and how do I use the “Tell me what you want to do” box?

    Contextual ribbons in Microsoft Project are toolbars that appear and disappear depending on what you have selected in the project view. For example, selecting the Gantt chart area will display the “Gantt Chart Format” ribbon, while clicking on the timeline will show the “Timeline Format” ribbon.

    The “Tell me what you want to do” box is located next to the ribbon tabs. It allows you to search for specific commands or get help on particular features. You can type in keywords related to what you’re looking for (e.g., “timeline”), and a dropdown list of relevant commands and help topics will appear. Hovering over an arrow will show a short list of help options, and selecting one will open the help pane with detailed information. The keyboard shortcut Alt + Q will quickly jump your cursor to this box.

    2. Can you explain the different visual elements of the main Project interface, specifically the Timeline view and the Gantt chart?

    The main Project interface consists of several key visual elements. At the top, you may see the Timeline view, which provides a graphical overview of the entire project schedule. This can be toggled on or off in the View tab.

    Below the timeline is the primary project area, which usually displays the Gantt chart. The Gantt chart is divided into two main parts: a grid on the left that lists all of your tasks with details like name, duration, start and finish dates, and a visual representation on the right consisting of bars that illustrate the duration of each task and how they are linked together.

    You can adjust the size of the grid and the Gantt chart sections by hovering your mouse over the border and dragging. Horizontal and vertical scroll bars allow you to navigate through all the tasks in your project plan. At the bottom, the status bar provides information such as the default scheduling mode for new tasks (Auto Scheduled or Manually Scheduled), which can often be toggled by clicking on it. The status bar also displays options to switch between different project views (e.g., Gantt Chart, Task Usage, Resource Sheet) and a zoom slider to adjust the view magnification.

    3. How are commands organized in Microsoft Project, and what are some key tabs I should be aware of?

    Commands in Microsoft Project are logically organized into groups within ribbon tabs located at the top of the interface. Each tab focuses on a specific aspect of project management. Some key tabs include:

    • Task Tab: Contains frequently used commands related to tasks, such as cut, copy, paste, font formatting, managing task progress, linking and unlinking tasks, switching between Auto and Manually Scheduled modes, and adding summary tasks and milestones. The Properties group here also provides access to project information.
    • Resource Tab: Houses all commands related to the resources assigned to your project. This is where you can assign resources, create resource pools, and find leveling options.
    • Report Tab: Used for creating various reports to analyze project data, such as cost reports and progress reports. It also includes options for creating visual reports.
    • View Tab: Allows you to control which elements of the project interface are visible, such as the Timeline view. It also provides access to different project views (Gantt Chart, Task Usage, etc.) and tools for managing multiple windows.
    • Project Tab: Contains project-level settings and information, including options to change working time, define WBS codes, access project information, and work with custom fields.

    4. What is the significance of setting the Project Calendar and Project Options, and how do I synchronize them?

    The Project Calendar defines the working days and hours for your project. It establishes the baseline for when tasks can be scheduled and how durations are calculated. You can modify the working times for standard working days and create exceptions for holidays or non-working periods. You can also create new calendars for resources with different working schedules (e.g., part-time staff). You access and modify the Project Calendar via the Project tab, in the Properties group, by clicking “Change Working Time.”

    Project Options contain various settings that affect how Project behaves, including default start and end times for tasks and the default scheduling mode for new projects. It’s crucial to synchronize the Project Options, particularly the default start and end times, with the working hours defined in your Project Calendar. This ensures consistency across your project schedule and any new projects you create.

    To synchronize them, go to File > Options > Schedule. In the “Scheduling options for this project” section (or “Calendar options for this project” depending on the specific settings), ensure that the default start and end times match the working hours defined in your Project Calendar. For global settings that apply to all new projects, change the “Calendar options for this project” dropdown to “All New Projects.”

    5. What is the fundamental difference between Automatically Scheduled and Manually Scheduled tasks in Microsoft Project?

    The core difference between Automatically Scheduled and Manually Scheduled tasks lies in how Microsoft Project calculates their dates and durations.

    • Automatically Scheduled Tasks: Project automatically calculates the start and finish dates and the duration of these tasks based on factors such as dependencies (predecessors), resource assignments, and the project calendar. When changes are made to related tasks or resource availability, Project will automatically update the dates of Auto Scheduled tasks. This is particularly useful for large and complex projects where maintaining consistency and understanding the impact of changes is critical.
    • Manually Scheduled Tasks: With manually scheduled tasks, you have complete control over the start and finish dates and the duration. Project will not automatically adjust these based on dependencies or resource assignments. This mode can be useful for tasks that are not yet well-defined, have uncertain durations, or are dependent on external factors not tracked within Project. However, relying heavily on manually scheduled tasks can reduce Project’s ability to provide accurate schedule analysis and highlight potential conflicts.

    You can switch between these scheduling modes for new tasks via the status bar at the bottom of the Project window or within the Task tab in the Schedule group. It’s also possible to set the default scheduling mode for new projects in Project Options (File > Options > Schedule).

    6. How can I use Milestone tasks and Summary tasks to better organize and visualize my project schedule?

    Milestone Tasks are significant points in your project that represent the completion of a major phase, a key decision, or an important deliverable. They have zero duration and are visually represented as diamond shapes on the Gantt chart. Milestones do not impact the project’s overall duration or resource workload. They serve as checkpoints to track progress and highlight critical dates. You can insert a milestone task by selecting a task, going to the Task tab, and clicking “Milestone” in the Insert group. You can also link predecessors to milestone tasks and make milestone tasks predecessors of other tasks.

    Summary Tasks are container tasks that group related subtasks. They help to organize your project into logical phases or categories, making the project plan easier to read, understand, and navigate. When you create a summary task, the tasks indented under it become its subtasks. The duration, start date, and finish date of a summary task are automatically calculated based on the earliest start date and latest finish date of its subtasks. Summary tasks are displayed as solid black bars on the Gantt chart. They can be collapsed or expanded to show or hide the underlying subtasks, allowing you to focus on different levels of detail. To create a summary task, select the tasks you want to group, go to the Task tab, and click “Summary” in the Insert group. You can also create nested summary tasks to represent multiple levels of project structure.

    7. What are WBS codes, and how can I customize them in Microsoft Project?

    Work Breakdown Structure (WBS) codes are unique alphanumeric identifiers assigned to each task in a project. They provide a hierarchical representation of the project’s breakdown into smaller, more manageable components. WBS codes can be particularly useful for projects with tasks that have the same name, for cross-referencing tasks in different documents or systems, and for conforming to specific industry or organizational standards. Unlike outline numbers, which are automatically updated based on task indentation, WBS codes can be customized and are generally intended to remain consistent with the task, even if the task’s position in the schedule changes.

    To customize WBS codes, go to the Project tab, in the Properties group, click the “WBS” dropdown, and select “Define Code.” Here, you can:

    • Add a Project Code Prefix: A text that will appear at the beginning of all WBS codes for the project, helping to uniquely identify the project.
    • Define the Code Mask: Specify the structure of the WBS codes by adding different levels. For each level, you can choose the type of identifier (Numbers, Uppercase Letters, Lowercase Letters), the length (number of characters), and a separator character (e.g., dash, period, forward slash) to separate levels.
    • Generate WBS Code for New Task: Automatically assign a unique WBS code to any new task added to the project.
    • Verify Uniqueness of New WBS Code: Ensure that any newly generated or manually entered WBS code is unique within the project.

    After defining the WBS code structure, you’ll typically insert the “WBS” column into your project view to see the generated codes.

    8. How can I effectively manage costs in Microsoft Project using features like budget resources, cost rates, and cost rate tables?

    Microsoft Project offers several features for managing and tracking project costs:

    • Budget Resources: You can create resources of the “Cost” type specifically for tracking budget amounts for different expense categories (e.g., travel, services). To designate a cost resource as a budget, open the resource information and check the “Budget” box on the General tab. Budget resources are typically assigned to the project summary task (task 0). You can then enter the budgeted cost for that category in the Task Usage view under the “Budget Cost” column.
    • Cost Rates: For work and material resources, you can define standard and overtime rates in the Resource Sheet. These rates are used to calculate the cost of assigning these resources to tasks based on their work duration. The default rates are considered the “A” rate table, but you can define additional rate tables (B, C, D, E) within the resource information (Cost tab) to account for different billing rates for different types of work or projects.
    • Cost Rate Tables: These allow you to define multiple sets of cost rates for a single resource. For example, a consultant might have a standard rate for general consulting (Rate A) and a higher rate for specialized graphical work (Rate B). You can then specify which cost rate table to use when assigning the resource to a particular task in the Task Usage view (by double-clicking the assignment). You can also schedule changes in cost rates over time by adding new rows with effective dates and updated rates within the resource’s cost rate tables.

    By utilizing these features, you can establish a project budget, track actual costs based on resource assignments and defined rates, and analyze cost variances to ensure your project stays within financial constraints. Grouping resources by cost-related custom fields (like a “Charge Code”) in the Resource Usage view can also help in analyzing and reporting on different categories of resource costs.

    Understanding the Microsoft Project Gantt Chart

    The Gant chart is a key component of the Microsoft Project interface and is the main area where you’ll likely be working most of the time. It consists of two main parts: a grid on the left that lists all of your tasks, and on the right-hand side, a visual representation of these tasks using bars. These bars make it easy to see the duration of each task and how all the tasks link together.

    Here are some important aspects of the Gant chart format as described in the sources:

    • Contextual Ribbon: When you are in the Gant chart view, Project displays a specific “Gant chart format” contextual ribbon. This ribbon contains all the commands you need to manage and format your Gantt chart. Contextual ribbons appear and disappear depending on what you have clicked on in the project interface.
    • Customizing Size: You can modify the size of the grid (table) and the visual bar area by hovering your mouse over the borderline between them and dragging. Similarly, you can adjust the vertical space allocated to the timeline and the Gantt chart using the horizontal splitter.
    • Default View: The Gant chart with the timeline view is often the default view in Project. You can switch to other views, but the Gant chart is where you’ll primarily manage your project schedule.
    • Visual Representation: The visual bars in the Gant chart provide an intuitive way to understand task durations. The length of the bar corresponds to the task’s duration.
    • Linking Tasks: The Gant chart visually represents how tasks are linked together. Arrows are typically used to show dependencies between tasks.
    • Formatting Options: The “Gant chart format” ribbon allows you to control the visual appearance of the Gant chart. For example, you can highlight predecessors of a selected task. You can also control the layout of task links and add grid lines to improve readability.
    • Task Paths: The “Gant chart format” tab, under “Bar Styles” and “Task Path,” allows you to highlight predecessor tasks that directly affect a selected task. These driving predecessors are often highlighted in a specific color, like orange.
    • Layout of Links: The “Layout” option in the “Format” group of the “Gant chart format” tab allows you to change how task links are displayed, offering different styles for the connecting lines.
    • Gridlines: You can add gridlines to the Gantt rows from the “Gridlines” option in the “Format” tab to make it easier to associate the bars with the corresponding task entries.

    In summary, the Gant chart format in Microsoft Project provides a visual and interactive environment for managing and understanding your project schedule, with dedicated formatting options available through the contextual “Gant chart format” ribbon.

    Microsoft Project: Understanding Contextual Ribbons

    Contextual ribbons in Microsoft Project are ribbon tabs that appear in the interface only as and when they are needed. They are called “contextual” because their appearance is dependent on the current context of what you are doing or what you have selected within the project.

    Here’s what the sources tell us about contextual ribbons:

    • Appearance based on need: Contextual ribbons do not remain visible all the time. They are triggered to appear when you select a specific element or switch to a particular view that has associated, specialized commands.
    • Gant chart format ribbon: A prime example of a contextual ribbon is the “Gant chart format” ribbon. As its name suggests, this ribbon only appears when you are in the Gant chart view. It contains a range of commands specifically designed for managing and formatting your Gantt chart, such as options for bar styles, task paths, layout of links, and gridlines. We previously discussed the “Gant chart format” ribbon and its various formatting options in our earlier conversation.
    • Timeline format ribbon: Another example from the sources is the “timeline format” ribbon. This ribbon appears when you click somewhere within the timeline view at the top of the project window. It provides the necessary commands to change and format that specific timeline area.
    • Purpose: The purpose of contextual ribbons is to provide you with the tools that are most relevant to the task at hand, without cluttering the main ribbon area with commands that you may not currently need. This helps to keep the interface organized and makes it easier to find the specific commands you are looking for in a given context.
    • Disappearance: If you click away from the element that triggered a contextual ribbon (for example, clicking away from the timeline), that contextual ribbon will disappear.

    In summary, contextual ribbons in Microsoft Project are dynamic ribbon tabs that appear based on your current selection or view, offering a focused set of commands relevant to that specific context. The “Gant chart format” and “timeline format” ribbons are key examples of this functionality, providing specialized tools for managing and formatting the Gantt chart and timeline views, respectively.

    Microsoft Project “Tell Me” Box: Command & Help

    The “Tell me what you want to do” box is a helpful feature in Microsoft Project designed to assist users in finding commands and accessing help. You’ll find this box located next to the ribbon tabs in the Project interface.

    Here’s a breakdown of its functionality based on the sources:

    • Searching for Commands: If you are having trouble locating a specific command within the various ribbon tabs, you can type keywords related to that command into the “Tell me” box. This will then provide you with a list of relevant commands that you can directly access.
    • Accessing Help: The “Tell me” box also serves as a quick way to get help on specific features or tasks within Project.
    • You can type in a keyword or phrase related to the topic you need assistance with (e.g., “timelines”).
    • As you type and then hover your mouse over the arrow, a short list of relevant help items will appear.
    • Selecting one of these help items will open the Help pane on the side of your screen.
    • Within the Help pane, you will have access to the help files that provide guidance and information on the selected topic, such as the process of creating a timeline in Project.
    • Keyboard Shortcut: For quick access to the “Tell me” box, you can use the keyboard shortcut Alt + Q. This will immediately position your cursor within the box, allowing you to start typing your query.

    In essence, the “Tell me what you want to do” box acts as a central point for both navigating the extensive functionality of Microsoft Project by searching for commands and for quickly accessing the built-in help resources when you need guidance on specific aspects of the application.

    Microsoft Project Timeline: A Visual Project Overview

    The Timeline view in Microsoft Project is a visual feature that provides a high-level, graphical overview of your project schedule. It is typically located just under the ribbon tabs and above the main Gantt chart area.

    Here’s a more detailed look at the Timeline view based on the sources:

    • Overview of the Project: The primary purpose of the Timeline view is to give you a quick and easy way to see the key milestones and phases of your project at a glance. It allows you to understand the overall flow and important events without getting bogged down in the details of every single task.
    • Optional Feature: The Timeline view is not a mandatory part of the Project interface. You have the option to toggle it on or off as needed. This can be done by going to the View tab on the ribbon and either selecting or deselecting the “Timeline” checkbox in the View group.
    • Location: When enabled, the Timeline view will appear as a banner running across the top of the primary project working area, just above the Gantt chart grid and bars.
    • Integration with Gantt Chart: The Timeline view complements the Gantt chart. While the Gantt chart provides detailed information about individual tasks, their durations, and dependencies, the timeline offers a more summarized, visual representation of the project’s progress over time.
    • Customization and Formatting: When you have the Timeline view selected or are working within it, a contextual ribbon called “Timeline Format” will appear. This ribbon contains specific commands that allow you to customize the appearance and content of the timeline. You can format the dates, add or remove elements, and highlight specific phases or milestones.
    • Adjusting Vertical Space: The vertical space allocated to the Timeline view can be adjusted using the horizontal splitter that separates it from the Gantt chart area. By hovering your mouse over the boundary, you can drag it up or down to make more or less room for the timeline as required.
    • Default View Option: In the Project Options, under the General tab and Project View section, “Gant with timeline” is often the default view when you create or open a project. This indicates the importance Microsoft places on having both a detailed task view and a high-level timeline summary available.
    • Alternative View: While the Gantt chart with timeline is common, you can also view your project in other ways, and “timeline” itself might be listed as an option when switching between views. However, the typical usage involves having the timeline displayed above another view, such as the Gantt chart.

    In summary, the Timeline view in Microsoft Project is a valuable tool for gaining a strategic overview of your project. Its optional nature, top-of-screen location, dedicated formatting ribbon, and integration with the Gantt chart make it a useful feature for communicating project progress and understanding key milestones and phases.

    Microsoft Project Status Bar Essentials

    The status bar in Microsoft Project is located at the very bottom of the application window. It provides quick access to important project settings and view options. Here’s a breakdown of its key features based on the sources:

    • Auto vs. Manual Scheduling Toggle: On the left-hand side of the status bar, you can see an indication of the default scheduling mode for new tasks. In the example provided, it states “all new tasks are Autos scheduled“. This is not just an indicator; it also acts as a toggle button. By clicking on this area, you can switch between Autos scheduled and Manually scheduled task modes. We discussed these scheduling modes in a previous turn, where we noted that in Autos scheduled mode, Project calculates task dates based on duration and dependencies, while in Manually scheduled mode, you have direct control over dates and durations.
    • View Switching: On the right-hand side of the status bar, there is an area that allows you to quickly switch between different project views. The source specifically mentions that you can switch to:
    • Gant chart view
    • Task usage view
    • Resource View
    • Resource sheet view We have previously discussed the Gantt chart view as the primary view for managing schedules. The ability to quickly change to other views from the status bar offers a convenient alternative to navigating through the View tab on the ribbon.
    • Zoom Slider: Also located on the right-hand side of the status bar is a Zoom slider. This feature allows you to zoom in or out of the project view. The source notes that this functionality is fairly standard across Microsoft applications, so if you’ve used it in other programs, it will likely be familiar.

    In summary, the status bar in Microsoft Project provides at-a-glance information about the default scheduling mode and offers convenient one-click access to toggling this mode, switching between different project views, and adjusting the zoom level of the current view.

    Microsoft Project 2021 Beginner to Advanced Training: 5-Hour Tutorial Course

    The Original Text

    [Music] Simon Says subscribe and click on the Bell icon to receive [Music] notifications we’ve made the accompanying exercise files for this tutorial available for free just click the link below in the video details to get these Microsoft Project 2021 is the latest Standalone version of project available from Microsoft it’s one of the most popular tools on the market for scheduling organizing and managing projects of all sizes from the most basic task list to highlevel complex projects my name is Deborah Ashby I’m a Microsoft trainer who’s been training project for over 15 years and I’m going to be your host for this course now let’s make no mistake project 2021 is a complex application there is so much functionality that it can become overwhelming so it’s important to know about those key features and how to use them effectively having a good understanding of project will help you work more efficiently and deliver better project outcomes and it’s also a great thing to have on your resume in this course we’re going to be using a fictitious training rollout plan to work through the different features and functionality that help us manage the entire Project Life Cycle the files I use in the course are available to download so you can follow along with me or you can save them for later and rewatch the videos at your own pace at the end of each section we’re going to work through an exercise so you can really put into practice the skills that you’ve learned and you can find all of these exercise files in the exercise files folder so make sure that you’ve downloaded those they’ll also be questions as you go through the course so you can test your knowledge as you go these questions really help identify where you have knowledge gaps and then you can go back and re-watch the relevant videos so if you’re ready to supercharge your project management knowledge then grab yourselves a drink and spend the next few hours with me whipping a project into shape sometimes it can be quite complex when you’re thinking about which project management solution to purchase because there are so many different versions of project these days it can be a little bit confusing so in this lesson let’s just take a quick look at the different offerings to give you more of an idea as to which one is going to suit your needs now I’m just on the Microsoft website and I’m on the compare project Management Solutions and costs page now notice currently we have two tabs at the top here cloud-based Solutions and on premises Solutions and I’m currently clicked in the cloud-based Solutions tab so now now I can see the three different project plans that are available for the cloud-based project management tools so those would be project for the web which is the latest offering and project online project is a subscription application so if you’re thinking that it’s included within your Microsoft 365 subscription then unfortunately it’s not you do have to purchase a separate license and you can see here those three different licenses project plan 1 Project plan 3 and project plan 5 now these have been recently renamed to bring them in line with Microsoft’s Enterprise Solutions E1 E3 and E5 so project plan one is the most basic and the cheapest of the projects and you can see here how much it is per month mine’s showing in pounds but this will update depending on your location and project plan one includes project for the web which is a completely cloud-based project management tool which isn’t as complex as something like project professional but still gives you all of the core functionality that that you need it’s also a lot easier for you to collaborate on projects using project for the web and it has the advantage of being on the Power Platform so we can really harness the power of power apps power automate and powerbi and we can manage all of our projects through a web browser so that’s project plan one project Plan Three includes project for the web so pretty much everything that we have in Project plan one but it also includes Project online to manage more comp Lex projects now project plan 5 is really the Big Daddy of them all this includes everything in the first two project plans but it also allows us to do a lot of highlevel project portfolio management and if you want to take a deeper look at the different features so that you can compare and contrast if you come onto this page and scroll down you can see exactly what each of these plans contains so it’s definitely worth having a little look through these if you want to go for a cloud-based solution now the other options that we have when it comes to project is to choose an on premises solution so let’s jump across to that tab now the first thing you’ll notice immediately is that the prices are a lot higher and that’s because this is a one-time purchase option it’s not a subscription so we’re not paying a monthly fee to access the software we’re actually purchasing it and downloading it onto app PC so we pay a onetime price and it’s hours forever now of course the disadvantage of things like this is that if there are any updates to the software we might have to wait for a security patch to be released or if we want to get new features we might have to wait for the new version to be released before we can access them whereas if we’re using a cloud-based Solution on a subscription package that updates automatically now when it comes to the project on premise Solutions we have project standard 2021 and project professional 2021 so project standard has all of the core functionality but it doesn’t really contain too many collaborations tools and some of the more advanced features project professional contains absolutely everything so if you’re a pmo looking to do some high level project management then this is going to be the application for you and of course it includes absolutely everything that we have in Project standard and project professional 2021 is what we’re going to be using in this course so we basically have access to all of the features so those are all the options you have when it comes to acquiring project so what’s new in Project 2021 when compared with project 2019 well first off remember that I’m using project professional 2021 if you’re using the project Standard Version then some of these new features might not be available so just make sure that you check the version that you’re using prior to commencing this lesson and if you want to check which version of project you’re using just click on the file tab and jump into account so let’s start out with just a generalization something that’s different a lot of the icons in Project 2021 have a much more modern updated look and feel so you might notice that when you first open up the application now if we go through each ribbon so let’s now go through each ribbon and I’ll highlight the minor differences and it is worth mentioning there aren’t a huge amount of changes or differences between 2019 and 2021 the main overall difference is really something that’s inconsequential to day-to-day project management the biggest difference in Project 2021 is that Microsoft seem to be moving towards a more cloud-based offering but with regards to the design and the functionality there are just a few little differences so let’s start out by jumping into file and if we go into new this is where we can come to create a new project so we have a blank project and then we have our templates listed underneath that we can use now one of the differences here is that we have a new template and it’s the one that you can see at the top here the Sprints project so if we open up this template it gives us this Sprint planning board which looks completely different to what we’re used to working in in project this is very similar to using something like board view if you’re working in Microsoft planner or project for the web so we have a brand new template in Project 2021 now if we go to the task ribbon and take a look at what’s different here the only thing is if we go all the way over to the right hand side of the ribbon we have a little link to group here now this button allows us to link tasks in our project to a plan that we have in Microsoft planner so if I click on this it’s going to open up a little pan on the right hand side and it’s going to allow me to link to a specific task in a plan another change we can find on the report ribbon aside from all of these reports that we can run we have a new report called task board reports so if I was to select one of these standard reports this is basically related to the board that the tasks are assigned to and boards are very similar to buckets again in an application like Microsoft planner or project for the web so just be aware that we have access to that new report if we jump across to the project tab again in the Properties Group the only change we have here is the ability to manage as Sprints so we can do things like change the name of our Sprints add more Sprints to find the start and finish and the length and if we go across to the view tab again we have this new view task board view which allows us to view our tasks based on different buckets that they’re stored in now if we go to the help tab not too much has changed on here but one change we do have is notice at the top here it says Gant chart format so this is where I can come to start making changes to the bars that you see in the project plan now previously in Project 2019 this tab was actually just called format so there’s been a little bit of a name change just there and that is pretty much it when it comes to the actual differences that are going to affect what we’re doing when we’re working in Project as I said a lot of the bigger changes have come in the background and the fact that Microsoft is moving to a more cloud-based environment in this first exercise we’re going to start nice and gently so I’d like you to make sure that you have downloaded and installed project hopefully you’re already at that stage I don’t want you to make sure that you’ve downloaded and saved the course and exercise files you’ll find those in the relevant folders within the course just make sure that you have those saved off somewhere safe because we’re going to be referring to those throughout this course and then finally make sure that you have reviewed your settings in Project options so that if you’re working working along with me everything matches and we don’t get confused so that is all I need you to do for this first exercise see how you go with that and I will see you in the next one for the next section you’ll want to download the course exercise files click the link below in the video description to get these you can also scroll through the details to find timestamps for each section in this course if you’re enjoying this training please leave us a comment before we get into the nuts and bolts of how project works we need to get ourselves familiar with the project interface and when I say interface I just basically mean what we’re looking at on this screen so I’ve opened up a project and we’ll just walk through the different parts of the screen so that you’re familiar with where everything lives so if we start right at the top you can see we have our title bar this is where your you’re going to see whatever you’ve saved your project as and then underneath that we have various different ribbon tabs and if you’re used to using other Microsoft applications like maybe word or Excel or PowerPoint this takes on exactly the same structure we have our different ribbons and each ribbon contains different commands which help us execute actions in project and all of the commands are grouped logically onto different ribbons and also into different groups you can see right at the bottom we have the group name so undo view clipboard font schedule so on and so forth and those groups are really just there to make it a lot easier for us to find exactly the command that we’re looking for at any given time we also have a file tab at the top which takes us into what we call the backstage area and we’ll talk about this in more detail in the next lesson for the time being let’s just click the back arrow to take us back to our main window now aside from backstage and the regular ribbons that we have when we open up project we also have what we call contextual ribbons and I can see one of them on the screen right now and it’s this one just here Gant chart format now what contextual ribbons are are ribbons that only appear as and when they’re needed now because I’m currently in Gant chart view that’s why I can see the Gant chart format ribbon and this ribbon contains all of the commands that I need to manage and format my Gant chart now if I was to click somewhere else so let’s click up here in the timeline notice that I get a different contextual ribbon this time I get the timeline format ribbon so ribbons will appear and disappear depending on what we’re clicked on that’s why we call them contextual so just be aware of that point now next to our ribbon tabs we have this little tell me what you want to do box so what I can do from up here is that I can use this little bar to search for different Comm commands on the ribbons if I was struggling to find something or this is where I can come to get help on something specific so maybe I want to know a little bit more about timelines I can type it in and when I hover my mouse over the arrow I have a short list of items that I can get help on so if I select the first one it’s going to open up the help Pane and then I get access to the help files which talks me through the process of creating a timeline in Project it’s Al worth noting that if you quickly want to jump up to that tell me box there is a keyboard shortcut of alt Q that’s going to position your cursor in the correct place and you can then type in whatever it is you need help on now just under the ribbons we have timeline view now this is something that you don’t have to have toggled on you can simply turn this off by going to the view Tab and deselecting timeline and notice if I do that it gets rid of it if I click again it brings it back but the timeline is a really nice way of just kind of getting an overview of everything that’s going on on your project and if you have that turned on you’re going to see it running across the top of the primary project area and just under timeline view this is the main area that we’re going to be working with this is the Gant chart that we’re looking at and the Gant chart consists of two parts really we have all of our tasks listed in a grid form and then on the right hand side we have that represented with these visual bars which make it really nice and easy for us to see the duration of each task and how all of our tasks link together and in general this is going to be the view that you work in for the majority of the time if you want to modify the size of these then you can definitely do that so if we hover our Mouse over the borderline between the table and the actual Gant chart we can drag out and we can drag back in again so we can really customize the size so that it’s suits us and there’s quite a lot of information lurking underneath here so you might want to widen this out quite a bit depending on what it is you’re doing I think I’m going to leave mine there for the time being you can also do the same using the horizontal splitter so once again if I hover my mouse over the boundary I can make more room for the timeline or I can drag the gantar back up again we have our scroll bars out the side so I can scroll up and down and see all of the tasks that I currently have in my project project plan and then finally at the bottom we have the status bar now if you take a look over on the left hand side you can see it’s telling me that all new tasks are Autos scheduled and if I click on this I can switch between Autos scheduled and manually scheduled tasks now we’ll get on to that a little bit more later on but just be aware that this acts as a toggle down in the status far and then all the way over on the right hand side this is where we can come to switch between different views So currently we’re working in ganta chart view but we have a task usage view a resource View and also a resource sheet view as well and of course all of these we’re going to discuss in more detail later in the course the final thing we have is a little Zoom slider so if we want to zoom out or zoom in then we can definitely do that as well and this is fairly standard across all of the Microsoft applications so if you’ve used this previously then that’s probably not too much different for you now the final thing to highlight here is the quick access toolbar now the quick access toolbar you’ll find underneath the ribbons just above the timeline and currently I just have a few icons on my quick access toolbar now this is a customizable toolbar which allows us to add commands that we use frequently to it so that they’re quick and easy to access and we don’t have to hunt through the ribbons and we have a whole lesson dedicated to how we can customize this and set it up so it works for us but that is pretty much the project interface have a little look at it make yourself familiar with where all the commands are and which ribbons they’re located on and I will see you in the next lesson the ribbon tabs help us organize our commands logically into groups and we briefly touched on this in the last lesson but I want to explore these in a bit more detail so that you start to get familiar with where different things are located because in Project we have so many commands it can sometimes be a little bit overwhelming so if we start with the first tab just here the task tab this is where you’re going to find a lot of the commonly used tasks so this is where you’ll go to find things like cut copy paste and all of your font formatting options it’s also where we can go to manage everything related to our tasks we can update the progress in the schedule group we can link and unlink tasks in there as well we can switch between Auto schedule and manually scheduled tasks and we can add things like summary tasks and Milestones this is also where we can come in the Properties Group to see an overview of our project information the resource tab is where we would go for everything related to resources that we’ve added into our project it’s where we can go to assign resources and create resource PS and it’s also where we’re going to find things like our leveling options the report tab is where we come to create reports in Project once you have your project up and running you’re you’re probably going to want to start running some reports to analyze that data you might want to run a cost report or a report related to the progress we can even do things like create visual reports and dashboards from here as well on the project tab this is where we’re going to find lots of options for managing our overall project is where we can change the working time view our project information and also do things like set baselines and move our project as well the view tab is where we come to switch views as I mentioned at the start we’re currently looking at the default view which is the Gant and timeline view but we can modify how we’re viewing and what we’re viewing from here this is also where we can come to do things like sort and filter our data the help tab is pretty self-explanatory it’s where we can come if we want to get help notice the first button here is the help button we have a keyboard shortcut of F1 to open those help files and what you’ll see when you click on F1 is pretty much the same as when you’re using that tell me box at the top it’s going to open up a pane on the right hand side where you can go in and search for whatever it is you’re looking for help on so really nice and useful and then of course the final ribbon that I have here is the contextual ribbon Gant chart format and as I mentioned this is contextual so it’s only appearing because I’m in Gant chart View if I click on timeline view it switches to the timeline format ribbon and these contextual ribbons contain in this example everything I need to change and format that timeline area running across the top so those are going to change depending on where you’re clicked now the final tab that we haven’t spoken about much yet is the file tab now notice I refer to this sort of separately to the others and that’s because it does look different when you click on file it takes you into to what we call the backstage area and this is where you’re going to find sort of your more admin style tasks this is where you would come if you want to create a new project either a blank project or maybe from a template this is where we come if you want to open an existing project that maybe we have saved off to a specific folder or maybe even in the cloud if we click on info this is where we can come to see some information about this particular project that we have open we have save and save as and we’re going to get into those a little bit more later on in this section we can print from here we can share our file we can export it and we can also close and then towards the bottom we have account so this is where you can come to find out information related to your account for example we can see here exactly which version of project we’re using so sometimes maybe if your it team is saying to you what version of project are you using this is where you can come to find out that information now noce here it says Microsoft Project online desktop client this is where we also come to install any updates and we can also do things like change at theme for example if I wanted to work with a black theme I could do that if I preferred that I could go with this nice dark gray or I can stick to white or colorful which in general is what I like to set we can also change our office background so if you cast your eyes up to the top right hand corner you can see I just have this sort of doodle pattern in the background this is where we can change that so so that might be something that you want to do and finally at the bottom here this is really important this is our project options area and we have lots of different pages of information Now options is where we come to adjust as settings and really personalize how our copy of project works for us and we’re going to be dipping in and out of here throughout the balance of this course and in fact in a lesson that we have coming up we’re going to jump into here and I’m going to show you some of the settings that I recommend that you change before you get started now just before we leave here I just want to go back to the open screen now as I mentioned this is where you can come to open any existing project files you have stored off and you can see I’ve got some locations here where I could select my project files from so I use one drive cloud storage so I could open up a project file that I have saved into one drive very easily from here alternatively if I just have it saved off to my PC I could choose the this PC option underneath other locations and if I click on browse that’s going to open up file explorer and allow me to navigate that way if that’s what you prefer if you cast your eyes over to the right hand side notice we have two folders at the top here projects and folders now I’m currently clicked on projects and it’s showing me the last projects or the most recent projects that I opened now this is a very new install of project 2021 so I don’t have a great deal in here but if you’ve been using project for a while then this list is going to be full of your most recent files the same thing with the folders area this is going to show you the last folders that you saved files into and the idea here is it just makes it really quick for you to find things that you’ve worked on recently and open them and we can simply open by double clicking on the file in the list and if you have any files that maybe you access every single day you can pin those to the top of the list so that they don’t don’t move around when we start opening other files for example if I want to pin marketing campaign planning project I can click on the pin icon and that’s going to move it up to this pinned area just here and that’s going to stay there until I choose to unpin this item and I can simply do that by clicking on the drawing pin once again and it’s going to remove it from that little area now the final thing to mention about these ribbons running across the top is that you can minimize or collapse up the ribbon and give yourself a little bit more room on the screen now the way that you do that is if you just rightclick your Mouse anywhere on the ribbon you can see in the contextual menu we have an option to collapse up the ribbon if I click on this it’s going to collapse that up I can just see those tab headings but I can’t actually see the commands and it just gives me a little bit more room to work with now what happens when I want to actually access a command well I simply click on the tab and it’s going to pull down tempor temporarily that ribbon when I click away again it’s going to disappear if I want to bring it back permanently I just need to click on a tab right click and then uncheck collapse the ribbon so that’s more of a detailed run through of the different ribbons that we have that backstage area and what you can find in there and also how we can collapse up the ribbons something that I highly recommend that you do is customize the quick access toolbar and I mentioned the quick access toolbar in the last lesson it’s this little toolbar that we can see running just above the timeline and underneath the ribbons now currently the toolbar isn’t showing too much we have a few little icons on there and it’s worth noting that when you’re looking at your copy of project your quick access toolbar might not look exactly the same as mine or you might not be able to see it at all so let me show you first of all how you can turn the quick access toolbar off or on now mine’s currently on so I’m going to turn it off but the process is the same if you want to do the reverse so once again we just need to right click our Mouse anywhere on the ribbon and in the contextual menu you can see I have hide quick access toolbar now if you don’t have yours displayed that’s going to say show quick access toolbar so if I click this notice that that toolbar now disappears if I rightclick again and click show it brings it back again so make sure that you’re showing that quick access toolbar now what exactly is this quick access toolbar or qat as we refer to it well this is a customizable area where we can add commands that we use frequently to make them easy to find an action and you can see on here I have a few commands added already so I can create a new project from here I can save I can undo do and I can redo so how do we customize this quick access toolbar and fill it full of commands that we use all the time well there are a couple of different ways that we can do this notice that right next to the quick access toolbar I have a little drop- down arrow when I hover over it says customize quick access toolbar and that’s going to open up a menu which is going to allow me to add very quickly one of these 15 or so commands and you can see the ones that are currently on my quick access toolbar already have a tick next to them so new save undo and redo so if I decide that I’m always print previewing my projects I could choose print preview and it’s going to add that command to that quick access toolbar maybe I want to add email I could do that as well now notice in here we only have a few of the vast amount of commands that are available in project so what if we want to add a command to the qat that isn’t in this list well well again there are a couple of different ways that we can do this now the easiest way to add a command that you can see on one of the ribbons is simply to rightclick on it so maybe I’m always looking at the project information window so if I go across to the project tab where we have project information I’m going to right click and I’m going to say add to quick access toolbar that is the quickest way to add any command that you can see on your ribbons I’m going to right click on spelling I’m going to add that to the quick access toolbar as well so really nice and straightforward and as you would imagine if I then decide that I want to remove something from this quick access toolbar I can rightclick on it and I have a remove from quick access toolbar option just here now it’s worth noting that not every command in Project is available on a ribbon and some commands are available on contextual ribbons which means we don’t actually see them until they’re needed so what if I want to to add one of those commands that I can’t currently see on the ribbons to my quick access toolbar well this is where we need to click the dropdown again to go into customize and go to more commands now this is basically going to jump us across to our project options and you can see it’s jumped us straight into the quick access toolbar area now what you can see in here if we start on the right hand side is I can see a preview of my quick access toolbar and I can see all the commands that I currently have on there so project information and spelling were the last two that we added on the left hand side this is where I can see all of the commands that I can move to the quick access toolbar now they are grouped together so currently I’m only looking at popular commands if I want to see a list of all commands available in project I need to choose all commands from that dropdown and now I have all of the commands in here Unfortunately they are organized into alphabetical order to make them a little bit easier to find so we can then scroll through find exactly what we want so let’s go for something like I’m just going to go for arrange we can select it and then click the add button to move it across to the quick access toolbar so very very simple just to add things similarly if you want to remove something from the quick access toolbar you can select it and then click the remove button in the middle we can also organize our commands using the up and down arrows on the right hand side so maybe I decide that I want undo to be first in the list and redo next and the final thing I always like to do here is I like to add some separators now separators are a very simple way just to add a little bit of structure into that quick access toolbar they allow us to visually separate commands of similar type at the top of every list in here you’re going to find separator so I’m in all commands but if I was in popular commands right at the top of that list we have a separator as well so I’m going to add a couple of separators into here I’m just going to rearrange them so let’s move this one down to I think just about there so now when I click on okay take a look at how that quick access toolbar has updated so it’s added the new commands and you can see that we have these faint lines those are the separate which just adds a little bit of structure in the final thing to point out here is that if you don’t like or you find it difficult to identify these commands on the quick access toolbar simply by looking at the icon we can choose to have a label next to the icon and this is a reasonably new feature in Project let’s click the drop down right at the bottom here we have show command labels so if I click on this you can see it adds a piece of text next to each one making it a little little bit easier to know what that icon represents of course the downside is it does take up more room so you can’t have quite as many items on your qat I’m going to switch mine back to the icons but that is pretty much all there is to know about the very useful feature the quick access toolbar if you want to work efficiently in Microsoft Project then you’re going to want to know a selection of keyboard shortcuts to help you move around your project plan quickly and the good news is if you are already a Microsoft user as in you are used to using applications like Excel PowerPoint or maybe even word many of the keyboard shortcuts that you already know and love in those applications are exactly the same in project so things like control C to copy crl V to paste crl X to cut crl s to to save all of these are exactly the same now of course there are some differences and some that are very specific to project only and in general what you’ll find is that you’ll probably have 10 to 15 keyboard shortcuts memorized and you will use them all the time I’m a huge fan of keyboard shortcuts because I find they really do speed up the way that I work so where can you go to see a full list of all the keyboard shortcuts available in Project well the easiest way is to go into the help files so we’re going to go in there from The Tell Me box and I mentioned this keyboard shortcut earlier we’re going to press alt Q which is going to jump our cursor up to the top there so if we type in keyboard shortcuts and hover over the arrow I want the second one keyboard shortcuts for project so this is going to open that help file and then as we scroll down the shortcuts are divided into different groups so if we jump into frequently used shortcuts we can see a big long list of all all the different shortcuts to execute specific tasks in project and as I said you’ll notice that some of these are exactly the same so saving a project file crl s creating a new project file crln that’s the same as if you wanted to create a new word document in Word so have a little look through these maybe jot down a few that are going to be most useful to you and then after a while you’ll find that you get these memorized now another way to find out if a command on the ribbon has a keyboard shortcut assigned to it because not all commands do is to Simply hover your mouse over the command now notice here I’m hovered over bold on that ribbon and I can see the keyboard shortcut in Brackets in that screen tip that comes up contrl B if I hover over underline contrl U is the keyboard shortcut if I hover over copy contrl C is the keyboard shortcut and if I hover over for example in ECT it’s not showing me the keyboard shortcut so does that mean that it doesn’t have one well not necessarily because something else we also have which I know a lot of people love to work with are what we call keytips now we can access our keytips by pressing the ALT key on our keyboard now as soon as I do that check out what’s happened to my ribbon this is a great way to be able to navigate and select commands entirely using your keyboard so maybe I want to switch The View I can go across to the view ribbon by pressing w i then jump across to that ribbon and get a whole new set of keyboard shortcuts so let’s say I want to look at task usage I’m going to press K that’s going to drop down the menu I want the first one so I need to select K again and now it’s switching me across to that particular view take a look at the bottom I can see my task usage pan and I did that using entirely keyboard shortcuts so that ALT key is really useful so if you recall I mentioned that some of these commands when you hover over them don’t have a keyboard shortcut showing but if we press the ALT key and make sure that we’re on the task tab press h notice that inspect actually does I could use NS and that is effectively a shortcut for this inspect command and if you want to turn these keytips off simply press the ALT key again to get rid of them when we’re working in Project we have lots of different built-in views that we can display in different pains and the initial view or the default view that will load up when you first start using project is called Gant with timeline and you can see that reflected in the current project at the top we have this timeline view giving us an overview and then underneath we have the Gant chart which shows us all of our individual tasks our task information and then a visual rep representation of those tasks now if we jump up to the view tab up here we have a split view group so this is where I can control whether or not I see that timeline view at the top so if I decide that I’m not interested in this at this stage I can simply deselect timeline and that’s going to disappear put the check back and it brings it back again something else I can do from here is I can turn on the details view and what this is going to do is it’s going to split the screen and it’s going to add task form View at the bottom and this task form basically gives me more information about whatever task I’m currently clicked on in my project plan so if I was to select this second task just here I can see a little bit more information about this specific task So currently I don’t have any resources assigned to this task so that is why this area is blank but I can see the duration is 2 days it’s effort driven I can see the start and finish date I can see that it’s fixed units and I can also see a list of any predecessors down here as well so that details pane can be pretty useful for viewing more detailed information now I’m going to turn this off and I’m going to switch my timeline back on again now let’s jump back to the task tab because you can see that we have a View group just here now if I click the dropdown this is where we can choose what we’re displaying in our primary window So currently you can see that I’m displaying the gantar but I’ve also got a big long list of some of the most popular views that I might want to switch to for example I could switch across to the task usage View and I’m now seeing that in the primary window as opposed to the Gant chart now notice at the side here we have task usage and timeline now the one that’s highlighted in green is basically where you’re currently clicked so for me that is Task usage if I was to click up in the timeline that title is going to turn to screen so just be aware that you can very simply switch between your views from this Gant chart dropdown the difference between this and jumping across to the view tab is on The View tab we just have a bit more detail about the different views that we can select and it’s split down into views related to tasks and Views related to resources now the final way that we can switch views in Project is by using the status bar and again this is very similar to other Microsoft applications if you cast your ey down to the bottom right hand corner you can see that we have our different views down here so I can switch into Gant chart view which is basically what I’m currently on I can switch across to task usage view which is what we were just looking at I can go to Team planner which is a slightly different way of viewing my project and then I also have a resource sheet so if I have any resources I’m going to be able to see them in there and then finally I have a blank report view as well so as always with micros moft there are numerous different ways of switching views we’re going to be working predominantly in the default view which is Gant chart and timeline so as you leave this lesson ensure that your project is set up in this way another piece of terminology that you need to get used to when you’re working in Project is the concept of tables and a table is a little bit like a spreadsheet in Excel for example currently I have the entry table loaded up on the screen and this is just what you can see over here a table in general is made up of columns and also rows so in this particular entry table you can see the columns that we have a task mode task name duration and then if I was to drag this out we have a lot more lurking underneath there and then we have rows that contain our task information and this has the look and feel as I said of an Excel spreadsheet now the entry table is the main table you’re going to use to enter information about each task but there are other tables that we can load up in order to see other pieces of information and also edit them directly from the table as well so if we jump up to the view tab at the top in the data group we have a table Dro down just here and you can see that currently the entry table is selected that’s the one we’re currently looking at but I have other tables that I can select depending on what I’m interested in seeing at any given time so maybe I want to load up the summary table I can simply select it and it gives me an overview of the main touch points of this particular project or maybe I’m interested in the costs that are assigned to this project I could load up the cost table now we don’t have any costs in this project as yet but we can see our fixed costs our total cost our Baseline the variance all things like that let’s go back up to tables because we also have a more tables option right at the bottom and this is going to open up this little window which is going to show us all of the tables that we can load up into our primary window so if you can’t find what you’re looking for in that tables drop down jump into more tables and you should be able to find it in here so maybe I’m interested in looking at the workt let’s apply and this is going to show me information about the work hours the Baseline work hours if I’ve set that the variant the actual so on and so forth now another way that you can quickly switch between tables is to hover your mouse over this little square in the corner so just above where we have row zero and to the left of where it says task name if we right click in this little area this is a quick way of switching between the most popular types of tables so I’m going to switch back to entry but that’s pretty much all you need to know about tables at this stage just know that there are lots of different tables that you can load up in order to view different types of information in exercise 2 we’re going to practice some of the skills that we’ve learned so far in this section so the first thing I’d like you to do is just open up project and then open a new blank project I’d like you to review the ribbons and familiarize yourself with where the commands are located on each ribbon I’d then like you to practice moving between ribbons and selecting commands s using keyboard shortcuts once you feel comfortable with all that let’s add some commands to our quick access toolbar so I don’t mind which ones you add I’ve just given you some examples here of adding the format painter the 100% complete button and copy and finally I just like you to have a little play around and switch between views and tables so that when we do that throughout the course you know exactly where you need to go so a few things to do there if you’d like to see my answer then please keep watching so the first thing I asked you to do in this exercise is open a new blank project so I’m back at the start screen I’m in the new section we have blank project at the top doubleclick to select the next thing I asked you to do was just familiarize yourself with the different ribbons so take a good look through some of these ribbons and review some of the commands that we have on these ribbons remember if we hover our Mouse over any of these we get that little SCP it pop up which gives us more of an idea as to what this does so I just wanted you to sort of have a little look through start to get familiar with the layout of project the next thing I asked you to do was to practice navigating quickly and opening up commands using keyboard shortcuts so remember we can press our ALT key which pulls up those little letters so for example I could go to the view tab by pressing W I could go to the Gant chart by pressing G and then I could switch to the tracking Gan by pressing n so make sure you’re familiar with those ALT key shortcuts the next thing I asked you to do was to practice adding some commands to the quick access toolbar now I already have quite a few on here and I didn’t really mind which commands you added but I did give you some examples and one of those was the format painter so we can simply find it here in the clipboard group right click add to quick access toolbar another one was the 100% complete button which is just here in the schedule group rightclick add to quick access toolbar and the final thing I asked you to practice was simply switching between different views and tables so on the task ribbon we can click the drop down underneath Gant chart and we can switch to different views from here so I can switch to the resource sheet I can switch to Resource usage so on and so forth and if I want to switch between tables I can click on The View tab click the tables drop down the default is the entry table but I can switch to any of these so I can go to the worktable the summary table so on and so forth so just make sure you’re familiar with all of these different controls there’s lots of options and settings that we can change in Microsoft Project to get our copy of project working in a way that best suits us and really the options that you set are very much personal preference but there are a few that I would recommend that you either toggle on or toggle off before you get going so let’s run through those and I’ll show you my recommendations now to get to your project options we need to jump up to the file tab which is going to take us into that backstage area and we’re going straight down to the bottom let’s open up options now project options is a huge area we have so many different things that we can change in here you can see we have these different categories running down the left hand side so let’s let be logical and start at the top with the general tab I’m just going to draw your attention to some that I’d like you to check and possibly think about changing now notice here in the second section we have project View and it’s telling me that the default view here is Gant with timeline and that’s exactly what you can see behind here we have the timeline at the top and the ganta underneath and in general this is the view that I would recommend you start working with there are other options in here but if you have it set to something else make sure that at least for the duration of this course you have it set to Gant with timeline we can also choose our date format from here as well now this will differ depending on where you are in the world as you can probably tell I’m in the UK and the UK has a different date format too somewhere like the US now I have my copy of project set to us St format and you can see all of those listed down here and in general I like my dates to show in project in a very concise way so instead of this date format I’m actually going to change mine to something a little bit more concise I’m going to put it to that let’s now jump across to the schedule page and take a look at what we have in here now at the top here where we have calendar options for this project this is basically the time scale that our project is going to take on so the week starts on Monday the fiscal year starts in January and a working day is essentially 8 till 5:00 p.m. 8 hours per day 40 hours per week and 20 days per month now we’re going to talk a lot more about calendars a bit later on but this is your standard calendar that project uses by default of course we can set up our own calendars and modify this default calendar so that it more accurately reflects the working hours of our company because not everybody works Monday to Friday 8: till 5:00 p.m. for the time being we’re going to leave these default calendar settings alone if we scroll down to scheduling options for this project you can see where it says new task created are Autos scheduled and there are two options in here you can have manually scheduled tasks and Autos scheduled tasks so I’d like you to make sure that you have this set to Autos schedule what that means is that project will use its own scheduling engine to calculate when the task should occur and in general it’s a lot less work for you than manually scheduling your tasks now a little bit further down we have this little check box new tasks are effort driven now I’m going to put a check in this box because what this means is that the total work or effort Remains the Same when you modify resource assignments for example if we assign two people to a task that task duration decreases because the work is split between two people and usually that’s what you want it to do so make sure you have a little tick in that box and I also want you to make sure that where it says autolink inserted or mve tasks make sure that you don’t have a tick in this box because in my experience having this ticked can end up pretty messy so make sure you untick that now let’s jump across to the save page and check out our save options now right at the top here this is where we can specify where our project files saved so I’m going to change the location let’s go to browse and I want mine saved in my course files folder let’s click on okay and the good thing about this is that every time I now go to save a project file it’s automatically going to jump me straight to this folder because it’s the default file location another thing you might want to check here is autosave so how often would you like your project file to autosave now currently I have mine set to 5 minutes and that’s a little bit too short so I think I’m going to change this to 20 minutes and I want it to save the active project only now another setting that I like to have turned on is prompt before saving and what that means is that every 20 minutes I’m going to get a prompt pop up on my screen asking me if I’d like to save my project file now the reason why I like to have a prompt is that sometimes if I’m just messing around with a project file if I’m not prompted to save it means it’s just going to save it automatically and it might be that I’m doing something that I don’t particularly want to save to the file so I like to have a little prompt and I can choose myself if I want to save or if I don’t again this is very much personal preference but now I’ve set it to 20 minutes you might see it pop up occasionally as we’re working through this course let’s jump across to the advanced page and in this General section I’m also going to turn on this option prompt for project info for new projects so when we create a new project it’s automatically going to open up the project information window so that I can enter in some useful information about my project and this is something in general that I would do at the start anyway when I create a new project so I might might as well have it automatically prompt me to do that so let’s put a tick in there and finally let’s jump across to the trust Center and we’re going to go into our trust Center settings now I’m going to choose Legacy formats just here because this allows me to Define how project deals with files that have been created in older versions of project because what you might find is that if you are trying to open a file that was created in a much older version of project project professional simply will not open it and sometimes you’re not really sure why so I’m going to say prompt when loading files with Legacy or non default file format so that I get a message letting me know that this file was created in an older version let’s click on okay and okay again to save those settings so those are some of the settings that I recommend you change before you start working with project in this lesson we’re going to explore the basics of creating saving and closing a project file and up until this point we’ve been working with just a very basic file that I’ve created from a template in Project now the first thing I’m going to do here is I’m going to close this file down so a couple of points about closing project files there are a few different ways that you can do this we can jump across to the file Tab and we have a close option in here we could also use the keyboard shortcut control W notice that it’s prompting me to save my changes so I’m going to say yes I do want to save those changes and it’s now closed down that file a mistake that a lot of people often make is they immediately go up to the top right hand corner of the screen and click on the cross in the corner now the difference here is that if you click on that cross it’s going to close down all of project so you’re going to need to restart the application again in order to open another file so if you just want to close down the file but leave project open go to file and close or use the keyboard shortcut control W so now we’ve closed that file it’s jumped us directly to the back stage area and to the new section so this is where we can come to create a new project file and you can see we have lots and lots of different templates sometimes it’s quite good to start from a template because it means you’re not having to start completely from scratch and you can see that we have lots of templates in here organized by category that we can have a little search through so maybe I just want a simple project plan I could select this template from here click on Create and it’s going to load that up into the main window and these are great because we can just go in and edit the tasks but we already have the bare bones of a project plan in place so they’re a great starting block if you’re new to project and even if you’re not new to project they can be invaluable now we’re not going to work from a template in this case so control W to close down and this time I’m not going to save the changes because what we want to do is we want want to create a blank project so you can see the first option we have here the first thumbnail is blank project or we can use the keyboard shortcut contrl n which is also going to create us a new blank project now notice what’s happening here if you remember one of the options that we set in the last lesson was that as soon as we create a new project it’s going to pop open the project information window and that’s exactly what it’s doing just here so now I can Define the start date of my project the calendar I want to use where I want to start scheduling from all of that helpful stuff so I’m going to set my project start date to quite a way in the future so let’s do it for the 1st of March next year now when you schedule a project start dat that’s basically where any tasks you add are going to start from but also if you add tasks and you don’t assign a date to them which is something which happens frequently in Project sometimes you’re not really sure when exactly a task is going to start right at the beginning of the project if you add a task with no start date it’s going to give it the default of whatever we have for the start date of the project so in this case March the 1st 2023 now notice that the Finish dat is grade out and that’s because project calculates the Finish date for us automatically based on the tasks in our schedule so the Finish day is constantly moving depending on the duration of each task that’s why we can’t edit it from here another thing to note is that the calendar that this project is is going to use is the standard calendar and I briefly mentioned this again in the last lesson the standard calendar or the default calendar in Project is Monday to Friday 8: to 5:00 p.m. with an hour for lunch now there are a couple of other calendars in here there’s a 24-hour calendar and there’s also a night shift calendar but for now we’re going to keep this on the standard calendar so that’s all the information I want to add about this project at this stage let’s click on okay and the first thing I’m going to do is I’m going to save this project if you take a look up in the title bar you’ll see that before you save it for the first time it’s going to be given the very generic name of project one project 2 project 3 so on and so forth so let’s save again we can go into file or we can press crl s and it’s going to jump us across to the save as section now if this is the first time that you’re saving a file it doesn’t matter if you choose save or save as it’s going to take take you to save as because we need to give it a name now I’m going to go straight down to browse and notice what happens again this is another setting that we changed it takes me directly to my default project file location which for me was the course files folder so I’m just going to give this a name my first project and click on Save notice that the name has now changed up in the title bar so now that we’ve saved this for the first time as we work through we can now just save normally so when we press contrl s it’s just going to save all the changes that we’ve made now I’m quickly going to close this file again I’m going to use the keyboard shortcut control W and let’s just briefly take a look at how we can reopen files let’s go to the open page and if you cast your eyes over to the right hand side of the screen notice that the file that we last accessed is at the top of the list and I’m going to click on the drawing pin to pin that to the top so all I really need to do here is double click to reopen and if we control W to close down again the other way that I could open the file is to go to browse and it’s going to jump me back to that folder where I have all of my files saved I can simply select it click on open and it’s going to open the file so really simple and straightforward to create new project files save them and close and open a project I’ve mentioned calendars a few times already in this course so let’s delve into this subject in a little bit more detail and I’ll show you how you can set up your project calendar now as I’ve mentioned calendars in Project Define the working and non-working time for your project and the default calendar in Project is Monday to Friday 8: to 5:00 p.m. with 1 hour for lunch now not everybody works in this way for example some people might work part-time others might work at night some might have certain days of the week off so we have the ability to create additional calendars in project so let’s go up to the project Tab and in the Properties Group we want to go to change working time this is where we can come to take a look at our different calendars and Define the working hours for that calendar it’s also where we can create new calendars from as well now notice at the top we have loaded up our standard project calendar this is the default we have a little Legend which tells us what this shading means in this calendar so you can see here anything that’s white is working time so that’s Monday to Friday anything that’s shaded in Gray is non-working time so in this calendar that is Saturday and Sunday and that’s all we have in this particular standard calendar notice that if I click on a day in the calendar it shows me over on the right hand side that this particular day that I’m clicked on is a working day and these are the hours so 8:00 a.m. to 12:00 p.m. we then have a 1 hour break for lunch and then the afternoon is 1:00 p.m. to 5:00 p.m. and then underneath we have a little exceptions table and a work weeks table now if we go back up to the top and click the drop down notice we have two other calendars in here so let’s take a look at the night shift calendar so this is defined by different working time so you can see here every day is a working day apart from Sunday and if I click on one of the working days we can see the working times for this particular night shift calendar so 12:00 a.m. to 3:00 a.m. then 4:00 a.m. to 8:00 a.m. 11:00 p.m. to 12: a.m. now if we take a look at the work weeks tab underneath this tab basically represents the days and times when people work now because this says default in here the default calendar applies to all dates so let’s switch back to our standard project calendar because what we’re going to do here is we’re going to make some modifications so I’m going to make sure I’ve clicked on work weeks where we have default and let’s click on details now I’ve got Sunday selected currently and Sunday is a non-working day in this standard calendar but let’s go to Monday you can see in here it’s showing us the times that apply for this working day now maybe I decide that Monday to Friday the Working Day at my organization doesn’t start until 9:00 a.m. so the morning is basically 9:00 a.m. to 12: we then have an hour for lunch and then the afternoon is 1:00 p.m. to 6:00 p.m. instead so I’m going to change these working times now A simple way to do this is I can select all of the days that I want to change the times for simply by holding down my mouse button and dragging down so I’ve got Monday to Friday selected I’m going to say set days to these specific working times which allows me to edit these fields so I can simply come in here and I’m going to make the change so let’s say we want this to be 9:00 a.m. to 6:00 p.m. and click on okay and you can now see that that’s been reflected up here where it says working times for October the 5th 9:00 a.m. to 12 1:00 p.m. to 6:00 p.m. and you’ll find that is the same for all of the working days so very simple and straightforward to modify the standard calendar now it might be that some weeks we have different working hours so for example that kind of middle week between Christmas and New Year where a lot of people still work the company might decide that we have reduced hours because it’s Christmas so if we want to add in a schedule that accommodates that we can simply add in another work week in this little area at the bottom so we could give it a name let’s say I’m just going to call it Christmas week I can choose when that’s going to start so let’s move across to December and it’s going to be let’s say this week just here it starts on the 26th and ends on the 30th I can then go into details and I can set up the hours for that particular week so again it’s Monday to Friday I’m going to set the working hours and maybe everyone’s doing a half day so let’s say 12 to 6: p.m. and I can just delete out what we have here click on okay and check out the calendar above it’s now updated to reflect that change and notice in the calendar these are now highlighted in yellow and if we look at the legend it’s telling me that this is a non default work week because it’s a little bit of an anomaly and of course from here we can also create additional calendars so maybe I want to create a calendar for all the members of Staff who work part-time we have a create new calendar button in the top right hand corner let’s click it and I’m going to call this part-time calendar and in general I like to base the part-time calendar off of the standard calendar and simply modify it so I’m going to say make a copy of standard let’s click on okay I want to save the changes I’ve made to the standard calendar and now I’m in the part-time calendar so I can now go through and Define the working times so let’s go into details again I’m going to say

    that part-time workers they work Monday Wednesday and Friday and they do 900 a.m. to 12:00 p.m. and let’s get rid of that underneath click on okay and now I have my parttime calendar which I can select from the four calendar drop-down at the top using project calendars we can Define exceptions for regular work weeks such as public holidays so in this lesson I’m going to show you how you can set those up so the first thing we’re going to do is we’re going to jump across to the project Tab and we’re going to go back into change working time and we’re going to add our exceptions to the standard project calendar so let’s make sure that we’ve got that selected at the top there which we have and at the bottom we want to make sure we’re clicked on the exceptions tab now exceptions are primarily for nonworking time for example I might want to set up an exception for the first bank holiday in May next year now for those of you outside of the UK a bank holiday is basically just a public holiday and for us we have a bank holiday on the first of May it’s our Spring Bank holiday so I’m going to set up an exception in this calendar because it’s non-w working time so let’s first type in the name I’m going to double click so I can edit this cell and I’m going to say Spring Bank holiday now when I press the Tab Key it puts in some default start and finish dates but we’re going to jump straight in here and we’re going to change this so the Spring Bank holiday occurs on the 1st of May every year so let’s select that and it’s just one day so you can see the f time has automatically updated to reflect a one-day holiday maybe I want to add in another exception so this time we’re going to say that the office is being renovated so none of us are working now that probably wouldn’t happen in a real world scenario we’d probably be asked to work from home but just for this example let’s add in 5 days of nonworking time for office Renovations and this is going to occur in the summer so let’s go and say that this is going to start on the 12th of June and it’s going to end on the 16th of June so we have a 5-day duration now because this is non-working time I don’t really need to jump into details and specify anything else other than the name and the start and finish dates and you can see that when I click on exception number two office Renovations at the top here it says June the 12th 2023 is nonworking and if we now take a look in the little calendar preview for June just above you can see that those have been shaded out according inly in the calendar and if we look at the legend it’s telling me that this relates to exception days for this calendar so so far everything is working correctly now another thing you can add in are recurring exceptions for example maybe our team has a monthly all day meeting now technically these might be considered as working days but we’re going to block them out in our calendar as nonworking days and this is a meeting that occurs every month so we want to make sure that we set this exception to recur month monthly so let’s type in the name we’re going to say monthly meeting now for this I don’t necessarily need to specify the start and finish dates just here if we jump into details to open up this pane this is where we can set our recurrence pattern and one thing to note here is that when you’re adding in this type of recurring exception all of the recurrences need to be the same so we’re going to set this to nonworking time and then we’re going to choose our recurrence pattern so this is a monthly me meeting and I’m going to say that this meeting occurs on the first Monday of every month and then we need to choose the range of recurrence so when is the first meeting going to be when’s it going to start so I’m going to say that this first meeting is going to be towards the start of the project so our project begins on the 1st of March so let’s say that the first meeting is going to be the Monday after the 6th of March and then we can choose a specific date that we want this to end by or we can choose to end end after a specific number of occurrences so I’m going to schedule this for an entire year so I’m going to say end after 12 occurrences because it’s a monthly meeting let’s click on okay and now we should see this also shaded out in our calendar as an exception day so we’re on June 2023 but remember I scheduled it for all of next year and the first Monday of the month the 5th of June is in fact shaded out if we go to May you can see yes it’s there as well so one and so forth and now you can also see in the exceptions table at the bottom the start and finish dates have now updated to reflect the information that we’ve added into details let’s click on okay and we now have those exceptions added to our standard calendar in order for everything to work correctly in Project there’s some information that project needs to know for example project needs to know how many work hours there are in a day day and a week along with how many days there are in a month so that it can convert durations between time units it also needs to know the default start and finish times for tasks when they don’t have dependencies to calculate them so let’s just confirm what our calendar hours actually are first of all so we’re going to go up to the project Tab and we’re going to go into change working time now we’re in the standard project calendar and you can see in the preview window underneath it’s currently got today’s date highlighted October the 4th 2022 and then we have our working times defined 9:00 a.m. to 12: p.m. we have a 1H hour break for lunch and then we work 1:00 p.m. to 6:00 p.m. so this works out to an 8 hour day which is 40 hours a week so these are the working times that we’ve defined for our standard project calendar and if you recall we did make a slight amendment to these earlier on in this course so now that we have just reviewed our actual working times let’s click on okay and we’re going to jump into project options so let’s go up to the file tab all the way down into options and we’re going to go to the schedule tab now we did briefly look in here a bit earlier on because at the top here this is where we can Define our calendar options for this project so what we’re basically trying to do here is we want to make sure that our calendar options in here match our actual project calendar now notice here default start time is 8:00 a.m. now note at the top here default start time and default end time are currently set to 8 till 5: so we need to change this because our project calendar is 9 to 6 so we’re going to reselect 9:00 a.m. and we’re going to finish at where are we all the way down here 6:00 p.m. and this still works out at a standard 8 hours per day 40 hours per week and 20 days days per month if you’re wondering how it calculates this 20 days per month project basically says there’s roughly four weeks in a month and there are five working days per week so 4 * 5 is effectively 20 days per month now the final thing you want to check in here is right at the top where it says calendar options for this project and we have the project that we’ve got open right now listed now if we click the drop down we want to make sure we change this to all new projects because if we leave it on just the project that we have open these timings are only going to be used for that particular project and I want to use these timings for all new projects that I create so let’s make sure we select all new projects and click on okay so now our project options are synchronized with what we have defined in our project calendar in this exercise we’re going to practice some of the skills that we’ve learned in this section of the course so I’d like you first to open the file new product launch. MPP from the exercise files folder once you’ve got that file open I’d like you to go in and change the working time of the standard calendar to 9:00 a.m. to 1: p.m. and 2: p.m. to 6:00 p.m. I’d then like you to add another calendar a part-time calendar for staff that work Monday to Friday 9:00 a.m. to 1:00 p.m. I’d like you to sync the project calendar options with the project calendar and once you’ve done all of that I’d like you to close the project file so a few different things to do there if you’d like to see my answer then please keep watching so the first part of this task was to open the file new product launch. MPP from the exercise files folder so this is that file you can see it’s already populated with tasks durations start and finish dates now the next part of the task was to change the working time so for this we need to go to the project Tab and in the Properties Group Change working time now I asked you to change the working time for the calendar standard project calendar which is the one that we currently have selected and if I click on one of the working days so Monday to Friday you can see that the current working times are 8:00 a.m. to 12:00 p.m. and 1:00 p.m. to 5 p.m. so let’s go across to work weeks and click on the details button and from here we can Define our working times so I’m going to select Monday to Friday and we do that by holding down the shift key and I’m going to say set days to these specific times and then we’re going to modify this 9:00 a.m. to 1 p.m. and 2: p.m. to 6:00 p.m. and click on okay so now all of our working days should be set to those times I then asked you to create a new new calendar for part-time workers so let’s click on create new calendar I’m going to call this half time and I’m going to make a copy of the standard calendar to do this I’m going to say yes I want to save changes to the standard calendar and now I can Define my working hours so once again I’m going to select a working day let’s click on the details button but this time we’re going to select Monday to Friday we’re going to set to these specific working times but the smart time people only work 9 to 1 so let’s add that in and we can delete out the other times click on okay and now we can switch between these two calendars we have our standard project calendar with our new times and then we have our halftime calendar where we have 9:00 a.m. to 1: p.m. the next thing I asked you to do was to synchronize your times with the actual project options calendar so for this we can jump straight into options by clicking the options button at the bottom we’re going to say that our week starts on a Monday and I want to Define my default start and end times so we want these to match the times we’ve just set so 900 a.m. and the default end time is 6:00 p.m. and click on okay let’s click okay again I’m going to give my file a quick save and then we’re going to close it’s time now to talk about something that is really important in project and that is the difference between automatic and manually scheduled tasks now before we get into the details we need to make a quick change in Project options and as I’ve just been talking you can see the project has popped up a prompt for me to save this project if you recall in a previous lesson I also set this in options as well so I’m going to say yes I do want to save and let’s jump into ad project options now if we go to the schedule page I want to draw your attention to this little section down here scheduling options for this project now notice it says any new tasks that are created are going to be manually scheduled and this applies to this project only so just this file that I have open and if you take a look just behind this window in the status bar you can see right at the bottom it says new tasks m manually scheduled now I want to change this so that every task I schedule is Autos scheduled across all of the projects that I create so I’m going to go in and I’m going to change this because what I want to happen here is that for all new projects I want them to be Autos scheduled by default so I’m going to change it in my options click on okay and it’s not going to switch this project to automatically schedule new task by default I need to manually change that at the bottom so where we have new task manually scheduled I’m going to click just here and make sure that I have Autos scheduled selected going forward if I create new projects it’s going to default to Autos scheduled now what is the difference between manually scheduled tasks and Autos schedule tasks well let’s start out with Autos scheduled tasks first of all Autos scheduled tasks mean that project is automatically going to calculate task dates and durations which is extremely helpful particularly for large complex projects with manually scheduled tasks we’re in control of the task dates and durations so let’s take a deeper dive into this because it’s a really important concept to get your head around so let’s start with Autos scheduled if we take a look at the project plan that I have open notice that the second column here is called task mode so this is where we have our indicator as to whether a particular task is manually or automatically scheduled and you can see here that for all of these tasks in this project plan I have this icon and this icon tells me that this particular task is automatically scheduled that is the task mode so let’s pick a task in this list I’m going to go for task number 12 just here you can see that the duration of this task is 3 days the start date is October the 7th and the Finish date is October the 11th so when I added this task in and I set the duration to 3 days and I also set the start date project or automatically calculated what that finish date is going to be based on the duration and the start date and of course it’s going to take into account things like weekends and nonworking days so project effectively defines for me when this task is going to finish now the benefits of automatically scheduled tasks really present themselves when we’re looking at linked tasks so for example we’re still looking at task 12 and if we take a look at the bars on the right hand side we can see this blue bar here represents the length of this particular task but notice at the end we have an arrow because it’s linked to task number 13 so task number 12 needs to finish before task number 13 can begin so what happens if I was to change the duration of one of these tasks so I’m going to go to task number 12 and instead of 3 days let’s change this to 7 days now notice what happens the start and finish times update and again if we take a look at the bar that’s also updated it’s now longer than it was and task number 13 which relies on task number 12 completing has also had its start and finish dates adjusted because of the change that we’ve made so this is why automatically scheduling tasks is my preferred option because it means that I don’t then have to go in and start moving around task number 13 to reflect the new start and finish time now manually scheduled tasks are basically do-it-yourself scheduling we set the dates and the durations so just to show you how this works let’s add a brand new task into our schedule so I’m going to click task number 15 and I’m going to insert a new task above this task now there are a few different ways you can insert tasks I’m going to rightclick and then from the contextual menu I’m going to choose insert task so now we have this new task up here notice that it’s by default on the same indentation level as the ones above and we’re going to talk more about that in a later lesson and it’s automatically inserted it as an automatically scheduled task take a look at the icon in the task mode column now I’m going to change this to a manually scheduled task so to change individual tasks we don’t want to change them all we can click in the task mode click the drop-down and switch it from Auto to manually scheduled now notice the different icon that we get just there we get this little drawing pin or push pin icon so that is how you can tell which tasks are manually scheduled and which ones are automatically scheduled also notice in the duration we have one day question mark and that’s because we haven’t defined start and finish dates for this task as yet so project doesn’t really know so it’s put in the default of one day and it’s presenting a question mark because there’s unknown information so let’s rename this task I’m going to call this I’m going to say finalize market research results press the Tab Key and I’m going to set a duration so I’m going to set this to 2 days now notice the start date just here it’s showing as September the 30th 2022 and that is in fact the start date of this project so when we don’t Define a start date for a task the default is to start based on that project start date now also notice what’s going on with the bar over here notice that the bar is showing in this teal color now maybe at this stage I’m not sure about the start date for this particular task so what I could do in here is add in some placeholder text as opposed to having start and finish dates so in the Finish field I’m going to click and I’m going to say confirm with team now notice that it’s been shaded out the bar is now also a lot shorter because we don’t have a finish date we only have a start date and check out what’s happened to the icon in the task mode column we now have a question mark in there because the Finish date is effectively unknown at this stage and this is a really good reminder for me when I’m looking through my project plan I can see these highlighted areas these placeholders so that I know that I have some action to take I need to confirm the market research results with the manager and together we can work out how long this task might possibly take once we have that information we can just go back into the schedule and add it in so I’m going to say that that it’s been confirmed with the manager that this task needs to start on October the 20th 2022 the duration is 2 days so the Finish date is going to be December the 21st notice the bar now has these dark green caps on either end so that just means that we have a defined start and finish date for this manually scheduled task also notice that the question mark has disappeared from the push pin icon because we’ve entered in the duration the start and the Finish date so now that we’ve established the difference between Autos scheduled and manually scheduled tasks let’s create an Autos scheduled task so you can see how this works so to add a task into the entry table it’s a simple case of clicking in the first row in the task name column and typing the task name so my first task is conduct course research if I press the tab key it’s going to take me across to the duration field and notice again by default it’s put in start and finish dates based off of the start date of this project also notice in the task mode column this is an automatically scheduled task so all we need to do here is basically fill in the duration and project is going to take care of everything else so let’s say that course research is going to take me 10 days now I can use these little up and down arrows to scroll through the number of days alternatively I can click in the cell and I can simply type in 10 Now the default is days so I don’t need to specify anything other than 10 on a side note if you wanted to maybe use weeks instead what you could do here is Type in let’s say one W and that’s going to give you one week now I’m going to switch this back to 10 days now if I just put in 10 because I just changed it to weeks it’s it’s going to give me 10 weeks instead so now I do need to add something in other than 10 I need to add D after it so project knows its days and not weeks and now based off of this duration and my start date project has automatically calculated what that finish date is going to be for this specific task and we can see the bar updated in at timeline on the right hand side so really nice and straightforward let’s add in another task and we’re going to say that this task is going to take 3 days now once again check out the bar because I haven’t specified a start date it’s starting at the same time as conduct course research which is based off the start dat of the entire project now maybe I can’t draft the course outline until I’ve conducted the course research so I really want this task to begin when the one before it finishes so I’m going to change the start date just here to the let’s say the 16th of March now check this out I’m getting the planning wizard pop up now the planning wizard is an option that you can turn off or on but by default this is turned on so it’s telling me you entered a start date for draft course outline that is close to the Finish date of conduct course research so he’s asking me if I’d like to link these so the draft course outline will always follow conduct course research or I just want to move the start date of this task without adding a link to the previous task now in this case I do want to link these together because conduct course research is effectively a predecessor of of draft course outline now we are kind of getting a bit ahead of ourselves here because we haven’t really discussed predecessors but for the time being just to really illustrate the benefits of Autos scheduling tasks I’m going to say that I want to link them now as soon as I click on okay check out what happens to task number two it’s now moved to its new start date and it’s linked to the previous task so what we’re basically saying here is that task number one conduct course research needs to end before I can draft the course outline also notice in the entry table just here we have a predecessors column and we have a number one next to task number two so this is telling me that task number one is a predecessor of task number two so basic basically when you automatically schedule tasks and particularly when you’re linking them together the Finish date of this first task really controls the other task so now we understand how an automatically scheduled task Works let’s turn our attention to manually scheduled tasks and to really illustrate the difference I’m going to add one more automatically scheduled task into the schedule so let’s click in task name and add a third task so send outline to training manager for review is Task number three once again notice the duration is set to one day with a question mark so that means currently this is estimated the start and finish dates are set to the start dat of the project simply because we haven’t linked this task to any predecessors so for example I kind of want all of these tasks to start after each other so I can’t send the outline to the training manager for review until I’ve dro Ed the course outline so effectively task number two is a predecessor of task number three so what I could do here to get all of my dates to update and reflect accurately is go to the predecessors column click the drop- down and select task number two as the predecessor notice on the timeline it automatically links those tasks together and it moves task number three into the correct position because it starts directly after the task before it I still need to add the duration so I need to come in here and I’m going to say that this is going to take one day so my automatic tasks start and finish date has basically been determined by its predecessor and whatever duration I’ve entered now what about if this task doesn’t have a predecessor so if I remove the predecessor from this box by selecting it and pressing the delete key notice what happens to this task it moves back to the start date of the project and if I try and change the start date to let’s say the 21st of March I’m going to get this little error message just here and this is where we start to get into things like constraints now I’m not going to get into that at this moment in time I just really want to illustrate the difference between manual and automatic tasks so when we have a task set to automatic and the start date isn’t defined by a predecessor if we try and go in and manually change that start date we’re going to get all kinds of error messages and constraints pop up so this is where we would want to use a manually scheduled task Instead This is going to allow us to go in we don’t necessarily have to have a predecessor we can just select the exact dates that we want from the calendar drop down so I want this to start on the 21st which it does the duration is one day so it’s going to end on the 21st as well and if we take a look in the schedule you can see that manually schedule tasks show in a teal color we have darker caps on the end and the beginning to show we have start and finish times in there that are fixed and also notice we have this little push pin icon in the task mode drop down so automatic tasks are great for tasks that are linked together because it will automatically work out the start and finish times but in some cases that can be a little bit restrictive and you might find switching it to a manually scheduled task a little bit easier to work with another type of tasks we can add into our project plan are Milestone tasks and Milestones really show key points in a project they might be there to show progress completed deliverables or decisions or triggers and Milestone tasks don’t have any duration so we can add as many as we need into our project so let’s add a couple in because these are very simple and straightforward now notice that I’ve made a couple of changes to this project since the last lesson I’ve added in a few more tasks and the majority of these have predecessors and are automatically scheduled tasks the final one at the bottom where we finalize the course outline you can see I have a little note in there it’s a manually scheduled task and I don’t really know the duration or the Finish dates yet because I’m waiting on approval from the training manager so I’m going to add in a milestone task for when this course outline line is approved by the training manager so I’m going to select task number six and another little side note here when you’re selecting tasks click on the task number all the way over on the left hand side that’s going to select the whole task as opposed to the individual Fields if you were to click in any of these so we’re going to click on task number six let’s go up to the task Tab and all the way over in the insert group we have a milestone option so let’s click to add a milestone task now notice that’s inserted above where I was clicked and we just have the default text of new Milestone now notice that the duration is zero days as I said Milestone tasks don’t have any duration so it’s always going to default to zero days and now we can rename this Milestone so I’m going to click in the field and this is going to be outline approved now this Milestone task relies on task number five the task before being completed so let’s add in a predecessor once again we can click the drop down and I’m going to choose task number five click on okay and now check out the timeline Milestones are represented with this little Diamond icon so let’s zoom in so you can see that a little bit clearer we scroll across we have a little Diamond icon there and it’s showing me the date of this key milestone and this Milestone task doesn’t change at all unless you manually move it and Milestone tasks don’t increase the project duration in any way or reflect on the work or resource time so now that I have that Milestone I can update the information for task number seven so the duration is going to be one day but I now know the date that this task can start so we’re going to change this to the day after the outline has been approved so that is going going to be March the 25th but check it out the 25th is a Saturday so we want to set this to the next working day which is going to be the 27th and if we take a look at the Timeline we can see that change has now been reflected and it’s also worth noting that you can create predecessors for Milestone tasks as well so I’m going to make the Milestone task a predecessor of finalized course outline so if we click the drop down there it is Task number six outline approved let’s click and that’s now updated in the schedule summary tasks help us organize our project and they also give our project structure summary tasks can represent different phases of a project or even different groups of tasks and by Design when we create a summary task we can have subtasks of that overall summary task so let’s start out in this example by inserting some new summary tasks for existing tasks in our project so I’ve added a few more tasks in here I’ve set the duration start and finish times and if they have predecessors you’ll also see that we have a bit of a mixture of automatically scheduled and manually scheduled tasks so if I take a look at the different tasks that I have in this project I might want to divide these up into more manageable sections as I said creating summary tasks allows us to focus on just what we’re interested in at any given time and it also makes our project easier to read easier to understand and it gives it structure so we’re going to split this project up into a few different sections so what I’m going to do first here is I’m going to select all of the tasks that belong to the first section and our first section is going to be called preparation phase so let’s hover our Mouse over where we have task one until we can see that little black Arrow I’m going to click and then I’m going to drag down to select all of the tasks that belong to this first phase so that is basically going to be tasks 1 to 7 let’s go up to the task Tab and then in the insert group we have a summary option and this is going to allow us to insert a summary task now check out what’s happened to our table just here we now have new summary task at the top and the other tasks are now effectively subtasks of this summary task so let’s give our summary task a name we can click in the field and this is going to be called preparation phase you don’t have to put it in caps that’s just how I’ve chosen to lay these summary tasks out now notice that as soon as I do that I get this little black triangle next to the summary task so this is a collapsible and expandable group now I can click on the little arrow and it’s going to collapse up all of the subtasks click again and it’s going to expand them all out also notice with this summary task if we check out the timeline summary tasks are represented by a black bar now the duration of the summary task is very much defined by the durations of the subtask below it so the summary task is basically going to show us the duration when we add up all of these subtasks below and the start and finish dates for the summary task again is going to be determined by the subtask below so the start date that you see up here for this summary task is going to be the start date of the earliest task in this group and the Finish date is going to be the Finish date of the latest task in this group so we don’t really have to go in and edit anything for summary tasks because it’s all determined by the subtasks below and the reason why these summary tasks are quite nice is because at a glance you you can see exactly how long this preparation phase is going to take I can see it’s going to take 18 days I can see we’re starting on March the 1st and the preparation phase is going to come to an end on March the 27th so it gives you a really nice high level overview let’s add in some more summary tasks so this time I’m going to select tasks nine to task 17 let’s click on summary once again this is going to be the recording phase and this time you can see the duration for this entire phase is 69 days and we can see the start and end dates and check out how that reflects in the timeline let’s select tasks 19 to 24 click on summary this is the documentation phase and then finally we have the go live phase so all of the subtasks are indented under their relevant summary tasks and we can collapse up any that we’re not interested in which helps us remove the noise and really just focus in on the tasks that of interest to us now notice that when we’ve added in these summary tasks by default they are automatically scheduled summary tasks but we can also have manually scheduled summary tasks as well and manually scheduled summary tasks are sometimes quite good for showing this if we have enough time to get subtasks done so I’m going to add in another summary task and this is really just for demonstration purposes I’m going to delete it straight away afterwards but let’s say I want to insert another summary task just here so I’m going to highlight task 15 let’s go up to summary and I’m just going to add in here editing phase and I’m going to switch this to a manually scheduled summary task now currently the editing phase summary task only has one subtask which is make video amendments and the make video Amendment M task ends on June the 29th so the summary task above reflects that as well now check out what happens if I go into this summary task and modify the duration I’m going to take this down to two days now notice what happens here I’ve got a red squiggly line underneath the finish and if we check out the timeline notice that it’s showing in red and that’s basically telling me that the summary task is set to end before its subtask in this case completes and this is probably something that I’m going to need to look at now this doesn’t generally tend to happen with automatically scheduled tasks but sometimes when you’re working with manually scheduled summary tasks this problem might pop up so it’s good to know what it means and how to fix it so now I can see that this is in red I can see okay I’ve set 2 days for the editing phase but we only have one subtask here and that is 4 days long so it’s going to finish after the end of the summary task now I’m just going to take this back up to four which is an easy fix as soon as I do that you can see that it changes back to how it was previously a teal bar with the summary task showing just above so in the last lesson we saw how we can add a bit of structure into our project by adding summary and subtasks and I just want to focus a little bit more on that at the beginning of this lesson and then I’m going to show you how you can import tasks from other Microsoft applications now when we look at our tasks in our task entry view we can see that the summary tasks are currently showing in bold with these little triangles next to them and then all of the subtasks of these summary tasks are slightly indented from the left hand side now this is effectively a first level indent and if we click on the little triangle as we’ve seen that’s going going to collapse up that particular group of tasks click again to expand them out now it is worth noting that we can have subtasks of subtasks for example if I wanted to make let’s say task number three draft course outline a subtask of of conduct course research task number two I can simply select task number three and then up on the task ribbon in the schedule group I have this little button here that will allow me to indent that task notice that the one next to it will outdent the task so it’s going to do the opposite so if I click indent task notice what happens in the Grid it’s now indented task number three and made it a subtask of task number two and in turn because task number two is now effectively a summary task even though it’s not a top level summary task it’s highlighted in bold and again we have the same collapsible and expandable menu so if I coll collapse this up it’s just going to collapse up that one subtask click again to expand it out now if I want to do the reverse of that this can sometimes throw people off a little bit because most people think okay well I’m going to select task number two and I’m going to use the outdent button now if we do that we get something a little bit strange outting makes task number two a top level task and it removes the top level task from preparation phase now I’m going to control Zed just to undo that because effectively what we want to do here is Select task number three and then click on the outdent button and that’s going to put everything back to how it was previously so don’t forget about these two little buttons up here to indent and outdent your different tasks another thing that’s worth noting is that if we jump up to the Gant chart format ribbon remember this is one of those contextual ribbons that you only see when you need it and because we’re working in Gant chart view that’s why I can see this ribbon now all the way over on the right hand side we have a little show hide group here which is going to allow us to view as sub our summary and subtasks in different ways So currently you can see that I’m showing summary tasks if I was to Des select this it’s going to remove those and I just get a big long list of all of the tasks in my project click again to add those back in now something else I can add is a project summary task now when I click on this check out what happened we now get a new task at the top and this is always task number zero and this project summary task shows us information for the entire project so I always like to have this in my project so I’ve got a good at a glance overview of the exact duration and the start and finish dates of the entire project the task name is always going to be the name of the project plan that you’re working on so for me this particular plan is called import task information and that’s why I have that in the task name just there but of course we can go in and change that to something a little bit more meaningful so I’m going to say let’s just call this training roll out project so I highly recommend you turn on that project summary task and then finally at the top we can show or hide outline numbers so this shows our summary tasks and subtasks with a different numbering system so we have 1 1.1 1.2 so on and so forth if I was to make for example this task if I was to indent this a little bit further so let’s indent it it then goes to 1.2 and 1.2.1 before going back to 1.3 so that can sometimes be a really nice way of structuring your project now something else we can do when it comes to adding tasks into our project is we can import them from other Microsoft applications for example I’ve got some tasks that I want to add to this project and I’ve got them in a Word document now notice the way that I’ve structured this word document I have the summary task at the top this is the live training phase then I have my top level task here I’ve got some subtasks so on and so forth throughout this document and notice that some of these I have highlighted in yellow and these are basically my Milestone tasks now if I want to quickly get all of these into my project plan I don’t have to manually type them in I can simply copy and paste so what I’m going to do here is I’m going to select everything in this document and a quick way of doing that is to press the keyboard short cut crl a I’m going to press crl C to copy let’s go back to our project scroll all the way down to the bottom and I’m going to click in the task name and then I just need to paste contrl V and take a look at that it pastes everything in with the correct summary and subheadings now we say it doesn’t always get this completely right so I would definitely go through and check that everything is as it should be but in general this is a much quicker way than going through and typing it all in yourself obviously we still need to go in and update ad duration start and finish information and check out those Milestone tasks that were highlighted in yellow in the word document you can see that it brings across that formatting it doesn’t make these Milestone tasks automatically in project but it is a good way to REM remind us that these ones need to be changed to Milestone tasks and a quick way of changing these to Milestone tasks is to Simply set the duration to zero so I’m going to do that for all three of these and they are now effectively milestones in this project once I’ve set these as Milestones I can select all three of these and in the font group I’m going to say no color just to remove that yellow background fill so I’m going to go through and I’m going to add some durations and some start and finish dates for these tasks that we’ve just added I’ll see you in the next lesson so let’s take a look at some of the things we can do to reorganize the structure of our projects now as we’ve already seen we can use our indent and outdent buttons on the task ribon in order to indent or outdent various different tasks in our schedule for example if I scroll down my list of tasks maybe I decide that task number 37 get budget approval is indented too much we can simply select it go up to the schedule group and I’m going to choose to outdent this task which now puts it on the same level as book venue and create venue short list so very easy to rearrange the structure in that way effectively creating summary tasks and subtasks now what about when it comes to moving tasks around now you can move tasks around by dragging and dropping them but in my experience particularly if you have a long list of tasks it can be a little bit fiddly trying to move tasks around in that way because the page tends to scroll really really quickly so a much easier way to move your tasks around is simply to use cut and paste for example maybe I decide that this section just here the travel and accommodation section and when I say section I mean the summary task and all of its subtasks maybe I want to move that so that it all happens before we sort out the venues so what I can do here is select the summary task and all of its subtask which is all of these I can then press crl X or alternatively if we go up to the task ribbon in the clipboard group we have a cut option just here so let’s click on Cut and notice that that planning wizard pops up again so it’s telling me that I’ve got multiple summary tasks selected and it says deleting them will delete all their subtasks as well now this is because project has recognized that I’ve cut them so I’m essentially removing them from their current place in the schedule so it sort of thinks that I’m deleting them now I’m not deleting these tasks I’m simply moving them so I’m going to choose cancel just here and click on okay and then I’m simply going to move to where I want to paste them which is up here and once again I can press the contrl V key to paste or alternatively I can jump up to the clipboard group and click the top half of the paste button and like magic that moves them all into place so that is by far the easiest way to move individual or groups of tasks now one thing you might notice is that when you start to make changes in your schedule some of these fields or some of the cells are going to be shaded in blue now what these indicate are basically just changes that we’ve made so if you take a look at this you can see that all of the fields for the travel and accommodation section are currently shaded out in this light blue color and that’s because we’ve just made a change to these we’ve just moved them so if you are curious as to what that blue shading means it’s really there just to be helpful to show you the last tasks that you’ve made changes to it’s time now to talk about deleting tasks because once this is a fairly straightforward process says there are a couple of little quirks that you need to be aware of so let’s start out nice and easy deleting a single task for example if I go all the way down to the bottom of my schedule where I have print out expense forms if I want to delete this task all I need to do is select the task and I can simply press the delete key on my keyboard or alternatively I can rightclick on the task and I have a delete task option in the contextual menu so if we delete this nice and straightforward it’s gone from the schedule now I actually don’t want to delete that so let’s do a control Zed to undo and restore that task now this works slightly different if you’re deleting a summary task and its subtasks so let’s select the summary task and all of its subtasks and if I press the delete key on my keyboard that planning wizard is going to pop up again so it’s telling me that expenses is a summary task and deleting it will delete all of its subtasks as well now that makes sense in this instance because we have the summary task and all of the subtasks selected so you would imagine that if we are pressing delete we want to delete everything that we’ve selected so here I get a choice I can continue and delete expenses and its subtasks or I can cancel and not delete anything so I’m going to say continue click on okay and it’s it’s going to delete that entire group now I’m going to contrl zed to undo again because if we were just to select the summary task at the top and press delete again it’s going to ask me the same question so I have a choice of deleting the summary task and all of its subtasks or I can cancel and not delete anything so the point I’m trying to make here is don’t think that just because you haven’t selected the subtasks if you try and delete the summary task that is the only option you’re going to get now let’s take a look at a slightly different scenario maybe we want to delete a summary task but not any of the subtasks so we need to go about this in a slightly different way now notice that I’ve added just some example tasks into the schedule so task number 60 is the summary task and then tasks 61 to 63 are the subtasks so if I want to delete the summary tasks but keep the subtask I first need to select the subtasks and put them on the same level as the summary task so for this we’re going to go up to the schedule group on the task ribbon and use our outdent button that effectively makes the summary task and it subtask the same outline level I can then simply go in and delete the summary task as normal by pressing the delete key I can then reselect these three tasks and change their indentation level if I need to so I’m going to outd all of these and the final Point worth mentioning here about deleting is that if you want to delete an entire task you need to make sure that you have the entire task selected by clicking on that task ID if you’re clicked in let’s say the task name and you press delete it’s simply going to delete just the information from that particular field but notice as soon as I do that I now get this little cross icon pop up where I get an opportunity to delete the entire task so if if I click that cross it’s going to say delete the task name or delete the task so I’m going to say delete the task to get rid of the whole thing so just be aware of that when you’re making your deletions now I actually don’t want these two tasks in here so I’m going to select them press the delete key and we’re now back to how we were originally one thing that can be really useful in Project is to create WBS codes and WBS stands for work breakdown structure and what a WBS code is is a unique code that helps us identify each task in our project now why on Earth would you need a WBS code to identify your tasks well it might be that in some projects you have tasks with the same name for example if we look at this project on the screen you can see task number 46 is get budget approval and this is related to approving the budget for the venues and then a bit further down we also have another task task number 55 which is also get budget approval but this time it’s related to travel and accommodation for the trainers so effectively these tasks have the same name so adding a unique identifier is going to be helpful to us further down the track so let’s take a look at how we can create WBS codes and apply them to our schedule now the first thing we want to do here is we want to add a column into our project plan to show our WBS codes so don’t make the mistake of thinking that the task ID is the unique identifier this is effectively just the row number or the task number so let’s insert a WBS column so I’m going to write click on task mode and we’re going to go to insert column and this is where we can choose the type of column that we’re inserting so I’m going to scroll all the way down because these are in alphabetical order and we should have one for WBS and there it is now notice as soon as I add this column it’s giving me its default WBS numbering now we can create our own custom numbering to make this a little bit more relevant to the project that we’re working on so let’s take a look at how we would do that so to create our own WBS codes we need to jump up to the project ribbon and in the Properties Group we have a WBS option if we click the drop down we can go to Define code and this is where we can create our own work breakdown structure codes now the first thing we can do here is we can add in a project code prefix so in order to uniquely identify this project I could give it a prefix of let’s say trp for training rollout project and I’m going to put a dash there because I want a dash to separate that project code prefix and any numbering that I go with after this so now in this code mask area we can Define the number in sequence that we want to use for our unique codes and this first one is the top level so if we click the drop- down just here we can choose what we want it to display so I’m going to say numbers and you’ll see as I select these we get a code preview at the top so if I was to click on okay just here my tasks are going to be numbered trp1 trp2 trp3 so on and so forth in the length column I can place a limit on the number of characters so if I was to select two just here it means the numbers are going to run from 0 to 99 and I’m going to leave my separator as a period now I’m going to add another level and this time I’m going to choose lower case letters and once again I’m going to select two characters and again you can see in the code preview exactly what this is going to look like so this part of the code is going to run through from a a to zed z let’s add another level so I’m going to say uppercase this time I’m going to make the length three our fourth level is going to be numbers and I’m going to set this to two and let’s add a fifth level as well that’s also going to be numbers and I’m going to leave that on any length so now we’ve defined what our code is going to look like we want to make sure that we keep these two checkboxes underneath selected because means it’s going to generate a new unique WBS code for any new tasks that I add into the project and it’s also going to keep checking that the WBS codes that are being added are unique so let’s keep those checked click on okay and now you can see if we widen out this WBS column exactly what our numbering structure looks like so let’s take a look at our summary tasks that we have here those have trp 01 trp 02 trp 03 so on and so forth the next level down is 01 a a 01 a b 01 a c so on and so forth and that pattern continues throughout our project plan notice as we get a bit further down in this project plan where we have more outline levels we can see our WBS code is using more of the code that we specified so for example task number 31 is trp 05 AA and then we have Triple A the next one goes to Able a AAC so on and so forth so WBS codes are a great way to create a custom code that helps you uniquely identify tasks in your project plan in this exercise we’re going to practice some of the skills that we’ve learned in this section of the course so the first thing I’d like you to do is to open the file newor buor plan. exelsa from the exercise files folder and this is an Excel file and we’re going to use this file as the basis for the project that we’re going to create throughout the balance of these exercises once you have that open I’d then like you to go back to project and create a new blank project and save it as your initials business plan. MPP and I’d like you to set the start date of the project to the 7th of November 2024 or if you’re using your own project whatever the start date of your project is once you’ve done that I’d like you to add the first four tasks in the spreadsheet the ones that aren’t in bold because those are summary tasks into the project as automatically scheduled tasks now you don’t necessarily have to add them all there is a lot of them in the spreadsheet but add a good 10 15 to 20 i’ then like you to Mark some of the tasks as Milestone tasks in the schedule now again I have a few tasks in the spreadsheet marked as Milestones but if you you haven’t added that many tasks you can set any of the tasks to Milestones and then once you’ve done that I’d like you to go through and create summary and subtasks again using the spreadsheet as a guide and if you’d like to see my answer then please keep watching so I’ve opened up the new business plan Excel file and I’ve got it positioned on the right hand side of my screen and in the left hand side I just have project open so the first thing we need to do here is open up a new blank project and we need to save this so let’s go up to five down to save as I’m going to browse and select a location and we’re going to call this our initials new business plan and click on Save the next thing I asked you to do was to change the project start date so if we look at the details in the spreadsheet the first task basically starts on November the 7th 2024 so I’m going to use that as my project start date so so I’m going to jump into project information and I’m going to set the start date from here now because this is quite far in the future and I don’t want to have to scroll through a calendar I’m just simply going to type this in so November the 7th 2024 and click on okay and you can see it jumps to that part of the schedule so now that we have everything set up we can start to add in the tasks and I’m just going to add the first one I asked you to add the first four for a little bit of practice so the first one we want to add which isn’t a summary task is self assessment so let’s move across to task name now notice here it’s put it in as a manually scheduled task so I’m going to go down to the bottom and make sure that I have Autos scheduled selected and then we’re going to change this to Autos scheduled now the start date of this task is in fact November the 7th which is when the project starts the duration according to the spreadsheet is 3 days and there we go we have our first task scheduled and we can see the blue bar update let’s add the next one Define business Vision this is a one-day task and again this starts on November the 7th so we simply carry on going through adding in these different tasks and this is really all the information that I want you to add at this stage so I’ve added in a few more of those tasks and the next thing I asked you to do was to Mark some milestones in the schedule so if we take a look at the spreadsheet in column A we have mileston so I can see the first Milestone is this one down here confirm decision to proceed which in the spreadsheet is in row 27 so if we scroll down to task 27 this is going to be a little bit out because we don’t have the summary tasks in here but it should give us the rough area where this is so there it is just there confirmed decision to proceed I’m going to Mark the this as a milestone let’s double click to open it up and I’m going to select Mark task as Milestone and click on okay and I would go through this spreadsheet marking the other tasks that we can see in here are milestones in the schedule the final thing I asked you to do in this exercise was to create this summary and the subtasks so again I’m just going to do the first one because once you’ve done one you can pretty much do them all so the first one at the top here in rot of the spreadsheet new business this this is our top level task so what I’m going to do here is I’m going to right click and I’m going to insert a task at the top there let’s double click to open it up and we’re going to call this new business and click on okay and this is basically going to be our top level summary task so we need to select everything else in the spreadsheet so from task 2 control shift down arrow all the way down to task 101 and I’m going to have to maximize my window so I can see this properly if we go to task in the schedule group I’m going to indent these tasks which effectively makes that top task the top level summary task and then going to right click and insert a another task and this one is going to be phase one strategic plan and click on okay now this is going to be a summary task as well because if we refer back to our spreadsheet you can see Define the opportunity is also a summary task so I just want to include these tasks within the phase one strategic plan summary task so let’s select those tasks and once again we’re going to click indent task and now you can see our structure beginning to take shape so what I would like you to do is just go through the rest of your tasks adding in this structure and use the spreadsheet as your guide in order for a project to work and flow correctly project tasks need to be performed in the right sequence and when it comes to a project plan task dependencies or links basically Define the sequence of the tasks and it’s worth noting that most links have a link type of finish to start so what exactly does that mean this finished to start well let’s take a look at our current schedule so if we scroll to let’s say these tasks just here and I’m going to zoom out a little bit because that is a little bit too wide now if we take a look at these tasks so task 11 down to about task 15 notice that we have little arrows linking these tasks together so effectively what these links denote is that task number 12 isn’t going to start until task number 11 has finished so that is what we call a finish to start link and you’ll find that the majority of links that you come across in Project are going to be finished to start one task finishes before the next task can begin so effectively what we have here is Task number 11 is a predecessor of task number 12 so how do we create links between two tasks well let’s scroll down a bit further in the schedule and I’m going to say here that task number 32 assigned teams to Regions can’t be completed until we’ve assigned trainers to teams because each trainer has a specific preference as to which region they’d like to travel to so we need to establish that first before we assign the teams to the regions now I have task number 32 highlighted and if you take a look at the timeline view or where we normally have our bars I’ve got nothing on the screen I’m not in the correct position in the schedule now a quick way to jump to the part of the bars that relates to the task that you’re currently C clicked on is to Simply go up to the task Tab and all the way over in the editing group we have a scroll to task button now if I click this it’s going to move me to the place in the schedule relevant to where I’m clicked in the task entry table now you’ll find yourself using this scroll to task button all the time so while I’m here I’m going to right click and I’m going to add it to my quick access Toolbar to make it super easy for me to access so I can see here that task number 32 is a manually ual task and I need to link it to task number 31 so for this we need to select the task we want to link to first and then the other task so I’m going to hold down control and select both of these then up on the task ribbon in the schedule group I’m going to click this little link chain icon and notice here that there is a keyboard shortcut to quickly link tasks of contrl F2 now when I click this notice what happens to the BS it inserts a link so now we have this little arrow that links these two tasks but if we also check out what we have in the predecessors column in the entry table you can see that it’s automatically added that task number 31 is a predecessor of task number 32 now when we’re working through our schedule and we’re creating lots of different links and dependencies it can sometimes be quite useful to see a little bit more information about those links so what we can do is go up to the view ribbon and in split view I’m going to select details and this opens up another window at the bottom called the task form and what this is going to show me is additional information about whatever task I’m currently clicked on in the task entry view so if we take this linked task for example if I click on task number 32 I can see some further information I can see the name of the task the duration the fact that it’s manually scheduled the percentage complete and if I take a look over on the right hand side I can see see the task that it’s linked to so it’s linked to task ID 31 assign trainers to teams and it’s telling me that the task type is FS which basically means finish to start now it’s also worth noting when you’re working with links that you don’t necessarily just have to link each task to the previous task individually you can do them all in one go for example I could select um these three tasks just here go up to the task ribbon and click on create link and it’s automatically going to create finish to start links for all of these tasks so that can be really helpful if you have tasks in your project that can only start when the previous task finishes now aside from clicking on the little chain link icon in the schedule group to link tasks together you can also Link in a couple of other ways for example if I wanted to link tasks 2 and three together I can simply come over to the predecessors column and and I can either type the task number in this case number two or alternatively if I delete that out I can click the drop-down Arrow it’s going to pull up a big long list of all of the tasks and I can select the task that I want to link to from here so again that would be number two so three different methods you can use in order to link your tasks now I’m going to remove that because I don’t want to link those two notice as I did that as I added that link check out the cells that are showing as being changed the dates for all of the tasks below changed because of that link I just created and that is why these are showing as changed cells now we do have other task types that we can add in as I said by far finish to start is the most common but we also have finish to finish links that we can add where the finish of One controls the finish of another and then we have the two rarest task types start to start and start to finish and those really aren’t used very often and I will say that something like start to start can be quite problematic if the predecessor task starts and then is delayed it could finish after the successor and start to finish means that the start of one task triggers the finish of the other as I said both of those are extremely rare now if you want to change the type of link that a task has again we need to make sure that we have our details pane open and if we select let’s say this task on the right hand side in the task form where we can see the predecessor we can also see the type so this is a finish to start but we can come in here and change this to a finish to

    finish we can change it to a start to finish or we can change it to a start to start and this subject is definitely something I recommend reading the help files on so you get a really good idea as to the types of scenarios the types of tasks where you might have to use a different link type and if we take a quick look in the help files you can see here underneath types of tasks we have those different link types and a full description and in this description it gives you different scenarios where these might come up so I definitely recommend having a read through so that you know if and when you need to apply those to your project plan I’m going to switch off the details Pane and we are about ready to move on to the next lesson sometimes when we’re working with our project there is a delay or an overlap between tasks and this is where we can add in lag or lead time so let’s take a look at a quick example now currently in this schedule we take a look at task number five and I’m going to make sure that I’m on the correct part of the timeline and we can see that task number five is basically to update the course outline now in order to update the course outline I need to receive feedback from the training team and the task before that is to send the outline to the training team for review now currently I’ve assigned a one-day duration to that now it might be that the training team are assigned to another project for the next 4 days and can’t actually look at this outline so what I could do is I could add in some lag time and reflect that in the timeline so if you take a look at the bars currently we can see that update course outline is linked to the task before and currently update course outline is set to start as soon as the previous task finishes so as soon as the training team have reviewed the outline I can then update the course outline based off of their feedback but now they’re not available for the next 4 days so nothing’s going to happen for 4 days and I need to reflect that in my project plan so what I can can do here is once again let’s jump up to view and open up the details pane because in here this is where we can apply lag time if you take a look at the right hand side we can see the predecessor of this particular task is Task number four the type is finished to start and currently the lag time is zero dates but check out what happens if I change this to four so I’m going to use the little arrows just to move up to four and when I click away the schedule is going to update now you might need to scroll a little bit just to see that but check out what we have now if we click on task number four we can see the duration where it’s supposed to start but then we have 4 days of lack time before the next task starts and if you check out what we now have in the predecessor column we can see that for task number five update course outline I can see that this is linked to task number four with a finish to start link type and it has plus 4 days left lag that’s what this little code means just here so this is particularly useful because it enables you to see at a glance so much information so wherever you have a delay in your schedule you can reflect that accurately by simply adding in lag time to your tasks now what about if we want to do the complete opposite of that maybe we want to add overlap time to As schedule now what do I mean by overlap time well it might be that we have two tasks that can overlap each other for example if we take a look at the recording phase in my project plan maybe I don’t need to finish writing all of my training notes before I start recording the training videos so what I could do here is I could add in overlap time now the way that we do this is pretty much exactly the same as when we add in lack time but we just use minus values instead so I’m going to select record training videos task number 11 we can see that in our timeline if I scroll over a little bit and if we take a look in the task form we can see that this is linked to task number 10 write training notes it has a finish to start link type and currently there is no lag or overlap now we’re going to change that we’re going to click in this cell and instead of using the up Arrow to make it a positive value we’re going to say that there is a 5day overlap just here so it goes to minus5 when I click check out how that updates in the schedule if we take a look at our bars we can see that task number 11 record training videos can start whilst WR training notes is still going on and we have the arrow here linking these tasks but we clearly have an overlap once again if we take a look in the predecessors column we can see exactly what’s Happening Here we can see that task number 11 is linked to task number 10 with a finish to start link type and we have an overlap of minus5 days so that is the difference between lag and lead time use them accordingly wherever you feel they’re necessary in your schedule sometimes tasks in our project need to occur on specific dates or have restrictions and constraints are one way to specify when a task starts and finishes and it’s worth noting that every task has a constraint so what do I mean by that well let’s switch into a different view so you understand what I’m talking about now currently I have task form open at the bottom but we’re going to jump up to the view Tab and over in split view we’re going to click the drop down and go straight into more views because what I want to bring up here is the task details form let’s click on apply and I can now see that showing in the pane at the bottom now this is going to show me what constraints are applied to any particular task I have selected in the task entry table so let’s just pick a random task here task number six we can see a lot of information about this task but we can see that there is a constraint on this task now I haven’t set any constraints manually myself on any tasks that we’ve added into this schedule I’ve just typed them in we’ve done a couple of other things but we haven’t specified specifically constraints for any of the tasks but there is a default constraint that’s applied to all tasks and you can see here that that constraint is that the task starts as soon as possible and that’s kind of really what you want when project is trying to work out your durations and your timings it works off of the principle that you really want this project to be finished as soon as it’s possible and that is why we have that constraint type applied to every single task now of course if we click the drop down here we have other constraints types that we can use so things like as late as possible finish no earlier than finish no later than must finish on must start on so on and so forth and there might be scenarios where you need to add one of these constraints depending on what’s going on in your project so let’s take a look at a quick example if we take a look at this task task number 58 I can see that this is due to start on September the 12th 2023 and maybe I know that at the end of September every single year there is a sale on flights so I don’t want anybody to start booking flights for the trainers until those flights go on sale because we’re going to save the company quite a bit of money so what I can do here is I can change the constraint from start as soon as possible to start no earlier than and then I can select a date so I’m going to go across to September 2023 and I don’t want anyone to start booking flights until the last week of September so let’s change that to the 25th and you can see automatically these schedule updates and everything below that relies on this particular task has also updated hence why we have those blue cells now I’m going to scroll to task by using the icon on the quick access toolbar so I can see what we have going on here now notice something else about this task now that we’ve added that constraint you can see that in the information column on the left hand side we now have this little calendar icon and if I hover my mouse over it I get a little screen tip popup that says this task has a start no earlier than constraint on September the 25th 2023 so whenever you see that calendar in that column it means that There’s a constraint applied to that particular task now I’m going to leave it to you to explore some of these other constraint types I think most of them are pretty self-explanatory now a lot of these are what we would consider to be flexible constraint types but some of them are a little bit more fixed so for example must start on for example if I select task number 47 book venue maybe that’s a very fixed item and it must start on a specific date in order for anything that comes after it to flow correctly through the project so maybe we have to book a venue on August the 25th so I could select a constraint in here to make that more fixed in the schedule so I’m going to select it it is a milestone task we can still apply constraints to Milestones but I’m going to change the constraint to must start on and then I can choose the date so it’s going to be August the 25th so let’s jump across to August and select the 25th click on okay and once again we get that little calendar icon which says that this task has a must start on constraint and then we have the date so some of these are a little bit more flexible some of them are very fixed but something that’s worth bearing in mind is that you want to really limit the number of date constraints that you have in your project and the reason why you want to limit it is because it reduces projects ability to schedule things in the best way if we’re constantly adding constraints into the project muster on this day can’t start before that date project is going to find it harder to create a project plan that flows nicely through now obviously in some circumstances you’re going to need to add constraints but all I’m saying is be mindful of how many you have in your project and try and limit them the best that you can another thing that’s worth noting about task constraints is that you don’t necessarily have to apply these from the task details form so if you don’t have this details pane open and your project looks something like this what you can do is select your task and then on the task ribbon all the way over in the Properties Group we have an information button and that’s going to pull up loads of information about the task that you’ve selected so in this case I’ve selected a summary task now if we jump across to the advanced tab we can also set our constraint type in here so this one currently is as soon as possible but if we click the dropdown we have some other options and we can choose a constraint date now notice here that when I click the dropdown I only have three options to choose from now that’s because I’m clicked on a summary task if I just click on a regular work task go up to information and to the advaned tab when I click the drop down I now have all of those constraint types so if you see a shorter list in here it’s going to be because you’re clicked on a summary task as opposed to a work task and this information box is a really good place to come because this is where you’re going to find lots and lots of information about the tasks that you currently have selected in the schedule and of course you can modify task information from here as well as well as from the task form details paint when we start linking tasks together in Project it can start to become a little bit cluttered so we need to know the best ways that we can view our tasks and view predecessors and links now one way we’ve already seen we have the predecessors column in our task entry table which gives us a nice overview we can see immediately which tasks are linked to other tasks and also the type of task link that we have in place and if there’s any lead or lag time so if you don’t have this predecessors column showing I highly recommend that you right click go to insert column and choose predecessors from here and remember this long list is in alphabetical order so it’s very simple to find the one that you need now I already have my predecessors column so I’m just going to escape out of that now another way that we can view our tasks and any links is by looking at the bars on the right hand side now currently I’m not seeing a great deal on this page because I have my bars set to display every single day so my tasks are very stretched out across the entire timeline of the project which in some cases is a good thing if you want to see in more detail but I actually want to condense this up a little bit so I can actually see more of the task in this area so what we can do here is we can jump across to the view ribbon and then notice in the zoom group we have a time scale option and currently mine is set to days which is why I have such a broad time scale up here so what I’m going to do is I’m going to click the drop down and I’m going to change this to display in weeks and now I can see a lot more information because it’s a little bit more condensed another thing that we can do is we can select a task in our task entry table so I’m just going to go for task number three and we can see it’s driving predecessors now if we jump up to the Gant chart format tab in bar Styles and click task path let’s take a look at the screen tip just here it says that this is going to highlight the predecessors that directly affect the selected task so let’s click on this now notice when I click away These Bars change to this orange color and depending on which task I select in the task entry table the predecessors that are driving this particular task are going to highlight in Orange if I was to click somewhere down here you can see more and more things get highlighted in Orange so this is a quick way of seeing all of the tasks prior to the one that you have selected that are really driving the completion of the task you currently have highlighted and that can sometimes be really useful now if you want to turn that off just go back up to task paath and deselect driving predecessor and one final thing that you can do from this Gant chart format tab is you can control the layout of these tasks and how they’re linked together so if we go to the format group right at the beginning here we have a layout option and it says format various aspects of the current view so if we click on this and take a look at the link section we have three choices here so I can choose to display my links like that so I have no arrows in between each of the bars so it gives it a less cluttered look and feel but for me personally I don’t find this particularly helpful I like to have a visual representation of which tasks are linked together as opposed to just having the numbers in the predecessors column in the task entry table but that option is there if you like that look if I select the second one it links them through like that and the third one we get something slightly different so really it’s just the format the layout of these links so choose whichever one you prefer and another thing that you could turn on to make the readability of your bars a little bit easier is you could turn on grid lines so again in this format tab if we click the drop down next to grid lines and select grid lines again I’m going to choose to add lines to my Gant rows I can then choose the type of lines let’s go for a dotted line and I can also choose the color so let’s go for a green color and I can then choose the interval now I’m going to set that to none and click on okay and you can see what that looks like so sometimes that can really Aid your readability because it makes it a little bit easier to see which bar relates to which entry in the task entry table so if you like that then turn that on I’m going to turn this off and try and keep this as clean as possible by setting this back to none in this exercise exercise 5 I’d like you to create task dependencies as per the information in the spreadsheet so you’ll see that there is a predecessors column that tells you which tasks need to be linked together and then I’d like you to just have a play around adding lag and lead time into certain tasks and I don’t really mind which tasks you use for this once you’ve done that I just like you to practice filtering your task list so a good one to show would be all of the tasks Tas s in your project that are Milestone tasks so a reasonably straightforward exercise if you’d like to see my answer then please keep watching so let’s take a look at the spreadsheet and you can see that we have a predecessors column just here so once again I’m just going to do the first couple so you can see how this works but I can see that identify available skills information and support is dependent on the task before so if we go to this task in the schedule which is Task id5 and expand the column we can choose our predecessor so this is going to be task number four which we can simply select just here and click away and the next task so this one is going to be linked to task number five and that is how simple it is to add predecessors into our schedule notice the arrows connecting the bars in the Gant chart remember you can add more than one predecessor to a task so go through that spreadsheet adding in your predecessors and creating those links the next thing I asked you to do was to add in some lag or lead time so let’s choose this task task number six I’m going to double click to open it up we’re going to jump to the predecessors Tab and I can see here that we have a finish to start link type currently with zero days lag so what I’m going to do is I’m going to add in five days lag remember if you want to add in lead time this is going to be a minus figure in here let’s click on okay and now you can see how that’s affected the schedule task number six has now been pushed by 5 days into the future because we’ve added in that lag time if we select the previous task and for this one let’s add in 3 days of lead time and the final thing I asked you to do here was just to practice playing around with some of the filters so we can find those up on The View tab in the filters group and one example I gave you was to filter and show all of the Milestone tasks so you can see here I’ve got four of them in my schedule we’ve made the files the instructor uses in this tutorial available for free just click the link below in the video details to get these hello everyone and welcome to this course on Project professional 2021 Advanced my name is Deborah Ashby and I’m a Microsoft instructor and subject matter expert and I’m going to be your host for this course now I’ve been using project for over 20 years now so I am very aware of what a fantastic tool is for project managers or pmos but I’m also aware of some of the challenges of using what is effectively a powerful but complex application now this is the advanced project course so I will be assuming that you’ve worked through the beginner course already or you come to this course with a good knowledge of project we won’t be covering many of the basics of project instead focusing on more advanced topics like reporting macros consolidation and sharing custom fields and so much more project 2021 is the latest Standalone releas of project from Microsoft so if you have that version then this course is going to be absolutely perfect however if you are using project 2019 or 2016 then you’ll still be able to work through the majority of this course because there aren’t too many changes between the different versions now this course is divided down into logical sections and lessons there are 39 video Leed lessons and 10 exercises to work through and the exercises are there so that you can practice the skills that you’ve learned in each section you also have access to all of the course files that I use in the videos so you can follow along with me if you choose to once again welcome to this course it’s time to get started before we dive into the lessons I just wanted to spend a few minutes ensuring that you are set up for Success so the first thing to do here is to make sure that you’ve downloaded the course and exercise files and you’ve stored them off somewhere that’s easily accessible on your PC now each lesson will have two main course files so the one that has start in the title is the starting point for each lesson if you’re following along with me the complete file is how the file looks at the end of the lesson so this just provides a good reference point for you some lessons also require the use of multiple files but you should find everything that you need in that course files folder now the excise files are simply named exercise 1 2 3 4 Etc and for the majority of them there is also an answer file for each one too so you should have everything that you need to work through this course in those folders now when it comes to working inside project 2021 if you do want to follow along with me it’s probably going to be helpful for you to have some settings set the same as mine so let’s take a quick look at those so open up project we want to go into file and down into project options now on the general tab a couple of things I would make sure that you have set here so that it mirrors mine is the default view make sure that that is Gant with timeline also notice the date format that I’m using I’m using the month then the day then the year then the time there are lots of different formats you can choose from in here but again if you want to match mine as closely as possible make sure you have your date format set to that now if we jump across to the schedule page I would also recommend you review these calendar options as well so these are the settings that I currently have my week starts on a Sunday the fiscal year starts in January and my default St end times for a day are 8:00 a.m. to 5:00 p.m. which works out at 8 hours a day 40 hours per week 20 days per month so once again I would recommend that you change your settings to mirror mine now one final thing to note here that’s really important this course was recorded in March and April of 20123 so all of the dates that you see in the videos and in the course files are very much in relation to the dates when this project was recorded now I’m very well aware that you might come to this course in 6 months time a year’s time where these dates might not make too much sense so you have a couple of different options here you could adjust the start and end date of your project so it’s more accurate for you but just be aware that if you do do that you’re going to need to change those dates in every single course file that you work through alternatively you can just use my dates but just be aware that the results that you get in some lessons might not exactly match mine because we’re working up to different current dates so those are the main things to be aware of make sure you’ve got those course and exercise files downloaded because it’s now time to dive in to our first lesson it’s time now to complete exercise one now this exercise differs from the rest of the exercises in this course in that we haven’t really covered a great deal in project to facilitate a meaningful exercise however I just wanted to reiterate a couple of points here to make sure that you’re set up correctly to complete this course now the first thing you’ll notice in the exercise files folder is that there is no folder for exercise one and that’s because we aren’t using any project files in this particular exercise so if you’re curious as to where that fold is it’s not supposed to be there all I really need you to do for this exercise is once again make sure that you’ve downloaded and save those course and exercise files I want you to review the dates and decide if you want to use my dates or use your own dates and make sure that you have reviewed your settings in Project options so that is it I promise you that the exercises will be a lot more meaningful than this as you work through the course so let’s dive into the first lesson for the next section you’ll want to download the course exercise files click the link below in the video description to get these you can also scroll through the details to find timestamps for each section in this course if you’re enjoying this training please leave us a comment in this first lesson of this project professional 20121 Advanced course we’re going to take a look at consolidation and resource sharing and we’re going to look at these topics together as you often need to use them on a large project at the same time now generally what happens when you’re working on a project is that that project gets larger and larger over time and sometimes it can turn into a set of projects as opposed to just one project or perhaps we’re working on a project that needs to be split into a set of projects and not only do we need to split up the work the tasks but different people are going to manage different parts and what usually happens is that even if projects are being managed by different people they often share the same resources so in this lesson we’re going to look at combining multiple projects into one or splitting a large project into separate projects and sharing resources between projects now to demo this we’re going to use an example of an event and this event really has three key parts we have a Gala dinner and this is where invitees will pay an admission fee they’ll get a nice dinner maybe there’ll be some entertainment some dancing afterwards the next part of the event is a fashion show so maybe we’ve invited local fashion houses to display their clothes at this fashion show and they also get a buffet lunch whilst they’re there and the last part is the sports day so this is more of a family friendly event where people compete in different sports just for fun and there’s also a barbecue so we have have three very distinct parts of this one event now we’re going to assume that we’ve done some early planning and you can see here at the top I have a planning section if we expand this we can see the tasks beneath that so we have 20 or so tasks which we’ve already scheduled in relation to the planning of this big event now this event is quite a large undertaking so what we want to do is we want to split this event into separate parts with different people managing those different parts so we might have someone managing the overall project plan we might have somebody else managing the gala dinner someone else managing the fashion show and somebody else managing the sports day now the individual projects are not that complicated and we need a project manager to be able to manage their part independently and separately so why do we need to be able to do this well as you’ll know from your current knowledge of project when you’re dealing with editing a single MPP file if our project managers each want to work on it at the same time that can become complicated particularly if they want to work on it from home or they don’t have any shared access now splitting up the actual project file into effectively four separate files is pretty straightforward the problem starts to occur when it comes to resources now if we jump across to the resource sheet for this project you can see that we have eight or so resources assigned now also notice that I don’t have any costs assigned to these resources at the moment we are going to talk about that a bit more later but for the time being just note that we have eight or so resources now resources such as volunteers the event director publicity officers they might need to be able to work across all four of the projects so we need to set them up as effectively shared resources what you’ll also notice if we switch back to the Gant chart view is that many of these tasks across all of the different parts of this project have dependencies and links to other tasks in other parts of the project so when we split this project and we set this up to share resources we also want to make sure that we’re maintaining the Integrity of those links and everything links through correctly now a good proportion of the work here relates to the relationships between the tasks so let’s start out first of all by just separating off the sports day section of this project so if we scroll down you can see here is the sports day section so from task 46 to 56 and we’re just going to select all of these tasks now what I’m going to do is press contrl C to copy those tasks to the clipboard and then we’re going to open up a brand new blank project file you can go up to the file tab to do this I’m going to use the keyboard shortcut crln just to quickly open that up and then I’m going to press contrl + V just to paste those tasks in so now we have just the sports day tasks in this new project now once you’ve copied these tasks across it’s worth noting that those dependencies still exist within this summary task but remember in the original version of the project plan this sports day section also had dependencies in other parts of the project and those haven’t come across when we’ve copied these tasks also if we jump across to the resource sheet for this file notice that we now only have two resources because it’s only bringing across the resources that are included in this part of the project plan and you can see that the volunteer is now showing as overallocated because we’ve split this section out now the way that project looks at these resources is that these are completely independent of the original resources in the other project plan so these aren’t the same resources they’re two brand new resources as far as project is concerned so in the next lesson what we’re going to look at is how we can to share these resources across our project plans now before we leave this lesson the final thing I’m going to do here is I’m just going to save off this file so let’s jump up to file down into save as and I’m going to save this into the course files folder and we’re going to save this as Charity eventcore sports day and click on Save in the previous lesson we discuss the reasons that you might want to split up a project or join together a project and we recognize that it’s important to deal with resources and the key issue here is that when we split a project we need to make sure that those projects are using the same resources and the way that we do that is to set up what we call a resource pool once we’ve set up a resource pool we can then share that resource pool amongst several projects So currently we have our two files and you can see that I’ve got them both open on the screen just here now just a quick side note about project and opening multiple files what you’ll find is that if you try and double click in file explorer to open two separate project files they open in the same project window because we only have one project license it’s not like an application like Excel where you can have multiple Excel windows open to view different files now the way to get around that and to arrange files like I have them here you can see I have both of my files open in the same project window is simply to jump up to the view tab go over to the window group and you can see we have an arrange all button just here and that’s all I’ve done I’ve clicked arrange all and arranged my windows so they take up half of the screen equally so that’s just a side note if you’re wondering how I got to this point so now we have both of these files open one thing to note is that the original charity event file which we have on the right hand side here still contains all of the sports day tasks remember we copied and pasted those into the sports day file that you can see on the left hand side now we will need to remove those from the original file eventually but before we do that we’re going to set up a resource pool now the key aspects here when it comes to setting up a resource pull is that we basically set up a brand new project with resources but no tasks and really if this is something that you want to do you want to try and do this at the outset of the project so what many people will do is they’ll start off with an empty MPP file they’ll enter the resources make up the resource poll and save the project but with no tasks so I’ve closed down the smaller sports day file so we’re just back at our original charity event file and if we switch across to the resource sheet sheet we can see that we have a pretty good base for our resource pull because we have all of our resources listed in here so what we’re basically going to do is we’re going to make a copy of this file by saving it as a different name and then we’re just simply going to remove all of the tasks so let’s jump up to file and down to save as I’m going to save mine into the course files folder and I’m just going to call this charity eventcore resources MPP and let’s click on save so we’re now working in that file so let’s jump back to the Gant chart View and what we’re going to do is we’re simply going to remove all of the tasks so if we click on the Square in the top leftand corner just here it’s going to select everything and we can simply press the delete key on our keyboard I’m getting a little warning from the planning wizard do I want to delete multiple selected summary tasks and their subtasks yes I do let’s click on okay and all of those tasks are gone but we still have our resources listed out on the resource sheet so this is now effectively my resource pool so let’s give this a quick save and I’m going to reopen the other file the sport day file so what we need to do here is we need to specify that this project uses the resource pool that we just created so from here we’re going to switch across to the resource sheet and remember you can switch across using the icons in the bottom right hand corner in the status bar or you can jump up to view and resource sheet is just here so let’s click on resource sheet you can see the current resources that we have that limited list but if we jump across to Resource and into assignments we have a resource pull option so let’s Click Share resources and this is where we get to select the resource pool so from here if we choose the second option use resources we can then choose where our resource pool is located and the important thing to note here is that you need to have that file open in order for the dropdown to recognize it so I still have my resource pool open There It Is Charity eventor resources this is the file we’re going to be using and then we have options for on conflict with calendar or resource information the pool takes presidence or the sharer takes presidence now we’re going to look at this in a bit more detail a bit later on but what can sometimes happen is that there may be a conflict between the resource poll and any calendars applying to the resources in the resource poll and calendars in the sharing project so we need to specify which takes presidence the pool or the sharer now before we do this I’m actually going to click on cancel here because I want to demonstrate what happens to overallocated tasks when we assign a resource pool so let’s jump back to Gant chart view for one moment if you take a look in our task you can see that task 10 is currently showing as overallocated that’s a little red icon we can see in that First Column so now if we go back to Resource pool and share resources we going to make sure we’re using resources from our charity event resources file we’re going to say the pool takes presidence when I click okay watch what happens to task 10 you can see that that over allocation is resolved and that’s because if we now go to our resource sheet this project is using the resource poll and not just the two resources that were included when we copied the tasks across so what we now have is a resource poll and a project that is using that resource pool now the other thing that we need to do is we need to get the original file the charity event project to use the resource pool as well so let’s open it up so we’re going to do exactly the same thing we’re going to jump up to Resource pool share resources use resources from the charity event resources file and once again the pool takes presidence let’s click on okay now notice that as soon as I did this we we now have over allocations for the sports day pm and the volunteer and that’s really related to the fact that we have the sports day event in two different files if you recall when we copied the task across we didn’t delete them from the charity event file which is why we’ve got these over allocations and we are going to deal with those in a moment so just put that to the back of your mind now what we’re going to be doing over the next couple of sections is that we are going to split this charity event project up because at the moment we’ve only sectioned off the sports day part of this event but before we get on to that just one or two important points about resource sharing as I mentioned if we go back to our resource sheet we now have these over allocations and something that can be really helpful is being able to view which resources are assigned to which projects that can be very helpful when it comes to dealing with over allocations so for this we’re going to switch to Resource usage view let’s widen out this column and we’re going to add a new column so that we can see the project that each resource is assigned to so if we widen this out we can see at the top we have some unassigned resources but we can also see the projects in this column where those resources exist and if we scroll down to the sports day section I can see that the sports day PM the sports day project manager that resource is being used in both the sports day project file and also the original charity event file so adding this project column into your resource usage sheet can be super helpful particularly when you’re trying to deal with over allocations and see which resources you have allocated to which projects now one final point before we finish this lesson it’s not necessarily the case that all projects that share a resource poll are always Consolidated into one project you might find you have a situation where another project project that is completely unrelated to this event is also using the same shared resource pole so what I’m trying to say is when you’re working with a resource pool it might have a whole mixture of different projects that are using its resources so just bear that in mind as we work through the balance of this section so now it’s time to move on to the next lesson when we’re going to start to split off other parts of this charity event into its constituent projects in this lesson we’re going to set up a master project for our charity event and we’re going to start with our original project and the sports day project and if you recall these two share a resource poll now when it comes to splitting a large project up the key area where there is usually the most effort required is in restoring the links that existed in the original project and as I’ve mentioned a couple of times previously it’s a good idea to make this decision very early on so make sure that you decide if this is going to be a project that you’re going to want to split up into multiple different projects as early as you can because the later you leave it the more work you’re giving yourself now I currently have the charity event project open I’m just going to close this down and reopen it because there’s a little message that appears that I think it’s important that you take a look at so let’s close this down I’m going to say yes to save changes now I’ve close down the charity event file and I’m just back at the start screen for project because I want to just very quickly show you what happens when you reopen these files if you have everything closed so if we go to open I’m going to open up my charity event file and you can see that I get this little message open resource pool information now it says this file shares resources from a resource pool what do you want to do and I can choose to open resource pool to see assignments across all shareer files or do not open other the files so it’s basically recognizing that this file links to a resource pool in another file and it’s asking me if I want to open it so I’m going to say yes let’s click on okay and now if we jump up to the view Tab and go over to the windows group if I click switch Windows notice that not only do I have the charity event file open I now have the resource file open as well but it’s in readon mode so I have these two files open what I don’t have open is the sport day file but notice in the project column in the resource usage sheet where I have these long path names where it says C drive users Deb a so on and so forth this is actually the path where the sports day file is located so it’s still recognizing that we have links to that sports day file even though I don’t currently have that file open now let’s jump back to Gant chart View and we’re going to expand and the planning section now I’m going to collapse up some of the other sections so I’m going to collapse up fashion show so that we just have sports day expanded and planning because what you’ll notice here is that many of the tasks within the sports day section have links to tasks that are up here in the planning section and this is where the problem can lie when you’re trying to split up a project because effectively what we want to do is maintain the Integrity of the links between different parts of the project now if you recall we separated off into a separate file the sports day tasks and we save those into a file called charity event sports day so what I effectively want to do here is I want to replace these tasks in this project with the tasks from the sports day file and we do this by inserting a sub project so what I’m going to do is I’m just going to go into a blank line and we can choose this one just above and we’re going to go into the project tab and notice in the insert group we have sub project now if we select this we can then go in and browse for the file that contains the information that we want and it’s this one here the charity event sports day file and we can click on insert and you can see now we get a sub project inserted into our main project and we can tell that this is slightly different from the other tasks in this project because we have the little project icon in the information column I can expand the main summary task and I get to see all of the subtasks below now just take a look at some of the differences between these two sections now if we take a look at uh let’s say task number 51 just here look in the predecessors column this particular task has a predecessor of task 10 and if we take a look at the Gant chart I can see it relates to task 10 in the planning section now if I take a look at this same task in the some project perform risk assessment notice the predecessors column is empty so the link effectively hasn’t been maintained so these are the links that we basically need to recreate now before we get onto that I just want to talk a little bit more about the layout up here because what we’re going to do eventually is we’re going to delete out the sports say tasks in the original project so we just have the sub project but I like to leave these in there so that I can use them as a guide to recreate the existing links so for example if we take the first item here task 51 I can see that its predecessor is Task 10 and if we scroll up to the planning section task 10 is book venue so I basically want to recreate this predecessor for the corresponding task in the sports day project so you can see here we don’t currently have a predecessor for perform risk assessment now in Project 2021 normally when you’re link in in tasks you can simply click in the predecessors column and click the drop- down and select your task but notice here it’s only showing me tasks that are part of this sub project it’s not allowing me to link to other tasks within the original project so we can’t use this method we have to use the link option on the toolbar so let’s select book venue we’re going to go down hold down control and select perform risk assessment and then on the task RIS bur we’re going to choose link now notice a couple of things that happen here in the predecessors column it looks slightly different to what we normally have in here normally you’ll just see the task number but because we’re effectively linking to another project we actually get the entire path name in this predecessors column but if we now take a look at the Gant chart so I’m going to scroll across a little bit you can see that this particular task in our sub project is now linked with task 10 in the main project so we’ve very easily been able to maintain the Integrity of that link now I’m pretty much going to go through and do exactly the same thing for all of these other tasks and I’m going to be using this as my guide so wherever we have a predecessor number I’m basically going to recreate it for the project using the method I just showed you so join me back here in a couple of moments once I’ve done that so now that I’ve done that my Gant chart is starting to look a lot better and one thing to remember is that you also want to run through this same process for any successes now for most of these in our sports day subproject the successors are within the same project but if we take a look at this one just here sports day and barbecue I can see here the successor is a task that we have in the planning section now creating successors is pretty much the same as predecessors the only difference is the order in which we select the tasks so to create a successor we need to select the task we want to link to first so sports day and barbecue and then we select the successor so we’re going to scroll up and we’re going to select task 15 by holding down control and then we can click on link task 15 the predecessor updates but down here the successor has updated with that task so just bear that in mind when you’re linking through to your predecessors and successors now one thing you might have noticed here is that we have gaps in the numbering for example if we take a look we’ve got one and then it skips over two and we go to three 4 five six is missing seven eight is missing so on and so forth now we are going to talk more about these gaps a bit later on so don’t worry about it for now the final thing we’re going to do in this lesson is we’re going to delete out these sport State tasks so we can simply select them right click and choose delete I’m fine to delete all of the summary and subtask so let’s click on okay and now we’re just left with our sub project and all of the links should link through to earlier sections of the project let’s give it a save and once again we’re going to get this message pop up and for this you don’t really have to worry about it too much we’re going to click on okay to update the resource poll to reflect our changes we’re then going to Simply go to file and close this down it’s time now to complete exercise two and I have to say out of all of the exercises in this course this is probably the one that’s going to take you the most time now what you’re going to find in the exercise files folder is the exercise 2 MPP file and this file contains lots of different parts so much like what we were doing in the section previously so we have our planning section we have the gala dinner tasks we have the fashion show tasks and the sports day tasks and what I basically want you to do in this exercise is to practice the skills that we’ve learned in this section so I want you to split up this project into separate files so basically you need to create a master file and just for reference there is mine sitting here it’s called charity event all and this master file is going to contain multiple sub projects and each of the sub projects are listed below so we have fashion show dinner planning and sports day you’re also going to need to create a shared resource pool that all of them share together and once again you can see here I have a file called charity eventor resources this is where you’re going to find your resource poll and it’s the file with no tasks so your starting file is the exercise file at the bottom and these files here are really guides for you they are the finished result of my workings out now I don’t mind what you call your files you don’t have to name them exactly the same as what I’ve done here you can name them whatever you like but I would recommend that you save all of your files into the same folder another point to note with these exercises is don’t Focus too much on getting your project to look exactly the same as mine with project you might have different project dates set you might be doing this way in the future so the dates that you see in my project are not the same as yours you might have different options set or you might be using specific calendars so the focus doesn’t need to be on getting your project plan to look exactly the same as mine you just need to practice these skills so you can apply them to your own plans so that is it give it a go and I will see you in the next lesson so we’ve looked at some of the basic aspects of resource sharing and consolidation and now we’re going to look at some of the more practical aspects now consolidation and resource sharing Works absolutely fine if you follow a clearly defined set of rules and protocols and in order for this to be the case your requirements must be pretty straightforward if your requirements are more complex and a good example would be if you have a number of pools of resources and sometimes you need to get resources from one place and sometimes another or maybe you have lots of projects then Microsoft Project isn’t really going to cope with it without you being extremely careful because even then we would be working in an environment where even a small slip or deviation has the potential to cause disaster so if your requirements are even just a little bit more complicated go for project server where you can use Erp now Erp stands for enterprise resource planning and it gives us the ability to deal with shared resources from multiple pools and it’s supported in a more flexible and resilient way so if you’re looking at this and thinking my project is more complex than this then you really need to think about if Microsoft Project is going to be up to the job also if we have a situation where say we have four project managers sharing a Consolidated project and resource pool it’s very important that they all know what they’re doing because if even one of them doesn’t understand how to do this then it can cause chaos for everybody else so those are just a couple of points to bear in mind now you can see on the screen I’m currently in file explorer and I have all of my files remember we created these in the exercise I have them saved off to a shared location now in reality if you’re working at a company this might be some kind of shared network drive that everybody in your company or in your team can access now I’m just simply one person I don’t work at a company so I don’t have a shared network drive but what I do have is one drive cloud storage which again is another area where you can share files so I’ve saved my files into this shared area now one of the potential problems when you have project files saved to a shared network drive is the potential for conflicts because with a shared network drive lots of people might have access to these files and we could have multiple people opening the same file at the same time so again just bear that in mind I’m going to show you a couple of little pointers here so let’s start out by opening charity event all because all I want to do right now is just see the entire project so let’s double click to open so first off it recognizes that there is a shared resource pool and it’s popping up this little message asking me how I want to handle that so it says this file shares resources from a resource poll what do you want to do and then we have two options we can choose to open the resource pool to see assignments across all shareff files or do not not open other files now the reason why we might choose the second option do not open other files would be a situation where maybe we’re not that interested in working with or even seeing the resources maybe we just simply want to open the project plan so we can take a look at the schedule maybe add a couple of tasks in that kind of thing so if you aren’t really interested in the resources you could select that second option now the first option will allow us to see the other resources and that’s one we’re going to choose in this situation so let’s just click on okay so it’s going to open up the charity event all file and I can see the master and all of the sub projects that we have in here now the reason why I can see these is because I have them all stored in the same folder location if we just quickly jump back to file explorer all of the files all of the sub projects that are part of this master project are all in the same folder now let’s start dive into a quick scenario maybe I’m the project manager for the gala dinner only and at any particular time I only need to see the tasks and the information related to the gala dinner so let’s close down this file and just open up the Gara dinner sub project so we’re going to jump back to file explorer there is the Gara dinner project let’s double click to open now note that we get exactly the same message about the resource pull also note when you look behind at the tasks some of those are ghosted or grayed out and these are the tasks within the gadner project that either have predecessors or successors so essentially tasks that have dependencies now these aren’t real tasks in this project they just represent tasks in other sub projects so they’re really there to give me information about external dependencies now once again we’re going to select the first option let’s click on okay so there is my project and if we jump across to the resource sheet I can see my resource pull and I can use these resources in my project and remember as we saw before we could jump across to Resource usage view we could add a column for project and even though I only have the gala dinner project open I can still see where those resources are being used in relation to other projects so so this is a really important point to note here the resource pool is aware of where all of the resources are being used even if we only have a small part of the file open so now we have a little bit of a different situation the project manager for the gala dinner has decided that he or she wants to work on their part of the project from home so we’re going to say that they don’t have access to the shared location remember this is all in the context of these files being stored on a network drive at at your company now as the project manager of the gala dinner I want to be able to take all of these files home but the other project managers for each part of this project are also taking their files home so in order for the project manager of the gala dinner to be able to work successfully on this project from home would he or she need to take home the resource pool as well well in theory that is possible but in my experience that can lead to a bit of a disaster because if the project manager takes the Gad Dina file home and also the resources file and they make changes to those files from home the next day when they come into the office and load them back onto the network server and let’s say that all of the other project managers do exactly the same thing how do we manage all of those changes now of course in theory we could set this up so that everybody can work on it from home and the good example here would be to save these files into something like one drive as I do here but a lot of companies still work with files that are stored on network drives so we need to work out a way that we can do this successfully and with ease but also make sure that everybody is aware of the implications of doing this so what we’re going to do here is let’s close down the gadin file we’re going to reopen it but this time we’re going to select the second option do not open other files and click on okay so now we have a situation where we have the garad dinner file open but we don’t have but we don’t have the shared resource pool so if we go across to the resource sheet notice that we only have two resources as opposed to all of our resources and that is because we don’t have the resource pole open we don’t have access to it currently so it’s only showing us the resources that are in use for the specific tasks in the garad dinner project only and what project is basically doing here is it creates a temporary working resource sheet and only includes the resources that it knows about so as far as project is concerned these are local resources in a local resource sheet so let’s go in and let’s make a change so we’re going to open up the prepare dinner venue task we’re going to make sure we’re on the resources Tab and where we have our volunteer resource currently that’s showing us 300% so effectively we have three volunteers all working at 100% so what I’m going to do is I’m going to take this down to 200 click on okay now notice we get a little warning next to task 12 let’s click the drop down we have some options I’m going to choose the second option that’s absolutely fine change the amount of work but keep the duration the same so let’s choose that and it gets rid of our warning the other thing we might do is we might assign additional resources just here so maybe I want to assign the volunteer that I’ve just freed up to the make bar arrangements task so we’re going to click in resource name we’re going to choose volunteer units 100% that’s fine and click on okay now what about assigning a resource that we can’t currently see remember we can only see the garad project manager and the volunteer maybe we want to assign someone to help with the training of the garad dinner volunteers so let’s jump back across to the resource sheet and we’re going to add a caterer resource and we’re going to assign this resource to that task so let’s jump in to train garad dinner volunteers we’re going to go to the resources Tab and we’re going to add our caterer so those are the changes that I’ve made at home let’s give the file a quick save and close it down so let’s pretend it’s the next day I’ve come back into the office and I’ve uploaded the files that I worked on at home to the shared network drive so let’s now open up charity event all we’re going to select the first option as we’re back in the office now let’s check our changes if we scroll down to the garad inner section of the project let’s jump into the train garad in a volunteers task we’re just going to open it up and check our resources there is the caterer that we added so that’s looking good what about make bar arrangements let’s double click because we made a change there yes we have our volunteer assigned and if we jump across to our resources you can see that the caterer has now been added to the bottom of the resource pool so effectively the changes that we’ve made to this project without the resource P being available have come across absolutely fine in the previous lesson we looked at some of the Practical aspects of sharing and consolidation and how a project manager can work separately on a project that is part of a larger project and in this lesson we’re going to start by looking at another important basic question how do you maintain a resource pool now we’re still working in the shared location and we’re just going to open up the resource pool which is this file just here charity event resources. MPP so let’s double click to open it up and what you’ll notice is you get this little open resource P dialogue box and we have three options that we can choose so it says this file is the resource pool for many projects what do you want to do and the first option that’s selected by default is is open resource pool read only allowing others to work on projects connected to the pool now before we select our option here it’s important to bear this information in mind when we’re talking about making changes or updates to the resource pool we’re actually talking about two different things one type of update is where we change information in the resource poll such as the pay rate someone’s initials or maybe the calendar the other type of change we could make isn’t really a change to the resource poll at all it’s a change to an assignment and in this case it’s sort of the running total that the resource pool keeps of assignments for each of its resources so with that in mind we’re going to first select the first option in this list open resource pool readon allowing others to work on projects connected to the pool now if we open the resource pool using this option we can look at the properties of the resources and maybe do things like runoff reports but we can’t make changes to them so let’s select the first option and click on okay now you can see automatically up in the title bar it’s showing me that this file is open as read only now what we’re effectively doing here is we’re looking at a snapshot of the resource poll at a moment in time and of course other project managers might be working on their projects individually and it’s entirely possible that they’re making changes to their project and also the resource resource pull so if at any time we want to refresh the resource pull and see the changes that other people are making we can do that so if we jump up to the resource Tab and go to Resource poll notice we have a refresh resource poll option just here so if we click this it’s going to refresh it and pull through any of those changes now if we ourselves are making changes to the resource pool and we want to make sure that everybody can see those we would do a similar thing we would jump up to Resource pool but we would choose the option below update resource pool now it’s currently grayed out for me because I haven’t made any changes or updates to the resource pool but this is the option you would choose now if we go back into resource pool and just jump into the share resources option this is going to show us all of the files that this resource pool is linked to now this is more of an FYI it’s just useful information to know now I’m going to cancel out of here I’m going to close down the resource pool and we’re going to reopen because we want to take a look at the second option in that list so the second option says open resource P read write so that you can make changes to Resource information like pay rates Etc although this will lock others out of updating the pool with new information so if what you need to do here is something like change pay rates as it says in the message or any other fundamental change to the information about one or more resources then you’re going to need to open the resource pool in read write mode now when you do that you don’t stop

    others from opening projects that share the resource pool from opening their projects but they won’t be able to make changes to the resource information so it doesn’t stop them changing assignments but they can’t change any information that involves actually changing resource information itself so if you do need to do maintenance on the information in the resource poll then this is the option to use now the third option option is a variation on the second option it says open the resource pool read WR and all other share of files into a new master project file you can access this new master project file from The View tab switch Windows command now so far when we’ve been talking about project consolidation the implication is that there is an element of permanence to this all project the project that contains the sub projects and we’ve done that on the basis that this will be something that will continue throughout the life of the overall projects now in some cases either you don’t need that or that creates its own problems for example it restricts how users manage their own projects so you might find it’s better all around for users to keep their projects entirely separate on a day-to-day basis so they can still share the resource PLL but the projects are not Consolidated into one master project however it may be that maybe once a week for example you need to run a report and you need to run a report on all of the projects together in a master file so these are all decisions that you need to make depending on the type of projects that you have and I’m going to leave that for you to experiment with now a final few things to cover before we leave this lesson we’ve taken a look at how to share resources but what about doing it the other way around what about stopping sharing resources and really the important thing to remember here is that you need to have the pool and the file open so we’re going to open the resource pool in read write and I’m also going to open the Gara dinner file now as we already know the Gara dinner file shares resources I’m on the resource sheet now and I have my resource pull so if we jump up to Resource pull and go to share resources what I could do here is Select use own resources I’m going to click on okay notice now it’s effectively unlink from the resource poll and we’re only seeing the resources that are part of that Gala dinner project so so let’s close the garad dinner file down I’m going to say yes to save the changes I’m now back in my resource pool file and if we go to Resource pool and share resources check out the sharing links below remember we looked in here previously this is showing us all of the files that the resource pool is linked to you can see that the Gad dinner file is now no longer in this list so it’s no longer sharing the resource pool now I’m going to close down the resource pool and we’re going to open up charity event all and I’m going to say yes open the resource pool and notice in the project column where we can see our resources and where those resources are coming from we now have two separate files so the majority of these resources are using the shared pool which is this charity event resources file but the three resources that are part of the gala dinner project are now getting their resources from the gala dinner project instead now just to finish up this lesson let’s jump back to an chart View and as we know we’re currently working in the charity all which is showing us the master and all of the sub projects now maybe at this stage we decide that we don’t want the gala dinner sub project to be a sub project anymore maybe we just want to list out these tasks and have them part of the all project and this is a very straightforward thing to do so what we’re going to do is we’re going to select the sub project we’re going to right click our Mouse and we’re going to jump into information and we’re going to go to the advanced Tab and where we have source project if you notice underneath it says link to project so if we want to make these just regular tasks and not a sub project we just simply need to deselect this and click on okay I’m going to say yes I want to save changes and check it out we now just have those tasks listed as regular tasks within the all project it’s no longer an inserted sub project now this can have implications further up up in the schedule if we scroll up to the planning section some of the tasks that are part of the gala dinner project are now being referenced from in this case the planning sub project and what we would need to do here is to make sure that where the dependencies originally existed between the two sub projects and now exist between effectively a sub project of the all project and tasks within the all project you need to go through these dependencies and make sure they’re set up correctly and one of the most important things to bear in mind here is that when you do convert a sub project back to regular tasks that is not reversible so I always recommend it’s a good idea to take a backup copy of your file in case you decide at any stage that that’s not what you wanted to do in this lesson we’re going to take a look at how we can set up recurring tasks as this might not be something that you’ve come across before and we’re going to use the example of a progress meeting so in this scenario it might be that every month let’s say the 29th of each month we get the team together for a progress meeting and that meeting is going to last 3 hours and it occurs in the afternoon from 2: p.m. to 5:00 p.m. so if you were managing a project let’s say which lasts roughly a year you would also be managing 12 progress meetings now we could schedule these meetings individually but it’s lot more time efficient to set them up as recurring tasks we have to be aware that if you are going to set these meetings up as recurring tasks you need to be in a situation where there isn’t much variance from a pattern and what I mean by that is you know for sure that that meeting is going to occur on the 29th of every month and the duration is going to be 3 hours from 2:00 p.m. to 5:00 p.m. now of course there are natural variations for example the 29th of the month might not always be on a working day it could be at the weekend now project will deal with any situation like that so we don’t really need to worry about that too much but if in fact what you find is that every month your boss wants to move the meeting to a different date maybe the 24th or the 27th then setting up a recurring task might not be the most efficient way to do this so what I’m trying to say is that there needs to be a reasonably consistent pattern to your tasks now before we get into setting up our occurring tasks for this project meeting I just want to demonstrate something that surprisingly a large number of people don’t generally get to do in project and that is to use times as well as dates for our start and finish now what I mean by that is when you’re adding tasks or maybe setting the start date of your project most of the time we’re working with days we won’t generally scheduled tasks between two times it will always be a task that has a duration of 3 days 2 days one day 5 days so on and so forth but for this we are going to jump into the options and we’re going to add in a time element to our start and finish times so I’m currently working in the recurring task project file which you can find in the course files folder and I’m in Gant chart View and I’m just going to widen out the duration column because we’re going to add in a longer date format so let’s click on file we’re going to go down to options and on the general page if you take a look in the date format field you can see this is the format that I’m currently using so I’m going to change this to add in the time component as well so I think I’m just going to use this date format just here and let’s click on okay and we’re going to see that reflected when our occurring tasks are added into the schedule so now it’s time to add our occurring task we’re going to jump to the task ribbon and then all the way over in the insert group we’re going to click the drop down underneath task and choose recurring task so we need to to give our task a name so this is going to be a project meeting the duration is currently set to one day now we don’t want this meeting to be a one-day meeting it’s going to be a 3-hour meeting so I’m going to type 3 H in here I then get to choose the recurrence pattern so is this occurring daily weekly monthly yearly this is a monthly meeting so I’m going to choose monthly and then I can choose the detail of that recurrence so I could choose to set this to recur on a specific day of every month for example or I could choose to schedule this meeting on the second Wednesday of every month or maybe the third Monday of every month so you can really get quite granular about your occurrence information just here now we’re going to say that we want this meeting to occur every month on the 29th so let’s add in 29 just there of every 1 month and then underneath we get to specify the range of recurrence now currently the default start date here is just the start date of my project and the actual date that you have in here the start date doesn’t matter too much cuz project will work that out based on today’s date but we do need to change the time just here otherwise it’s going to schedule all meetings at 8:00 a.m. in the morning so we can leave the start date as it is but we do need to change this information over here so I’m going to say I want this to start at 2:00 p.m. we then get to choose if we want to end after a specific number of occurrences so maybe I’m only sched in this project for the next 6 months so I could say I want to end this after six occurrences now I don’t want to do that in this case I’m going to choose a specific date so let’s click on end by and I’m going to use the date picker and we’re just going to schedule these until the end of the year so I’m just going to select the 31st of December and I’m going to add onto the end here five p.m. the final thing at the bottom here is to choose a calendar for scheduling this task now for the for the time being I’m just going to choose the standard calendar and click on okay now notice I’ve got this little popup warning message that tells me two of the seven project meeting tasks will occur during non-working times so that means that the 29th of the month has fallen on a non-working Day so a Saturday or a Sunday based off of my standard calendar twice so I now need to tell project how I want to deal with that so I have a few different options it says project can reschedule the task to occur at the first available working time to reschedule the two task occurrence click yes so if I was to click yes here then project is going to reschedule both of those tasks that fall on a non-working day to the next available time on the next working day so we can safely say that if my tasks fall on a weekend if I was to choose yes here then project is going to schedule them for the next working day which is going to be Monday now if I was to choose no down here it’s not going to to create the two task occurrences so it’s not going to create them at all so maybe we decide that for those meetings that do fall on a weekend we’re just not going to have a meeting I could choose no the final option cancel is if I just decide that I want to cancel out of what I’m doing and not create any tasks I can just choose cancel now in this instance I’m going to get project to reschedule the two task occurrence so let’s click on yes and see what we get now if we take a look at the start column just here we can see that most of these project meetings have scheduled on the 29th but we can see our two exceptions we have one here which has been rescheduled to July the 31st at 8:00 a.m. in the morning and then we have this one down here which has been rescheduled to October the 30th so the majority of my tasks have been rescheduled correctly but I will now have to go in and deal with these two exceptions so that they reflect accurately because we don’t want these occurring at 8:00 a.m. in the morning so let’s click on the first task that needs to be rescheduled which is this one just here here we can right click and go into information and now we can just adjust the time so I’m going to change this again to 2 p.m. and the end time to 5 p.m. and click on okay so that one now looks a lot better I’m going to do exactly the same for this task just here so let’s rightclick information and make our changes so there we go pretty simple and straightforward but again it is worth noting that if each meeting that you want to schedule has significant differences maybe completely different times of the day then creating these individually as opposed to setting them up as recurring tasks is probably going to be more efficient for you now another thing to know if we decide at some stage that maybe this meeting is going to last 2 hours as opposed to three and we right click and go into the information for the first task just here if we were to change the duration up here to 2 hours just know that it’s going to BAS basically recreate every single task in this list so if you did make any changes to exceptions like we just did you’re going to have to go back in and redo those so that’s just really a point to note and another little thing to note here before we finish this lesson is that if you do go in and create recurring tasks you don’t necessarily have to create them just the end of your project you can extend them further than the project end date just bear in mind that if you do this it is going to extend the overall duration of your entire project so just be aware of that as well now when we do have our meeting scheduled as we do here you can see we have a project at the top which has a little arrow next to it which means it is collapsable and expandable and project has helpfully named all of these individual projects with a number so 1 2 3 4 to make them easy to identify now the very final thing to note here is that we can also assign resources to our meetings so what I could do here is click the project meeting at the top right click and choose assign resources and I have three resources already included in my resource sheet and I want to assign all three of these resources to the meetings so what I can do is I can hold down control to select multiple resources so let’s click the first one hold down control select the second one and the third click on assign and now when I click on close I can see in the resource names column I now have all of those resources assigned to every single recurring meeting in this lesson we’re going to take a look at how we can create custom fields and it’s probably the case that you have seen and used many of the fields associated with tasks and resources before so Fields associated with tasks would be things like its duration its start and finish times and you can see those them fields on the screen right now for this new project that we’re going to be working on so fields in Project are essentially columns now in some cases it might be that you’ll specify values yourself and sometimes project does it for us for example if we set up a task starting on a particular date and then we create another task with a dependency on the first say it’s going to start 20 days after the first task project will calculate the start date for us it will also calculate things like the amount of work involved in a task based on the duration number of resources and so on so the number of fields that we already have within project is pretty large but in any particular situation there might be other information that you want to store or see in your project so we do this using custom Fields And there are so many different things that we can do with custom Fields now as you’ll see in a moment when we dive into this project provides a set of dummy fields that we can use as the basis of our own custom Fields so we’re going to look at a very simple example of how to create a custom field and it will really give you an idea as to the type of things that you can do with them so we’re going to set up a very common scenario many project managers these days keep information about the tasks in a project and they call it rag status now what rag stands for is effectively red Amber and green and it’s a really simple indicator of how a task is going in a project so the way that this works is that for each task in a project it’s given a rag status so something is going well and it’s on track we might give it a rag status of G for green if something’s got issues it might get a status of a for Amber and if we have a task where things are going horribly wrong we’re over budget we’re behind schedule then we might decide to give that task a status of R for red now the way that people assign these statuses can vary some people do it manually and do it on a task toask basis but in other cases these values will be calculated based on the current performance of the project maybe how far overtime is this project or how far out of budget have the costs gotten now for this particular lesson I’m going to demonstrate setting up a rag status for use manually and we’re going to set up this new rag status custom field and then we’re going to assign values for the Project based on my own assessment of the state of each task so the project that we’re going to be working on is a new website for a company called National Farm Foods now the details of this project don’t really matter in this example but it is just a simple representation of the building of a website so let’s set up our custom field so for this we need to jump up to the project Tab and in the Properties Group we have a custom Fields button so let’s click on this and see what we get now it’s worth noting right at at the top here we can create a custom field for a task a resource or a project now we’re creating a custom field for tasks so we’re just going to select this first option and then we can choose the type of custom field that we’re creating and you can see that we have a number of different options in the dropdown just here now we’re creating a rag status task which means I want to see either R A or G in the column so that is text so our type is going to be text and then just below that in the fields area we have all of our dummy custom fields and you can see that we have 30 of them that we can modify and use So currently they just have the generic name text one text 2 text three so on and so forth and to be honest with you it doesn’t really matter which one of these you choose but let’s keep things logical we’re going to select text one at the top now the first thing I’m going to do here is I’m going to rename this field now we can double click to re name it or we can just select the rename button underneath so I’m going to give this a more meaningful name so I can identify it a bit better and we’re just going to call it rag let’s click on okay you can see it now renames it but we still have text one in Brackets so that just lets him know the type of field we’re using when we’re working with our custom field also note below we have some other buttons so we can delete fields from here if you want to get rid of one you can do that we can even import fields from other applications the next set of options that we have are custom attributes and you can see we have a choice of none lookup or formula now if we were to choose none it basically means that we’re allowing the users to type whatever they like in the field so instead of just typing R A or G they could type anything they wanted into that field now that’s not what I want I want to lock this down a little bit so that they can only type R A or G and that is where we would use the second option the lookup option because with this option we can provide a list and the only thing users are going to be able to do in that field is Select an option from that list the final option is formulas so if we wanted to add a formula which does a calculation in this field we could do that from here also now we’re going to choose lookup and this is where we get to Define what we want to see in that dropdown now the order in which you type these is entirely up to you but in general I tend to like to have the one that’s probably going to be the most commonly used at the top so for me I think that’s probably going to be green so I’m going to type G in here and then we can give it a description and the description is going to be progress good the next one is going to be a for Amber and we’re going to say that this is a warning so maybe something we need to check on and the final one is going to be R and we’ll just say that there are issues with this task now note that if you do want to rearrange these you can simply select them and you have little move buttons at the top so I could move that up to reorder it or move it back down we also have some buttons just above which will allow us to copy and paste if you want to make copies of these we can insert rows things like that and then underneath this little table notice we have a little check box that says user value from the table as the default entry for the field so once again if you think that one of these is going to be way more common than the others then you might want to select it so for example G for Progress good and click on set default and you can see that that Chang color which means that this is the default option we can also change the way that we’re displaying the order in this lookup table so currently I’m displaying these by row number so they’re going to show 1 2 3 in the dropdown or I could chose to sort these ascending or sort descending alphabetically and then the final option that we have down here are our data entry options and it says allow additional items to be entered into the fields and those values will be added to the lookup so again if we want to allow our users to be able to effectively modify what they’re seeing in the dropdown and just type something in and have it become part of this list then we could choose this option now I don’t want to do that in this case so we’re just simply going to click on close the next little group of options that we have calculation for task and group summary rows so these options here relate to calculations so if we take a look at our project let’s take a look at the development task and it subtasks in the project so task 13 14 15 and 16 so the development summary task has three subtasks so what this basically relates to is if I give all three of these subtasks a rag status of G for green do I want the summary task the development task to get a status of G as well or what about if I have a different status applied to each of the subtasks how do I want that to reflect in the summary task do I want it to average out to work out the status for the summary task so that is what these options relate to just here now in this case we’re just going to leave as on none the next option calculation for assignment rows now once again we’re just going to leave this on none and then the final group here values to display now currently I have this set to data which means it’s going to display an R an A or a g but if I wanted to make this more graphical I could add graphical indicator to represent those values and I could choose if I want to add them for non- summary rows summary rows and if I do select this option I can also select that summary rows inherit the criteria from non summary rows so this is where we could come in and we could add an image just here so for example I could click the drop down in test for Rag and I could say that if it equals let’s say G for green I could assign an image so let’s choose a green circle if it equals an a for Amber then we want to have let’s say an orange circle and if it equals R for red then we’re going to have a red circle now you don’t have to do this I’m just showing you this as an example let’s click on okay so now let’s click on okay to create our cust field and to get that fied display we just need to add a new column so I want my rag status column to appear somewhere around here so let’s select the duration column go up to Gant chart format and we’re going to insert a column and then we can go through and if we scroll down to R we should find our rag custom field there it is just there let’s select it and check out what we get because we set the green one as the default that’s why we’re seeing Green in here here but I could change this by clicking the drop down and maybe I want to change this to a for warning and we get our orange graphical representation now remember if you just wanted R A and G in here you didn’t have to set up these graphical indicators so I’m going to set this to progress good let’s say that this one has some issues or warning and we’ll just carry on adding a rag status for each of these tasks and it’s entirely up to you if you want to manually add a status for the summary task as well I’m just going to add them for the subtasks all the way down to the bottom and we’re going to do most of these as progress good so that is how you can set up a custom field and use it in your project in the previous lesson we saw how we can add a custom field into our project that shows the rag R status of each task and the way that we did that was that we entered our rag status manually if you recall after we added the column I then went through and selected the rag status manually from the drop-down for each of the tasks but as I mentioned in the previous lesson aside from doing that manually we might decide that we want to automate the calculation of values for a custom field and that’s exactly what we’re going to do in this particular lesson and we’re going to stick with our rag status field but this time the values are going to be calculated and there are many ways that people calculate rag status this can be based on numerous different things it might be based on Time Performance or maybe cost performance and we’re going to create a calculation based on cost performance now you can see here that I have version two of this project on the screen and version two differs from version one very slightly so we’re going to set up this scenario that the project isn’t going particularly well everything in the the original project plan was behind schedule and going well but now some things have happened and we’ve had to update our project to reflect the new status of each task and version two reflects the new status of the project now the first thing I’m going to do here before we get on to the calculations part of this lesson is I’m going to change the rag status column to use text as opposed to these graphical indicators so this is just a good opportunity for you to see how you can switch between these two representations of the rag status so I’m going to select the rag status column let’s go up to Gant chart format and custom Fields now if I don’t want to show these graphical indicators I just want to see the r a or G all I need to do is come down to where it says values to display and change this from graphical indicators to data so let’s select that option click on okay and we now get our text as opposed to those Graphics now now as I mentioned we’re going to calculate our rag status based on cost so the first thing we need to do here is we want to make sure that we’re displaying the cost table now I have the cost table displayed if you’re not sure how to do this and you’re in a different view if you jump up to the view tab go to the data group we have a tables drop down just here so you just want to make sure that you’re clicked on cost you might find that you’re clicked on Entry instead if you can see all of your tasks so we want to display the cost table now now one thing I want you to take a look at here if we extend this out is the variance column we can see that quite a few tasks have a positive variance I.E they’re currently running over budget and that really does make sense because in this project plan in this version two I’ve actually extended the duration of some of the tasks in this project and with an extended duration it means that we require resources for a longer period of time to work on that particular task and that in turn pushes the costs up so it’s not really a surprise to see that we have quite a few positive variances in here and that quite a few tasks are running over budget if you look at task five for example requirements definition we can see that the variance is just over $22,000 task 10 analysis and design that’s just under $11,000 and there are a couple of other tasks in here as well that are also running over budget for example ask 14 graphical resources and branding that’s slightly over budget at $90 so we’re going to calculate the rag status based off of the variance and the rule that I’m going to apply is that anything that has a cost variance of zero or less I.E the currently planned cost doesn’t exceed the Baseline cost any of those tasks the rag status will be G or green for any task whose cost variance is positive but doesn’t exceed $11,000 the status is going to be a or Amber and for all of the other tasks where the cost variance exceeds $11,000 the status will be r or red so let’s set up a second custom field so let’s go to the project tab custom fields and this time we’re still working with tasks we’re going to choose the next one in the list text two and we’re going to rename this to rag Auto so we can differentiate it from the original now when it comes to the custom attributes this time we’re going to use a formula to calculate the rag status so let’s click on the formula button now this little formula dialog box that pops up is very similar to the Expression Builder in Excel if you’ve ever used that you can see we have our mathematical symbols underneath so plus minus multiply divide we have our operators we have a little drop down this where we can choose different fields to work with and we also have a list of functions and these are categorized by type now the formula that we’re going to set up here we’re going to do it in two parts and the first part of this formula is going to allow me to identify all of the G’s in the rag status column so any task that’s flagged with a G for green now we know that a status of G can be identified by anything that has a c variance of zero or negative so let’s click the functions dropdown and the function that we’re going to use is the IF function so again if anybody out there is an Excel user this might be a function that you’re already familiar with and the IF function is a logical function it allows us to perform a test and then it outputs a value of true or false and we can add meaning to that true or false output now that’s all a bit complicated at this stage so let’s work through it slowly I’m going to go into General because this is where we have our if expression and notice here it does look a little bit different to if you’re using it in Excel but the formula is basically the same so let’s select if from the list and notice in this formula we have expression true part false part so the expression part is where you’re performing your test and then we choose what we want to Output if that test is true and what we want to Output if that test is false so what is our expression going to be what is our logical test well for this first part what I want to say is if the cost variance is greater than zero so I’m going to select where it says expression we’re going to delete that out and we’re going to replace it with a field so let’s click the drop down we’re going to go to cost and we’re looking for cost variance and what we’re saying is if the cost variance is greater then zero and then we can Define what we want it to do now for this first part here this true part I’m just going to put a little placeholder in here because we’re actually going to work through this in the second part of this formula so for the time being I’m just going to put in quote marks X and for the false part we’re going to put G so let’s work through this because if you’ve never seen this before this can look pretty complicated so what we’re basically saying here is if the cost variance is greater than zero if that is true output an X if it’s false output a g for green so if I was to click okay on this formula what I’m basically going to see in the rag Auto column is an X for positive values and a g for negative values so let’s try it out let’s click on okay now you might see this little warning message pop up it basically tells you that anything that’s currently in the rag auto field field is going to be overwritten by this formula now in this case that is totally fine so let’s click on okay and okay again so let’s go up to Gant chart format and we’re going to say insert column and this time we’re looking for rag Auto and there it is just there so notice what we get if we take a look at this first one requirements definition I have an X in the rag auto field and if I take a look at the variance I can see that this is a positive variance so this is over budget the next one for example is showing G in the rag Auto status column and that’s because the variance is zero remember anything that’s greater than zero is going to show an X and everything else will show a g the same thing down here analysis and design we have an X and that’s because we are over budget on that one design sign off has a variance of zero so that is effectively on budget we have a g so so far this formula is working correctly but I need to take it a stage further because I don’t want to have X in the rag Auto column I want it to display g a or R so we need to modify our formula and add in another condition so let’s jump up to custom Fields select rag Auto and we’re going to click on formula we’re going to go back in and simply edit our formula now what we effectively need to do here is turn this into a nested if statement and again if you are an Excel user this might be something that you’re already familiar with so we want to replace this X part with another if formula so we’re going to delete it out we’re going to go to function into General and we’re going to select if to add another one in now our expression this time let’s delete that out is going to be if the cost variance is greater than $1,000 if that’s true we want to Output r or red status if it’s false we want to Output an a for Amber status so working through this formula the formula is first going to check if the cost variance is greater than zero if that’s false it’s going to Output a g if it’s true it’s then going to move on to the next and check if it’s greater than a th and it’s going to assign r or a based on that calculation anything else it’s going to assign a g so let’s click on okay and okay again and we can now see that our values have been updated so this one just here has a automatic rag status of R because the variance is greater than a th if we take a look at something with a rag status of a we can see that it’s greater than zero but not greater than a th000 so that is how that formula calculates now the final thing I’m I’m going to do here because I don’t want to have both of these columns in my table is I’m going to Simply hide the original rag column so let’s right click and choose hide column and then I’m just going to switch back to my entry table View and I’m going to quickly add another new column to display my rag Auto status in this view as well so let’s scroll down rag Auto and there we go in the previous lesson we set up a rag Auto Custom field and the value for the custom field for each task was calculated using a formula and as I pointed out in that lesson the formula that you can create can be pretty sophisticated there are lots of different options if you have a little look around and in setting up that formula we used nested if statements now there is a very good alter alternative to using nested if statements which can make things simpler and also allows us to deal with situations where we have more than three values so that’s what we’re going to take a look at in this lesson we’re going to edit the rag Auto Custom field and we’re going to use a different formula so let’s click on the project Tab and we’re going to jump into custom fields and make sure that we have rag Auto selected and we’re going to click on the formula button and in there we we still have a nested if formula now we’re going to replace this formula with a more flexible formula called switch and again if you are an Excel user then you might be familiar with this function so let’s delete out everything that we currently have in there now you can simply type the formula in but if you prefer to get those little prompts for the arguments then jump into function go down to General and there is the function that we’re going to use switch now the switch fun function allows us to create multiple Expressions so more than the three that we did using the nested if statements and you can see that these arguments kind of come in pairs we have expression one and then value one expression two value two and we could carry on going expression three value three so on and so forth so we’re going to double click to select expression one and we’re still working with the cost variance field so we’re going to insert our cost variance field field and we’re going to say if this is less than or equal to zero the value we want to Output is going to be G or green so basically anything with a negative cost variance is going to have a rag status of G we can then complete this for expression two so once again we’re working with cost variance if this is less than or equal to $11,000 the value is going to be a and then finally we’re going to add another one if the cost variance is greater than $11,000 then we’re going to Output an r and of course if we had more options we could simply carry on going setting up these different pairs logical test and then the output now we’re going to stop there it’s all we need for our example click on okay and what you should notice is that when I click on okay again there should be absolutely no change in the rag auto field because we effectively doing the same calculation we’re just using a different formula to do it so let’s click on okay and like magic nothing changes so our formula is working it’s also worth bearing in mind that when you do click on okay project does do a syntax check of your formula so if you’ve typed something in incorrectly you are going to get a warning message come up if you don’t see anything then you can safely ass assume that your formula is good now because there are so many different types of formulas that you can do in project and you want to learn a little bit more about this we definitely don’t have time to cover all of them in this course but something that can be really helpful is to jump into the help files and just search for Project functions for custom fields and the top link here if we open this up it’s going to give us a whole heap of information about the different functions for custom fields and it’s going to go through them all with an explanation so it’s definitely worth having a little read through these help files if this is something that you think you’re going to be using all the time in Project now the final thing we’re going to do here is we are going to read add some graphical indicators but we’re going to make them slightly different to before so let’s go to the project Tab and custom Fields we’re going to make sure that we have our rag auto field selected we’re going to change this to graphical indicators and we’re going to click on the button and then we’re going to jump in here here and we’re going to add some squares this time so let’s choose equals if the value equals g the image we’re going to use is this green square we’re going to say equals again if it’s a we’re going to have an AM square and then finally if it’s equal to R we’re going to have a red square also now underneath we have this little option selected show data values in tool tip now I do recommend that you keep this selected let’s click on okay and okay again and we can see that those have now applied they’re looking lovely but what exactly is that tool tips option well if I hover my mouse over any of these indicators it will show you the underlying value so if I hover over one of these let’s go for this one just here I don’t know if you can see it’s sort of very briefly flashed now that’s got something to do with the fact that I’m recording the screen for you when you hover your mouse over this and you’re not recording you’ll be able to actually see the value that sits underneath the graphic so I do recommend having those turned on can be super useful so that’s it for this section on custom field we’ve seen a couple of different examples there but of course there are so many different formulas left for you to explore it’s time now to complete exercise three and in this exercise we’re going to create a custom field for a project that you haven’t seen yet and this is a reasonably basic building project the schedule isn’t quite finished and we haven’t assigned any resources as yet but we are almost at the end of the planning stage and we’ve saved a baseline but we’ve had to change some of the estimates so now that we’ve changed some estimates we get a finish variance for some of the tasks in the project and you can see those in the Finish variance column in the exercise file now this is your starting point for this exercise if you take a look in that column you’ll see that many of the tasks don’t have a variance for some of them it might just be 2 or 3 days and for a few it’s 5 days or more so what I’d like you to do in this exercise is I want you to flag the tasks that have a variance of 5 days or more so that we can address that before we go on to the next stage of planning now the way that I would like you to do this is to create a custom field of type flag so if you check each of the types you’ll see that a flag field is a data type of yes no and I’d like you to make sure that the value of yes is set for any task where the finished variance is 5 days or more and I’d also like you to set this for the appropriate summary task as well so if a summary task has a finished variance of 5 days or more I’d like to have the value of yes also the next thing I’d like you to do in this exercise is I would like you to indicate graphically each of the tasks and summary tasks with a finished variance of 5 days or more in the Gant chart using an icon so a couple of things for you to practice in this exercise now before you dive straight in there’s just a couple of really important things that I want to mention here which are really going to help you when you’re completing this exercise in Project 2021 durations are stored in minutes so if you want to check the value of finish variance you need to do that in the terms of minutes so when I say 5 days that’s five working days so in a project where the defaults are still in Force 5 days is 40 hours which is 2,400 minutes now this is going to be important when you’re completing this exercise and I’m not going to give you too many clues or hints because I really want you to have a think about this yourself but just bear in mind that when you’re dealing with durations be aware that they’re stored in minutes if you’d like to see my answer then please keep watching so here is my answer you can see that I’ve moved the columns around a little bit so that we have finish variance at the start here and we have a new colum called week late and notice in this column Whenever there is a finished variance of 5 days or more we have this little red diamond icon so that just lets me know which tasks I need to focus on so you should have ended up with something that looks like this remember your dates might be different so you might have a slightly different result but if you can see the week L column and the graphical indicators are appearing where they’re supposed to appear you can safely assume that you’ve completed this exercise correctly and of course if you’re unsure then you’ll find this file in the exercise files folder take a look at the field and see what I did to achieve this result that’s it for now I will see you next time in this lesson we’re going to start to take a look at outline numbering and WBS codes because these might be things that you’re not familiar with so let’s start out with outline numbering now in this lesson we’re going to use the example of a houseb bu project now this project isn’t complete but there is enough information in it for the purpose of this lesson and the thing about house build projects is that they’re normally very structured and they’re also normally very similar so most housef projects will have tasks included similar to the ones that you can see here now something that’s not particularly obvious when you’re just looking at this project is that behind the scenes project 2021 is keeping a list of outline numbers for us so let’s take a look at them for this project now what I’m going to do is I’m going to insert a column just here and we’re looking four outline numbers so let’s scroll down there it is and now we can see our different outline number levels now this is very simple number formatting but let’s just walk through it so you understand so you can see here the task number one our top level summary task site has been given an outline number of one the next task task two which currently says clear site has been given an outline number of 1.1 and that’s because task number two is effectively a subtask of task number one we can see that it’s been indented which gives us our outline number of 1.1 the next task task number three set out that’s on the same indentation level as clear site so the numbering is going to follow on from that point so set out is now 1.2 and you can see that this numbering structure continues throughout this project plan and currently pretty much all of the tasks that we have in this plan are either level one the summary task or level two so we’re not really going Beyond 8.1 8.2 8.3 now let’s see what happens when we introduce another task into the middle of the schedule so I’m going to select where we have task three and we’re going to insert a task and this task is going to be called trim now this task needs to be a subtask of clear site so let’s jump up to the task ribbon and we’re just going to indent this task so check out what happens to our outline numbering now that we’ve introduced a third level trim has been given an outline number of 1.1.1 and then the numbering for task 4 goes back to 1.2 because this is out dented compared to trim if I was to insert another task directly under trim and indent it to the same level that task would be given an outline number of 1.1.2 so this is fairly standard outline numbering that I’m sure you’ve come across at some point in your career now the good news about this outline numbering is that project 2021 does all of the maintenance for us so as we make changes to the schedule add tasks delete tasks it’s going to automatically update the outline numbering to reflect the new structure so what exactly is the point of having outline numbers well we can use them to uniquely identify a task in a project for example if you wanted to relate materials to a particular task maybe we’re ordering steel for the steel frame you can see down here task number 21 when we order that steel maybe we want to make sure people know which particular project and task the steel was meant for so to do that we could provide them with the name of the project and also the outline number so outline numbers can be useful in that respect but they also give your project structure now this in theory all sounds good but in practice the use of outline numbers can have problems now if you have a very fixed structure on your projects and you’re reusing the same structure and there is rarely a need to change it or vary it then this can work however if you need something that can deal with variations with the addition of new tasks then it doesn’t work too well so when we started this project if we just scroll back up to the top site had an outline number of one clear site had an outline number of 1.1 Etc and they still have those outline numbers and if you recall we inserted the trim task into the schedule and everything numbered correctly but supposing that trim had to go into the schedule but it wasn’t a subtask of Clear Sight instead it was a subtask of site so let’s give that a go and see what happens so I’m going to select the trim task and what we’re going to do is we’re going to outdent it so it’s on the same level as clear site so now that we’ve done that and all subtasks underneath the site summary task are on the same level and all the numbering looks as if it’s working and flowing through correctly one thing that has happened is that the numbering Has Changed For example for task number four set out when we modified the indentation level of trim just above it changed the set out task number from 1.2 to 1.3 so the addition of new tasks and the changing of the indentation will renumber other tasks in your project to accommodate those changes now this might be absolutely fine for the project that you’re working on but in some cases having volatile numbers that can change depending on the changes that you’re making to the schedule is not really what you want sometimes you want to assign a unique number to a task and have that number follow that task no matter what else is going on in the schedule and that is where WBS codes come in so let’s take a look at the default WBS codes for this particular project so let’s insert another column and we’re going to choose WBS from this list so this will be near the bottom there we go and we can see the default WBS codes now WBS codes are the same really as outline numbering by default but we can customize the WBS codes to make them more relevant to the project that we’re working on and if you’re wondering where WBS codes originated from they originally came from government work work and US military work and the idea was not only to be able to identify the tasks in a project using a code in system but also to do things like relate WBS codes in one project to WBS codes in another project so a lot of the time if you were a project manager you’d be given a set of standard WBS codes to use and you need to set them up in your project to conform not only to government requirements but often to International standards and WBS code codes are still used and they’re very common in the public sector now one key aspect of WBS codes is that they don’t often look as simple as this the coding system is more complex and it’s more specific to the project so if you were given a set of WBS codes to use in a project you’d need to know how to customize them and that’s what I’m going to show you next now also another thing to note before we begin with these standard WBS codes that you can see in this new column that we’ve added check out what happens here so the first one the summary task for site is 001 clear side 01 SLA now you’d think that the next one would be 001 SLB but it’s not it’s e now this has something to do with what I was talking about earlier in the fact that WBS codes are more fixed and travel with their task as opposed to project changing the outline numbering when we start moving and deleting tasks so this is why we’re seeing e just here and I’ll talk about this more a little bit later on now let’s take a look at how we would customize these WBS codes to make them a little bit more meaningful to this particular project what we’re going to do is jump up to the project Tab and in the Properties Group we have WBS Define code so this is where we can set up exactly how we want our WPS codes to look now the first field we need to complete is the project code prefix now this will in general help us identify which project these WBS codes belong to so this is a house build project and we’re working in the 01 file so I’m going to say that the prefix for all of these codes is going to be hb01 Dash and then we’re going to have our numbering system now we Define our different numbering levels in the code mask area below and we’re going to create three different number numbering levels so our first numbering level let’s click the drop down we’re going to say that we won numbers the length well let’s go for three digits and the separator is going to be let’s say a forward slash so that is my first level of numbering and you can see in the code preview at the top what that’s going to look like so it’s going to say hb01 d111 because I’ve chosen numbers it’s going to start at one the length is three and when we move on to the next level the separator is going to be a forward slash our next level of numbering let’s do these in uppercase the length this time is going to be one character and the separator is going to be a DOT and then our third level is going to be ordered numbers again and this time we’re going to have two characters and we’re not going to have a separator on the end now before we click on okay let’s just take a look at these two little checkbox options that we have at the bottom we have generate WBS code for new task selected so when we add new tasks into the schedule it’s going to generate a brand new WBS code for that task and then the second option verify the uniqueness of the new WBS code so basically project is going to check against the list to make sure that the WBS code we’re using is a unique code so I’m happy with this let’s click on okay and check out our schedule so now we have our WBS style number applied once again if you take a look at this trim task you can see that it seems to be out of order because it’s not really flowing through with its numbering system now we’re going to talk about why that is in the next lesson so I’m going to hop over there now and I look forward to you joining me previously we looked at outline numbers and WBS codes and we pointed out some problems in terms of producing a consistent and reliable way of identifying the tasks in a project and the structure of those tasks then we created custom WBS codes so in this lesson we’re going to take a look at some of the problems that we might encounter with outline numbers and WBS codes because there are issues with both of them just different issues now it’s important to remember that there is a fundamental difference between a situation where you are given codes to use and they need to be assigned to the Tas in a project in such a way that those codes never change and the procedure whereby the tasks in a project are outline numbered in some way and that numbering is updated when you update the structure or the contents of the project so do you want your codes to be fixed or flexible and adaptable as the project changes so let’s take a look at this in a bit more detail so let’s take a look at task number 11 lockup and also task number 18 frame now now lockup has a WBS code of 003 we’re just going to look at the last three numbers on the end here and frame has a WBS code of 004 so what I’m going to do here is I’m going to drag frame above lockup so let’s grab the task let’s drag it up and drop it in there now a couple of things to notice here the first thing is the indentation notice that frame has effectively taken on the indentation of the summary task above and the outline numbering reflects that as well now the first thing I’m going to do here is just outdent frame to give it its correct outline level now notice here that when we’ve done this rearranging and made changes to this structure the outline number has recovered well we can see that everything still flows through so frame is now outline number three 3.1 3.2 all the way down to 3.4 and lock up has now changed to outline number four and all of its subtasks have the appropriate numbering level but check out the WBS codes this is an entirely different story effectively the WBS codes have acted in the opposite way so the lockup task and all of its subtasks have retained the original formatting so it’s still showing us 003 003a so on and so forth in the WBS code field but the outline numbering is all related to the number four so the WBS code hasn’t changed whereas the outline numbering has now if we take a look at the frame summary task and all of its subtasks remember this is the one we moved above lockup we now have some very strange numbering in here we have hb01 013 and that follows down throughout all of the subtasks so why do we have 13 in here well it’s because project views these as inserted tasks into the schedule and effectively treats them as if they are brand new tasks and assigns the next lot of WBS codes to them in the list so if we scroll down to the bottom of this schedule you can see that the last WBS code here for sign off task number 47 is HB 01012 so 12 now because project is treating these tasks as brand new tasks it’s assigned them the next set of WBS codes in the list which is 13 and you’ll also see if you look down that WBS column that we now no longer have any WBS codes that relate to 004 we have ones for 003 just here and then our ones for 005 and that’s because in here is where we had that frame summary task with its subtasks that was the one that we moved further up the schedule so outline numbers and WBS codes behave in very different ways when you change the structure of your project so let’s grab the frame summary task again and let’s move it back to where it was and see what happens to the schedule so let’s grab it and move it all the way down to to here and once again I’m just going to need to outd the summary task so it doesn’t take on the indentation of the tasks Above So once again you can see that the outline number has updated but the WBS code has remained static now let’s say that when we’ve done this we don’t particularly like the way that these WBS codes have been handled well fortunately there is a way that we can get around this all we need to do is right click on the summary task and jump into information and we’re going to jump across to the custom field Tab and you can see here is our WBS code so what I could do is simply manually change this from here if I didn’t like the WBS code that had been assigned so I’m going to change this to the value let’s put it back to 004 click on okay and if you now take a look at the schedule where we have frame we now have those codes looking as we need them to look now it might be that we get into a situation where we’re renumbering different WBS codes and maybe we get ourselves into a bit of a mixup we just want to reset everything back to how it was fortunately we have a button which will help us with this so if we go up to project and into WBS we have a reum option just here and that will reset all of your numbering back to how it was originally in this lesson we’re going to learn at outline codes so far we’ve been talking about the structure of a project and we’ve looked at outline numbering and the WBS codes that reflect the structure now there are many other ways that you can add structure to projects and we’re going to proceed in this lesson by going back to the nff website project if you recall this is the project for Farm Foods where we’ve basically outline the structure for building a website now this time we’re going to do something a little bit different because what we want to do is to reflect the requirements of an accountant now the accountant wants to be able to identify cost centers and cost center structures for the resources assigned to this project so we need to set up a structure which reflects how we charge for the use of these resources so in this example we aren’t looking at a task structure we’re looking at a resource structure instead now the project accountant has told us that we need to be able to identif ify which of the internal resources are chargeable and which are non-chargeable so we just need to create a simple structure that clarifies the charging within the project now if you take a look at the first resource in the resource sheet it says Northern Farm Foods now Northern Farm Foods is essentially the client and as the client we don’t have to pay them to do what they’re doing so let’s take a quick look at the types of tasks that the northern Farm Foods client Cent is performing within this project so we’re going to jump up to Resource usage and there is Northern Farm Foods and we can see here that they are involved in the requirements definition the analysis and design and also the testing now as the client we don’t have to pay them to do what they’re doing their contribution to this project is part of the commercial Arrangement that we have with the client now if we take a look at Mark Raven’s word I can see that he’s in charge of of the coding side of things so he’s going to be writing all of the HTML now Mark Ravensword is an internal salaried member of staff so the department won’t be charging for his time the same thing applies to Sally danvas she’s an internal member of Staff as well and her time is not chargeable because this is effectively part of her job she’s been assigned to this project to carry out these specific tasks and for Sally that is the analysis and design now Lorraine Reese is is a slightly different scenario Lorraine again is an internal member of Staff she’s been brought in to help with the testing of the scripts but her time is chargeable so we’re going to set up an outline code structure to reflect all of these different scenarios so let’s jump up to the project tab we’re going to go into custom Fields so we’re going to make sure that we select resource at the top here and the type we’re going to change to outline code so this little custom Fields window should look reasonably familiar to you now because we have used it a couple of times throughout the balance of this course so let’s rename our field and this time we’re going to call it charge code and click on okay now take a look down in the custom attributes section you can see that Nan and formula are both grade out so they’re inaccessible to me at the moment the only option we have in here is look up which is fortunate because that’s the option we need so the first thing we’re going to do here is we’re going to Define our code mask so this is really the structure that the charge code is going to take on so if we click on edit mask this is where we can Define our charge code structure so we’re going to say that there are going to be two levels to our charge code the first level is going to be characters the length is going to be three and we’re going to have a DOT separator the second level is also going to be characters and the length is also going to be three and you can see just above in the code preview what that’s going to look like so let’s click on okay now that we have our code mask our structure we can start to add our values in so our

    first value which is going to be three characters is in NT and the description internal resource our second value is going to be chg for chargeable and then our third value is going to be for nonch chargeable now we’re going to do exactly the same but for external resources as well so we’re going to have EXT we’re going to have chg again now notice as soon as I type that it appears in red because project is recognizing that we already have chg as a value now we’re not going to worry about that too much right now because this will change when we adjust the indentation so let’s just finish off what we’re doing here and the final one again for external resources is non-chargeable so now what we can do is we can use our indentations at the top here to give this a little bit of structure so I basically want this one to be indented so it’s under internal along with this one as well and we want to do the same for the other two notice how that now we’ve added that indentation project is recognizing that these are not actually duplicates now if we take a look at some of the other options underneath we’re pretty much going to leave everything on the default settings here so we want to display the indenting in the lookup table so I always like to have this turned on because it just makes it easier to see what you’re selecting user value from the table as the default entry for the field now I’m not going to set a default so I’m going to leave that blank display order for the lookup table well I’m happy displaying it by row number and when it comes to our data entry options I don’t want to select either of these because I don’t want to allow additional items to be entered into the fields and I don’t want to allow only codes that have no subordinate values so we’re basically going to leave these as default click on close and okay so now what we’re going to do here is we’re going to insert a column and we’re going to display our custom field there it is just there charge code outline level one and now we can go through and assign different charge codes to different resources so if we go for the client first of all and click the little drop-down there is our little table and you can see some of those options that we selected coming into play we can see that we’ve got our indentation in place so it’s easier to identify what we’re selecting so Northern Farm Foods is external non-chargeable Mark Ravensword well as we mentioned he is internal and non-chargeable as is Sally danas Lorraine Reese she’s internal but she is chargeable and I’m basically going to go through the rest of these resources just assigning a charge code for each so let’s say that Adrien is internal non-chargeable Bakersfield Associates well they are external and chargeable People for People they are also external and chargeable Deborah Ashby well she is internal and non-chargeable and that is all I’m going to fill in there so now if we jump back to the resource sheet we can add a column into here as well so we can see those different charge codes and that can be a really useful column to add to this resource sheet so let’s click add new column once again we’re going to find our charge code column and there we have all of those charge codes listed out now the very final thing that I want to show you in this particular lesson is how the new charge code will enable the accountant to analyze the resource costs on this project so for this we’re going to jump up to the view tab we’re going to go into the data group and where we have group by we’re going to create a new group and in the field name we’re going to say that we want to group by and then we’re going to choose the new field that we created so this one here Group by charge code now you could modify the formatting that you’re applying down here for this example I’m just going to leave it on the defaults and click on apply now check out what happens you can see that our resources have been grouped by charge code so at the top we have all of the resources that currently don’t have a value but we can also see all of the external resources grouped together together and all of the internal Resources Group together and they are separated into groups depending on if they are chargeable or nonch chargeable so this can be really helpful to accountants when they’re trying to analyze the costs of a project it’s time now for us to complete exercise four and in this exercise we are back to working on our web development project and I’ve updated it a little bit and the starting point you’re going to find in the exercise files folder the file name is exercise 4. MPP if you take a look at this file and jump across to Resource usage view you can see that the charge code custom field that we created in the previous lesson is still there if you recall this is the one that we set up to assist the accountant now in this exercise we’re going to practice custom Fields but we’re going to shift our Focus back to custom fields for task so we’re going to use a custom field of the type outline code to reflect the structure of the project and remember that the difference when using outline codes is that project doesn’t maintain the values for us we must enter the values into the custom field so we want to put in a structure into this project that is fixed and under control so let me just show you my answer and then I’ll explain some of the specific requirements for this exercise so this is my answer you can see here that we have a custom column called web dev project code and then underneath we have a code for each of the different tasks and summary tasks in the project now if we click notice that we have a drop down just here where we can see a list of all of those values now notice that we only have five levels but the third level design and development is split into two parts we have 001 and 00 2 and hopefully you should recall from the previous lessons how we actually set up this drop-down list and how we can create these Su levels so in this exercise I’d like you to create a custom field called webdev project code I’d like you to set it up as I’ve got it set up here and then I’d like you to go through make sure that you can see the webdev project code field in the Gant chart View and assign the relevant project code to each summary task and task within the project so that is your exercise give it a go and I will see you in the next lesson in this and the next sections we’re going to take a look at costs and I’m going to assume that you have a basic knowledge of using costs in a project but we are going to look at some of the aspects that you might not have come across before and in this first section we’re going to take a look at fixed task costs now for many of the projects that you manage a large proportion of the costs will be related to the costs of resources and materials but sometimes you’re going to have fixed costs for specific tasks so we’re going to start with the example of our building project now if we scroll down to the services section you can see that task number 32 is the connect to services task and for this particular type of task there might be a fixed cost aspect for example there might be a cost in connecting the house supplies to the services so things like electricity and water so in this case we’re going to assume that the fixed cost is $295 now this isn’t a cost of a specific resource or material it’s a cost associated with the specific task of connecting to services so when we’re entering the fixed cost we need to enter it via the cost t table so let’s jump up to the view tab over in the data group we’re going to click tables and we’re going to make sure that we select the cost table and you can see here is the task in question task number 32 now if you just take a look at the different column headings within the cost table the First Column is the fixed cost column we then have fixed cost acral which is related to when this cost is implemented and I’m going to talk a bit more about that later on we have total cost base line and then we have variance so what I’m going to do here is in the fixed cost column we’re simply going to enter in 295 we then need to complete the fixed cost acral method and we have three options in here start pro rated and end now as I mentioned we are going to talk a bit more about this later on so for the time being we’re just going to set this to start which basically means that the cost is going to be acred at the start of the task so now we’ve entered this information information you can see that the total cost has updated to 295 you can also see that’s rolled up to the summary task of services we have nothing for Baseline which is fine because we haven’t set a baseline as yet and the variance is $295 as well now if you have assigned a fixed cost to a task you can still assign other costs to the same task for example if a member of my team had to spend time getting involved in this task that can still be added to the cost of this task so I’ve switched across to the website project and you’ll notice that one of the tasks in this project has a fixed cost of $2,000 task number two tendering process now one really important Point that’s worth bearing in mind is that it’s only possible to record one fixed cost against a task if you have more than one to apply you would add the cost together to get a total and add it into the fixed cost column and if you are going to do something like that it’s always good to add a note so that everybody knows what’s going on with these fixed costs so what we could do here for example is we could select the task let’s right click and go into information and then if we click across to the notes tab this is where we could add some notes just letting everybody know what each of the fixed costs are for so there’s my description for the $2,000 fixed costs if I had added multiple fixed costs together into one total I could carry on listing them out here so everybody is aware now there is another case that can sometimes occur let’s suppose you are getting external consultancy from an expert and in the case of this tendering process task we need to appoint a consultant now the consultant doesn’t charge on an hourly basis he charges a fixed cost so what we can do is we can set up the work resource for the consultant on the basis that there isn’t an hourly charge or cost but there is a fixed cost charge for their services so we can set this consultant up on the basis that their standard rate is zero but there is a cost per use so let’s take a look at that we’re going to jump across to the resource sheet and we’re going to add in a new resource so this is going to be our contract consultant now we’re going to say that his standard rate is $0 an hour so I’m not going to change anything just there but the cost per use is $400 an hour so now let’s go back to the Gan chart we’re going to select this task and we’re going to assign a resource to this task and the resource that we’re going to assign is the one that we’ve just added which is the contract consultant let’s select them and click on assign so now you can see the total cost for this project is $3,200 now if we jump into the information for this task and take a look at the resources you can see there are two resources now assigned to this task Deborah Ashby and the contract consultant the former has a cost of $800 and the latter has a cost of $400 so if we add these together that’s $1,200 don’t forget we already have a fixed cost of 2,000 assigned to this project so the total cost is 3,200 so that’s how the breakdown of these costs work for this specific task in this lesson we’re going to talk about cost AC CW and Costa CW might be something you’re familiar with it might not be and for some people who aren’t familiar with accounting it can all seem like a little bit of a mystery now we’re going to work in this dummy project and you can see the file there cost ACR demo. MPP you can find this in the course files folder if you’d like to follow along with me now in this dummy project we simply have five tasks task a to task e we also have five dummy resources in the resource sheet as well so resource one through to five and one thing to not about these resources is the ACR at column you can see that a couple of them have an acral method of prated two of them ACR at the start and one of them acrs at the end and when a cost acrs it’s basically the point in time in which the accounting function associated with the project recognizes that the cost has been incurred for example if we have a resource ACR using the pro-rated method it means that the cost of that resource is spread across the duration of the project if the cost incurs at the start it means as soon as the task gets an actual start date that’s when the cost will ACR and if a cost acrs at the end then it means that cost will be incurred once the task has finished so it’s important to to understand the difference between these acral methods now generally people recognize how cost acral Works in terms of labor costs we would normally prate the labor costs over the course of a task on which the labor is employed but there are some exceptions now if you take a look at this dummy project currently we don’t have any costs associated with any of these tasks now we’re going to go in and change that for task a we’re going to add a fixed cost of $100 and we’re going to say that this cost is incurred at the start now one thing to notice here you can see that we now have a total cost of 100 a variance of 100 but the actual is still at zero for task B let’s also give this a fixed cost of 100 but we’re going to leave this one on pro rated and then what I’m going to do is on the project tab I’m going to set a status date so I want to set the status date of today which is March the 22nd let’s click on okay and I’m going to choose update project underneath let’s update the entire project click on okay and check out what’s happened here if we take a look at task a we still have our fixed cost of 100 but the actual is now also showing us 100 and that’s because the cost acrise at the start of the task if you take a look at the Timeline this task starts on March the 20th which was actually 2 days ago so as soon as I set the project Date Update to today’s dat it recognizes that this task has started and so that cost is incurred and that’s why we’re seeing the full amount the full $100 in the actual column let’s take a look at task B remember we set this one to PR rated so this cost is going to be spread out over the lifetime of the task so we have something slightly different in here our total cost is still $100 the variance is 100 but the actual is only $30 and if we double click to open up task B we can see that this task is 30% complete and that is effectively the charge that we’ve incurred so far for 30% of the project now currently we don’t have any resources assigned to these tasks and I have five tasks and I also have five resources so what I’m going to do is I’m basically going to go through and assign Resource One to task a resource 2 to task B so on and so forth so let’s right click go to assign resources and for task a we’re going to assign Resource One let’s click on assign now remember you can leave this little window open when you’re assigning these which makes things a lot more efficient so let’s select resource 2 and assign going to go for task C is going to be resource 3 task D we’re going to assign resource 4 and task e we’re going to assign resource 5 so now that we’ve assigned resources you can see how that affects the cost that we have in our cost table for task a the total cost is now 2,100 we have a variance of 2,100 and an actual of 1,300 and if we double click to open up this task we can see that the cost for resource one is $2,000 now remember if we go across to the resource sheet Resource One is set to acrw using the pro-rated method so the resource is pro-rated but the fixed cost is incurred at the start so for task a we’ve incurred the whole of the fixed cost for task a but now we have 8 hours of work at $50 an hour for Resource One whose cost is accured prata throughout the project for task B we’ve accured a third of the fix cost because it’s pro-rated but we’ve incurred all of the costs for resource 2 because if we check this out you can see that that’s set to acrw at the start and resource 2 is working on a standard rate of $60 an hour so you can see how these changes are affecting the actual costs we see on the schedule and that is why it’s so important to understand if costs are acur at the start at the Finish or if they’re prated across the span of the project and the final thing I really want to point out here is something within the options so if we go to file and down to options let’s go across to the schedule page right at the bottom you’ll see it says default fixed cost acral and it’s set to prated so this is the default if you won’t change this to anything else now of course you can click the drop down and you can choose start or end if that is your preferred method in general I leave mine on pro rated and then if I need to change anything I can just manually change it in the cost table in this lesson we’re going to take a look at budget costs and I’m going to explain to you why people use budget costs why you may want to use budget costs and how you can compare progress on a project with a project budget with specific reference to costs now it’s probably a good stage to point out that you can do exactly the same thing with budget work the approach is very similar so we’re back working in a house build project if you’d like to follow along with me we’re working in house build 4 and currently we’re looking at tasks for Burlington house a and I simply have all of the tasks collapsed up so we can just see there summary tasks at the top also notice that currently we we don’t have any costs associated with project if we jump across to the resource sheet we also don’t have any resources listed currently now we might need to prepare a budget and this in general wouldn’t relate to any particularly accurate estimates of costs but I might say for example that I think the labor costs on this project are going to be $40,000 possibly the material costs are going to be $30,000 and the legal costs are going to be $10,000 and so on so so these are just very rough estimates now I also might come up with some budget figures and then during the course of the project I’m going to want to see how the costs are progressing in terms of budget now rather than do all of those things I’m going to take one element and show you how to deal with it and the final thing to point out here is that you shouldn’t confuse budget costs with Baseline costs a Bas line is a saved copy of a schedule at a specific point in time and that will include everything that’s been added budget costs are assigned at the project level and although we can compare the budget cost with our actual costs it’s not the same as comparing actuals with a baseline now we’re going to use the example of setting up a budget cost for connecting to the services so maybe this particular task involves connecting the house up to the relevant services but also getting a building inspector to come around and inspect the building now what I’m going to do here is I’m going to to set up a resource and that resource name is going to be service costs we’re going to give it a type of cost let’s give it some initials I’m just going to call this serve costs but what I’m going to do is I’m going to create a little group so we’re going to call this service costs group now what I’m going to do here is I’m going to double click to open up this resource and on the general tab notice over on the right hand side we have a little budget checkbox so we’re going to select this and click on okay and now I’m basically going to assign this resource to the entire project now when you’re trying to assign resources to an entire project you need to make sure that you have the top level summary task showing at the top here so you can see that I do have mine Burlington house a but if you can’t see this for whatever reason you can simply jump into file go down to options and on the advance tab if you scroll down this is what you’re looking to select show project summary task so select that and it should reveal that top level summary task which controls the entire project and will always have a task number of zero so let’s rightclick and go to assign resources and we can see our service cost resource that we just set up sitting right there now because we also set this to budget it means that we can’t enter in any units and we can’t enter in any cost if I try and type it just doesn’t type anything so the only thing we can really do here is click on the assign button to assign it to the summary task and it’s worth noting that you can only assign it to the summary task as well now once we have assigned it we can then specify the cost in a number of different ways we could jump across to task usage View and you can see in here we have a budget cost column and we could type in the service cost into here so let’s say that our estimate for this is going to be $500 and if we switch back to Gant chart view remember we’re currently displaying the cost table we can now see that budget cost listed in the budget cost column remember if you can’t see that column you just need to insert a column and choose budget cost so now what we’re going to do is we’re going to create two more resources that are going to be in the same category as that budget cost if you recall we created a group called service cost group so we’re going to assign both of those resources to that same group now we could do this using a code or a custom field which we have seen earlier on in this course but we’re going to use the group that we created so let’s jump back across to our resource sheet and I’m going to add in two more resources so there are my two resources we have the local inspector so he’s the one who’s going to be carrying out the building inspection and we also have the Service Company who are responsible for connecting up the services to the house and you can see that both of those are of type cost we have their initials and we’ve assigned them to the same group as the service cost that is the service cost group also note the acral method at the end the first one is prated the second one AC cruise at the start and the last one AC cruise at the end so let’s jump back to our Gant chart View and we’re going to assign one of the resources to the connect to services task so let’s rightclick and go to assign resources and we’re going to assign the Service Company resource because these are the people who are in charge of connecting the services up to the house and maybe we’ve determined that the cost for this is going to be $295 so let’s enter that in click on assign and you can now see that that cost is updated in the cost table now let’s assign our second resource so if we expand completion you can see we have a task here called final inspection so this is when we’re going to need the building inspector so let’s rightclick and go to assign resources is we’re going to select local inspector and we’re going to say that this cost is $265 let’s click on assign so against a budget of $500 you can now see that we have those two costs and you can see right at the top where we have the summary task Burlington house a our budget cost is $500 but our total costs are currently coming in at 560 so how could we possibly start reporting on this typ type of information well we could report on this using the group that we created the service cost group because all of these resources are now part of this same group so if we jump up to Resource usage View and go up to the data group you can see we have a little group by field just here so we’re going to click the drop- down and I’m going to say new group bu so what we effectively want to do here is we want to group by the group that we created now you can give your group a name at the top here I’m just going to leave it on the default but where we have group by we can Group by a specific field so there’s lots of different fields that we could group this by but if you want to group it by the group that you’ve created in this case the service cost group we just simply need to type group in here you can see at the top we have group no value and these are all the ones that we haven’t assigned to a group but we also have a little bit further down group service cost group and that’s going to include all of those resources that we assigned to that specific group so now we can see very clearly our budget cost and our actual cost just here and we can see that there is a difference there of $60 so that is a way that you can very easily report on the difference between your budget and your actual costs in this lesson we’re going to take a look at Cost rates and changes in cost rates and you’re already familiar with assigning resources and we’ve already looked at calculations involving the cost of resources working on a task now sometimes when you assign a resource to a task there might be the added complication that the rate that you pay for that resource will depend on the task that the resource is being assigned to now we’re back in our Northern Farm Foods website and we’re going to jump across to the resource sheet now if you take a look at the First Resource just here for Northern Farm foods you can see that we have a standard rate of $35 an hour and an overtime rate of $35 an hour and we’re working on the basis here that everything is chargeable and you can see here that for all of these resources we have a standard rate and we also have an overtime rate now the contract consultant at the bottom this is slightly different you can see that we have a cost per use charge here of $400 instead now when you set these resources up those rates that you can see in these columns those are the default rates or what we call the a rates for example if we open up Mark Raven’s word and take a look at the cost tab you can see here we have a number of different tabs we have a which is the default b c d and e and the a rate here we can see the standard rate and the overtime rate that is displayed in the resource table behind but in addition Mark could have other rates assigned to him so he might have a b rate a c rate a d rate or an e- rate and we can schedule changes to any of those rates and I’m going to talk a little bit more about this a bit later on for the time being just get the concept that the default is what we call the a rate but we can have other rates for each resource so let’s just click on okay to come out of there so what I’m going to do here is I’m going to jump across to the resource usage View and if we look down our list of resources there is Mark Raven’s word and I can see that he only has one task assigned to him he’s in charge of all of the HTML coding whereas if we take a look at let’s say Bakersfield Associates you can see that they have a range of different tasks assigned to them so analysis and design graphical resources and branding writing test scripts and then testing now if we double click on Bakersfield Associates and take a look at their cost we can see here that their default rate their a rate they have a standard rate of $60 an hour and an overtime rate of $100 an hour so it might be that this is what they charge for standard it work but maybe when it comes to something like graphical work they could possibly charge a higher rate for that so if we go across to the B tab you can see that we have a higher rate in here so the standard rate for graphical work is $100 an hour and the overtime time rate is $1150 an hour so we effectively have two different rates that we can possibly use when we’re assigning tasks for Bakersfield Associates so let’s click on okay because what we’re going to do next is we’re going to add a column to the table which makes it really easy for us to see which rate each resource is using for each task so we’re going to add a new column and the one that we’re looking for is cost rate table and you can see that currently everybody is using the default cost rate the a rate so what I’m going to want to do here is for this task just here the 60-hour task we’re going to change that to use B rate that higher rate so now that we’ve changed that I’m going to add another column and this time we’re simply going to add the cost column so now you can see if we take a look at these two down here analysis and design is using the a rate and if you remember the a rate is $60 an hour so if you were to calculate that that works out to $6,150 whereas for graphical resources and branding we have almost half the work but it’s working out at $6,000 because we’re using the B rate here that higher rate so we’re basically doing $100 multiplied by 60 which gives us a cost of $6,000 so displaying both of these columns can be really helpful when you’re trying to work out which rates resources are using now I’m going to briefly jump back just to gantar view because when it comes to assigning resources to tasks there isn’t an option in here where we can specify the rate table that we want them to use it’s always going to use the default of the a rate but what we can do instead if we jump across to task usage View and let’s just scroll down and find let’s say Adrian haskill just here if we double click to open that up notice we can specify what cost rate table we’re using for this particular resource so I can click the drop down and I can change it to whatever I like just remember that by default everyone is going to use cost rate table a so I’m going to change that to B and click on okay now another situation that you’ll probably encounter over the lifetime of your project is an increase in rates people’s prices ordinarily increase as opposed to decrease so we need to know how to make those changes and reflect them in our project so let’s look again at Bakersfield Associates and we can see that their a rate is $60 an hour and they have a b rate of $100 an hour now maybe Bakersfield Associates have let us know that as of July the 17th 2023 their rates are going to increase by5 and $10 an hour so what we can do in here is we can add another row to this table with the increase so the effective date is going to be Monday the 17th of July the standard rate is going to increase by $5 so it’s going to go up to 65 and the overtime rate is going to increase by $10 so it’s going to go up to $110 let’s do the same for the B rate that we have in here as well so those costs are going to increase on Monday the 17th of July the Stander rate this time is going to be 105 and the overtime rate is going to be 160 and if you take a look at this you can schedule changes to rates quite some time into the future because we have 25 different rows that we can add in here and you could set them up and schedule them all in here so that as soon as that effective date comes around the new rates come into play and of course when we click on okay this is going to have an effect on the cost for those different tasks and you can see those new costs reflected in the schedule the final thing to point out here is let’s open up Adrien hasell again and maybe we’ve been notified that Adrian’s costs are going to increase by 5% on a particular date so let’s go in and I’m going to choose let’s just choose the same date so we’re going to say July the 17th but this time we don’t want to enter a monetary amount we’re not adding $5 or $10 we want to increase them by a percentage so all we need to do here is type plus 5% and project 2021 is going to work that out for us so you can see here it’s calculated that that’s going to be 5250 and this charge will kick in on the 17th of July we can do the same for the overtime rate so let’s do plus 10% for the overtime rate and again project works it out for us so once we’ve done this these new costs are going to be reflected in the schedule going forward from whatever date we’ve set a big congratulations everybody for making it all the way through to the end of this project 2021 course I hope you enjoyed running through this course as much as I’ve enjoyed hosting it so let’s just take a moment to recap how far we’ve come if you remember all the way back at the beginning of the course we learned about the difference between the project plans and also the differences between project 2019 and project 2021 we then started to explore the project interface we looked at the ribbons and the commands we saw how to use the quick access toolbar and customize it and I showed you how you can quickly move around your project interface using keyboard shortcuts we then also spent some time taking a look at the different views and tables available within project in the next section we set ourselves up for success and we ran through many of those basic but fundamental skills so things like opening closing and saving a file we also set up our project calendar options in this section as well section four was where we really started to get going by entering tasks and other information into our project plan we discussed the difference between automatic versus manually scheduled tasks we saw how to add milestones and also give our project structure by adding summary and subtasks we then moved on to taking a look at dependencies and constraints and how adding dependencies affects your overall project schedule we also spoke quite a bit about lag and lead time and how you can add that into your schedule as well in the next section we moved on consolidating projects and resource sharing I also showed you how you can set up recurring tasks and work with custom fields and calculated custom fields we spoke about outline numbering outline codes and WBS codes and then we moved into talking about cost so fixed costs cost acral overtime budget costs and variable material costs so if you went through this course and completed all of the exercises then a huge well done to you I hope you feel that your knowledge of project has now progressed on and you can tackle with confidence some of the more advanced functionality the final thing to do here is for me to say my goodbyes I hope you enjoyed running through this course as much as I’ve enjoyed hosting it for you and I very much look forward to seeing you on another course at some point in the future but for now goodbye if you’re not a subscriber click down below to subscribe so you get notified about similar videos we upload to get the course exercise files and follow along with this video click over there and click over there to watch more videos on YouTube from Simon says it

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • Microsoft Project 2021: Skills for Project Management

    Microsoft Project 2021: Skills for Project Management

    The provided text is a comprehensive guide to using Microsoft Project 2021 for effective project management. It begins with an overview of project management concepts and a tour of the Project environment. The guide details creating a project plan from a blank template, defining project schedules, managing tasks, and establishing a work breakdown structure. It further explains how to manage project resources by adding, costing, and assigning them to tasks, as well as resolving resource conflicts. The text covers finalizing a project plan through optimization, setting baselines, and various methods for sharing the plan. Additionally, it instructs on tracking project progress, using different views, creating custom elements, and analyzing the plan with features like task boards and sprints. Finally, it explores reporting capabilities, including built-in and custom reports, visual exports to Excel, and application customization through options, templates, and sharing resources across projects.

    Microsoft Project 2021 Study Guide

    Quiz

    1. What is the purpose of manually scheduled tasks, and when might you switch to automatically scheduled tasks in Microsoft Project?
    2. Describe the function of summary tasks and how their information is derived in a project plan.
    3. Explain what a milestone task is and how it is visually represented on the Gantt chart.
    4. List and briefly define the four types of task relationships available in Microsoft Project.
    5. Differentiate between lead time and lag time in the context of task relationships.
    6. What are the three types of resources you can add to a project plan in Microsoft Project, and how do they differ?
    7. Explain the concept of resource over-allocation and one method to resolve it in Microsoft Project.
    8. What is the significance of setting a baseline plan in Microsoft Project, and what types of data does it track?
    9. Describe the difference between the “copy” and “copy picture” commands in Microsoft Project and when you might use each.
    10. What is the purpose of the project timeline, and how can you customize it for reporting to stakeholders?

    Quiz Answer Key

    1. Manually scheduled tasks allow you to enter placeholder text for task duration, start, or finish dates, which is useful in the early stages of project planning when not all information is available. You would typically switch to an automatic schedule before work starts on the project, allowing Project to take over the scheduling based on dependencies and durations.
    2. Summary tasks are used to group related subtasks and provide an overview of a particular phase or section of the project. Their information, such as duration, start, and finish dates, is automatically calculated based on the earliest start date and latest finish date of their subtasks.
    3. A milestone task is a task with zero days duration used to mark significant events or checkpoints in a project plan. On the Gantt chart, it is visually represented by a diamond icon with the date of the milestone displayed next to it.
    4. The four types of task relationships are:
    • Finish to Start (FS): The successor task cannot start until the predecessor task is finished.
    • Start to Start (SS): The successor task can start at the same time as the predecessor task.
    • Finish to Finish (FF): The successor task cannot finish until the predecessor task is finished.
    • Start to Finish (SF): The successor task cannot finish until the predecessor task has started (infrequently used).
    1. Lead time is a negative delay that allows a successor task to start before the predecessor task finishes, enabling task overlap. Lag time is a positive delay that introduces a pause between the finish of a predecessor task and the start of its successor task.
    2. The three types of resources are:
    • Work: People or equipment that perform the tasks, measured in time.
    • Material: Consumable items used by the tasks, measured in units (e.g., reams of paper).
    • Cost: Expenses associated with tasks, such as travel costs or rental fees, measured in currency.
    1. Resource over-allocation occurs when a work resource is assigned more work than their maximum availability allows within a given timeframe. One method to resolve this is resource leveling, which delays or splits tasks to bring resource assignments within their availability limits.
    2. Setting a baseline plan captures a snapshot of the original project schedule, including planned start and finish dates, durations, work, and costs. It is crucial for tracking project progress by providing a point of comparison against actual performance and identifying variances.
    3. The “copy” command in Microsoft Project copies data from the selected cells to the clipboard as data, which can then be pasted into other applications, often retaining the tabular format. The “copy picture” command takes a snapshot of the selected portion of the Gantt chart or other view as an image, which can then be inserted into documents or presentations.
    4. The project timeline is a visual representation of key project phases, tasks, and milestones that appears above the Gantt chart. It can be customized by adding specific tasks, adjusting the date range, and displaying tasks as callouts to provide a high-level overview of the project schedule for stakeholders.

    Essay Format Questions

    1. Discuss the importance of effectively managing task dependencies and constraints in Microsoft Project for creating a realistic and achievable project schedule. Explain how different types of dependencies and constraints can impact the project timeline and resource allocation.
    2. Explain the process of resource management in Microsoft Project, from defining resources and their availability to assigning them to tasks and resolving over-allocations. Analyze the impact of effective resource management on project timelines and costs.
    3. Evaluate the significance of tracking project progress against a baseline plan in Microsoft Project. Describe the various tools and views available for monitoring progress, identifying variances, and making necessary adjustments to keep the project on track.
    4. Compare and contrast the different methods for sharing project information and reports with stakeholders using Microsoft Project. Analyze the advantages and disadvantages of each method in terms of clarity, accessibility, and the level of detail provided.
    5. Discuss the benefits of customizing Microsoft Project to better suit specific project needs and organizational workflows. Explain how creating custom views, fields, tables, and reports can enhance project planning, monitoring, and reporting capabilities.

    Glossary of Key Terms

    • Baseline Plan: A saved snapshot of the project plan at a specific point in time, used as a reference point for tracking progress and variances.
    • Critical Task: A task on the critical path with zero or very little total slack; a delay in a critical task will directly impact the project’s finish date.
    • Duration: The amount of working time expected to complete a task.
    • Gantt Chart: A horizontal bar chart that visually represents the project schedule, showing tasks, their durations, start and finish dates, and dependencies.
    • Lag Time: A delay inserted between the finish of a predecessor task and the start of a successor task.
    • Lead Time: An overlap allowed between the finish of a predecessor task and the start of a successor task (represented as a negative lag).
    • Milestone Task: A task with zero duration, representing a significant event or checkpoint in the project.
    • Predecessor Task: A task that must be completed before another task (the successor task) can begin.
    • Resource Leveling: The process of resolving resource over-allocations by delaying or splitting tasks.
    • Slack (or Float): The amount of time a task can be delayed without affecting either its successor task (free slack) or the project’s finish date (total slack).
    • Summary Task: A task that represents a phase or group of related subtasks; its duration and dates are calculated based on its subtasks.
    • Successor Task: A task that depends on the completion of another task (the predecessor task) before it can begin.
    • Task Constraint: A restriction applied to a task that affects its start or finish date (e.g., start no earlier than, finish by).
    • Task Dependency: A relationship between two tasks that determines the order in which they can be performed (finish-to-start, start-to-start, finish-to-finish, start-to-finish).
    • Timeline: A high-level graphical overview of key project tasks and milestones, typically displayed above the Gantt chart.
    • Work Breakdown Structure (WBS): A hierarchical decomposition of the project into smaller, more manageable tasks.

    Briefing Document: Analysis of Project Management Sources

    This briefing document reviews the main themes and important ideas presented in the provided excerpts from “01.pdf,” which appears to be a tutorial or guide on using Microsoft Project for project planning. The document covers the initial setup of a project plan, task management, scheduling modes, importing tasks, organizing tasks using summary tasks and the Work Breakdown Structure (WBS), defining task relationships, managing project resources, finalizing the project plan by setting a baseline, sharing the plan with stakeholders, tracking project progress, analyzing the project schedule, and controlling the project plan through various actions and adjustments.

    Main Themes and Important Ideas:

    1. Initial Project Plan Setup and Task Entry:

    • Saving the Project: The first crucial step is to save the project file. “before we start manually entering tasks into our project plan file we should probably go ahead and save the work that we’ve done so far… I’m going to name it training roll out initiative and save it.” This ensures that progress is not lost.
    • Scheduling Modes (Manual vs. Automatic): Microsoft Project offers two scheduling modes for tasks:
    • Manually Scheduled: This is the default mode, allowing for placeholder text in task duration, start, or finish dates. This is useful in the early stages of planning when all information might not be available. “manually scheduled gives us the ability to put placeholder text for a task duration start or finish date… before work starts on the project I always switch it to an automatic schedule.
    • Automatic Schedule: In this mode, Project takes over the scheduling based on dependencies, durations, and the project start date. Placeholder text is not allowed in this mode.
    • Entering Task Names and Durations: Task names should be concise, using noun-verb combinations. Duration is typically entered in days, with “D” being optional if the unit is days.
    • Task Mode Indicator: A pushpin with a question mark icon indicates a manually scheduled task in the “Task Mode” column.
    • Gantt Chart Representation: Manually scheduled tasks are represented by lighter-colored bars on the Gantt chart, showing duration only until start and finish dates are automatically calculated or manually entered.

    2. Importing Tasks from External Sources:

    • Tasks can be efficiently imported from other sources, such as Excel spreadsheets. The excerpt demonstrates copying a range of data (excluding a specific column, like Task ID) from an Excel sheet and pasting it into the Project plan. “we’re actually going to use this tab to bring the rest of the project plan tasks into the file… I’m going to just click in cell B1 hold down my shift and my control keys I’m going to tap my right arrow and my down arrow to select everything on this import sheet except column A and then I’m going to do control C just to copy it… and now I’m going to press Ctrl Z to paste the rest of the information in.

    3. Organizing Tasks with Summary Tasks and WBS:

    • Summary Tasks: These are higher-level tasks that encompass subtasks. The duration and dates of a summary task are automatically calculated based on its subtasks. The “Project Summary Task” (task zero) represents the entire project. “a summary task like this one is its information comes from its subtasks all the tasks underneath it… the whole project will take 10 days based on the start and finish dates.” Summary tasks can be collapsed and expanded to show or hide their subtasks.
    • Work Breakdown Structure (WBS): This is a hierarchical decomposition of the project into smaller, more manageable tasks. WBS codes provide a unique identifier for each task and are a standard way to refer to tasks. WBS codes can be displayed in a separate column or within the task name column by enabling “Outline Number” under the Gantt Chart Format tab. “often your tasks are referred to by their code numbers their WBS codes rather than the task name… now if you look in your task name column each task has its WBS code before the task name.

    4. Defining Task Relationships (Dependencies):

    • Task relationships define the sequence in which tasks need to be completed. There are four types of relationships:
    • Finish to Start (FS): The successor task cannot start until the predecessor task finishes (default). “when one task finishes another task starts that is the default relationship type.
    • Start to Start (SS): The successor task can start when the predecessor task starts.
    • Finish to Finish (FF): The successor task cannot finish until the predecessor task finishes.
    • Start to Finish (SF): The successor task cannot finish until the predecessor task starts (infrequently used).
    • Predecessor and Successor Tasks: The predecessor task is the one that comes before, and the successor task is the one that follows.
    • Lead and Lag Time:Lead Time: Allows for overlap between tasks (successor can start before the predecessor finishes). Represented by a positive value. “when the first task is 50% finished the next task can start that would be known as lead time.
    • Lag Time: Introduces a delay between tasks (successor starts after the predecessor finishes). Represented by a negative value in the predecessor column or a positive value in the “Lag” field of the Task Information dialog box. “after it’s finished wait one day before the next task will start… lag time is represented as a negative lead time is represented as a positive.
    • Relationships are set up by selecting tasks and using the “Link the selected tasks” icon or by directly entering predecessor task numbers in the “Predecessors” column. The Gantt chart visually represents these relationships with arrows.

    5. Managing Project Resources:

    • Resource Sheet View: This view is used to add and define project resources (work, material, and cost). Columns include Resource Name, Type, Material Label, Initials, Group, Max Units, Standard Rate, Overtime Rate, Cost per Use, Accrual, and Base Calendar.
    • Resource Types:Work: People or equipment. Max units represent availability (e.g., 100% for full-time, 500% for five full-time individuals). Costs are defined by standard and overtime rates.
    • Material: Consumable items (e.g., paper). A material label (unit of measure) must be specified.
    • Cost: Project-related expenses that don’t fit into work or material (e.g., travel). Costs are entered per occurrence.
    • Adding Resources: Resources are entered row by row in the Resource Sheet view, specifying their type, availability, and cost information.
    • Assigning Resources to Tasks: Resources are assigned to tasks in the Gantt Chart view (in the “Resource Names” column) or through the Task Information dialog box (Resource tab). Multiple resources can be assigned to a single task.
    • Resource Calendars: These define the working and non-working time for individual resources, overriding the project calendar. Exceptions (e.g., vacation) can be added to a resource calendar.
    • Resolving Resource Conflicts (Over-allocations): When a resource is assigned to more work than their availability allows, they are considered over-allocated (indicated by a red person icon). Over-allocations can be resolved by:
    • Delaying tasks.
    • Assigning different resources.
    • Leveling resources (allowing Project to automatically adjust task start and finish dates within available slack).

    6. Finalizing the Project Plan and Setting a Baseline:

    • Optimizing the Plan: This involves reviewing task relationships, lead/lag times, and resource assignments to ensure the schedule is realistic and efficient.
    • Setting a Baseline: A baseline is a snapshot of the project plan (duration, start/finish dates, work, cost) taken before work begins. It serves as a reference point for tracking progress and identifying variances. Up to 11 baselines can be saved. “you’re definitely going to need to set a Baseline Plan before work starts on your project and that is the only way you’ll be able to track the progress of your project… Your Baseline tracks your durations the start and finish dates of your tasks the amount of work and the cost.
    • Interim Plans: These save only the current start and finish dates and are simpler than baselines, used as project markers.
    • Baselines are set via the “Set Baseline” option under the Project tab. The “Project Statistics” dialog box can be used to verify that a baseline has been set.

    7. Sharing the Project Plan with Stakeholders:

    • Printing: Least efficient method due to potential for many pages and blank areas.
    • Copying Task Lists: Selecting task names and durations and copying them into other applications like Word for a simple list.
    • Copy Picture: Taking a snapshot of the Gantt chart (or a portion of it) to share as an image in documents or presentations. Options include saving as a GIF file.
    • Timeline View: A high-level visual representation of key project phases and tasks, useful for stakeholder communication. Tasks can be added to the timeline and displayed as bars or callouts. The date range can be customized, and the timeline can be copied as a full-size image for sharing. “my favorite built-in tool to use to do high level reporting to stakeholders at this stage of the project is the timeline.

    8. Tracking Project Progress (Covered Briefly, likely expanded upon later):

    • The document mentions that once work starts, actual progress can be tracked, and variances against the baseline will be identified.

    9. Analyzing the Project Schedule (Covered Briefly, likely expanded upon later):

    • The concepts of slack (free and total), critical tasks (tasks that, if delayed, will delay the project finish date), and late/slipping tasks are introduced as elements for analyzing the project schedule.

    10. Controlling the Project Plan (Covered Briefly, likely expanded upon later):

    • The document briefly touches upon editing the task list, setting deadlines, splitting tasks, applying constraints, and rescheduling tasks as ways to control the project plan as it evolves. Updating the baseline after significant changes is also mentioned.

    This initial excerpt provides a foundational understanding of how to begin and structure a project plan in Microsoft Project, emphasizing the importance of careful setup, task organization, dependency management, resource allocation, and the establishment of a baseline for effective project control and communication.

    Microsoft Project Task Scheduling and Organization

    Manually Scheduling vs. Automatic Scheduling

    Q1. What is the difference between manually scheduled and automatically scheduled tasks in Microsoft Project? Manually scheduled tasks allow users to enter placeholder text for the duration, start, or finish dates. This is useful in the early stages of project planning when not all information is available. The scheduling of these tasks is primarily controlled by the user. Automatically scheduled tasks, on the other hand, have their start and finish dates determined by Project based on dependencies, durations, and constraints. Once a project plan is more defined, switching to automatic scheduling allows Project to manage the timeline.

    Q2. Why might you choose to use manually scheduled tasks initially in a project plan? You might choose manually scheduled tasks at the beginning of a project plan because you may not have all the detailed information about task durations, start dates, or finish dates. This mode allows you to input placeholder text or rough estimates without Project automatically calculating and potentially misrepresenting the schedule. It provides flexibility in the initial planning phase.

    Q3. When is it recommended to switch from manually scheduled to automatically scheduled tasks? It is generally recommended to switch to automatically scheduled tasks once the project plan is more complete, and you have defined task names, durations, and ideally, the relationships between tasks. This allows Project to take over the scheduling, ensuring that start and finish dates are logically linked and any changes to one task automatically update dependent tasks.

    Organizing Tasks: WBS, Summary Tasks, and Milestones

    Q4. How can you organize tasks in Microsoft Project using a Work Breakdown Structure (WBS)? A WBS is used to break down a project into smaller, more manageable components. In Microsoft Project, you can create a WBS by using summary tasks and subtasks. Summary tasks represent higher-level activities, while subtasks are the detailed work items under them. Indenting tasks under a summary task creates this hierarchical structure. Project automatically generates WBS codes (outline numbers) that reflect this hierarchy, providing a unique identifier for each task.

    Q5. What is the purpose of creating summary tasks in a project plan? Summary tasks serve as containers for related subtasks. They provide an overview of a particular phase or component of the project. The duration, start, and finish dates of a summary task are automatically calculated based on the earliest start date and latest finish date of its subtasks. They help in organizing the project, making it easier to understand and report on progress at different levels.

    Q6. What is a milestone task, and how is it represented in Microsoft Project? A milestone task is a task with zero days duration that marks a significant point or event in the project timeline, such as the completion of a phase or a critical decision point. In Microsoft Project, milestone tasks are represented on the Gantt chart as a diamond icon with the date next to it.

    Task Relationships, Lead Time, and Lag Time

    Q7. What are the four types of task relationships in Microsoft Project, and which one is the default? The four types of task relationships in Microsoft Project are: * Finish to Start (FS): The successor task cannot start until the predecessor task finishes (default). * Start to Start (SS): The successor task can start at the same time as the predecessor task. * Finish to Finish (FF): The successor task cannot finish until the predecessor task finishes. * Start to Finish (SF): The successor task cannot finish until the predecessor task starts (infrequently used). The default relationship type is Finish to Start (FS).

    Q8. Explain the difference between lead time and lag time in the context of task relationships. Both lead time and lag time modify the start or finish of a successor task relative to its predecessor. * Lag Time: Introduces a delay between the finish of a predecessor task and the start of its successor (in a Finish to Start relationship), or between the start of a predecessor and the start of its successor (in a Start to Start relationship), and so on. It is entered as a positive value in the “Lag” column of the Predecessors tab in the Task Information dialog box or by adding a positive number followed by a time unit (e.g., +2 days) to the predecessor link in the Predecessors column. * Lead Time: Creates an overlap between tasks. In a Finish to Start relationship, lead time allows the successor task to start before the predecessor task has completely finished. It is entered as a negative value in the “Lag” column (e.g., -1 day) or by adding a negative number followed by a time unit to the predecessor link.

    Microsoft Project 2021: Project Management in the Application

    This course on Microsoft Project 2021 will begin with a brief review of project management concepts. Understanding these concepts is useful because they correlate with how project plan files are created and administered in the application. While Microsoft Project is primarily used by project managers, it’s also valuable for anyone who needs to track a schedule.

    The typical phases of project management include:

    • Conception and initiation: This initial phase determines the purpose of the project, whether it is feasible, and what resources would be needed for successful completion. This course will not cover this phase.
    • Definition and planning: This is the phase where you determine the scope of the project and the budget. You also set up your work breakdown structure (WBS) to organize tasks and consider risk management techniques that might be necessary. This course will start with this phase, aligning with how you’ll work in Microsoft Project.
    • Launch and execution: During this phase, you are actively tracking the status of your project, updating your tasks, resource assignments, and schedules, and reporting on the status to your project stakeholders. This is also known as executing the project or tracking actuals.
    • Performance and control: Here, you check to ensure that your objectives are on track. If not, you identify tools to get them back on track if possible. You also assess whether the deliverables meet quality standards and perform effort and cost tracking, as well as evaluating the overall project performance. This involves monitoring project progress and controlling the project plan.
    • Project close: This final phase typically involves a post-mortem to go over Lessons Learned and the creation of end-of-project reporting.

    The course will primarily focus on the definition and planning phase and subsequent phases as they relate to using Microsoft Project. You will learn how to define a project, create a work breakdown structure, manage resources, track progress, and report on a project plan’s progress within the software.

    Microsoft Project Environment Overview

    Let’s discuss the Microsoft Project environment as described in the sources. When you launch Microsoft Project and click on “Blank project” under the “New” heading, you enter the main interface.

    The key elements of the Project environment include:

    • Title Bar: Located at the very top of the screen, it displays the name of the application (e.g., “Project Plan – Project Professional”). On the right side of the title bar, you’ll find your login information and the traditional window management buttons (minimize, maximize/restore, and close). It’s also noted that there are two sets of close buttons (two ‘x’s), with the top one controlling the application and the bottom one closing the current file. To the left of the title bar is the Quick Access Toolbar.
    • Quick Access Toolbar: This toolbar is located to the left of the title bar and can be customized like in other Microsoft programs. The source demonstrates how to add the “Project Information” icon to this toolbar by right-clicking on it in the “Properties” group of the “Project” tab on the ribbon and selecting “Add to Quick Access Toolbar”. This allows for easy access to frequently used features.
    • The Ribbon: Below the title bar is the ribbon, which is organized into tabs. The main tabs mentioned are:
    • Task: This tab contains most of the features needed to work with tasks.
    • Resource: This tab houses tools related to managing resources.
    • Report: Here, you can access built-in interactive reports, visual reports, and create your own custom reports.
    • Project: This tab is described as an overall tab with various features that will be used throughout the course, including spell check.
    • View: This tab provides access to lots of different views in Project, and you can customize these views as needed.
    • Help: This tab offers access to help resources, feedback options, information about new features, and comparisons to previous versions.
    • Gantt Chart Format: This is a contextual tab that appears because the default view for a new blank project is “Gantt Chart with timeline”. This tab provides formatting options specific to the Gantt Chart view.
    • “Tell me what you want to do” Box: Located to the right of the ribbon tabs, this box offers another way to navigate the program or get help by typing in what you are trying to achieve.
    • Default View: Gantt Chart with Timeline: When you select a new blank project, this is the view you typically see. It’s a split screen:
    • Timeline: Located at the top, below the ribbon, this provides a high-level overview of the project and is useful for managing the plan with a quick glance at the project’s progress.
    • Entry Table: This is on the left side of the screen and contains columns where you enter task information such as task name, duration, start and finish dates, predecessors, and resource names. The column headings are visible at the top of this table.
    • Gantt Chart: On the right side of the screen, this provides a visual representation of your task durations and other task-related information as the project is populated.
    • View Indicator: Situated to the left of the entry table, this area currently says “Gantt Chart” and indicates the view you are currently in. You can change views by using the “View” tab on the ribbon or by right-clicking on the view indicator to see other available views.
    • Status Bar: This is the gray band located all the way at the bottom of the screen. It typically starts with the word “Ready”, indicating that you can start entering information. It also provides information such as whether new tasks are manually scheduled. On the right side of the status bar, there are a series of view buttons that act as shortcuts to switch to different views like Gantt Chart, Task Usage, Team Planner, Resource Sheet, and blank Report views. Finally, to the far right is a zoom slider. Unlike in Excel or Word, this zoom slider in Project changes the time scale displayed above the Gantt chart and does not increase or decrease the font size.

    Understanding these components helps you navigate and work effectively within the Microsoft Project 2021 environment.

    Creating a Project Plan in Microsoft Project

    Let’s discuss the process of creating a project plan in Microsoft Project as outlined in the sources.

    The process typically begins by launching Microsoft Project and clicking on “Blank project”. It’s a best practice to set up your project plan file before actual work starts on your project.

    The initial steps in creating a project plan involve defining the project:

    • Setting the Project Schedule: You need to determine how the project will be scheduled: from its start date or its finish date. By default, Project schedules from the project start date, and all tasks begin as soon as possible. Scheduling from the finish date changes this to “all tasks begin as late as possible,” which can potentially cause issues. Therefore, it’s generally recommended to schedule from the project start date.
    • Setting the Project Start Date: This is done through the “Project Information” dialog box, which can be accessed from the “Project” tab in the “Properties” group or via a customized icon on the Quick Access Toolbar. In this dialog box, you can select the desired start date for your project. Once the start date is set, a vertical line indicating the project’s start date will appear on the Gantt chart. Additionally, a default task zero (the project summary task) will update to this start date if it’s visible. You can control the visibility of this project summary task in the “Show/Hide” group of the “Gantt Chart Format” tab.
    • Assigning a Project Calendar: The project calendar lists all the exceptions, such as holidays or days when no work will occur on the project. Unlike an Outlook calendar, you need to manually enter these exceptions. To set up a project calendar, you go to the “Project” tab on the ribbon and click on “Change Working Time” in the “Properties” group.
    • Project has three built-in calendars: Standard, Night Shift, and 24 Hour. It’s recommended to leave these built-in calendars intact and instead create a new calendar.
    • To create a new calendar, in the “Change Working Time” dialog box, select the standard calendar (or another if preferred) and then click “Create New Calendar”. You can base it on a copy of an existing calendar and give it a unique name, such as “training rollout initiative”.
    • In the new calendar, you can define exceptions (non-working days) on the “Exceptions” tab by selecting dates on the mini calendar and entering a name for the exception (e.g., “Independence Day”, “Labor Day”). You can also set these exceptions to be recurring yearly with an end date far in the future.
    • Once the exceptions are added, you need to tell your project plan file to use this new calendar. This is done by going back to the “Project Information” dialog box and selecting your newly created calendar from the “Calendar” dropdown menu on the right side.

    After defining the project, the next step is to create and organize tasks:

    • Saving the Project Plan: Before entering tasks, it’s advisable to save the project. You can use the save icon or go to “File” > “Save” or “Save As” and give your project plan file a name (e.g., “training roll out initiative”) and choose a location to save it. The title bar will then update with the correct file name.
    • Entering Tasks: There are two modes for entering tasks: manually scheduled and automatically scheduled. By default, new tasks are manually scheduled. This allows you to enter placeholder text for task duration, start, or finish dates, which is useful when you don’t have all the information initially. Before work starts, it’s recommended to switch to automatic scheduling, where Project takes over the scheduling.
    • You can manually enter tasks directly into the first blank “Task Name” cell in the entry table. It’s suggested that task names be fairly short noun-verb combinations. After entering a task name and pressing Enter or Tab, you can move to the “Duration” column and enter the duration in days (the default unit). Manually scheduled tasks are indicated by a pushpin with a question mark in the “Task Mode” column. The duration is visually represented by a bar in the Gantt chart.
    • Tasks can also be imported from other applications, such as an Excel file. The source mentions an Excel file named “tasks for import” in the video description. To import tasks, you can copy the relevant columns (e.g., task name, duration) from the Excel sheet (excluding task ID if present) and paste them into the first blank “Task Name” cell in your project plan.
    • Creating a Work Breakdown Structure (WBS): This involves organizing your tasks into a hierarchical structure. The source demonstrates grouping tasks by stages (e.g., four stages in the example project) and creating summary tasks for these stages with subtasks underneath them. You can indent or outdent tasks using the buttons in the “Task” tab to create this hierarchy.
    • Defining Task Relationships: You need to define how tasks are related to each other. Common task relationships include finish-to-start (FS), where a successor task cannot start until its predecessor task finishes. You can create these links by selecting the predecessor and successor tasks and using the “Link the selected tasks” button in the “Task” tab. The relationships are visually represented by link lines between the task bars on the Gantt chart.
    • Scheduling Tasks: Once task relationships are defined, and the scheduling mode is set to automatic, Project will calculate the start and finish dates of tasks based on their durations, relationships, and the project calendar. You can also introduce lag time (a delay between tasks) or lead time (overlap between tasks) to fine-tune the schedule by modifying the link relationships.

    By following these steps, you can create a foundational project plan in Microsoft Project, defining the project, setting up the schedule and calendar, and building the task structure with dependencies.

    Microsoft Project Task Scheduling Modes

    Let’s discuss task scheduling in Microsoft Project, drawing from the provided sources and our previous conversation about project plan creation.

    Task scheduling in Microsoft Project revolves around how the software determines the start and finish dates of tasks. There are two primary scheduling modes for tasks: manually scheduled and automatically scheduled.

    Manually Scheduled Tasks:

    • By default, new tasks are created as manually scheduled.
    • This mode gives you the flexibility to enter placeholder text for the task name, duration, start, or finish dates. This is particularly useful in the early stages of project planning when all the details might not be available.
    • The task start date for a manually scheduled task initially defaults to the project’s start date that you set. However, you can override this with any text or date you prefer.
    • The finish date for a manually scheduled task is determined by the entered duration, but again, you can manually input any value.
    • Manually scheduled tasks are indicated by a pushpin with a question mark icon in the “Task Mode” column.
    • In the Gantt chart, a lighter colored bar represents a manually scheduled task, and if you hover over it, the screen tip will show “duration only” if you haven’t specified start or finish dates beyond the calculated duration based on the project start date.
    • Project does not automatically adjust the start and finish dates of manually scheduled tasks based on dependencies or the project calendar. You have direct control over these fields until you decide to switch to automatic scheduling.

    Automatically Scheduled Tasks:

    • When you switch a task to automatically scheduled mode, Project takes over the scheduling. This is generally recommended before the actual work on the project begins.
    • Automatically scheduled tasks are indicated by a different icon in the “Task Mode” column, which matches the “Auto Schedule” icon on the “Task” tab of the ribbon.
    • The bars for automatically scheduled tasks in the Gantt chart are a deeper color compared to manually scheduled tasks.
    • Once in automatic schedule mode, Project populates the start and finish dates for all tasks based on the project start date, task durations, and any predecessor relationships you have defined.
    • The project calendar plays a crucial role in automatic scheduling. Project will not schedule work on weekends (Saturdays and Sundays) by default. Additionally, any exceptions (non-working days like holidays) you define in the project calendar will be honored, and no work will be scheduled on those days.
    • Task Duration: The duration of a task is a key factor in scheduling. When you enter a duration (e.g., ‘2’ for two days), Project calculates the finish date based on the start date and the working days defined in the project calendar.
    • Task Relationships (Predecessors): Establishing relationships between tasks is fundamental to automatic scheduling. The default relationship is finish-to-start (FS), meaning a successor task can only start after its predecessor task finishes. When you link tasks, the start date of the successor task is automatically set to occur after the finish date of the predecessor task, taking into account weekends and calendar exceptions. Other relationship types like start-to-start (SS), finish-to-finish (FF), and start-to-finish (SF) also influence the automatic scheduling.
    • Lag and Lead Time: You can further refine the schedule by adding lag time, which introduces a delay between the finish of a predecessor and the start of a successor. Conversely, lead time allows a successor task to start before its predecessor has fully finished, creating an overlap. These adjustments directly impact the automatically calculated start and finish dates.

    To switch between manual and automatic scheduling, you can use the “Task Mode” column for individual tasks or select multiple tasks and use the “Manually Scheduled” or “Auto Schedule” buttons in the “Task” tab of the ribbon. You can also change the default scheduling mode for new tasks via the status bar.

    In summary, task scheduling in Microsoft Project involves initially defining the project’s schedule and calendar, then creating tasks with durations and establishing relationships. You can start by manually scheduling tasks to input preliminary information and then transition to automatic scheduling to let Project calculate and manage the task start and finish dates based on dependencies and the project calendar. This automatic scheduling ensures a coherent and realistic project timeline.

    Microsoft Project: Monitoring Project Progress

    Let’s discuss project monitoring in Microsoft Project, drawing on the information in the sources. Project monitoring is a crucial aspect of project management that involves tracking the progress of your project plan and ensuring that objectives are on track. Microsoft Project offers several tools and features to help you effectively monitor your project’s progress.

    According to the course outline, Module 3, Lesson 2 is specifically focused on “monitoring project progress”. This involves several key activities:

    • Viewing the project in a number of ways: Microsoft Project offers various views that provide different perspectives on your project’s status.
    • Gantt Chart: This is the default view and provides a visual timeline of tasks, their durations, and dependencies. You can also visualize progress on the Gantt chart by the thin blue line that appears within the Gantt bars as tasks are completed.
    • Tracking Gantt View: This view compares the current schedule with the baseline plan, visually indicating progress. It shows the taskbar (blue) in relation to the baseline bar (gray). Tasks ahead of schedule will have their blue bar extending beyond the gray baseline bar. This view also displays the percentage of completion next to most taskbars.
    • Variance Table: Accessible through the “View” tab > “Tables” > “Variance”, this table displays the start and finish dates compared to the baseline start and finish dates, along with the start and finish variance. Negative variance indicates starting or finishing ahead of schedule.
    • Project Statistics: Found in the “Project Information” dialog box (accessible from the “Project” tab or a customized Quick Access Toolbar), the statistics provide a summary of the current, baseline, and actual start and finish dates, duration, work, and cost, as well as the variances. It also shows the percent complete for duration and work for the overall project.
    • Network Diagram View: This view presents the project as a flowchart, with parallelograms representing summary tasks and rectangles representing subtasks. It displays task names, start and finish dates, IDs, durations, and percent complete. A slash through the shape indicates work has started, and a double slash might indicate 100% completion.
    • Task Boards: This view, accessible from the “View” tab, displays tasks in columns representing different statuses (e.g., Not Started, In Progress, Done). You can move tasks between columns to reflect their current status. The appearance of cards can be customized to show additional information like task ID and percent complete.
    • Sprint Views: If you are using Sprints (time-phased layers), Project offers views like the Current Sprint Board and Current Sprint Sheet to monitor progress within specific timeframes.
    • Adding custom fields: You can create custom fields in Project to track additional information relevant to monitoring. These can be text, cost, date, or other types of fields and can be used to categorize or flag tasks or resources for monitoring purposes. For example, you can add a field to track the department responsible for a task. You can also use graphical indicators in custom fields to visually represent progress based on certain criteria.
    • Creating custom views: Beyond the built-in views, you can create your own custom views by combining different tables, filters, and groupings to focus on specific aspects of project monitoring. For example, you can create a split view that shows the Gantt chart at the top and a task form at the bottom to view or edit detailed task information.
    • Creating a network diagram: As mentioned earlier, the network diagram provides a visual flow of the project, helping to understand task dependencies and potential bottlenecks.
    • Analyzing the plan: Project provides features to analyze the schedule and identify potential issues.
    • Critical Tasks: These are tasks that, if delayed, will directly impact the project’s finish date. They can be highlighted on the Gantt chart with a specific color (e.g., salmon) when the “critical tasks” option is checked in the “Gantt Chart Format” tab.
    • Slack (Free and Total): Free slack is the amount of time a task can be delayed without delaying its successor task. Total slack is the amount of time a task can be delayed without delaying the entire project finish date. Slack can be visualized as a thin black line to the right of the taskbar on the Gantt chart when the “Slack” option is checked. You can also view free and total slack in a table.
    • Late Tasks: These are tasks running behind both the baseline start and finish dates. They can be highlighted on the Gantt chart.
    • Slipping Tasks: Tasks with a forecasted finish date later than the baseline finish date. Slippage can be visualized on the Gantt chart by selecting “Baseline” under the “Slippage” dropdown in the “Gantt Chart Format” tab, which displays a thin bar indicating the difference between the baseline and scheduled start dates.
    • You can create a custom table to display fields like “Critical”, “Free Slack”, and “Total Slack” to analyze these aspects of your plan in a tabular format.
    • Using task boards and defining sprints: Task boards and sprints offer an agile approach to monitoring within Microsoft Project. By using task boards, you can visually track the progress of tasks through different stages. Sprints allow you to monitor progress within defined time intervals.
    • Sorting, Filtering, Highlighting, and Grouping: These features in the “View” tab’s “Data” group allow you to focus on specific sets of tasks or resources for monitoring. You can sort tasks by criteria like cost, filter tasks based on resources or cost ranges, highlight specific tasks (e.g., those assigned to a particular resource), and group tasks by various criteria like duration.
    • Utilizing Reports: Microsoft Project has built-in interactive reports accessible from the “Report” tab. These reports provide valuable insights into various aspects of the project, including:
    • Dashboards: Offering a high-level overview with reports like Project Overview, Upcoming Tasks, and Work Overview.
    • Resources: Showing over-allocated resources and resource utilization.
    • Costs: Providing insights into cash flow, cost overruns, earned value, and resource/task cost overviews.
    • In Progress: Highlighting critical tasks, late tasks, milestones, and slipping tasks.
    • Task Boards: Offering reports on task status and work status within the task board framework.
    • Sprints: Providing reports focused on task and work status within the defined sprints.

    By utilizing these diverse tools and views within Microsoft Project, you can effectively monitor your project’s progress, identify potential deviations from the plan, and take necessary actions to keep your project on track. Remember to regularly review these monitoring tools throughout the launch and execution phase of your project.

    Project 2021 Full Course Tutorial (5+ Hours)

    The Original Text

    welcome to learn it training the exercise files for today’s course are located in the video description below don’t forget to like And subscribe hi everyone Trish Connor Kato here welcome to Microsoft Project 2021 this video is for users who are looking to gain skills in Microsoft Project to create administer Monitor and report on a project plan’s progress project is a powerful scheduling tool used to track tasks resources and costs it also provides powerful and interactive reporting tools used through each stage of a project as you will see during the course we’ll start with A Brief Review of project management Concepts although Microsoft Project is used by project managers it’s also widely used by anyone in a position that requires tracking a schedule it is useful to know how project management Concepts correlate to the way plan files are created and administered in the application we’ll move on to become comfortable in the project environment learning how to navigate around so you’ll be acclimated to that environment we’ll dive into creating a project plan file defining a project and assigning a project calendar then we will begin to create and organize task we will manually enter tasks into project as well as import some from another application we will organize our tasks by creating a work breakdown structure defining tasks relationships and scheduling tasks all of this occurs in the first module in the second module we’ll focus on managing project plan resources and finalizing a project plan we’ll start by adding resources to a project plan creating a resource calendar entering resource cost and assigning resources to tasks we’ll also learn how to effectively manage resource conflicts well in this module by optimizing our project plan setting a Baseline and sharing the plan our first module consists of three lessons lesson one is getting started well we’ll go over project management Concepts and you’ll learn how to navigate the project environment our second lesson is defining a project where we’ll create a project plan from scratch Define the project and assign a project calendar and in our final lesson in this module is creating and organizing our tasks we’ll be adding tasks to our project plan we’ll also import tasks from other programs specifically there is an Excel file in the video description named tasks for import that we’ll be using so before we get started in this lesson you might want to go ahead and grab that file and put it somewhere in your system for easy access then we’ll move on to creating a work breakdown structure it is a way of organizing your tasks it’s known commonly as WBS will Define task relationships and schedule tasks the first phase of project management is conception and initiation and that’s the phase where the purpose of the project is determined whether it can be done or not and what would be needed for a successful completion we’re not going to be covering that phase of project management in this course we’ll start with the definition and planning phase which really lines up with how you’re going to be working in Microsoft Project and this is where you determine the scope of the project and the budget you set up your work breakdown structure which organize your task and you look at risk management techniques that you may need to implement at any point in the project then you move on to the launch and execution phase this is where you’re tracking the status of your project you’re updating your tasks your resource assignments and schedules and your reporting on status to your project stakeholders the next phase is performance and control and this is where you are checking to make sure that your objectives are on track and if not what tools can you use to get them back on track if possible whether the deliverables the end results are of quality you’re also going to be doing effort and cost tracking as well as performance of the overall project and then you have the project close phase which typically consists of some sort of post-mortem where you go over Lessons Learned and the end of project reporting I’ve launched project and I’m sitting on the welcoming screen and I’m going to just click on blank project under the new heading so that it takes us into the interface and this is where I’m going to give you the grand tour so I’m going to start at the very top of the screen where it says project run project professional of course every window has a title bar and that’s what you’re seeing there to the right you have your login information and your traditional window management buttons I always like to point out that when you have two x’s one on the top and one on the bottom the top one controls the application the bottom One controls the current file to the left of your title bar you have a little bit of a quick access toolbar which can be customized like in all your other Microsoft programs there is a useful thing that we’ll be using throughout the course so I’m going to show you one way to customize that quick access toolbar and so we’re going to go to the project tab on the ribbon and in the Properties Group you’ll see several different icons and the group names are at the bottom so in the Properties Group we’re looking for the project information icon and what you’re going to do is you’re going to right click on it and choose add to quick access toolbar so now that project information dialog box can be easily accessed from the quick access toolbar and we’ll be using it several times throughout the course so that’s a good place for it the project ribbon starts with your task tab everything pretty much that you need to do about tasks can be done from this tab you have a resource Tab and the same is true here anything having to do with your resource could potentially be handled from this ribbon tab you have a report tab so we mentioned in the introduction that you have these built in interactive reports this is where you can access them as well as visual reports and you can create your own custom reports from this ribbon tab as well your project tab is an overall tab we’ll be using multiple things on this tab throughout the course and it’s where you can find spell check by the way you have a view tab where you have lots of different views in Project sometimes when you’re new to project it can be overwhelming but what you’ll find are the views that are useful for you and you’ll learn how to customize them as necessary you have a help tab on the ribbon everything about help or giving feedback about the program finding out what’s new and this particular version of project versus previous versions and because when we selected a new blank project the default view is Gantt chart with timeline so you get that contextual tab on your Ribbon which is the Gantt chart format tab that tab is there because it is view we’re in to the right of that you have another way of navigating the program or getting help and that’s your tell me what you want to do box and underneath your Ribbon this default view is called Gantt chart with timeline so you have a timeline that’s a good high level reporting tool or good for you if you’re managing the project plan it’s a quick at a glance of where your project is as you’ll see when we populate it throughout the course underneath your timeline you have a split screen on the left side of the screen you have what’s known as the entry table and on the right side of your screen you have your Gantt chart which when populated will be a visual representation of your task duration as well as some other things about your tasks so you’ll see how these views change as we populate when we start working on our project to the left of your table you have a view indicator and that’s where it says currently Gantt chart that’s the view that we’re currently in so the view indicator says Gantt chart now you can use the view menu to change the different views or you can right click on that view indicator and you’ll see other views that you can switch to all the way at the bottom of the screen in the gray band you’ll see and in my case it starts with the word ready down there and that whole gray area is called your status bar all the way at the bottom so it tells you that it’s ready so if you wanted to start putting in things into your project plan file you could it lets you know that new tasks are manually scheduled down there which you’ll learn about shortly and over to the right side you have a series of view buttons kind of shortcuts that you can use instead of using the view indicator or the view tab of the ribbon you have five different views that you can switch to by using those buttons so the first one is kind of shaded already that’s our default view the view you’re currently in Gantt chart you can get to task usage team planner resource sheet and blank report views from there and then finally to the right you have a zoom slider now it doesn’t function in here the way it does in Excel and in word where it increases the size of your font on the screen for easier viewing and here if you look above the Gantt chart portion of your screen you have what’s known as a time scales when you’re in this View and you use the zoom slider it changes the time scale it does nothing to zoom your text in so it’s larger or smaller the type of project plan that we’re going to be working on during this course is the rollout of a training initiative so it could be that your company is getting a new piece of proprietary software and everyone or most people need to be trained on it or it could be that your company wants everyone trained on Microsoft Project and they need to roll out this initiative so the training is conducted appropriately so we could use this new blank template that we created before but let’s just go to the file tab of the ribbon and on the left side click on new and we’ll just start with another new blank project so now you see it has project two up in the title bar if we had closed project and went back in and did new we would get project one again we hadn’t saved it or named it so that’s kind of how that works it will just keep assigning sequential numbers until you give it a name now a best practice here is to set up your project plan file before actual work starts on your project now we know in the real world that’s not always possible but if you can aim toward that that is a best practice now when you first set up your project plan file you need to Define your project and that means that you have to set the way that the project is going to be scheduled and either its start or finish date and so we’re going to do that from that project information dialog box and we put it up on our quick access toolbar if you didn’t get it up there it resides on the project tab of the ribbon in the Properties Group whichever way you want to access it you can now notice in this project information for project 2 dialog box it has the finished date dimmed out can access the finished date field and that’s because the project by default is scheduled from its start date and let’s just have a brief conversation about that for a moment there’s only two ways you can schedule your project from its start date or finish date now you might think okay well I have this project plan and let’s say it has a deadline of October 31st you might want to schedule it from the Finish date and put in October 31st but in the background project does reverse logic in a lot of areas so for example it defaults to being scheduled from the project start date and right underneath that it says all tasks begin as soon as possible if you schedule it from the Finish date then it changes that constraint to all tasks begin as late as possible and that could actually end up jamming you up in your project schedule so I typically recommend scheduling from your project start date there are things that you’ll learn throughout the course let’s say usually October 31st as a perspective end date again let’s say you get to a certain point in your project that you scheduled from the start date and you realize that you may not make your end date there are ways that you can it’s called crashing your schedule so you can gain some time back in your plan that could potentially help you meet that end date even if you’re scheduling from the start date so for our start date what we’re going to do here is I’m going to just choose the following Monday from whatever date I’m currently on as the start date of this project actually I’m not going to do that I’m going to do the next day as the start date of my project here and we also so let’s let me do this one step at a time we put in the next day as our start date and we’re going to click ok and a couple of things change during your screen first of all if you look over on the right at the Gantt chart portion of your screen you now have a vertical line that’s going down the current where your current date is and to the right of that you have a dotted vertical line that indicates your Project’s start date also this task zero that showed up and that’s a default setting if you don’t have it I’ll tell you shortly how to get that default task there that also updated to the start date that you set now I’m going to show you how to control whether this default task shows up and so one way we can control it it’s set as a default in my options but we can go to that Gantt chart format tab and over to the right in the show hide group you’ll see that project summary task is checked what I’m going to do for right now is uncheck it and we’ll talk about the project summary task a little bit later in the course but we don’t need to have it there right now after you’ve set a start date or finish date for your project you’re going to want to assign a project calendar the project calendar lists all the exceptions so days that no work will happen on the project this is not like an Outlook calendar where you can import the holidays and stuff like that you have to manually enter them but the good news is if you set up a project calendar and you have other projects that are going to be using that same calendar or those same exceptions you can actually share that calendar across different project plans and you’ll learn how to do that later in the course for right now we’re going to go ahead and set up our project calendar and we’re going to go to the project tab of the ribbon and in that Properties Group we’re going to click on change working time and so project has three built-in calendars if you look up at the top of the change working time dialog box there’s a four calendar box and it’s set to the standard project calendar so your standard project calendar is for a standard working times of eight to five so eight to noon and then an hour off for lunch and one to five as you’ll see on the right side of that screen so that is a built-in calendar if I go to the drop down arrow next to where it says standard project calendar you’ll see that there’s also a night shift calendar that’s built in and that goes from 11 at night well it says as for June 20th it has one hour no 11 pm to 12 a.m the next day so we can adjust the hours for that but if you have a project where people are working on different shifts and there is a night shift you can base it off of that calendar and then you have your 24 hour calendar and no we don’t work people 24 hours however you might have equipment that is running continuously on your project and a 24-hour calendar could be assigned to it so you have these three built-in calendars but you really don’t want to use any of them you want to leave those alone and intact we’re going to go to the drop down and switch back to standard project calendar and over to the right we’re going to choose create new calendar and we’re going to make it a copy it’s going to be based off of that copy of standard so eight to five with an hour break for lunch and we’re going to give it a name and we’ll just call it training roll out training rollout initiative and we’ll click ok so by default when project schedules work it never schedules on a weekend now you can override that if necessary but it will never schedule on a Saturday or a Sunday so what we need to do for our training rollout initiative calendar is put exceptions on there for days that we know no work is going to happen with the exception of the weekends so if I look at this mini calendar if I do the down arrow to scroll down it will take me to the following month and so we’ll notice that Independence Day is on July 4th I’m going to go ahead and click on the 4th of July on that mini calendar and then in on the lower half of the screen you have two tabs exceptions and work weeks we’re on the exceptions Tab and in the name box we’re going to just type Independence Day and when you press your tab key it will populate the start and the Finish dates for July 4th because we selected it on the calendar now if you click on the next name line underneath Independence Day and then back on Independence Day you’ll notice that the details button on the right side will become available to you go ahead and click details and this is where you can set up Independence Day as recurring so underneath recurrence pattern we’re going to select the option button in front of yearly and we’re going to put we’ll leave it on July 4th and then what I usually do you can end after a certain amount of occurrences I’m going to choose End by and I’m going to change the year 22. to the year I’m Gonna Change it to the year 2050 so 50. and then click ok so somewhere far out so I don’t have to worry about it so that’s our first exception is you look at the little mini calendar again you’ll see that July 4th right it tells you it’s a non-working day it’s based on the particular exception of Independence Day on the calendar so now let’s navigate our little mini calendar and let’s go to September and we’re going to do September 5th make sure that date is selected put in Labor Day as an exception on the next name line and tab click away from the line and back on it so you can get to details and make that recurring yearly on the first Monday of September and ended in the year 2050 the recurrence and those are the two exceptions we’ll put on and again later you can okay your way out of there later on in the course you’ll learn how that calendar can be utilized by other project plans so you don’t always have to recreate the wheel once you’ve added the exceptions to your calendar we just need to tell your project plan file to use that calendar and we’re going to go back to our project information icon on the quick access Toolbar to do that on the right side of the project information dialog box you’ll notice the calendar defaults to the standard calendar we’re going to do the drop down next to standard and choose training rollout initiatives and click ok so it won’t assign any work on the project for the 4th of July or for Labor Day based on the exceptions that we put on our calendar before we start manually entering tasks into our project plan file we should probably go ahead and save the work that we’ve done so far so I’m going to go ahead and you can click the save icon or go to file save or save as it’s going to take you to save as I’m going to browse for where I want to place this and I’m going to just navigate to where I want to place my project plan file and I’m going to name it training roll out initiative and save it so now of course our title bar updated with the proper name for our file and we’re ready to start manually entering tasks now there are two modes if you will when you enter tasks there’s manually scheduled and earlier I pointed out that it says that new tasks are by default manually scheduled and then there’s the automatic schedule if I click down there I can Auto schedule new tasks we’re going to leave it on manually scheduled right now manually scheduled gives us the ability to put placeholder text for a task duration start or finish date so typically you’re entering you’re starting your project plan file well before work starts on your project you may not quite have all the information so you want to give yourself the ability to put placeholder text and then before work starts on the project I always switch it to an automatic schedule and in that Way project takes over the scheduling right now we’re going to enter our cast names and durations and so if we look at our column headings in our entry table we have an informational column we have a task mode column and you’ll see the indicator for a manually scheduled tasks there in a moment we have task name duration start finish predecessors resource names we’ll deal with start finish predecessors and resource names later for right now we’re going to click in the first task name cell and you want your task names to be fairly short noun verb combinations so we’re going to type Define project objectives and describe mission statement and press enter so and you could have pressed tab I’ll go back up Arrow you could press tab to get over to duration the default unit for a duration is days so you don’t have to type the D which would normally represent days if the duration is in days and that duration so we’re going to type the number two and press enter and notice how it gives it days now a couple of things happened I want to direct your attention to the task mode column and the push pin with the question mark is indicative of a manually scheduled task there’s only two modes manual and Auto if you look over at your Gantt chart you have a bar on your Gantt chart that is representing the duration of the task which is two days if you hover over that bar it will give you a screen tip that says duration only and the task start date is the date that we set our project to start on its finish date is the following day because we made the duration two days let’s put our next task in the next one is ensure total participation by training team and support staff and I’m going to tab after that one and that’s a one day duration so I’m going to just type the number one and press enter we’re going to add several more tasks at this point I’m going to go ahead and get them entered in and then when I resume you’ll see them and you can copy them from my screen I’ve completed our initial task list and I’ve widened the task name column so it doesn’t word wrap so you’re going to complete the other entries on this list on your own so now I’m showing the task for import Excel file that’s in the video description and the file has two tabs the first tab the manually enter tab those are the tasks that we’ve already entered into project now we have another tab at the bottom the import Tab and we’re actually going to use this tab to bring the rest of the project plan tasks into the file now we don’t need to import the task ID that’s in column A so I’m going to just click in cell B1 hold down my shift and my control keys I’m going to tap my right arrow and my down arrow to select everything on this import sheet except column A and then I’m going to do control C just to copy it and now I’m ready to switch back over to my project plan and I’m going to click in the first blank task name cell and by the way notice the row numbers on the left those correspond to the task numbers right now so task one is Define project objectives and describe mission statement and now I’m going to press Ctrl Z to paste the rest of the information in so didn’t have to type all of that stuff and some of the rows are kind of weird I’m seeing some kind of row deviations here in terms of the size so I’m going to just expand my task name column so we don’t get any text wrap and I’m just dragging it putting my mouse between the divider between it and the duration column headings and that just fixed my little role issue that I had you may not have had that issue it could be a resolution thing so we have our task list completed in here now and that’s as of right now now again we may not know all the information and since we’re in manually scheduled mode we can use placeholder text as I mentioned for duration start or finish date so if you look at tasks eight by row number for that duration which is currently 1.5 days I’m going to just go into the duration field and I’m going to type ask coordinator and press enter so it allows me to put placeholder text there notice that the corresponding bar on the Gantt chart portion disappeared because we no longer have a duration now once we put it into Auto schedule mode once project takes over the schedule you won’t be able to type that kind of placeholder text in the duration or start and finish date fields we’re going to change that duration back to 1.5 days so that’s only again because you’re in manually scheduled mode will it allow that let’s say that our task list is as complete as we think it could be at this point and so we want project to take over our scheduling we want to change it all to Auto scheduled and so what I’m going to do and this is very similar to in Excel I can click in the gray box between the row and column headings the intersection box at for your table on the left to select everything and then on the task tab of the ribbon in the task group you will see a manually scheduled icon which is already shaded because everything is manually scheduled and right next to it you have Auto schedule go ahead and click Auto schedule and then you can just click away from any on any cell in your table to get rid of the selection so a couple of things happened first take a look at your task mode column it now has a different icon in there and that icon represents an auto schedule task and it matches the icon that’s on the task tab of the ribbon for auto schedule the other thing that happened is the color of the bars in your Gantt chart changed they’re a deeper color now before it was a lighter color and that’s lighter for a manually scheduled task versus darker for auto schedule tasks and last but certainly not least based on our project start date it has populated the start and the Finish dates for our entire project now you’ll notice if you look at the start date column all of the tasks are starting on the project start date and that’s where creating a work breakdown structure to start organizing our tasks and relating them to each other will make our start and finish dates adjust and that’s the section we’re going to be going into now one way to organize our tasks is to start creating summary tasks before applying a work breakdown structure series of codes to each task so we had earlier seen task zero on my screen and I got rid of it before we really started doing anything when we had our blank template and so now it’s time to bring back task zero so on the ribbon I’m going to go to the Gantt chart format tab and over in the show hide group to the right you’re going to check the box in front of project summary task and when you do that you get a new task at the very top it takes on the name of your project it is in bold if you look at the row number it’s row zero that’s why it’s known as task zero and that is an example of a summary task that is your whole Project based on the information in here right now the whole project will take 10 days based on the start and finish dates so a summary task like this one is its information comes from its subtasks all the tasks underneath it so task zero the project summary task is a good example of a summary task if I want it to collapse it notice right in front of the task name you have that collapse Arrow if I click that everything in the project is collapsed and then I have the expand Arrow so I can expand it again so what I’ve done is I’ve gone ahead and entered two other summary tasks for stage one underneath stage one and they’re showing on my screen so you want to get those entered seek input from training vendor and perform end user skill assessment using indent and outdent as necessary and then when you’re done getting those in you can pause the video so you can just stare at my screen and get those done when you’re done you can unpause and I will have the stage two summary tasks set up on the screen for you to complete on your end now you’re seeing the stage 2 project commencement summary tasks and its other summary tasks so you can pause again and get those set up for stage two and when you unpause I’ll have stage three and four ready for you and now here’s how you’re gonna set up stage three and stage four stage three is a summary task it only has one subtask stage four includes two summary tasks with subtasks and now I’ve collapsed all my stages and your row numbers should match up to mine so I have task 0 1 22 46 and 48 showing on my screen and so when you were working on your summary and subtasks to make it more automated you could have gone down to your status bar where it said new tasks manually scheduled and just change that down there to new tasks Auto scheduled so you wouldn’t have to change it in the task mode column now what we’re going to do is we’re going to add some Milestone tasks to our project plan a milestone task is a task with zero days duration it’s meant to just note a particular milestone in your project plan so let’s expand stage two stages one and two if they’re not already expanded and so my stage two is on row 22. I’m going to just right click on that row heading and insert task and a new task I’m going to name it stage one project planning complete and I’m gonna give it a zero day duration so Milestone tasks show up on your Gantt chart as that little Diamond icon right and with the date next to it so that’s how it shows up on your Gantt chart zero day task is a milestone task now for that task we want to out Dent it so it’s at the same level as stage one so I’m gonna just out Dent as far as it can be out dented and then I’m going to collapse stage one and you see it and it’s Milestone task of zero days we’re gonna expand stage three and right click on its row header and insert task and this one’s going to be another Milestone it’s going to be stage 2 Dash project commencement complete with zero days and out Dent it appropriately and then we’re going to have row 50 where stage four is and insert a task and get your stage three project implementation and control complete milestone in and I’m gonna go ahead and do my out denting on that one and then for stage four I’m going to expand it and right before the last task which is the party we’re going to put in the milestone for stage four being completed so just noting significant events in your Project’s lifeline we have our Milestone tasks we have our subtasks our summary tasks and our project is pretty well defined at this point with the exception of one of the most critical components and that’s task relationships and we’re going to be reviewing them now and then coming back and setting them up to finish defining our project we need to learn about task relationships and a little bit of terminology so there are only four types of relationships in Microsoft Project there’s finish to start also you’ll see it represented as FS and that means when one task finishes another task starts that is the default relationship type so if you create a relationship between tasks and you don’t do anything else it will be a finish to start relationship we have start to start when one task starts another task starts and that’s one that you might review once you start tracking what’s going on in your project and you feel like you may not be able to make your end date your projected end date you can crash the schedule is what it’s called by reviewing some of your tasks and figuring out ones that can start at the same time and that can gain you more time back in your schedule you also have finish to finish when one task finishes another task finishes so you need them to finish at the same date and finally you have start to finish this one is infrequently used when one task starts another task finishes so you want a task to start and another task to finish at the same time and then there’s some definitions you need to know about your predecessor task is the task that precedes another task the successor task is the task that follows another task so let’s just use for example task one precedes task two task one is the predecessor task and task 2 would be your successor tasks in addition to your relationships you need to know about lead time and lag time so let’s say you’re using the Finish to start relationship when one task finishes another task starts well maybe when the first task is 50 finish the next task can start that would be known as lead time it allows for task overlap outside of the relationship that’s defined and then you have lag time which is a task delay so let’s say you have a task that’s like um we won’t have one in this project but let’s say you’re painting a room and that’s a task and let’s say it takes three days well you need another day for the paint to dry before the next task which we’ll say is like hanging the paintings would start you don’t want to make it from a three-day painting task to a four day painting task because then you’ll get resource costs for that extra day so you build in lag time that says it’s a three-day task after it’s finished wait one day before the next task will start and now that I’m back in my project plan I we’re ready to set up relationships I’ve expanded all of my stages so my full task list is visible to me and so what we’re going to do is we’re going to select task two and I’m just clicking the row header holding down my control key oh I did that wrong okay so row header two control key row header five to select those two tasks we want to set up a relationship a finish to start relationship that when task 2 is finished Task 5 will start so we have them selected and we’re going to be working on the task tab of the ribbon and we’re going to be using an icon in the schedule group here and if you hover over that icon it looks like the infinity symbol if you hover over that icon it says link the selected tasks go ahead and click it so a couple of things happened first of all look at your predecessors column so for Task 5 it’s saying that it’s predecessor tasks the task that has to happen before it can start is Task two and also if you look at your Gantt chart remember I said the default relationship type is finished to start so when task 2 finishes Task 5 will start and you can see that type of relationship on your can get chart if you look at the line with the Arrow coming out of the end of task 2 and the arrows pointing to the beginning of task five when task 2 finishes Task 5 will start so you just successfully set up a relationship now we have more to set up now we’re going to set up additional relationships so this time let’s select tasks three and using the control key task six and Link those tasks together now select task 6 7 and 8. I’m going to just click and drag row header six seven and eight and then link those tasks together notice it gives task seven the predecessor of six and task eight the predecessor of seven link test 5 and 9 to each other and then link Task 5 and 10 to each other so predecessor for 9 and 10 will be task 5. Now link 10 and 12 together make 12 the predecessor for 13. and then we’re at task 14. in order for task 14 to begin we need tasks 12 and 13 to be finished so I’m going to start by selecting 12 and 14. and linking those and then I can actually click in that predecessors box after 12 type a comma and a space and type 13 and then press enter so that one has two predecessors link test 13 and 15. to each other and for task 17 we’ll do this a different way just go to the predecessor cell for task 17. and do the drop down and you’ll see a list of all of your tasks you’re going to want to scroll up and check the box in front of task 8 and then just click away from there or you could have just typed in eight so some say it’s easier to do it that way than select it is certainly more efficient so we have eight as a predecessor for 17. I’m going to go to the predecessor box for task 18 and just type 17 and press enter and for task 19 I’m going to press 18 and press enter task 20 we’re going to do 19. and then we’re at task 21 that’s also going to be 19. as its predecessor and at this point I’m just typing them in you’ll know just like any other Microsoft product there’s multiple ways of doing the same thing so we have our predecessors in through task 21. at this point the predecessor for 22 which is one of our Milestone tasks is Task 21. so we’ll go ahead and get that in so we have our stage one relationships set up now we’ll address our stage two relationships so I’m going to collapse stage one and I have my stage two ready we’ll be starting and we’ll be working in the predecessors column we’ll just type all of these in we’re going to start with task 25 and I’m in that predecessor column and I’m going to just type 20 and press enter so now you’re on task 26 and that’s going to be 25 for your predecessor 27 and 28 are also going to be 25 as predecessor and then 29 its predecessor is going to be task 26. 30s predecessor is task 25. and then we’re going to go down to 32 and its predecessor is also 25. 33’s predecessor is 32. 34’s predecessor is 33. and 35’s predecessor is 34. and then we go to task 37 its predecessor is 33 38 is 37 39 is also 37. and 40 is also 37. and then you can go down to 42. so we’re skipping our summary tasks here although it is possible to link them to each other as well both 42 and 43 have 26 as a predecessor and then we’re at 45 and 45 has a predecessor 45 and 46 rather both have a predecessor of 26. and then we get to our Milestone task for the completion of stage two and for this one we’re actually going to use a summary task so we’re going to put in 36 as the predecessor for 47. task 49 conduct training and track attendees or it should be attendance I have a typo there I’ll fix it that one is going to be 47 as its predecessor so 49 has 47 as a predecessor so now I’m going to make sure in my task 49 I believe we bought that in from Excel so I just double clicked it and I’m going to just fix the typo on attendance and then I noticed my stage 3 Milestone task doesn’t say complete at the end so I’m going to just add that word there and then we’re into stage four with task 53 and actually I forgot the stage three one but that’s okay we’ll just for task 50 let’s go ahead and make that predecessor 49. and then we’ll go down to 53 and 53 we’re gonna give it a predecessor of 50. task 54 has 53 as its predecessor task 55 has two predecessors and that would be 53 comma 54. and task 56 has three predecessors and that would be 53 54 and 55. so I’m just typing those in separated by commas almost done here so task 58 has 52 as its predecessor another summary task there 59 has 58 as its predecessor and 60 has 59 as its predecessor and finally the last test task 62 we’re going to be using task 50 as its predecessor and go ahead and save your project plan now because we set up our relationships let’s talk about the things that have changed in our project plan notice your start and finish dates have adjusted according to the relationship also if you look at task zero you’ll see now the duration of our project is 63.5 days and that’s all the stages rolled up to that duration so our schedule is our tasks have been scheduled at this point because of the relationships now I’m going to expand all my stages again and we’re going to add the work breakdown structure codes work breakdown structure codes are universally known great way to talk about particular tasks in meetings and stuff like that and often your tasks are referred to by their code numbers their WBS codes rather than the task name so I’m going to show you two ways of where you can display your WBS codes so the first way I’m going to show you is this if you right click on your task name column heading and choose insert column start typing WBS and you’ll see it shows up on the list and once it’s highlighted on the list you can just press enter so now we have another column in this table with the WBS codes in them that’s one way of getting your codes to display let’s right click on the WBS column heading and in Project hide column means delete column I mean you could get it back by inserting it again but notice the symbol next to high column has the little X the red deletion x on it so we’re going to delete that column and I’ll show you another way of displaying your WBS codes without inserting another column this is my preferred way we’re going to go to the ribbon to the Gantt chart format tab on the ribbon and all the way to the right in the show hide group where we got our project summary task check box earlier for task zero you’ll see another box in there called outline number go ahead and check it and now if you look in your task name column each task has its WBS code before the task name so the first task task one is our stage one project planning task a summary task it’s subtasks are 1.1 and 1.2 and then the next summary task that we have in there is 1.3 its subtasks are 1.3.1 1.3.2 so on and so forth so a nice way of being able to refer to your task are by using the WBS codes now later on you’ll see if we edit tasks if we add more tasks the WBS codes will automatically update if we delete tasks so on and so forth once they’re there they’re there and you can make any modifications necessary so now we’re going to build in some lead and or lag time for some of our tasks let’s start with task seven so I’m still using the row numbers we don’t have to refer to them by the WBS codes I’m still using our row numbers so we made task six its predecessor and we want to have some lag time there so these are all finished to start relationships what we would like to happen is when task 6 is finished wait four days before starting task seven so we want to give it some lag time what you’re going to do is just double click on task 7. and when you double click a task the task information dialog box opens you have several tabs across the top General predecessors resources so on and so forth you’re going to go to the predecessor Tab and notice all the way to the right there’s a column called lag there is no lead column in Microsoft Project when you want to do lag time you represent it as negative it could be days it could be percentages and that’s how the system knows its lag if it starts off with a negative if it’s lead time you’re going to put it in the lag column it can be represented as percentages or days as well and you use that a positive number for that so we want four days of lag here before this task starts so in that lag column we’re going to type minus four and I’m going to type the D for days and press enter and now click ok so notice now in the predecessors column it says for task seven six FS which is finished to start minus four days so it’s showing the lag there right so if you look at it on the Gantt chart right the line is coming out of the end of task six and it’s lagging before it goes into minus four days minus four days of lag time before it starts the next task is what we’re telling it to do there right so lag time is represented as a negative lead time is represented as a positive now go to task 20 and give it two days of lag time and when you’re done its predecessor should say 19 FS minus two days let’s double click on task 26 to get into its task information box and for this one we want to give it a half day of lead time so in the lag box I’m going to just type 0.5 and enter and click ok so now you’ll see its predecessor says 25 FS for finish to start plus this one is going to start a half a day before task 25 is complete it’s overlap so if you have problems finding the Gantt Bar for a particular task like right now on my screen I’m not seeing the Gantt bar for task 26. I’m going to right click on the task name and I’m going to choose scroll to task and it brings that bar into view give tasks 33 two days of lag time and your predecessor’s column for that task should look like mine change the type of relationship to start to start for task 37 as well and do the same for task 39. make it in a start to start relationship add two days of lead time to task 40. you’re also going to add two days of lead time to task 45. three days of lead time to task 46. and you can see the results of those on my screen we’re going to add one day of lead time to task 47 and two days to task 49. let’s go ahead and give task 53 two days of lead time and for task 58 we’re going to do 990 days of lead time and you can see the results on my screen and then the next task task 59 we’re going to give it one day of lag so that’s going to be your minus 1 there so now if I look at task zero we’re up to 146 and a half days duration we added that 90-day lead so that means wait 90 days after that task before the next one or it’s successor task will start and so our start and finish dates have updated our project is Thoroughly scheduled and designed right now except for some more tasks so I noticed that I had accidentally deleted some of my stage 3 tasks I rebuilt that part of the project plan and put in the correct duration and predecessors so I just want to make sure your stage 3 is exactly like mine as highlighted on the screen and then in stage three what we’re going to do is we’re going to change the duration of task 49 to 10 days so we want that to be a 10-day task now your stage 3’s duration should have updated when you change that to 10 days but I want you to scroll to the very top and I want you to look at task zero the project summary task that has been off that is only showing the duration I’m going to collapse my stages now just so we can see clearly what’s going on here so our project summary task is only showing the duration of stage four and it should be showing the duration of all of the stages cumulative so one way that you can jog project into doing its job when it comes to this if your project summary task task zero doesn’t update you can link your stages to each other to get it to update so what we’re going to do is we’re going to just click and drag row headings 1 through 55 so basically selecting our stages and on the task tab of the ribbon you’re going to go ahead and Link those tasks together and now you’ll notice that your stage four actually adjusted it really is 108 days and that’s where we put that 90-day lead time so it is 108 days but cumulatively our project is 153 days if you add up the stage durations so you need to kind of know about that little shortcut sometimes it won’t update sometimes it will and this has happened in various versions of project we’ve decided that when we get to stage three which I’m going to expand we want to have conference calls for one hour every day during that stage so we just want the whole team to get together talk about how things are going are there any risk assessments so we want to add those recurring calls to our project plan file and the way to do that so so far when we’ve been inserting new tasks we’ve been right clicking on a row heading and choosing insert tasks to get the recurrence schedule you can’t use that method for a recurring task so I’m going to just select row header 49 just so that task is selected and on the task tab of the ribbon in the insert group I’m going to do the drop down arrow underneath task so when I do the drop down I can see where I can create a recurring task so I’m going to select recurring tasks there and we’re going to name the task status call and notice it defaults to a one day duration be careful of that go to your duration box to the right and change the D to an H which represents one hour and we’re gonna do this call so we’re going to do the call Daily so we’re going to do that option button and we’re going to say everyone workday and then we’re going to start it so we say stage three the actual work begins on stage three on it looks like Wednesday 8 10 with the training starting so we’re going to start the calls we’ll just change it to August 10th as our start date so we just want to start them with that phase when that phase is up and running and we’ll say end after so we have 12 days in that we’ll end it after 10 occurrences so we want to have 10 of these status calls during stage three and go ahead and click ok so now right underneath stage three you have your 10 incidents of the status calls each one for one hour right every weekday starting on August 10th is what we set up so you want to have them as close to the top of the summary task as possible so they’re not just blending in with your other stage 3 tasks and we want to change the name of that status call summary task um before we do that look at your indicators column so you have a recurring call and it has the recurrence circular arrows in the indicator column and then for each occurrence of the call it has a little calendar icon and if you hover over a calendar icon it says this task has a start no earlier constraint start no earlier than constraint on Wednesday August 10th so for each one it gives the same constraint the call is on every day starting on the 10th so just more icons you’ll see in your indicators column we’re going to double click on 3.1 status call and we’re going to change the name of it to daily conference call daily we’ll just say daily call and then in parentheses to address issues and close your parentheses and then click ok so it’s going to rename every instance of that call that way and that’s fine by us so we added those also notice that your work breakdown structure codes Just Adjust if you add or delete like I mentioned earlier and we can go ahead and collapse stage three and the last thing we’re going to do in module one is I’m going to show you a way to capture additional information about tasks we’ll only address three tasks in this section out of our extensive list of tasks and we’re going to start by adding a note to task one I’m going to just expand stage one I don’t have to expand it to do this and then I’m going to double click on it to get into the task information dialog box and in there you have a notes tab at the top now I suggest that you date an initial notes and if multiple people are going to be working in this plan file that the newest note should be at the top of the note list so I’m going to just go in and put in the date and I’m going to put in my initials and then I’m going to press enter and the note is going to be assumptions colon you could take it off of my screen and the first assumption is software will be rolled out to the participants workstations during training the next line is going to be HR and training management has given their approval and allocated the funds and budget for this project and our last assumption for this task is all necessary compliance and Regulatory issues have been addressed and then you’re going to click ok and so if you look at your indicators column you’ll have that sticky note icon and in order to see the note you can just hover over that icon and you’ll see most of the note but it cuts off so you would have to double click to get to the notes tab to see the rest of it so they’re indicated by the sticky note in the indicators column we’re going to put on two more notes let’s go to task 11 so that’s another summary task I’m going to just double click it and I’m going to date the note and initial it and then this one is going to just be can be skipped if instructors and training are done in-house and then click ok and we have one more note that we’re going to add here and that’s going to be for stage three so task 48 and let me just show you another way of getting to the task information dialog box this time I’m going to right click on stage three or line 48 and I’m going to click on information and that’s just another way other than double clicking you could also get to it from the task tab at a ribbon in the Properties Group there’s an information box so in here I want to go to notes and I’m going to date an initial it and this one is also going to start with assumption and in a colon the rollout will take place over two weeks and then in parentheses 10 business days to train 75-80 users and the next sentence each session can have up to eight users for optimal learning and then I’m going to just put another sentence this is the start of the hands on training and click ok so great way to capture additional information I’ve seen project plans where the name the task name is not just the name of the task but all these notes about the task so you have to have some place to put this additional information notes would be it task name would not be to recap what we’ve covered in module one we started by going over project management Concepts specifically to phases of project management we started our work in Microsoft Project in the definition and planning stage of project management and then you got a grand tour of the project environment and how to navigate within it and then we created a project plan from a blank template we defined the project by setting by deciding to schedule it from its start date and setting the start date and then we created a project calendar based off of the built-in standard calendar we listed a couple of holidays as exceptions on the calendar and then we assigned that calendar to our project plan in lesson three we started adding tasks to the project plan we manually entered some tasks and then we imported tasks from an Excel file that’s in the video description we started creating our work breakdown structure by organizing our task into different groupings so we grouped our tasks by stages we have four stages in our project plan and we got our summary task and our subtasks and then we learned about the task relationships as well as some definitions like successor tasks and predecessor tasks and you learned about lag and lead time and then we created the relationships between tasks by linking them we then went and changed some of the relationship types and we added lag and or lead time to some of our tasks and by doing that we were able to schedule our task we had already switched to automatic scheduling so then the start dates and the finished dates are based on the nature of the relationships and any lag or lead time after that we got our work breakdown structure codes to show in the task name column so that the task can be referenced by their WBS code as opposed to their name we’ve been referencing them by row number in this course we moved on and set up a recurring task for a series of 10 daily calls that will take place when the training starts in our project plan and you learned how to create that recurring task and set up its recurrent schedule and then finally we added some notes to some tasks to capture some additional information now that we have our project plan file as complete as it can be right now in terms of our task list we’re going to move into module two module two has two lessons Lesson Four and lesson five and Lesson Four we’ll be managing project plan Resources by adding resources to a project plan we’ll also be creating a resource calendar entering cost for resources assigning resources to tasks and resolving resource conflicts in lesson five we’ll be finalizing our project plan and this is typically the last step before you start running your plan so work starts on the project you want to optimize your project plan there’s a couple of steps for that you’re going to set a Baseline and learn what that is and also learn how to share your project Plan before work begins on the project before we begin adding resources to our plan file it’s important to understand the three different types of resources that are utilized in Microsoft Project you have work resources which is the default resource type and that type of resource is associated with and tracked by time it also allows for costs to be tracked it can be people and they can be listed as individual or Consolidated groups or a work resource could also be equipment that is necessary to be used on the project then you have material resources they’re assigned by quantity rather than time gravel paper concrete and paint are examples of material resources when you enter a material resource you have to enter its measurement so for example if you entered paper as a material resource its measurement would be reams and then you have a cost resource type these are based on costs without time or quantity consideration these can include travel costs costs for building permits or end of project celebration costs and their total the amount that they are like let’s say you had a lot of travel on your project each travel cost would be noted at that task level so if someone has a task to teach a class and it’s in a different city they have to travel to get to that City their travel costs would be noted on that task so you’ll learn how to deal with all three resource types in just a few moments to add resources to your project plan file you’re going to want to use resource sheet view so on the left side of your screen to the left of your entry table where it says Gantt chart remember that’s your view indicator we’re going to right click there and we’re going to choose resource sheet so it looks like an Excel spreadsheet a couple of things I will point out is when you’re in this view if you look up at your Ribbon the last tab is resource sheet format because you’re in resource sheet view so just want to point out how tabs change depending on views changing so we have an information column here I’ll go over to columns before we start entering our resources your resource name column if it’s a work resource it could be the actual name of the person if you know it if you don’t know the person’s name when you’re putting your plan file together you could give like a title like trainer one or something like that if you’re gonna have a group of people that can perform the same task like if you’re going to have five trainers you can list them individually by their names or trainer one two three four five so on and so forth or you could do one line item and I’m going to jump over from resource name to the max units column here it just says Max but it’s Max units if I had five trainers and I wanted one line item I would make their Max units 500 percent so if there are five trainers available to work on my project 100 of their time their Max units would be 500 percent so for work resources you can enter them quite a few ways and right now we’re going to use a combination of those ways your type column is a drop down for work material or cost it will default to work your material column as mentioned if you’re using a material resource for example paper you have to put in its measurement which would be reams the initials will populate with the first letter of your resource name group is a column that you can use for whatever you want if you need to track internal resources versus external resources you can use the column for that for example and it’s a column that can show on reports your maximum units is how much time and percentage your resource is available to your project and then you have your cost column so you have the standard rate if you have rate information you can put it in hourly weekly monthly annually daily and you can specify an overtime rate if necessary project note will never switch from the standard rate to the overtime rate it’s something you would have to tell project to do overtime is calculated differently in different states and then you have cost per use so let’s say you’re renting a training room for example how much does it cost each time you use that training room you have an accrual column your costs are normally prorated across the task right or you can have them accrue at the start or the end of the task and then the base calendar is the same calendar as your project calendar you also have another free field code which is like group you can use it for anything that you may need to use it for in the First Resource name cell we’re going to type Emily with the last name Barrington and we’re going to leave it on the default type of work resource so we can skip I’m using my Tab Key to material column notice that the first letter of the resource name populates automatically in the initials column for the group I’m gonna type internal and she is our training director I’m gonna say that she’s available to our project 50 of the time of her time now it just so happens that we have her raid information so part of her salary will be charged to this project for the time that she spends on this project at her normal rate so we’re going to just put in her normal rate now sometimes you won’t have cost information for resources sometimes you will if tracking cost is your responsibility then you should or at least get estimated costs if necessary so we’re gonna say we’re gonna type in 75 000 slash y for year and we’re not going to give her an overtime rate or cost per use we’re not going to change anything else and I’m just double clicking between standard rate and overtime columns so I can see her salary and so her 50 availability means project won’t schedule her more than 50 percent of her time on our project all right so now we have our next person and this person is Teresa Brown she’s also a work resource and she’s also in the internal group she’s our training manager when our project is up and running she’ll be available 100 of the time so we can leave her at 100 Max units and her salary is 50 000 slash y we have our next one now we’re not certain the training department has several training coordinators and we’re gonna need two of them to help on our project so what we’re gonna do is we know that we’ll be given their actual names before work starts so we’re gonna just list them as training coordinator one make them internal 100 of their time and we know that the coordinator’s rate is 35 000 slash y for a year and then we’re going to put in a training coordinator two with the same group and standard rate and we can always come in and fill in their real names when we get them and anywhere if we’ve already assigned them to tasks the task will update with their real names and then we have so we have our training coordinators our training director training manager our coordinators now we’re going to put in our HR director and his name is Randy Allison another work resource who’s also internal he’s available like 25 of his time for our project and he’s at 75 000 a year as well our HR manager’s name is Alan and the last name is Otto another work resource that’s internal and he’s available 50 of his time his salary is fifty thousand per year and we have just a few more so we’re going to have let’s see where I am here we’ll just do all of our work ones first we know we’re probably going to be using two trainers from a vendor so we don’t know their names yet we’ll put them in as vendor trainer one and their group is external they’ll be available 100 of their time once that part of the project starts and the rate for the vendor is 1500 a

    day so I’m doing fifteen hundred slash d and then we’re going to do the same for vendor trainer 2. and now we’re ready to do a material resource so we’re going to have posters that are displayed advertising these classes and we’re going to use we’ll put in the resource name as posters and when you tab over the type if you type the letter M it will populate material and we’ll say it’s measured in sheets and notice the standard rate is just a flat rate there so we’re going to just put in 10. for ten dollars and then we have a cost resource and we’re going to name it entertainment and change the type to cost and we don’t need to note anything else here for a cost resource again that’s assigned at the task level so we have our resource sheet completed so another thing just to note here and we’ll deal with it in a later module is sometimes you’ll inherit a project plan file and it doesn’t have any task lists or Gantt chart or anything it only has a resource sheet in it and that can be used across projects it’s called a resource pool and we’ll revisit that later on in this course go ahead and save your project plan so we get our resource sheet filled out and we look at it and realize we forgot to put our marketing manager Alice on here so we want her to be included with our internal work resources we’re going to right click on row heading 7 here in resource sheet view and go to insert resource just to get that blank line just like when we were in the entry table in Gantt chart View so in that blank line we’re going to get her name in there and so her name is Alice Peak she is a work resource we’re going to put her in the internal group she’ll be available 100 of her time and she is a manager so we’re putting her salary at fifty thousand per year like our other managers now the thing about Alice that we need to know all of our other resources will be available to us for the duration of the project except Alice she already has some time off and so we need to note that and the way that we note it is by creating a resource calendar for Alice so to do that we’re going to just double click on Alice and it opens up the resource information dialog box just like when you double click on a task it opens up task information and on the right side we’re going to click that change working time button and so this is if you look at the top this is very similar to when we created our training rollout initiative calendar if you look at the top it says that is our base calendar but now we’re at the resource calendar for Alice so if your resources have time off it needs to be noted but not on the project calendar so by going into change working time for Alice we’re creating her resource calendar and we’re going to navigate to July 22nd on that mini calendar and we’re going to select July 22nd in the exception box the first name box under the exceptions tab we’re going to type personal day and press our Tab Key and we’re gonna click on July 25th on the mini calendar and put another personal day entry for that date there for Alice and then we’re going to click ok and okay now July 25th and July 22nd are working days for everybody else on the project but Alice won’t be scheduled for any work on those days and we can right click on our resource sheet view indicator on the left and go back to Gantt chart View and just save your project again there are quite a few ways that you can assign resources to tasks we’re going to start by using the resource name column on our entry table and Gantt chart View so it’s the last column before you get to add column Right add new column and so for task 2 we’re going to do the drop down in the resource names column and you’ll see all your resources regardless of how you enter them in on the resource sheet they will be alphabetical on this drop down list and we’re going to check Emily Barrington and then just click away from it so now if you right click on task 2 and you go to scroll to task if you look at the Gantt bar it shows Emily Barrington and it’s also showing that she’s only available 50 percent of her time for tasks three we’re going to assign Teresa Brown and go ahead and assign Theresa Brown to Task 5 6 and 7. so a couple of things happened when you did that you got three little red people in your indicators column and that means that Teresa Brown is now over allocated and we will take care of that a little bit later in this lesson but the other thing I want to show you is how I did that task how I assigned her to task five six and seven I didn’t do them individually in the resource name column what I did was I just clicked and dragged row headers five through seven right click within the row headers that are selected and I went to information so notice there’s no task name there because I have multiple tasks selected but then I went to the resources tab and I just did the drop down there so that’s how I got them in there Teresa Connor Brown three times just a little bit more efficient way it caused an over allocation and again we will address resolving over allocations later in this lesson for right now I’m Gonna Fill in the rest of the resource name assignments for stage one and then you’ll be able to pause and put them in on your screen so now you have on my screen I got rid of some of my columns in my table so you’re just seeing the task name and resource names you can go ahead and finish filling out the resource assignments for stage one and pause the video while you’re doing that so you can see my screen clearly and then when you resume the video I’ll have stage two up on the screen you’ll pause and get those in resume stage three so on and so forth so you’re going to be doing these assignments on your own and I showed you how like you have a lot where training coordinator is assigned you can select all four of those tasks at the same time and either right click to get to information or click information up here on the task tab of the ribbon so you don’t have to do them as individuals so go ahead and get started on this and here are your stage two resource assignments again pause here’s stage three and finally here’s stage four now that we have all of our work resources assigned we are going to go ahead and assign our material resource and we’re going to do this one a different way so go ahead and select task 33 and go to the resource tab on your Ribbon and in the assignments group you’re going to click on assigned resources so notice that we have Alice Peak assigned to that resource right create posters and place them in high traffic areas and it calculated her cost for that particular task but we also want to I’m going to scroll down here and we’re gonna click on the posters resource and choose the assign button on the right so we have the posters assigned there and for the units we have one sheet because we put in the material measurement as a sheet and we’re going to change that to 500 sheets trying to get into that field can be a little challenging try to type 500 in there yeah so it calculates the cost for me and so we have multiple resources assigned to that now we have Alice as the work resource and then we have the posters and we put the number of units based on the material measurement and its cost and so we can close that assign resources box and we’re going to do a similar thing let’s go to the bottom of the project plan our last task task 77 go ahead and select that one and go up to assign resources on the resource tab and for this one we’re going to assign entertainment so that’s our cost resource right and we’re going to go ahead and put in a cost of ten thousand and then do a sign so we have ten thousand dollars budgeted for this huge party at the end of everything and we’re going to go ahead and do the X and so if you notice the resource name for task 77 says entertainment and it has the ten thousand for that one and if we go up to task 33 you’ll see the resource name has Alice Peak and then the posters 500 sheets and if I I’m going to move my divider bar backwards and I’m going to right click on create posters and scroll to tasks so it shows on the Gantt chart as well when you have a material or a cost resource so at this point before we resolve our resource conflicts we’re making believe here that we just got the information of which two training coordinators will be working on our project so let’s go to our resource sheet view and we’ll update that information so here’s another view where you can see where you have over allocated resources they’re in red they have the little red people in the indicator column for training coordinator one we’re just going to change the name and that name is Eugenia Washington and for training coordinator two it’s Anita Redman and we’re gonna save and then go back to our Gantt chart View and you’ll notice that anywhere that we assigned training coordinator one so if I look at the beginning I have my stage one collapsed there right but they weren’t in that stage but anywhere where we had training coordinator one it now is Eugenia Washington and so in addition to receiving the training coordinator names we’ve also received the information on how they’re going to divvy up their responsibilities on the project so they’re doing it by stage and and summary tasks so Eugenia is assigned to stage one identify departments that’s where their assignments start and so she’s gonna tackle that what we’re gonna do for tasks 12 13 and 14 I’m going to select those as a group go up to the task Tab and go to information in the properties and I’m going to go to the resources Tab and change the assignment to Anita Redmond and then click ok so it put in it has Eugenia and Anita there I’m going to go to Resource name column and just access the drop down I made that column super wide so let me fix that a little bit and I want to get rid of Eugenia so just unchecker click away from it and you get that little warning symbol when you click away click on that and we’re going to decrease the amount of work but keep the same duration that’s the option we want and we’ll talk about that setting later but we want to go with the default and go ahead and remove Eugenia from the next two tasks as well and keep that same default and so this is how they’ve determined they’re going to work together so we have Eugenia in identifying departments and so on and so forth Anita will seek input from the training vendor Eugenia will perform the end user skill assessment and we’ll switch and I’m going to just do this from the drop down in stage two um tasks starting with tasks 25 I’m going to switch Eugenia to Anita in that summary task list and in that way we don’t get that confirmation if I select you Anita and then uncheck Eugenia it just does it in that section okay so the next section well we’re gonna oh there’s another one in that section that we need to assign to yeah task 30 also needs to be assigned to Anita our next one marketing strategy um the one email is going to be Eugenia and we’ll leave her in the training sessions registration and then in schedule instructors and courseware evaluations so task 42 43 45 and 46 switch those to Anita instead of Eugenia and then I think we should be done with the training coordinators I’ll double check that in a moment but after we do those because it already updated in the um the daily calls that we have so we don’t have to we had a we had assigned both training coordinators to those calls so we don’t have to do anything with that section and the next section underneath the calls we do have Eugenia that’s fine and then they’re working together and we’re good for the rest of this all right and just some of our over allocations for Eugenia have disappeared so in order to resolve resource conflicts like over allocations you can let project do it for you or you can do it manually I’m going to show you where you would have to do it manually and you’ll be able to make your choice as to what’s the best way for you so I’m going to right click on Gantt chart on our view indicator on the left and I’m going to go to Resource usage View and in resource usage view you have a time phased scale on the right side of your screen and on the left side you have any unassigned resources and then your resources that are assigned and the tasks that they’re assigned to any over-allocated resources will show there in red with the little red person in the indicator column and it gives you the amount of work hours assigned to that resource if you look at Teresa Brown in that list and you’re seeing the work that she’s scheduled for on a daily basis right you can see her over allocations in red so on this particular date I guess this is in the week of June 19th so 20th 21st 22nd on the 23rd so Thursday she’s scheduled for two eight-hour tasks in the same day and the same for Friday you can see on the following Monday she scheduled for 20 hours worth of work so if you were going to try to resolve this over allocation manually this is what you would need you would need a paper and a pencil you would need to go look at the resources calendar before you do anything and it would go something like this now we’re not going to do it this way but I’ll explain it to you so I’m gonna look at that first day where she has an over-allocation that Thursday so she has two tasks that are eight hours each and what I’d have to do is take one of those tasks away from her on that day by making it zero hours and then I would have to scroll to the right until I find another day that she has an opening and the first weekday that I see where she may have an opening here as far as I can see she’s not over allocated is on the Thursday after the 4th of July that kind of thing order Friday so I would have to change one of her tasks on that first day to zero hours and then put that eight hours for that task on another day that she has availability only if I’ve looked at the resources scheduled the resources calendar because they might have time off so you can see where this can be a tedious not only tedious but it lends itself to mistakes so you can let project do this for you I’m going to switch back to Gantt chart View and we’re gonna go to the resource tab of the ribbon so the last group on the resource tab is the level group and that’s the way that you can let project help you resolve your resource conflicts over allocations um when it’s resolved it’s called leveling the project so you have a couple of options here you could level the entire project or you could just level by specific resources this is what I normally do so I start by going to Resource sheet view it’s just an easier way of seeing which resources are over allocated so we have four that are over allocated I’m going to go back to Gantt chart View and in that level group on the resource tab I’m going to choose level resource before we do that we need to look at task zero so right now the duration of the project is 155 days it starts on June 21st and it ends on January 25th and the next year and you want to make note of that once you make note of that you’re going to click on level resource and we’ll start since they’re in alphabetical order here it looks like by first name this time we will start with Let’s see we have Theresa Eugenia Anita and Alice so we’ll start with Alice and then we’re going to just click the level Now button and then we’re going to go back to level resource and we’re going to choose Anita and level now and you see things are adjusting if you look at project zero the duration to start the Finish dates are adjusting right and then we’re going to go to level resource again and we’re going to level Eugenia and then we’ll go back one more time and select Teresa so and sometimes that causes other things so I’m going to go back to Resource sheet view and it’s still showing that they’re all over allocated so we have to do some other work on this we’re going to go back to Gantt chart View and this is pretty typical sometimes when you just do level your resources like we did it fixes everything other times it doesn’t so this time we’re going to make note of where we are now with the duration so it’s pushed out our project and its finish date is pushed out as well as its duration has expanded so this time I’m going to click the level all button and it gets rid of everything it also pushed it out by another four days okay so originally it was scheduled to end on January 25th but after we level everything it pushed it out about three weeks and we’re gonna just say that that three weeks is tolerable for us now there are some other ways that you can gain time back in your project we talked about using the start to start relationship type and I forgot to I’m in my Gantt chart view I forgot to add back in my predecessors column let me get that back in there and so you can review let’s say that three weeks is intolerable you need to gain like a week back you could look at your relationships and figure out can any of these tasks get started on the same date right and if so you can change them to start relationship that gains you more time in your schedule so if we look at let me give you a good example of this if we look at task six and that’s a seven day task in duration so task seven is set to start we put a lag time on that so it’s set to start four days after task six is completed because we put that lag on there and then we look at this we have to perform the training needs analysis before we compile the results so we can’t really do anything about those two right but then I look for another opportunity right of where I can start especially if I can use some of the training you know we have two training coordinators so maybe if I can start some of the other tasks on the same day that would gain us back a week in our schedule so those are decisions you’ll have to make as you’re going through your schedule you’re probably always going to end up with some over allocation of resources if you let project level it for you it could push out your finish date to an intolerable level and then you’ll have to use the other techniques like we talked about start to start relationship type or some more um lead time between two tasks so there’s that overlap to gain time back in your schedule so now we’re moving into lesson five and this is where we’re going to spend some time optimizing our plan we’re going to set a baseline And before that you’ll learn what a baseline is and then we’ll also go over how to share a project plan and these are the final steps before work begins on the project hopefully so we’re going to start when we’re talking about optimizing a project plan we’ve already discussed some of that and that could be changing the relationship type from Finish to start in order to gain some more time back in your schedule it’s also finalizing resource assignments and it is resolving any over allocations that haven’t been resolved through leveling so if we scroll down in the project we’ll start seeing little red people again and so we have and a lot of it is Eugenia Washington and she’s our training coordinator one so because she’s over allocated there and this is for let’s see so task 34 37 38 and 39. what I’m going to do is I’m going to change those over to Anita Redman who is training coordinator too so I’m going to change the resource for all of those tasks to Anita from Eugenia and now I actually have some more over allocations for Anita so let’s change that back let’s change 34 back to Eugenia and we’ll say that we’re so we’re in a situation now oh wow when I changed it back it got rid of all of my over-allocations that’s very strange but anyway I changed it and then I changed it back and it’s magically cleared all my over-allocations so if you need to go ahead and change yours so they’re not over allocated if necessary and that’s one thing that you’ll do when you’re optimizing your plan that was very strange I’m gonna just save my project now and yeah I got rid of all the over allocations that must be some kind of a glitch because it doesn’t typically work that way and then the other thing that we’re going to do here is we want to assign the two vendor trainers to the actual training so that’s going to be down at task 60 we’re gonna change that assignment so it’s 10 days what we’re going to do is we’re gonna go to the drop down in the resource name column we’re going to uncheck Eugenia and check vendor trainer one and vendor trainer 2. and the setup is they’ll probably be alternating the days of training and when you get that warning we’re going to leave it on the default keep the same duration so we have that set up there and that’s really how you optimize your project you just make sure that your task list is correct in terms of relationships if there’s any way of truncating the project by using start to start relationship type you would want to do that or by adding lead time to task if necessary making sure your final resource assignments are done and any over allocations are resolved and once you do all that save your project so this lesson is all about finalizing your project plan and so the next step in finalizing your plan for certain is setting a baseline plan now you may or may not need an interim plan but you’re definitely going to need to set a baseline Plan before work starts on your project and that is the only way you’ll be able to track the progress of your project so this slide is talking about the Baseline plan and you can set up to 11 Baseline plans for each project plan file well that begs the question why would you need more than one well maybe you want a baseline for your external customer and another one for your internal team that has other tasks on it that you don’t necessarily need to share with the external customer maybe you’re preparing for a risk event so you have an alternate plan in case some things occur and it impacts the project or you know that there’s a big change request that’s going to be implemented on this project and so you want a baseline of your original plan Just for future reference so those are some of the reasons why you would have multiple base lamp Baseline plans now your Baseline tracks your durations the start and finish dates of your tasks the amount of work and the cost you also have the ability to set an interim plan and that only saves the current start and finish dates it can be used just as a project marker it’s much more simple than your Baseline so we’re going to go in and we’re going to learn how to set a baseline in our project plan we’re going to go to the project tab of the ribbon to set our Baseline and on the project tab you’ll find set Baseline in the schedule group and so if I go to the drop down arrow I can set or clear the Baseline I’m going to choose set Baseline so it defaults to setting a Baseline and it’s just called Baseline if you do the drop down arrow next to Baseline you’ll see that you can have up to 11 in a project plan file as we discussed so we’re going to leave it on Baseline if you wanted to set an interim plan you could do that from the same dialog box we’re going to just focus on the Baseline you could set a baseline for the entire project or just for selected tasks we’re going to leave it on entire project and we’re going to click ok now it doesn’t look like anything happened but I can show you how you can verify that it did set a baseline there are two different ways let’s go back to set Baseline and you’ll see that now Baseline tells you when it was last saved so you know if a baseline has been set because it would be saved and we can cancel out of there another way is we’re going to go up to our quick access toolbar and go to our project information dialog box and in the lower left hand corner you’re going to click on statistics so if your Baseline values are populated here that means that a baseline has been set and so when I was managing projects actively I would be in Project statistics multiple times a day once work began on the project just to keep apprised I worked on some really huge projects and so I needed to be a prize at that level so it captures your start and finish dates all of these are the same now the duration of the project the amount of work on the project and the total cost of the project and at the bottom left corner you can see that it also captures the duration percent complete and the work percent complete so once work starts on the project and you come into your plan and you start tracking your actuals these values will fluctuate you can go ahead and click close on your project statistics dialog box and go ahead and save your project again now that we’ve optimized our plan and set a baseline there may be at this point occasion to share your plan with some of your stakeholders and so short of sharing your project plan file which I’m when I was managing projects I was very reluctant to do because people get in there they play around a lot of them don’t know what they’re doing and I’ve had to recreate some plans that way however there are other ways we’re going to start with the least efficient way the way that I’m going to suggest you never use and let’s go to the file tab of the ribbon and click on print so when you just go to print your plan it puts a legend at the bottom of the page showing what all the different icons that are found on Nagant chart mean and it generated if I look at the very bottom it generated 28 pages now I’m going to show you why I say this is the least efficient way I’m going to go in the lower right hand corner to the multiple Pages icon and I can see that there are plenty of blank pages from blank areas of the Gantt chart so in my opinion this is not an efficient way to share your plan by printing it out and distributing the print out I’m going to use the back arrow at the top of the green band to go backwards so let’s say you have stakeholders that want to see just the list of task names and their durations for the entire project so what I’m going to do is I’m going to start with task zero and I’m going to select the task name cell and the duration cell then I’m going to hold down my shift and control keys on my keyboard and tap my down arrow so it selects the rest of the tasks and their durations now on the task tab in the clipboard group you’re going to click on the copy button right on the word copy and not its drop down arrow we’ll address the drop down arrow in a few minutes so just click on copy nothing visible happens it just copied it to the clipboard now I have a blank document open in Word and I’m just going to switch to that and I’m going to do control V to paste so I get two pages and it’s just a list of all the tasks and their durations and I could distribute this as an email attachment or whichever way that the stakeholders want to receive it and while I’m in word I’m going to do control and the letter N to bring up a new blank document and then I’m going to switch back over to my project plan and I’m just going to click on any cell so that I don’t have anything selected now at this point you want to make sure that you can see all of the resource names in your resource name column and your Gantt chart whatever part of it is visible can be shown I’m going to right click on task zero and choose scroll to task well that’s not going to help me there so the way it’s configured right now now this time without selecting anything and even if you had something selected it’s going to override your selection we’re going to go to the drop down arrow next to the copy button on the task Tab and we’re going to choose copy picture so it’s going to make a picture of our project plan that can be rendered for the screen directly to the printer or to a gif image file we’re going to leave it on for screen we’re going to leave the copy setting to rows on the screen and the time scale as shown on the screen we’re going to leave those defaults and we’re going to click ok I’m going to switch back over to my blank Word document and I’m going to do control V again to paste and so it’s only showing what was shown on the screen the time scale on the screen and so it gives me all of the tasks the entry table that it can see it cut off my resources here and it shows the part of the Gantt chart that is showing and I’m gonna just close word without saving any changes and I’m back in my project plan so my favorite built-in tool to use to do high level reporting to stakeholders at this stage of the project is the timeline so the timeline has been sitting underneath our ribbon the whole time and what I’m going to have you do is Click anywhere up in the timeline so that it’s selected and you see the timeline format tab on your Ribbon and so the first thing we’re going to do if I drag my divider bar backwards so I can see more of my Gantt chart you’ll notice in the timeline it has this green box I’m hovering over it right now and that’s basically representing what’s showing what’s visible on the Gantt chart at this point and so the first thing I want to do is put my mouse at the green border at the top of that box so I get a four-headed Arrow and I’m going to just drag it backwards to around the start date of the project and you see the start date at the beginning of the timeline so I’m going to just adjust that so it starts at the beginning of the project and now I’m going to grab the right most green vertical line so my mouse looks like a two-headed pointer two-headed Arrow I’m going to click and hold and drag it all the way across so that the Finish date is showing and mine went a little bit more but so now it’s showing more of the project in the Gantt chart so that’s what that green area covers it’s what’s showing in the grant chart in the grant chart now we’re going to add some tasks to this timeline on that timeline format Tab and the insert group you’re going to choose existing tasks and it’ll bring up a dialog box with all the tasks in your project and for this example we’re just going to put our stage one task on the timeline so I’m gonna put a check mark in every task in stage one the summary task and there’s subtasks I’m gonna just check them all until I get to the bottom of stage one and it’s Milestone completion task so I’m just checking the boxes just to make sure we get all the tasks and as a matter of fact when you get everything checked don’t check the stage one project planning complete Milestone task I’ll show you another way of getting that in the timeline so after you check all the others you’re going to click ok and the timeline is kind of overwhelmed with all of those tasks so we have a lot of white space in the timeline and because the timeline is going from the start date to the Finish date when I look at stage one it goes from June 21st to July 28th so one thing that can help is changing the date range to get rid of some of that white space so on that timeline format tab in the show hide group I’m going to click on date range and I’m going to choose that custom dates and for the start date I’m going to select June 21st and the Finish date is going to be July 28th and then I’m going to click ok so it has more space to breathe and space out the different tasks that are in that timeline for that stage so another thing we can do to make it look better the first task in that stage stage one project planning that’s its initial summary task we’re going to select that task and right click on it and choose display as call out so it takes it out of the timeline proper and it puts it outside of it as a call out and it just makes the timeline less cluttered right now it’s still going to be looking kind of cluttered here we can go through and we can let’s see what this one is ensure total participation so this one I can barely see when I click on it and I hover over it I can see the details of it but what I’m going to do is I’m going to grab that one I’m actually going to drag down my divider bar between the table and the timeline to get more working space and what I’m going to do with that one is click and hold on it and drag it outside of the timeline so it displays as a call out so you can see it better and these are the things we have to do so the there’s another one create list of Target departments I’m going to drag that above the timeline make it a call out so they’re not all just bunched together and unreadable so there’s one here that starts with inform and I’m going to drag that one down compile I’m going to drag up there’s one that looks like it starts with Define vendor deliverables I’m going to drag that one down and I’m just picking and choosing based on how they look on my timeline there’s one that starts with obtain and I’m going to drag that up create a list of it’s going to come out to the bottom as is send skill assessment forms I’m going to drag that one out and just drop it a little bit lower than the other one so they don’t interfere with each other it’s kind of how you do that and then there’s an initiate end user and I’m going to drag that one up and so the timeline is looking much better for me now now there’s another thing that you can do here we’re going to so we look at the way the dates are formatted in the timeline and if you wanted to change the date format you could use that date format drop down I’m going to leave mine the way it is and what I want to do is I want to give this timeline a name so the bar label button in the show hide group and I’m going to just call this stage one and so that shows up here I’m going to just drag my green band out of the way because it’s showing that part of the project okay so stage one is showing real close to that ensure total participation task so I’m going to move that task down a little bit so I can see the name of the timeline more clearly and so now that I have my timeline set up again it’s a very high level reporting tool I’m going to on the timeline format tab I’m going to click on copy timeline and we’ll do full size and then I’m going to just bring up word again and on the layout tab I’m going to go to the second button orientation and change it to landscape and let’s see if I can find my eight and a half by fourteen not finding my bigger paper size here but I normally change that but in either case I can do control Z to paste it in and you’ll see I mean it pasted in kind of like a picture so I can make it smaller it pasted in rather like a shape so I can make it smaller and I’ll make the width of it like eight see what happens it might be too small but it’s kind of all fitting on the page now so this is another way and it’s a visual way of giving stakeholders initial information about your project before work begins on it so just as a recap for our second module which included lessons four and five we started by adding resources to our project plan file and we reviewed the columns on in resource sheet view and then we input some resources we input work material and cost resources we entered the cost for our resources as we were adding them to the project plan and then we created a resource calendar to note some days off for one of our resources so no work will be scheduled for them on those days we moved on to assigning our resources to tasks you learned a couple of different ways of doing that and then you learned how to resolve resource conflicts in particular over allocated resources in the next lesson we finalized our project plan by optimizing it that’s when we reviewed whether we needed to change any relationship types where or add some lead or lag time to task we also added some other resources we actually performed some more resource assignments that needed to be done and updated a couple of existing resources and watched how that filtered through to the tasks they were already assigned to after that we set a baseline so that we’ll be able to compare our plan to what actually happens on the project when work starts on the project and we start tracking the actuals and then we went over a few ways to share the project plan short of sharing the file we talked about how printing is the most inefficient way you learned the difference between copying and the copy picture commands and then lastly you learned how to populate the timeline and the ways that you can share it for high level reporting for some of your stakeholders hi everyone Trish Connor Cato here I just wanted to officially thank you for attending this Microsoft Project 2021 video course and just to recap everything that we covered in this course we started with a brief review of project management Concepts before you learned how to navigate around in the project environment and then we dove into creating a project plan from a blank template defining the project by scheduling it from its start date and creating and assigning a project calendar to the plan then we started manually entering some tasks and then we actually pasted some in from within Excel we began to organize our tasks by creating a work breakdown structure we created summary and subtasks we also defined the task relationships and at that point Microsoft Project took over the scheduling of our tasks when we got to the second module we focused on managing project resources and how to finalize a project plan so we started adding resources and resource sheet view including their cost we created a resource calendar to note a resources exceptions and we assigned resources to our tasks we also learned about leveling to resolve over-allocated resource conflicts and then we got into optimizing our project plan setting a baseline so that we could track our progress on it once work starts and sharing the plan once again my sincere thanks hi everyone Trish Connor Cato here welcome to Microsoft Project 2021 this video is for users who are looking to gain skills in Microsoft Project to create administer Monitor and report on a project plans progress project is a powerful scheduling tool used to track tasks resources and costs it also provides powerful and interactive reporting tools used through each stage of a project as you will see during the course executing a project monitoring project progress and controlling a project plan we’ll learn how to execute the project by entering task project updating the work done on task and updating task costs globally this is known as tracking actuals we’ll switch our Focus to monitoring the progress of the project plan by viewing the project in a number of ways adding custom Fields creating custom views creating a network diagram so we can look at the project in the flow chart type visual and analyzing the plan and viewing progress by using task boards and defining sprints we’ll finish the third module after learning ways to control the project plan this includes editing the task list rescheduling tasks splitting tasks and updating the Baseline the final module of this course zeroes in on how to report on a project and customizing the application we’ll start by formatting and sharing a chart View ing the interactive existing reports creating custom reports and creating a visual report which tie in with Excel and or Vizio will end the course after reviewing project options which give you the ability to customize the application to meet your needs you’ll also learn how to create a project plan template which can be used as a starting point for a future project of a similar type and you will learn how to share resources across project plans and how to link project plan files for more efficient oversight so now we’re gonna get into the launch slash execution phase of project management starting with our third module so we have three lessons in this module the first one is executing a project and this is known as tracking actuals so we’ll be entering task progress updating task progress with SharePoint updating work and updating costs during that lesson we may also update resource assignments in the second lesson we’re going to start monitoring project progress by viewing it we’ll also be adding custom fields to our project plan creating custom views creating a network diagram View analyzing a project plan and you’ll get introduced to task boards which are another way of monitoring your project progress and Sprints which allow you to monitor by set segments of time and in our final lesson in this module is controlling a project plan that may include editing the task list rescheduling tasks and updating a Baseline before we start tracking actuals we’re going to give ourselves more working Space by hiding the timeline now this is known as a split view this is the default view in Microsoft Project it’s called Gantt chart with timeline so it has the timeline at the top of the screen the entry table on the left and the Gantt chart on the right on the bottom half of the screen we’re going to get rid of that timeline especially since we added all the tasks to it and it’s taking up a lot of space so if you go to the view tab on your Ribbon toward the right side you will see a split view group and you’ll see a check mark in the Box in front of timeline you’re going to go ahead and uncheck it and we get lots more working space so now the first thing we’re going to do is we’re going to start tracking actuals and the first one we’re going to track is percent complete we’re going to say that task 2 and 3 are 100 percent complete so we can do that by selecting I’m just dragging the row handle from two down to three and go to the task tab of the ribbon in the schedule group you’ll see a series and this is just one way of doing this but you’ll see a series of percentage icons starting with zero percent then 25 50 75 and 100. with those two tasks selected we’re going to go ahead and click on 100 percent and you’ll notice a couple of things happened first the indicator column now has a check mark for each of those tasks and if you hover over the check mark it will let you know the date that the task was completed on on your Gantt chart if you look at the Gantt bars for those two tasks they have a Thin Blue Line going all the way through them which indicates 100 percent complete even with a 25 completion anything above zero you’ll see a Thin Blue Line in the Gantt bar so then we decide you know that was a mistake task 3 is only 50 percent complete so I’m gonna just select task three and use my fifty percent complete preset button the check mark disappears from the indicator column because that represents a hundred percent complete and you can see that The Thin Blue Bar is going halfway through the Gantt bar on the Gantt chart so far during this course we’ve been using this entry table now there is another table that we’re going to access that is better suited for tracking actuals and it’s called the tracking table to get to it we’re going to go to the view tab on the ribbon and you’ll see in the data group you have a tables drop down we’re going to go ahead and click it and select tracking off of the list now our Gantt chart doesn’t change on the right side of the screen the only thing that changed is our entry table and it has different columns now so you have your task name column I’m going to just expand this and then you have the actual start an actual finish date columns we have percent complete and physical percent complete and you can see in the percent complete column that it has a hundred percent for task two and fifty percent for task three you also have the physical percent complete column so let’s say a task is 50 percent complete that’s based on the duration so if it’s a one day task like task three is and it’s fifty percent complete then it has a half a day duration remaining when it’s a hundred percent complete there are zero days remaining duration and you can see the actual and remaining duration columns but the other thing is you can have a task that’s 50 complete in terms of the duration but maybe only 40 percent of the actual work has been done and that’s what’s captured by physical percent complete so if you need to track at that level you have two different columns the percent complete is duration based physical percent complete is the amount the percentage of the work that has been done and they could be different when we marked tasks to a hundred percent complete it automatically changed the remaining duration to zero days and since it was a two-day task that’s what the actual duration is noted as we’re going to say that it actually took one day to complete that task so we’re going to change the actual duration for task two to one day and when we click away from it you’ll see that the remaining duration has also updated and it is now one day it was originally a two-day task we marked it a hundred percent complete and then we change the actual duration to one day it also changed the percent complete to 50 percent we’re going to say no this really only took one day so we’re going to go to the remaining duration and we’re going to change it to zero days and we’ll click away from it so now it marked it a hundred percent complete again and it noted that it is only a one day task and I had collapsed my expansion so we also have the actual cost and actual work columns in there as well so based on the resource cost that we put in it’s calculating the actual cost so the next thing we’re going to do here is we’re going to do a little bit more tracking on task three and for this one this was originally a one day task and so we marked it fifty percent complete half day of actual duration half day of remaining duration we want to say that this is a two-day task so we’re gonna go to the remaining duration and we’re going to change it to 1.5 days so now you’ll see that it marked it 25 percent complete half day has already elapsed another one and a half days remain and so when you make a change in project and you’ve seen this throughout the course when you change one thing and then it blue Shades other things in the table those are things that have also updated and so you can see that our project summary task has updated right now it’s one percent complete that’s the entire project actual duration of 2.05 days remaining duration and actual cost and actual work so it captures everything based on what you’re doing in here so our project was scheduled to start in my case I have June 21st of 2022 and we’re going to say that it actually started a day early so in a situation like that what I like to do is go back to project information and change the project start date first so we’re going to do that that’s project information that we put on a quick access toolbar and I’m going to just change the start date of the project to the previous working day now notice the actual start column is still showing the following day the original start date but we actually updated the start date for the previous day and so one of the reasons why I wanted to do that is because tasks two and three actually got started on the previous day so now I’m going to go to the actual start date for task 2 and change it to the previous workday and I’m going to do the same for task three and at that point the actual start date of task zero the entire project and stage one updated as well now if we hadn’t gone and changed the start date you would have gotten the message so here let me just demonstrate this for you you don’t have to do this so I went back to project information and changed it to the original start date and I undid these date changes for task two and three so now when I go to change it to the previous day it’s going to give me this planning wizard error it’s not really an error it’s informational it’s letting me know that I move this task to start before the project start date and I can either continue and have that happen or cancel I’m going to cancel out of here and go back and change the start date and then it avoids getting that pop-up so I changed this project start date and now I can set both of these to the 20th and see the shading the corresponding blue shading nowadays you can sync your project plan file onto a SharePoint site if you have the ability to access a SharePoint site or the ability to create one you will be able to do Hands-On with this section if not and you do gain access in the future you can always come back and view this portion of the video it’s a two-way sync so if I update tasks in SharePoint they flow down to my project plan and vice versa and let’s go ahead and save our project plan file first and then we’re going to go to the file tab of the ribbon and we’re going to choose save as on the left on the bottom of the save as list you’ll see sync with SharePoint go ahead and click that so pardon my privacy blockers on my screen but you’ll notice it says it wants to sync with in my case a new SharePoint site or you can do the drop down and select an existing one I’m going to let mine be a new one and then it gives the project name as the same name of our project plan file and it gives the site address the URL to the site address and it ends with the name of the project plan file and so it lets you know that a new SharePoint site with a task list will be created at the address above and the project file will also be saved to the SharePoint site so we’re going to go ahead and click on Save it will go through several steps and then it will launch the site in your browser window and now we’ll review the site so right now you’re seeing the timeline you could edit the list and all of this kind of stuff from here but what normally you’re going to want to do is go to tasks on the left side navigation and when you click on task and you scroll down you’ll see your task list and so the thing is is that you’ll notice this is our task that we marked 100 complete if we click on ensure total participation task the next one you’ll see that that is marked 25 complete we did that in the plan file and we also changed the start dates for both of those tasks we’re going to close this and we’re going to go down in the task list and open a task that says create list of Target departments and so you can’t change anything in here unless you click the edit item the first icon on that view tab of the ribbon and then it opens everything up we’ll leave it on the same start date and let’s just mark it 60 percent six zero percent complete and then save thank you and so now we’re going to switch back over to our project plan file when I look at Task 5 and my tracking table now I can see the percent complete has been updated go ahead and save your project plan file and it’s syncing so going forward any changes you make in your plan file when you save it will sync with that SharePoint list let’s do another change another update for task three let’s go ahead and make it 100 complete oops so many different ways of doing the same thing so we made it into a two-day task right and so the actual work is 16 hours let’s go over to the actual work and change it to 20 hours so notice it changed the actual duration now to two and a half days to accommodate that the cost and everything will have updated so when you do one thing project logic kicks in and the application can do several other things that’s one of the reasons why project is so hard to learn from scratch like if you’re self-taught a lot of things happen nowadays there’s Google so that makes it a lot easier but it can be a little bit tricky and it’s behind the scenes logic let’s go down to task 33. that’s the one where we have the material resources assigned so we’re going to go ahead and this is again just for training purposes we’re getting ahead in our schedule which is fine but let’s mark that one 100 complete and it calculates the actual cost for that material resource as 5769.23 we’re gonna change that there was a price increase and so we’re gonna make it 6500 the actual cost of that one and so now when we look up at task zero as of right now with everything we’ve tracked the actual cost of the project is seven thousand two hundred and forty dollars and 38 cents go ahead and save your project plan file now that we’ve tracked our actuals we’re going to go ahead and start looking at a few different ways to view our project progress to date so we’re going to start by using a different View there is another view called tracking Gantt that we’re going to switch to so on my left side of the screen I’m going to go to my Gantt chart view indicator and right click and I’m going to select tracking Gantt now we were on our tracking table but when we switched to the tracking Gantt view it switched us back to the entry table and the focus is on the differences in the Gantt chart here so you’ll notice a lot of the taskbars have a percentage next to them everything except Milestone tasks will have the percentage and then you have two different colored bars the blue bar is your taskbar and the gray bar would be your Baseline so if you look at I’ll show you a good example that’s really good to see on the Gantt chart and this one is for task number two on the Gantt chart you’ll notice the taskbar the blue bar is in front of the gray bar that task started early the Baseline start date was June 21st in my case and we changed it to the 20th so you can see that that one is ahead of schedule and so is the next one task three it’s ahead of schedule and so the tracking again and it shows you the ones that have any percentage of completion noted including your summary task it will show that as the percentage so that’s just one way just a visual way of tracking the progress of your project another way of viewing your Project’s progress in a table format is by using the variance table I’m going to switch back to Gantt chart View and because we were in our tracking table it’s still in that table and we’re going to just simply switch to another table so we’re going to go to the view tab go back to your tables drop down and this time select variance so this table shows you your start and finish dates compared to your Baseline start and finish dates and then it shows the start and or finish variance so notice tasks two and three they started early so they have a negative one day start variance and task 2 also has a negative two day finish variance so this is another way of seeing how you’re doing right now our project is in pretty good shape but we haven’t tracked a lot of the actuals in here and that can change over time and a really simple way to view your Project’s progress is from the project information dialog box so I’m going to access it from the quick access toolbar and in the lower left corner I’m going to click on statistics and so now we have where we currently are our start and finish dates versus the Baseline and our actuals we also have our variances listed in the top half of the screen the bottom half deals with duration work and cost so we can see our current and our Baseline so duration we’re ahead of where we should be we’re also ahead in work and we’re a little bit over cost right now but we added a significant amount to that material resource so that explains that and then we see what we have actually and then what is remaining in the lower left corner we’ll see our percent complete for duration and work for the overall project and we can close project statistics now when we get to the next module you’ll learn how to view your Project’s progress by using the reporting features in Microsoft Project for right now let’s go ahead and save our project plan and then you’re going to learn how to add custom fields to your plan file earlier when we were working in resource sheet view we saw a couple of fields group and code that project added to that view that you can use for whatever you want and you can report on them we use the group field to say whether it was an internal resource or an external resource type of thing but in addition to that you can create additional custom fields in project and this is pretty cool feature let’s start by going to the project tab on the ribbon and in your Properties Group you’ll see custom fields and go ahead and click on it so you have basically two types of fields starting at the top it’s defaulting to task Fields you also have resource fields and if you’re on Project server you will have project Fields there so for your task Fields if you go over to the right and you look at the text drop down right there’s a variety of different types of fields that you can have so text cost date so on and so forth and then you also have resource fields and again they come in multiple types just like text fields go back to task and it defaults to text and if you scroll down that field list where it starts with text one through you have up to 30 tasks text fields that you can add to your project plan file go to your text drop down and choose cost you have 10 cost fields for a task that you can add to your project plan file and take it back to text so we’ve decided that we want to add a field and resource sheet view that lists a department for our resources so for the type of field we’re going to switch to Resource here we’re going to leave it on text and it’s on text one right under the list of text fields with text one selected we’re going to click the rename button and we’re going to just name it Department now Project’s name for it will remain text 1. so when you look in the field list now you’ll see that that is in parentheses after your name for IT department we want this to be a drop down list field so the users or you whoever’s working in the plan file can just use the drop down list to select a department as opposed to having to type it in so under custom attributes we’re going to do the option button for lookup and then click on the look up button and we’re basically going to type in our list of departments here pressing enter after each one so you don’t have to type them in alphabetical order we’re going to type training and then enter the next one is human resources marketing and then we’re going to have one called vendor and the reason why we don’t have to have them in alphabetical order is we because we can change the display order for the lookup table down below so I’m going to expand that by clicking the plus sign so it defaults to by row number so that means it would be in the order that we typed it in we’re going to select sort ascending and then on the right you’re going to click the sort button and down at the bottom we can click close and we can click OK on the custom Fields box go ahead and navigate to Resource sheet view and we have more over allocations that have been happening as we’ve been updating our task progress but for right now what we want to do is we want to add that department column but I would like to add it right next to the resource name column to the right of the resource name column so I’m going to right click on the type column heading and choose insert column and I’m going to start typing department and you’ll see Department text one comes up and you can press enter and notice it now has and I’ll just expand that field has a drop down arrow so starting from the top I’ll give you the Departments Emily Teresa Eugenia and Anita are in training so you can go ahead and use your drop down and this keeps more consistency in here as well if people are typing it in it could be you know could be interesting and then we have Randy and Alan and R in human resources Alice is in marketing and then our two vendors are our vendor it’s not really a department but we want to note it that way so that is our first example of a custom field so now we’re going to add another custom field this one is going to be a text excuse me a task text lookup field and it’s also going to be using a graphical indicator to display in the field so we can on the project tab we can go back into custom fields we’re going to change it make sure it’s on task at the top we’re going to leave it on text and we’re going to rename text one in here to progress go down to custom attributes do your option button for lookup and then click on look up and we’re going to type early on track and then behind schedule and we’re going to leave them in that order so we’re not going to change the display order we’ll leave it by row number and we’re going to click close at the bottom and then on the custom field screen all the way at the bottom under values to display you’re going to select the option button for graphical indicators and then click on the graphical indicators button so we’re going to be working where it says test for Progress values and then image up here we’re doing this for our non-summary rows so in the first test for Progress you’re going to do a drop down and select equals and then in the values column to the right of that you’re going to type early just like we put on our lookup list and then you’re going to go over to the image and do the drop down and we’re going to select the green flag we’re going to go to the next test for progress and choose equals again this time we want the value to be on track and we’re going to give it the yellow flag as an image and set up the last one so it equals behind schedule and give it the red flag and since since we have our three tests set up we can go ahead and click ok and we can okay again and then switch to Gantt chart View and we’re going to add oh let’s switch to our entry table so let’s go to the view tab tables drop down entry and I’m going to expand it and we’re going to put this to be this wide we’re going to put this all the way to the right so where it says add new column I’m going to click right there on add new column and I’m going to start typing progress and you see your progress text one is highlighted I’m going to press enter and then I’m going to go down to task 2 and do the drop down and I’m going to select early and it shows the green flag I’m going to do the same for task 3. so that’s a combination lookup and graphical indicator text field you can also create custom views in Microsoft Project so we’re going to create a split view we want our Gantt chart and then we want a task details form on the bottom half of the screen so we’ll have our entry table and Gantt chart just as it is but we’re going to have a split on the bottom of the screen when we’re done so the create a custom view you’re going to start on The View tab of the ribbon and in the task views group you’re going to click on the other views drop down and at the very bottom you’re going to click on more views and then on the right you’re going to click on new so we’re going to do a combination view because we want a split view as opposed to a single view so go ahead and click combination View and click ok so now it wants you to give your view a name and we’re going to call it Gantt with task details and then we’re going to have our primary view we’re going to do the drop down and select Gantt chart and then the details we’re going to select a view named task details form and we want to be able to show it from the other views menu or any view menu so we’ll leave that box checked and we’ll click ok and then we’ll click apply and you’ll see now that the Gantt chart and the entry table are on the upper half of your screen and you have a task form on the bottom half so in the upper half I’m on task two if I click into task 3

    my task form updates so this is a way that I can get to additional information about the task and even use that form at the bottom to change information so I don’t always have to go to task information and get into all of that stuff so that is a benefit of having a split view now if you go to your other views drop down again on The View tab you’ll see that it’s just showing some of your built-in views go back to more views and if you scroll through the list you will see your Gantt with task details because we said show it in the menu and you can cancel out of that now if you wanted to at this point just get back to your Gantt chart view you can double click the divider line between the upper and lower half of your screen and it will make your secondary view go away now there’s another thing go to your other views in the task views group drop down go back to more views and select your Gantt with task details view again you can double click it or click it once and do apply and so if you look at the view tab in the split view group you can see that we’re not showing the timeline here so that’s unchecked but details is checked now and the details section is the bottom half of the screen and it’s showing your task details form so another way of getting rid of it is just by unchecking details some people like to look at their project plans and a flow chart type format and so there is another view that I’m going to show you now let’s right click on our view indicator and we’re going to go to network diagram View so in network diagram View it has that flowchart field and let me explain what’s going on here so your parallelogram shapes those are all your summary tasks so task zero it shows the name of the task its start date its ID the Finish date the duration and the percent complete you’ll notice that these have a slash through them and that’s because work has started on them so training rollout initiative that’s our task zero and stage one work has started on so there’s a slash mark through there parallelograms and then you have your rectangles which are your subtasks so we have one here this is stage one right so before I start looking at the subtask let me do this differently we have this line coming out and going down from stage one if I scroll down you’ll see that it’s then pointing the stage two if I continue scrolling down you’ll see stage three so they’re all connected kind of in that way your summary task starting with your summaries not task zero and then up top you have the sub tasks for stage one so Define objectives and describe and that has a double slash through it because that is a hundred percent complete right we have another one here and then we have this one that is partially complete showing here and this is another summary task and these are its subtasks so you can see the slash is partially complete and if I scroll across to the right I’ll be able to view continue viewing so you have the ability to view your project in this manner and when you’re in this view Network diagram view you get a network diagram format tab on your Ribbon so you can show and hide different things if you want so if I want to uncheck progress marks you see those slashes go away if I want to not see project summary task I can uncheck it there if you check link labels so you’re seeing your finish to start relationship types showing on those link lines and then you also have straight links so it’s kind of pointing to everything that’s associated with it and we can go back to Gantt chart View before we get into analyzing our project plan let’s go over some definitions so the first one is what is slack you have two different types of slack in Microsoft Project free slack is the number of days that a task can have before it starts delaying its successor task so if task one is going to be delayed it could potentially delay task 2 or whatever it’s successor task is so free slack would be the number of days that it has the amount of wiggle room that it has before it starts delaying its successor tasks and in total slack is the number of days a task can have before it starts delaying the entire project so free slack is task to task total slack is tasked to entire project and in other definitions you’re going to need to know are about slipping and late tasks so they’re slightly different slipping tasks or tasks that have a forecasted finish date that is greater than the Baseline finish date they may be scheduled to start late have already started late or are taking longer than planned then you have late tasks and that one is running behind both the Baseline start and finish dates they may or may not have started they may have started on time but will finish late they may have started early but will finish late or they might just be finishing late so keep those in your back your mind while we analyze our project plan before we get started let’s go ahead and level our plan again we’ve been tracking actuals and doing other things in here that has caused us to have over-allocated resources again so this time what we’re going to do on the resource tab in the level group we’re going to just select level all and we still have some minor allocations there’s several surrounding those daily calls but there are only an hour that wouldn’t really raise a flag for me and so we only have a few left and that’s good so now we can actually start analyzing our plan the first thing we’re going to do is go to the Gantt chart format tab on the ribbon and in the bar Styles group you’ll see that you have a series of three check boxes critical tasks slack and late tasks so we talked about slack and late tasks on the slide on what you’re not seeing here are slipping task and we didn’t talk about critical tasks because you’re going to learn about those right now so let’s check the box in front of critical task and look at your Gantt chart and you’ll see that you have several tasks if you scroll across it and down that now are not with a blue bar but they have like a salmon colored bar based on my color scheme those are critical tasks so what is a critical task a critical task is a task that could potentially delay the Project’s finish date if it goes off schedule now typically and what we have here is a highly sequential task list we usually with a task list you put the task in the order that they’re going to happen on your project you outline your tasks by creating summary tasks and so on and so forth and so whenever you have a highly sequential task list there’s always going to be critical tasks and that’s how they show up on the Gantt chart we’re going to uncheck critical tasks on the ribbon so now we’re going to take a look at slack and that’s on the same bar Styles group on the Gantt chart format tab you can check the box in front of Slack and you’ll notice if you right click on task 9 and scroll to task you’ll see your taskbar right your blue bar to the right of it the resource and the resource name seems to be sitting on top of like a thin black line that is the line that indicates Slack and if I hover my mouse just so over that line a screen tip will pop up and it’s telling me it’s showing the free slack not total slack it’s telling me this task is scheduled to be finished on the 27th but you can let it go until August 4th without having an impact on any successor tasks perhaps forcing them to cause the project to go over schedule so that’s a lot of slack on that task now there are other ways that you can view your slack your critical tasks and I’ll show those to you in a moment in the meantime go ahead and uncheck the slack box they are check boxes so you could have critical slack and late task check and this time click on late task and I don’t think I’m looking to see no we don’t have any in our project plan so we can uncheck that so I’m going to show you how to create a custom table that shows all of these fields that you can use to analyze your plan like whether a task is critical both free and total slack if it’s late if it’s slipping so on The View tab of the ribbon you’re going to go to your tables drop down and at the bottom select more tables on the right side choose new and we’re going to name it project analysis on the right side this one doesn’t default so the right side of where you put the name you’re going to check show in menu and then what we’re going to do is click in the first field name do the drop down or you can start typing and we’re going to start typing critical and when critical pops up we’re going to just tab we’re going to go down to the second field name and start typing free and free slack will pop up and tab underneath free slack we’re going to do total Slack and underneath total Slack will put um late so it has late finish or late start we’ll leave late off of here and let’s try slipping and that doesn’t show up either so we’ll be able to see oops okay I gotta get rid of that we’ll be able to see our critical and free Slack critical free and total slack in this new table that we create so we’re going to go ahead and click OK there why am I getting this I have something in the field that shouldn’t be there and now that I work through that when I clicked OK project analysis is selected and I can apply and so now I can see free and total slack well actually I guess we should have put the task name in there so let’s go back we’ll edit what we did We’ll add the task name that would be helpful and I noticed we didn’t uncheck the default of lock First Column so we’ll fix that as well so we’re going to go back to our tables drop down more tables with project analysis selected go to edit on the right and let’s insert a row so critical is already selected insert a row to go above it and let’s type name in there so we get the task name that will be helpful and then underneath where your check boxes are you’re going to uncheck lock First Column and click OK and apply so now I can expand the name column and just expand everything so I can see what’s critical and the amount of free and total Slack they’ll often be the same number but sometimes they’ll be different if there’s both for example if you look at stage one project planning it has zero days of free slack so we can’t push that stage back at all without impacting a successor task but we do have five and a half days of total slack for a wiggle room that won’t impact the project end date and we can go back to our tables drop down and switch it back to your entry table and now we’ll view slippage on our Gantt chart so we’re on that Gantt chart format ribbon Tab and the bar Styles group we’re going to do the slippage drop down and select Baseline so now you will have these little thin bars on your Gantt chart I’m hovering over one now and the screen tip pops up slippage right it gives me to name it a task its Baseline start date is August 2nd but the task start date is scheduled for August 10th so that’s why it’s coming up with slippage and I’m going to go back to the slippage drop down and uncheck Baseline now we’re going to go into sorting filtering highlighting and grouping and this will be mostly in your entry table so I’m going to drag my Gantt chart divider bar all the way over to the right I just want to focus on the table for right now and so if you go to the view tab of the menu and it’s in the same group where you have your tables drop down you have your highlight there you have your filter you have your group by and you also have your sort so if I go to the sort drop down I can sort my project by start date finish date cost or ID and so let’s do by cost and so we’re not showing a cost field here let’s right click on the duration column heading go to insert column start typing in cost and press enter so you can see that we have it sorted by cost so what’s happened here stage three came up to the top underneath task zero because stage 3 has the highest cost that’s kind of how that’s working and then stage four and then stage two and then stage one now to undo that sort we’re going to go back to the sort drop down and you’re going to choose buy ID so that’s the row numbers so that’s how you can undo that sort you can also group your task list in addition to you know your default groupings of summary tasks and subtasks so in that data group on The View tab go to the no group drop down and choose duration yeah so by the way when you have a grouping applied you don’t even want to try to look at your Gantt chart because it’s crazy it’s based off of the grouping so what it’s done is it looked for everything that had a duration of zero days that’s our Milestone tasks they’re all grouped together our roll numbers are all over the place then our calls are like 0.13 days then we have our one day task one and a half 1.6 two days so on and so forth so we Group by duration now go back to your duration now duration drop down for group by and at the top click on no group in Project you have two different types of filters that you can apply to your plan I call the first one a column filter which is specific to a particular column and then you have more of a global filter you can use them separately or you can use them together we’re going to use both of them now the first one we’re going to do is a column level filter on the cost column so we’re going to go to the drop down arrow to the right of the cost column heading hover over filters and choose between so it says show rows where cost it goes to is within we’re going to do the drop down next to is within and we’re going to choose is greater than or equal to in the text box to the right we’re going to type 300 we’re going to go to the next text box under the and or and do is less than or equal to and then we’re gonna put in 500. so we want to show rows where the cost is basically between 300 and 500 including both of those numbers and we’re going to click ok so now your entire task list for your sub task okay this doesn’t apply to your summary task but it’s only showing those that are between 300 and 500 dollars now we can apply a more Global filter on top of this so what we’re going to do is on The View tab in the data group we’re going to go to the no filter drop down and we’re going to click on using resource and we’re going to do the drop down and select Teresa Brown and click ok so now it’s showing the tasks that Teresa Brown is assigned to that are between 300 and 500 in cost now let’s clear those filters we’re gonna go to what used to be the drop down arrow next to the cost column heading we’re gonna click that funnel and just click on clear filter from cost and then we’re gonna go to the filter drop down that says using resource and at the top select no filter go ahead and save your plan file let’s do another Global filter using a resource so I’m going to my no filter drop down using resource and this time let’s do the drop down and select Anita Redmond and click ok so it’s only showing tasks that she’s involved in now notice it collapse your list you know you’re not seeing your whole list you can see that by looking at your row numbers it skips from Row 1 to row 11 it skips from 14 to 23 so you’re not seeing your entire task list you’re only seeing the rows of Interest which are the ones that Anita Redman is assigned to now you might want your list to be intact and have the effect of a filter so let’s go up to the filter using resource and choose no filter and right above that go to no highlight drop down choose using resource and then do the drop down and select Anita Redmond again and click ok so your list stays intact and your rows of Interest are highlighted go ahead and go to your highlight drop down and choose no highlight at the top another way that you can analyze your project plan and you may be familiar with some of these terms if your team uses agile or the scrum method there is now a tie-in in project using what are known as task boards and Sprints and so it’s another way of analyzing your plan and we’re going to start by using setting up our task boards and we can access task boards from The View tab it’s in the task views group you can do the drop down and select task board and you’ll notice that there are tasks already all of your tasks basically are on the not started section of this task board and so we’re going to modify this what we’re going to do is for not started we’re going to leave it named that way and you’ll learn how to move these completed tasks in a little while right we’re not going to use the next up one so I’m going to right click on that and delete it we just want not started in progress and done that’s all we want but we want to change what shows on the cards so right now it’s just showing the name the resource and the check mark for percent you know 100 complete so we’re going to go to the task board format Tab and in the customize group we’re going to click on customize cards we want to check the box in front of show task ID and then you can add up to five additional fields in addition to these three base fields so we’re going to do the first drop down and we’re going to select percent complete and we’re going to do the second drop down and start typing Sprint and you can press enter when it shows on the list now we haven’t set up Sprints yet you’ll learn about those in just a few moments we’re going to click ok so now if we look at any task card we have the percent complete we have Sprint and all of it says no Sprint because we haven’t done anything with the Sprints yet and we have the task ID which is our row numbers showing the first first button on the task board format tab is sheet click on it and it takes you to task board sheet view and you can see you have your no Sprint column there you have your indicators column your task may be slightly out of order on this view at this moment but what I can do let’s see what we want to focus on here is how to move it from task board to task board so if you notice the ones that have the check marks in the indicator column you see the board status says not started and we’re going to do the drop down where it says not started and choose done so do that for everything that has a check mark I think there’s only three of them there with a check mark done and that’s kind of how that works and then we know that we can add a new column here this might be helpful and we’re going to just choose percent complete and so we have this other task at the top that is sixty percent complete so task five and I’m going to go to board status and I’m going to choose in progress for that one and then I can go back to my view tab and go back to and you can click the upper half of the task board button to get into it and you can see how your tasks are now distributed between the three different boards that we have there go ahead and save your project so your task boards work in conjunction with sprints Sprint is like a Time phase layer in addition to like your tasks start and finish dates so you can look at your project by Sprint meaning by the duration of this time phase layer we’re going to set up one month Sprints for our project plan and we can do that by going to the project tab of the ribbon and in the Properties Group you’re going to click on manage sprints so it gives you a default no Sprint with zero days length and then it gives you a beginning Sprint Sprint one right and and it’s two weeks we’re going to change that to four weeks now you may if you use the up arrow button to change the time you’ll get three ew that’s estimated week I’m going to keep going up and I get 4ew I don’t want the E I just want the W so just four week Sprints and when I tab it starts with my project start date and it goes out for a period of four weeks and then down at the bottom I’m going to click add Sprint and this one is giving me a two weeker as well I want it to be four so I’m going to just change these to four weeks if you wanted to do two weeks for inch you’re set because that’s what its default is otherwise oops I have to go back into my manage Sprints I move too fast there and so and normally I would do this for the duration of the project we’re just going to add two more Sprints and make them four weeks just so we don’t have to keep going all the way until next February is when it ends just so you can see how this kind of works then I’ll add the last one and make that one four weeks as well oops and then I’m going to click OK at the bottom and you have your on the Sprints tab of the ribbon now and you can get back into managing your Sprints from that ribbon tab and then you have views if you go to your Sprint view drop down arrow you can see current Sprint board let’s go there first right and it’s just showing the current Sprint which is the current the beginning of the project for the first month right and then we’re going to go and you don’t see any tasks here you’re going to go back to your Sprint drop down and go to current Sprint sheet and you don’t see anything here either because we don’t have any tasks assigned to any Sprints at this point you’re going to go to your task 4 drop down and go to task board sheet and when I scroll up here you’ll see everything is assigned to no Sprint so what I’m going to do here is I’m going to get rid of the percent complete column because I don’t need it here right now so I’m going to right click on its heading and hide column and then I’m going to add a new column and I’m going to start typing start so I want the start date of the task and we’re going to put it in Sprints by the start date so for the first two tasks right two and three we’re going to do the drop down and select Sprint one so all the tasks up to an including task 18 are in Sprint one go ahead and set that up and just put 19 through 21 in Sprint 2. now let’s go to your Sprint drop down and go to current Sprint board so this is Sprint one and we’re seeing it populate with tasks right and with the task cards not started in progress and done we can go back to the Sprint drop down and from there you just have your Sprints and you have your current Sprint sheet if you want to take a look at that now so this is just Sprint one it’s the current time phase that we’re in and then we’re going to go to the planning drop down and we can go to Sprint planning board and here you have your no Sprint so all the tasks that are in no Sprint the ones that we assigned to Sprint one and the ones that we’ve assigned to Sprint too so if you know that you’re looking at a month at a time that’s a different view of your project you could name your Sprints stuff like that but I’m just saying this is another way that you can analyze how your project is doing you’re looking at it with this time phase overlay of a month right and so and we based it I base the Sprints off of the start date of the tasks for those months so just another way of analyzing your project go ahead and save your project plan file so I’m gonna go back to manage on that Sprints tab and I’m going to have you do this on your own you’re going to rename Sprints one through four month one month two month three month four something like that go ahead and do that and then click ok so now that they’re named appropriately it will make more sense when you’re analyzing now we’re going to get started on the last lesson in this module which is controlling a project plan we’ll be editing the tasks list by deleting a task and setting what’s known as a deadline task we are also going to be splitting tasks learning about task constraints rescheduling tasks and updating a Baseline so I’m going to challenge you now I’m going to have you switch back to Gantt chart View and delete task 46. once you’ve done that go to the very bottom of your task list and click in the first blank task name cell so we’re going to set a deadline task here I notice the finished date of the project let me go take another peek at that February yeah February 17 2023 so I’m going to say that we have a couple of weeks wiggle room at the absolute latest this project needs to be finished by February 28th so I’m going to set a deadline of February 28th and what it does is only helpful kind of after the fact right so it will put an indicator a green arrow on your Gantt chart for the deadline date and if you blow past the deadline that Arrow will turn red and you’ll get a indicator in the indicator column so in that last the first empty task name we’re going to just type project deadline that’s what we’ll name this deadline task and press enter and then click on it and out Dent it one level from the task tab and now what we’re going to do is we’re going to double click it to get into task information dialog box and on the advanced tab you’ll see the deadline is set to non-applicable we’re going to do the drop down there navigate to February of the following year and select the last day of the month and click ok now on your Gantt chart you can scroll to the right until you get to February of next year in that particular week the last week of the month and you’ll see the Green Arrow indicating your deadline date on your Gantt chart and like I said if you go past February 28th that Arrow will turn red and you’ll get an indicator in the indicators column so that’s what a deadline task does for you in Project now let’s say you have a resource that starts work on a task and then let’s say it’s a multi-day task and they put in like two days of the work and then they call out sick for two days there’s not another resource that can be assigned to that task so you have to be able to note that in your project plan file somehow and the way you do that is by splitting the task and then adding a task note so what we’re going to do is we’re going to go up to task six and you’re going to right click on it and scroll to task so the Gantt bar comes into view and we can see that Teresa is assigned to that seven day task and so the task is starting on a Friday and we’re going to say that she works Friday Monday and Tuesday of the following week and then she’s out sick Wednesday and Thursday so that’ll be our scenario she works Friday Monday Tuesday then she’s out sick Wednesday and Thursday then she returns on Friday so what we want to do is we want to make sure we’re on the right task bar on the Gantt chart perform departmental training needs analysis and on the task Tab and you may want to watch me do this first and then do it on the task tab of the ribbon in the schedule group you will see the split task button and so what I’m going to do is I’m going to click on it and you’ll notice a couple of things as I move my mouse around there’s like a white pop-up box that seems to be attached to my weird looking Mouse pointer looks like two vertical lines in the right pointing Arrow and so what I want to do is I want to hover over that taskbar for task six on the Gantt chart and as I move my mouse to the right over that bar you’ll see on the right side the schedule start date comes up right and it’s going to Sunday so it starts on a Friday and then I’m on Saturday Sunday I’m going to get to Monday so she worked on Friday Monday and Tuesday and when it gets to Wednesday the 29th I’m gonna click my mouse on that bar and it splits the taskbar Now it only split it for one day so in the scenario she’s having Wednesday and Thursday off sick so I’m gonna put my mouse on top of the right side of the split bar looks like a four-headed Arrow I’m going to click and hold and drag that side to the right one more day until the task starts says Friday in the white pop-up box so now she worked on Friday Monday and Tuesday she called out sick Wednesday and Thursday and then she resumed her work on the task on Friday and that’s how it’s represented on the Gantt chart and by the way when you’re leveling when you’re having project level for you one of the things it may do to get rid of the over allocation for a resource is it may split some tasks so if you see a taskbar with a split and a dotted line in between it it means it’s been split once you split a task you may want to document the reason why and you do that via task notes I’m going to double click task six to get into the task information dialog box and on the notes tab I’m going to date the no it’s going to be weird because I’m doing the split in advance but I’m gonna date an initial to know and I’m going to say Teresa called out due to illness on 6 28-29 [Music] 22. and then I’ll just go ahead and click ok so it’s documented another situation you may run into when you’re controlling your project plan is having to apply a constraint to a task let’s take a look at task 69. it’s discussing the results with the vendor for any improvements and it’s currently scheduled to start on September 26th it’s a two-day task so it’ll end on Tuesday the 27th right okay so this is the thing the vendor says that they are unable to meet at all that week they’re going to be out of town and they will be able to meet toward the end of the following week so we need to apply a constraint on that task and we do it from task information so let’s double click task 69 and if you go to the advanced tab you’ll see the constraint type it defaults to as soon as possible now we talked about that very early in the course when we scheduled our project from its start date it gives all tasks the constraint type of as soon as possible so whenever there’s room in the schedule that task can start as soon as possible and then when you do the drop down arrow you’ll see as late as possible that’s the default if you schedule your project from a finish date so it does reverse Logic on almost everything then you have enosa considered fairly flexible constraints the as soon as possible and as late as possible constraints then you have semi-flexible constraints finish no earlier than or finish no later than the task can finish no earlier than a particular date or no later than a particular date and if you select one of those then you have to give it a constraint date on the right side and then back to the list I’m going to skip the must finish on and must start on for right now at the bottom of the list you have start no earlier then and start no later than they also require a constraint date and they’re also semi-flexible the ones that you want to avoid as much as possible is what we call hard constraints the task must finish on a specific date or must start on a specific date if you choose those constraints one of those constraints for a task then project cannot reschedule that task no matter what is going on in the schedule whether it comes to leveling or anything else it is set in stone so you want to avoid those as much as possible so I said that the vendor is not available until late in the following week and so what I’m going to do is I’m going to say the constraint type is start no earlier than that’s semi-flexible so this task this meeting with the vendor can’t start any earlier than and then for the constraint date I’m going to put in the following let’s see that would be the week of September 26th it was scheduled so I’m gonna put in October 6th so that’s semi-flexible project can schedule around it and it’s going to shift our schedule so we’re going to click ok and then you get all your blue shading of everything that was pushed back you know your successor task would be pushed back and the phase changed as well we look at tasks 76 and we realize that we have the party scheduled for Tuesday and everybody’s agreed that they’re available on the following Saturday well Saturday and Sundays are not considered working days in project but we can change it anyway and that’s what we’re going to do now so we’re dealing with tasks 76 and we’re simply going to go to its start date field and do the drop down arrow and we’re going to select Saturday September 24th now as soon as we do that the planning wizard pops up it’s very helpful so it’s a couple of things have happened here right it’s telling us that we are moving it away we’re attempting to move it away from a link task and now the link between the tasks will not drive the start date of this task in addition a new start date is a non-working day so we can we this is a two-part process here because it’s a link task if it wasn’t a linked task we would only get the message about the new start date is a non-working day but so the first thing we have to do is remove the link and it’s going to move it to start the following working day after the Saturday that we chose so we’re gonna remove the link we’re gonna click ok and so now it changed it to the following workday but it no longer has a link we’re going to go to the start date drop down and we’re going to choose Saturday September 24th and this is where we get you moved it to a non-working day but we can override that by making Saturday September 24th a working day and that would only apply to this task so it’s not going to schedule any other task on that day just this task so make that choice and click OK and now we’ll have the party on that Saturday now notice that you have an a calendar icon in your indicator so by doing that it created a start no earlier constraint for that task it can’t start any earlier than that Saturday go ahead and save your project plan file so a lot of times many unexpected or a few unexpected things may happen during the life cycle of a project and so I’m going to give you two scenarios here and how you would handle them in your project plan file and for this we’re going to be focusing on our stage four tasks except for task 69. and the party task so we’re gonna do two things let’s say that the stakeholders have informed you that you may have to push stage four out we’ll just say due to budget reasons and so we at this point it’s not confirmed we don’t want to remove them from the project schedule but we need to start looking at the schedule as if those tasks may not be in it on the schedule so we’re going to go ahead and select from task 65. to task 68 and then hold down your control key and select from 70 down to 75 and we’ll leave the deadline there for and the party okay is fine so now what we want to do is we want to go to the project pass tab of the ribbon for this one so we have the tasks selected that may or may not have to be rescheduled or even removed from the project plan and on the task tab in the schedule group you’re going to click inactivate and it leaves those tasks in your project plan they’re dimmed out they’re crossed out and the only thing that you would have to do so task 69 somehow got inactivated to so I just manually I guess my selection wasn’t right but I manually reactivated that one and I’m going to reactivate the party one as well and so if they say hey everything is fine all we have to do is Select them and clicking inactivate will reactivate them now there is one thing you have to be aware of when you do that out of the inactivated task let’s say task 67 for example is now inactive if that is a predecessor for task 76 we would have to go to task 76 and change its predecessor manually because task 67 is now inactive and in vice versa if we reactivate it we would have to then re-link it to task 67. if that were the situation we’re going to select the inactive tasks and you’re going to click your inactivate button to activate them again and I did the opposite my selecting skills here are not very admirable so that whole stage is activated again so that’s one scenario nothing set in stone they may run but in the meantime let’s just temporarily inactivate them so they’re not interfering with our other work on the project the other scenario is we’re not going to be able to do stage four until starting in May of next year for financial reasons the entire stage except for the meeting with the vendor will keep that meeting so I’m going to start selecting the tasks and then I’m going to select the rest of the tasks I know why I’m clicking the wrong button I’m doing my shift instead of control here we go and so I’m gonna leave the party intact and the deadline so all the other stage 4 tasks are selected and this time we’re going to go to the project tab of the ribbon on the project tab toward the right side of the ribbon in the status group you will see update project and we’re going to click on it so by the way if everything is going like gravy on your project and all your tasks are starting on time and completing on time you can use this box to say update work as complete through and pick a date and you can set it to either of these choices right and then you can use this update Project Box for our purpose here which is to reschedule uncompleted work to start after we’re going to do the drop down there and we’re going to navigate to May of next year and we’ll start we’ll select May 1st and it’s not for the entire project be careful here it’s only for those selected tasks now if you did leave entire project and you did okay you could do Ctrl Z to undo we’re going to click ok so now you’re seeing how it pushed out all of that work we said start after May 1st so it’s literal it’s starting them on May 2nd that’s how that’s working so they’ve been pushed out which means that if I go to the top now the finished date is not until October of next year and if I go to my deadline marker which was set for February 28th of next year on The Gantt chart let me get into February here we are and then scroll down to the deadline task and scroll to it so we can see at this point we haven’t gotten to that date yet right in reality we haven’t gotten to that date we’re just scrolling to it but at this point if that is going to be pushed out that far we might want to consider updating our deadline and making a note about why we’re updating it so that deadline arrow is still fine for February 28th it will flip to Red on February 29th now that we’ve made all of these changes to our project plan particularly rescheduling stage four we should probably update our Baseline so let’s do this let’s um go to the view tab and go to our tables drop down and select variance and let’s see so we see if we look down at stage four we have a two month variance there start date variance right that’s a lot I mean if we go to let’s go back to our entry table and we’re going to just update our existing Baseline at this point so we can go to the project tab and before we do that I just want to point out something here that I think is particularly useful let’s say that we’re already in like January of next year and we want to look at something in our project we want to get the status of what the project was like in August of this year so you can put in a status state in this status group on the project tab you can click on that n a and select a status date and then you can run reports and see the status of the project as of that date it lets you go back in time during the life cycle of your project so I just think that’s very useful to know what we’re going to do is in the schedule group we’re going to click on set Baseline and then set Baseline and so we we want to update the Baseline that we already saved so I’m not going to change to a new one I’m going to just leave it on that one for the entire project and then I’m going to click OK at the bottom so it lets you know that it has already been used are you sure you want to overwrite the data and we’re going to select yes so now if we go back to set Baseline set Baseline you can see it updated its last saved date so we have a more accurate point to continue tracking from at this stage of our project to recap module 3 we started with executing a project and that was really tracking actuals so we marked tasks percentage complete and we did a hundred percent fifty percent a couple of different percentages we use the tracking table to track actuals we changed actual durations we even changed a remaining duration making a two-day task into a one-day task you learned about the different fields and the table on the tracking table and then you learned about how to sync your project plan file with SharePoint and that when you update a task progress on SharePoint it flows back down to your project plan we updated the work on a task and we also updated costs for a task we moved into lesson two which was monitoring our project progress and we learned how to use the tracking Gantt View we also looked at the variance table to see the differences between our Baseline and where we were and we also use project statistics to view where we are compared to our Baseline after that you learned how to add custom fields to your project we added a lookup field for the resource sheet so we could have the Departments for the resource and we also added a look up and graphical indicator field for our entry table where it could show the progress of a task using Flags we went on to creating a custom view we did a split view you learned how to work in network diagram View and we analyzed our project plan by viewing critical tasks we looked at both free and total Slack we actually created a custom table in this section so that we could look at critical tasks and free and total Slack we also talked about late tasks and slipping tasks and we were able to view this stuff in a table as well as on the Gantt chart then we moved in how to sort and group your tasks list as well as how to apply filters and or highlights to it then we moved on to using task boards and Sprint as another way to analyze your project plan so it’s just another way of looking at your task list we have them on task boards we were able to customize the cards you learned how to use task board sheet and then we set up sprints which are time phased overlays on tasks so we set up one month block sprints and you learned how to use the current Sprint board and the current Sprint sheet you learned how to move your tasks onto different task cards and you learned how to assign your tasks to the appropriate Sprint then we moved into controlling a project plan by editing the task list we deleted a task and set a deadline task we then moved into splitting a task that’s not on this list here but we did split a task and we documented the reason for the split as a task note we added a constraint to a task and we also rescheduled a task to a non-working day and we had to break its link to its predecessor task in order to do that and then you learned how to Mark a group of tasks as inactive and then how to reactivate them and then you learned how to move how to reschedule a group of tasks for a later date and because we made all of those changes we ended up updating our Baseline so we overwrote it in our last and final module we have two lessons Lesson Four is reporting on a project so you’ll learn how to format and share a chart view how to view existing reports how to create custom reports and how to create a visual report which is really a way of exporting project information either to Excel and or Vizio and then lesson five is where we’ll get to customize the application you’ll learn how to change some key project options how to create a project plan template so if you’re going to be doing another similar project you don’t have to start from scratch you’ll have a template that you’ll be able to work from you’ll also learn how to share resources I mentioned that you may happen upon a project plan file that only has a resource sheet filled out and that would be known as a resource pool and that’s how you can share resources across project plans and then lastly you’ll learn how to link project plan files to each other we’re going to start this lesson by formatting the Gantt chart and learning ways that you could share just that portion of your project plan so just so our focus is on the Gantt chart I’m going to grab my divider between the chart and the entry table and just drag it all the way to the left and on the Gantt chart the first thing I’m going to start with is the Gantt chart Style Gallery and so you can use that to change the coloration of the bars on your Gantt chart and you have a wide range of choices if you want to see more choices so you’re seeing one row of choices you can access this Arrow downward pointing arrow on the right side of the gallery with the horizontal line above it and that opens up the whole gallery so you can see you have presentation Styles and you have scheduling styles really you can use any style that you want at any point so I am going to just pick a presentation style here and I’m going to go with the orange the next thing we’re going to do is change the font so the first button on the Gantt chart format tab is text Styles and let’s go ahead and click that button in the text Styles box you’ll see at the top item to change is currently set to all so if I do the drop down next to all I can see everything that’s included on that list right so what I want to do is we just want to we want to change the font for everything we want to make the font size larger so I’m going to select 12 point for my font size and I’m going to click ok and so notice it changed the font size for all objects my row headers are larger the Gantt chart is larger my time scale at the top is larger and if I expand the divider I’ll see that the table looks the same so now what we’re going to do actually it did get a little bit larger let me check here yeah now the table does not look the same the table is also 12 point that’s right it was set to all and so now we want to do another font type change so let’s go back to Gantt chart format and back into text styles and this time let’s do the drop down next to all and we will choose summary tasks on that list and for our summary task we’re going to give a background color and I’m going to choose just like an orangey color and I’m going to click ok so that impacts the table portion right because that’s where our summary tasks are showing there and that’s what we selected from the items to change drop down in addition you can put drawings on your Gantt chart all kinds of shapes and things so on the Gantt chart format tab the last button is drawing go ahead and click it and select text box now your mouse looks like a Crosshair and so you can click and hold and draw a text box about that size and we’re going to type Emily can have more than 50 percent availability is necessary I’m going to type a period then I’m going to click away from the box and then go back and reselect it and then I can see I can move it I have sizing arrows around it if I want to resize it I can do that and then what I want to do is I want to make sure that the text box is pointing to this Gantt bar where Emily Barrington is listed at 50 percent so I’m going to go back to the drawing drop down and this time I’m going to select Arrow and I’m going to click on the left side and hold on the left side of the text box and just draw an arrow pointing to where it says Emily Barrington so you can do things like that on your Gantt chart as well so let’s say that you have stakeholders that you need to share your Gantt chart with we are going to do that next go ahead and save your project plan now let’s make our entry table a viewable again so I’m going to just grab my divider bar and really we just need to see the task name columns at this point up through task name and what we’re going to do is we’re going to in this scenario we’re going to say that we need to share stage one with our stakeholders and they want to see the Gantt chart portion not the table so what we’re going to do is in your task list on the entry table I’m going to include task zero I’m going to just click and hold on row heading 0 and drag down until I have row 22 selected so that’s all of stage one as well as task zero and now that I have those selected I’m going to drag that divider bar backwards so I don’t see any of the table anymore and just my Gantt chart and so before we do this let’s go to the view tab and in the zoom group make sure your time scale is set to weeks so it will look like how my Gantt chart looks on my screen and what we’re going to do is go to the task tab of the ribbon we’re going to do our copy drop down and select copy picture this time we’re going to save the image as a gif image file so we’re going to do that option button and then navigate to wherever you want to save the file it might automatically want to take you up to your SharePoint site since we’ve synced this to SharePoint and at that at this point you can just put it on your local computer if you’d like and then we’re going to say in the copy group we’re going to leave it on selected rows so all of stage one and task zero and then for the time scale we’re going to leave it on as shown on screen and we’re going to click ok so I’ve navigated to my local directory and I’ve opened the gif file and this is what it looks like and so this is a picture I can put it into a PowerPoint presentation Word document email I can edit it and get rid of because even though we had the table hidden it still shows the role IDs and the information column I can crop it I can do all sorts of things with it and then share it with my stakeholders and we can go ahead and close that file now we’re going to use the built-in reporting tools by going to the report tab of the ribbon and you can expand so you can see your entry table again and you can deselect those tasks so on the report tab of the ribbon we’ll start in the view report section and what I normally do here is we just do a grand tour of all of the reports and all of the categories of reports so we’re going to start like that and so the first thing we’re going to do is we’re going to click on dashboards and we’re going to look at the burn down report now all of these reports are highly interactive they’re also very descriptive so it’s showing the entire life cycle of the project up here the name of the report these are just text boxes which means you can modify them you can delete them it comes with two charts on the left you have your work burned down and it gives you a description shows how much work you’ve completed and how much you have left if the remaining cumulative work line is steeper so that would be a blue line here and we don’t have one then the project may be late and then you have a task burn down shows how many tasks you’ve completed and how many you have left if the remaining task line is steeper which is the orange line on that one then your project may be late so it’s fine it’s not steeper so that is an example of a burn down report now as we go through the tour of the reports I’ll point out several things we’ll actually modify some of the default reports as we go one of the things I want to point out is this if you click in a blank area of your report and you look up at your Ribbon you have that report design contextual tab now click on your burn down text box and in addition to the report design tab you get a shape format tab click on your work burn down chart now you have report design chart design and format so depending on what object on a report you’re working with the appropriate contextual tabs will show up on the ribbon we’ll talk about the field list that just popped up on the right separately now we’re going to go back to the report tab of the ribbon and back to dashboards and this time let’s choose cost overview so this report comes with two charts and a table it has the name of the report the date range of the Project Life Cycle you get a box here which is actually a table showing the cost and the remaining cost and percent complete underneath that you have a table the cost status table only for your top level tasks showing the name actual and remaining costs Baseline costs cost and any variance you have a progress versus cost chart on the right in again with instructions if percent complete line is below the cumulative cost line your project may be over budget and then you have a cost status chart for the top level task showing remaining actual and Baseline cost now the field list on the right side of your screen you can use that to change what shows in any of these report objects so let’s click on that cost status table to select it and if you look in the field list you’ll see that the fields that are showing in that table have check marks in them and there are different categories of field so we have your ID name and resource name at the top then you have your cost fields includes all your baselines you have your custom Fields here these are more cost Fields actual cost costs cost variance remaining cost right and so we’re not using any date fields in there or duration flag number work or other and underneath all of the other fields that are collapsed you’ll see the fields that are in that table underneath that you’ll see it says filter all tasks Group by no group and outline level one outline level one are your top level tasks so we’re going to do the drop down arrow there and we’re going to select all subtasks we want to see the cost status for all of the subtasks so now the table has expanded and all of the subtasks are in there and then if you were going to keep that that way I would change the text box above because it says cost status for top level tasks and I would just put for subtasks now let’s select that table again I just want to click anywhere in it to have it selected and go up to the table design tab on the ribbon and we can give the table a different style so I’m going to use that more button on the right of the table Styles gallery to open it you’ll notice that there are light medium and dark Styles they give you Styles at the top that are best match for this particular document I’m gonna go with a medium orange style with banded Rose so light dark light dark and then click on your cumulative cost chart just somewhere in a blank area of the chart go to chart design and to the left of the chart Styles Gallery there’s a change colors tool and I’m gonna just try it I may not like the color once I apply it and I don’t like that color so I’m just did Ctrl Z which is undo and I decide I’ll just leave these charts alone so if we wanted to see what this report would look like if we were going to print it right we could go to the file Tab and just choose print and you’ll see your print preview and this is where you learn that you may have to change margins so on and so forth It’s generating 10 pages of this report so you can see that that table obviously since we did it for all subtasks is expanding over several pages and then it’s creating some blank pages so when I go to the back arrow to get out of there and I look at the report design tab on the ribbon I can get to in the page setup group I can go to orientation and maybe make it portrait I don’t think that’s going to do any good but I could go to page breaks and then you’re seeing the page breaks on the screen right so I know where that table is breaking and what I might choose to do is something like move the table to another page so you may have to manually massage your stuff to get it to look right if you’re going to be printing the report just put it back where it was for right now you can also change your paper size here and that might help with some of them so what I’m going to have you do is I’m gonna have you take that table back to just showing your level one task your top level task and one other thing that needs to be done here this is why um with the exception and we adjusted that table back but this is why it’s generating more pages because of these charts on the right I’m putting them inside that margin there so that it won’t be bleeding over to another page and now if we go to file print we’re still getting a blank page there I’m getting one of two pages oh because this this text box I can see it bleeding over so just have to go back and clean it up a little bit more so it’s the text box above this table that’s going over there that’s what I’m on so that way if you need to print your report you can do it that way now the other things that you have on that report design tab are important to review as well it’s very rare that I actually print out the reports let’s take a look on report design tab in the report group you have manage which is you can rename your report here or you can get to the global organizer which we will cover later or you can copy the report so when you hover over copy report it says copy it so you can paste it into another application like word PowerPoint or even Excel so a lot of times I’ll do the report as it just paste it into a Word document or PowerPoint or something like that so you can test that feature out by clicking copy report so now I’ve switched to PowerPoint and I’m going to just do a blank presentation here and I want to go on the Home tab to the new slide drop down and choose blank and then I’m going to right click on slide one and delete it on the blank slide I just have my guides showing on the slide and if you want to see guides you can go to the view Tab and check your guides in the show group and I’m going to just right click and I’m going to look at my paste options I can use the destination theme so if I had a theme in this presentation and I wanted the report to look like that theme I would choose that option we just have a blank presentation with no theme I can keep the source formatting so the way that it’s formatted from Project or I can copy it in as a picture I’m going to use picture and then I can resize it so it actually fits on the slide I’m using the bottom right sizing handle and I’m going to just size it so it fits better on that slide and then I would do another new blank slide and put the next report in and send the presentation out or conduct the presentation with the reports in it for my stakeholders another group on this report design tab is the insert group so we’ll revisit this group when we develop a custom report where you can insert images shapes charts tables text boxes onto it and we’ll visit the themes section at the same time because you can apply a theme which is a series of colors fonts and effects to your report to make it more visually appealing so for right now we’re going to go back to the report Tab and back to the dashboards drop down and let’s view the project overview report so this one has your percent complete and then it has Milestones that are coming soon so these are our Milestone tasks that are coming soon right listed in a table form we have a status for all of our top level tasks or our summary tasks percent complete right so stage one is nine percent complete stage two ten percent our other stages are not and then we have late tasks because we have a project deadline a deadline task in there for some reason set for 6 20. I might have done that by accident this is another good report that can be utilized throughout your project and now we’ll go back to report dashboards again we have two other dashboard reports upcoming tasks and work overview let’s look at upcoming tasks this is one that I like to use pretty frequently right um again it shows the percent of work complete the status of remaining tasks that are due this week with their percentage of completions and then tasks starting soon and that’s the status of tasks that are starting in the next week the following week this is a really handy report to keep an eye on and we’ll go back to report dashboards and work overview so this one it has you’ve already seen the work burn down report on the burn down report right it has that chart there it has a work stats chart actual remaining and Baseline work for all of our stages of our project it’s giving you the percent of work complete remaining work and actual work you have your resource stats chart on the left so actual and remaining work per resource and then you have remaining availability for all of your work resources so these are just work resources here not Material or cost and let’s go back to report dashboards one more time so down at the bottom it’s kind of misleading it says more reports but if you click on more reports it’s just showing you the categories and there are no other dashboard reports just those fives that we’ve looked at so you can cancel out of there and our next category of reports are resource reports you see we have two over allocated resources this is another way of looking at them right so you can see and we still have some over allegations in our plan so you see the work status for over allocated resources in the form of a column chart and then you have your over allocation chart right so the orange lines are over allocation for Teresa Brown we have some for Anita Redmond you can look at the Legend at the bottom of that chart and we’ll go back to report resources and resource overview you saw the resource stats in a previous report and here’s our work status the percent of work that’s been done by all your resources and then you have your resource status in the form of a table as well and we can go back to the report tab the cost reports are pretty important here so if if you’re tracking cost in your project these are the reports that you can share with your budget people and so we have a cash flow report let’s take a look at that so you’re seeing your actual Baseline and remaining costs as well as any variance you have a chart and it tells you this chart shows the Project’s cumulative cost and the cost per quarter to see the cost for a different time period select the edit option from the field list so what that means is Select that chart and I’m going to get rid of this format plot area pane that’s what happens when you kind of double click a chart and in the field list up at the top it says select category and it’s set on time and then there’s an edit button click on edit and see that it’s defaulting the quarters do the drop down for quarters and choose weeks and then click ok so now you see the chart updated and if you were going to keep that update then you would want to change the text here if you’re going to keep the text box and say cost per week what we’re going to do is we’re going to go back to edit and we’re going to change it back to quarters and I think we had I’ll just do a q1 Q2 format I think that’s what they had in there and we’ll click ok so yeah you can change that it I love the informational text that’s given on the reports and and a lot of times I’ll leave them there when I’m sharing reports for stakeholders because they explain to them what they’re looking at too and then you have the data at the bottom in the form of a table and it includes a couple of other fields so you have your remaining and actual cost and then your cost field acwp actual cost of work performed then you have budgeted cost of work performed and budgeted costs of work scheduled and we’re going to go back to the report tab and now we’re ready to look at our cost overruns report so you get a task cost variance the cost variance for all your top level tasks resource cost variance and then you have supporting tables and we don’t have any cost variance so the charts are not populated but you have supporting tables for task costs and resource costs we can go back to report cost earned value report so we don’t have a lot of data in our project plan right now so we have our EAC is estimated at completion actual cost of work performed and budgeted cost of work performed values are showing then you have your earned value over time chart which is not super populated right now you have variance over time it’s showing cost variance and

    schedule variance and indices over time you have your schedule and cost performance indices for the project so again we haven’t tracked very many actuals in our project plan so at this point a lot of these charts are not going to be super populated we can go back to report cost resource cost overview so you see your cost status for work resources the cost distribution over the different resource types so most of the costs are work resources which is pretty typical and then you have your cost details for all of the work resources and we’re going to go back one more time to the cost and you have your task cost overview so your cost distribution based on the status of the task and this chart is kind of I’m going to move this text box out of the way so I can see it so you have your Legend at the bottom we have very few tasks that are marked complete I’m going to move this text box out of the way as well it’s kind of yeah so and then you have on schedule and most of it is future tasks we have our cost details table our next category on the report tab is in progress now these I would access more often than perhaps some of the others so we’ve talked and we’ve seen like on the Gantt chart and in different tables how to view critical tasks late tasks milestones and also slipping tasks so let’s look at the critical task report right so remember if you have a highly sequential task list a lot of your tasks will be on what’s known as the critical path meaning that there’s really not a lot of wiggle room for it to slip without pushing out the project end date so these are a list of our critical tasks might want to keep a careful eye on them in terms of their start dates and how they’re progressing we’re going to go back to reports in progress late tasks well I’ve got that project deadline of the project start date up there for some reason so that is actually late now hopefully you won’t have anything that is late at this point we’re going to go back to in progress our Milestone report so late Milestones Milestones that are due this month and Milestones that are 100 complete and then you have it in the form of a chart on the right and one more time to end progress and slipping tasks so where the Finish date is past the Baseline finish date we haven’t gone that far in our project tracking actuals to have any slipping tasks and you can go back to your report tab now back on the report tab I’m going to skip getting started custom for right now if you look at your recent drop down you’ll see the car you know in the last one you were on is at the top of the list it stores like maybe five there or six and then because we set up Sprints and create a task boards we can go to view board reports so let’s click on task boards and go to boards task status report this is kind of meaty nice one so tasked by board status so we have our not started in progress and done boards we have our remaining tasks chart remaining tasked by resources and then we have a table on the right which is your tasks summary the summary task name the name of the sub task resource name and the board status let’s go back to report task boards and let’s look at boards work status so this one has your remaining work by task board remaining work by resource remaining work over time the number of hours of work that I’ve completed and the number of hours left and then remaining tasks all of the tasks in task boards that are not marked 100 complete we’re going to go back to report task boards current Sprint task status and so some of the same you know remaining tasks remaining tasks by resource we’re going to go back again current Sprint work status just showing it by Sprint as opposed by your task board or although it does have the board status in this table and we’ll go back again and we’ll do Sprint status so now this is focused squarely on the Sprints task for Sprint work per Sprint and we can go back to report now let’s look at the getting started category on the report tab so some of these are not really reports let’s start with best practice analyzer so this is actually a report right it shows remaining work tasks that have no actual work unassigned work tasked with no resources assigned tasked with durations less than eight hours and summary tasks with assigned resources so out of that group getting started this is a report let’s go back to report getting started and click on create reports so this is more like a tutorial for you it’s guiding you through like you can go up here and click on welcome welcome to project you can go through this you can start and go how to organize your tasks and then you can go next and all about creating reports and then next all about how to share with your team kind of thing so that’s not really what I consider a report it’s a tutorial we’re going to go back to report getting started so create reports get started with project organize task and share with your team all lead you to the same tutorial so they’re not actual reports other than the best practice analyzer now we’re going to go ahead and create two custom reports so on the report tab once you create a custom report then it will show under custom but to create one you’re going to start with the new report drop down and you’ll see that you can create it from blank with just a text box on it you can have a chart a table or the comparison one has a chart and like a table on it we are going to choose the table template there and we’re going to want to give this report a name and we’re going to call it resource info and click ok so now it gives us the text box with our name in it the name of the report in it it has a table and it picks certain fields to put in it so in this case name start finish and percent complete we’re going to use the field list to change the table to the fields that we want so we are going to keep first of all we in the field list is showing the tasks we need to click on resources and we’ll see that name is selected and we’re going to leave that selected and it also has the date category expanded and finish and start are selected and we’re going to deselect those and we can collapse the date group we are going to go to the other fields expansion Arrow and expand it and under custom there we’re going to select group and that’s that free field that we use to say whether the resource was internal or external we can collapse other fields now and we’re going to expand the number category and under number we want to check Max units and lastly we’re going to expand other fields again and then right underneath other fields expand custom and we’re going to check Department which is our drop down our lookup field that we created for the resource sheet view so we have our table set up this is the information that we want and so what I’m going to do is I’m going to move the text box to the left and I’m going to move the table underneath it and in that field list I only want the table to show our work resources so the lower half of the field list where it says filter you’re going to do the drop down and select resources Dash work so it’s only showing our work resources now for that table I’m going to format it a little bit I want the names to show where I don’t have to have a word wrap going on and the same for the Departments so I’m just resizing those columns and we want to add a chart so I want to make sure nothing is selected and on the report design tab of the ribbon you’re going to click on chart and on the left side we’re going to select line and we’ll use the 3D line chart the last one at the top so you can double click it or click it once and choose ok I’m going to move the chart so it’s to the right of the table and in the field list we’re going to start by removing the fields that are currently in the chart and they’re expanded in the work so we’re going to uncheck remaining cumulative actual and remaining cumulative work and then we’re going to go to the resources tab at the top of the field list so the first one we want it already has name selected in that select category name is already there so we’re going to expand cost and we’re going to select cost so it’s showing all of the resources and on the line the 3D line it’s showing their cost and we notice down here this filter is for all resources we want the material and the cost resource included so we have that set up now with the chart still selected go up to the Chart design tab of the ribbon and you can use the more button to open up the chart Styles Gallery where it’s only a couple so that’s not going to work we don’t need to do anything there we could go to change colors and I’m going to pick like an orange color or colorful it’s blocks of colors so let me try this one yeah so I picked one so it looks a little orangey in the chart and then I’m going to select my table by just clicking in it and go to the table design tab at a ribbon and I’m going to give my table a style that kind of matches the chart and that’s kind of how that goes so you successfully created a custom report and we’re going to do another our second custom report is going to focus on our sprints so I’m going to go back to the report tab new report and we’ll base this one off of a table as well and this one we’ll call Sprint info and click ok so it does the same thing it gives us the text box with what we named it and a table with some fields in it we’re going to make sure the table is selected and in the fields list on the tasks tab we’re going to uncheck the finish and start dates and we’re actually also going to uncheck and then I’m going to collapse that date category and we’re going to uncheck percent complete under number and you can collapse the number category for now so we have the name of the task and right now if you look down at the very bottom of the field list the outline level says project summary that’s why we’re only seeing task zero we’re going to do the drop down there and change it to level one for right now so we get to see our stages we’re going to expand the date category and offer the list you’re going to choose Sprint start and then Sprint finish and the reason why the dates are showing as non-applicable is because we’re looking at our stages and you don’t assign your summary tasks to Sprints only the subtasks so we’re going to go down and change our outline level to level two and you’ll see the ones that are in a Sprint or populated in a Sprint you’re getting the start and the Finish dates and we really don’t want that level of detail in this report we really want essentially the start and finish dates of the Sprints so the bottom of the field list we’re going to go to group by where it says no group and we’re going to choose Sprint so now our table is just showing the Sprint and their names and their start and finish dates which is what we want now we’re going to create a visual report which is our last section in this lesson and a visual report you notice on a report tab it’s in the export group it’s a great way of getting data from your project plan file into either Excel and or Vizio so we’re going to be utilizing the Excel visual reports let’s go ahead and click on visual reports and at the top you can say you see where it says show report templates created in and they have Excel and Vizio checked we’re going to uncheck Vizio so we’re just looking at all of the Excel reports so there’s tabs underneath we’re looking at all reports if you want to look at them by category you have the categories there we’re going to select the Baseline cost report and at the bottom we’re going to click View and what it’s going to do is it’s going to export the data and it’s going to open Excel for you so it opens Excel and IT put the data in in the form of a pivot chart so you’re on the chart page notice there’s two tabs in Excel chart one and assignment usage and that’s the actual pivot table so if your Finance people are using a lot of pivot tables in Excel this is a great way of getting the budget information to them from your project plan file and so it’s showing the Baseline costs the action the cost and the actual cost so it has that Legend at the top of the chart right so the Baseline cost is the darker purple cost is the one next to it and you can barely see actual cost in stage one and I’ll show you how to change that in just a moment and then it’s showing your stages down at the bottom now you have these gray tabs on your chart and you can use them to filter and everything but typically they don’t need to be there so if you look at the pivot chart analyze tab on the Excel ribbon the last button is field buttons you’re going to do the drop down and choose hide all so all of those gray buttons disappear from the chart now we’re going to address how to make this so that you can actually see that actual cost its value is so much lower than the other values you can barely see it in stage one so we’re going to go up to the design tab on the ribbon and on the design tab the next to the last button is change chart type and what we’re going to do on the left side is we’re going to make it a combo chart so we have our clustered column for Baseline cost and cost and the actual cost is going to be shown in the form of a line and we want it to have a secondary axis because its number was so low compared to the numbers for Baseline cost and cost we want it to have its own separate axis on the right representing its range of values and we’re going to click ok so now you can see your secondary axis on the right side because some of them haven’t started yet right some of the stages your actual cost is like at zero and the next one up would be 50 and so on whereas this on the left side is showing 5000 up to thirty five thousand so it’s good to have a secondary axis when your number ranges are extremely variant now the other thing we can do with this pivot chart is let’s scroll down the field list and you’ll see it only has value fields on there we’re going to scroll down until we see type and we’re going to check type so now it’s showing the type of resource at the bottom of the chart so one key thing to mention here I mentioned that it’s a good way to export some of your project data to either Excel and or Vizio but it is not a live link so if your Finance people are interested in getting these pivot tables and pivot chart reports from you maybe you can work out the frequency that they would need them and do the export from visual reports once a week or on whatever schedule as necessary these are now two independent data sets so you can go ahead and close Excel and when you’re back in Project you can just close the visual reports dialog box now we’re up to our last lesson in this course which is customizing the application we’ll be reviewing and changing some project options creating a project plan template learning how to share custom items that we’ve created how to share resources and how to link a project plan so to get started we’re going to go to the file tab of the ribbon and all the way at the bottom of the band on the left we’re going to click on options so for any of the Microsoft programs you’re using you should become familiar with their options they’re all on the file tab because that gives you a way to further customize the program for your particular needs so you’ll notice on the left of the project options dialog box you have different tabs we are currently on the general tab so just some examples I’m not going to go over every option with you but you’ll notice under the project view the default view is Gantt with timeline so when we started our project plan file it brought us to that view with the entry table on the left the Gantt chart on the right and the timeline visible beneath the ribbon so that is the default view if you want a different view to be your default whenever you go into project you can change it there you can also control the way dates are formatted in Project from there the next tab we’re going to go to on the left is the display tab so here you’ll notice that you have currency options for this project and it gives you the name of your file right some of the options are only for the current file some could be for the current file or all project files and you’ll see that shortly if you always want to have two decimal places you can change that here or leave it the way it is if you want a space between a currency symbol and the number you can change the placement there let’s go to the schedule tab on the left if you’re weak does not start on Sunday or your fiscal year does not start in January this is where you would want to change it now for this one it says calendar options for this project and this is an example where you can change it for all new projects or just for this project we’re going to leave it on the training rollout initiatives if your default start and end times are not 8 to 5 you can change them here all of these things can be changed so there’s something else here scheduling options for this project when we first started this project plan file new task by default or manually scheduled we changed it to Auto scheduled at some point but if you want to change all new projects if you do all new projects you can see the default there you could change it there to Auto scheduled if you should want to we’re going to leave it and go back to training rollout initiatives so we talked about when we scheduled our tasks the difference between scheduling it from the start date and the end date and when we went into project information it was defaulting to start date because that is the default there are some other things that you need to look for let me look at a couple of other things on this schedule tab and I think we’re good for schedule on the left side let’s go to the save tab so what’s important here if you want it to auto save every 10 minutes or whatever amount of minutes you can do that here it gives you your default file location so where when you’re saving project plan files if you want to change that you can and then it has where save templates default personal templates location all personal templates need to be saved in this custom office templates folder which is under your documents folder on your local drive so you want to make sure you save your templates there if they’re not saved there you cannot access them from within the program and then lastly on the left let’s go to Advanced so you know when we started our project plan as soon as we use the blank template the first thing we did was go to project information so that we could set our project start date you can have it prompt you for project info for new projects if you’d like by checking that box we’ve noticed a couple of times when we went to schedule a linked task on a scat on a Saturday the planning wizard came up and that’s happening because of these check marks here in the planning wizard section if all of your resources on your project were getting the same default standard and or overtime rates you could fill them in here and then they would just populate on the resource sheet and then I’m going to scroll down to display options for this project so you notice when we put in a three-day task it says the word day well you could change that you might want it to just have a d that shows or a d y you can have it now this show project summary test that’s task zero that is checked here for this project because we made it show if you go to display options for this project and do the drop down next to training roll out initiatives and go to all new projects right you could then make sure that it’s going to show the project summary tasks for all new projects if you want it to I’m going to change it back to this project there’s one more one more so the very last one on Advanced is tasks are critical if slack is less than or equal to zero days okay so we talked about critical tasks in a highly organized sequential task list you’re going to have critical tasks and so if you don’t want as many to show up you can increase the amount of slack here for it to be tagged as a critical task and I’m going to just click ok to get out of project options you may have noticed when you’re in a report your view indicator on the left is not active it just simply shows the name of your report and we want to get back to Gantt chart view so on the report design tab they have Gantt chart as the first button and we can click the upper half of that to get back into Gantt chart View now we’re going to play a little bit of Make-Believe here we’re going to make believe that we’re pretty much completed this entire project all the tasks have been completed so on and so forth and now we want to save it as a template because next year in June we’re going to have another training roll out and this one works so well we don’t want to have to build another project plan from scratch so in order to do that we’re going to go to the file tab and we’re going to click on export on the left under export you’re going to choose save project as file and on the right side it gives you all these file formats and we’re going to select project template and then you’re going to click on save as now when you do that it should take you to your custom office templates folder if that was set in Project options but I will say that there has been a glitch where sometimes it doesn’t do that so you need to navigate to your custom office templates folder if it didn’t take you there and we’re going to change the file name to just say instead of initiative we’re going to put template and notice the save as type right underneath it is a project template and we’re going to choose save so when you do that the save as template dialog box comes up you’re about to save a file as a template you can choose to remove the following data items from the template so we would want to remove the values of all the baselines because this is for a future date and time and we’ll want to set up our baselines when we start working in that plan file we probably want to get rid of actual values your resources may change so you want to get rid of your resource rates and we didn’t have any fixed cost in here fixed cost would be something like if you’re doing a remodel project or something and you buy an aquarium how much did that aquarium cost and that is just a column that you can put in any table to enter a fixed cost so we definitely want to strip out the first three you might as well check fixed costs because usually it would be those if you’ve been using the project web app you might want to remove the data about whether they’ve been published from the template as well and we’re going to choose save so now what we’re going to do is we’re going to close the template so I’m going to use that bottom X in the upper right hand corner where I’m trying to draw an arrow right now you’re going to use that bottom X to close the template if you don’t close the template what happens if you just start filling it out you’re actually updating the template itself so you want just like any other template right you want to be able to access the template and it turns it into a plan file and the template itself is not being impacted if you do need to change the template at some point you can go to your custom office templates folder and open it from there and then that way you’re directly changing the template but to access it you’re going to go when you closed out it took you to the new tab and if you look right above where it says search for online templates you have an office category and you have a personal category click on personal if you don’t save your template in custom office templates you won’t have a personal category there and your template won’t be there so now what you’re going to do is go ahead and click on the template and when you select it you can give it a start date from here but we’re just going to leave it the start date on today and we’re going to go create and so if we go to Resource sheet view for example you’ll notice that we stripped out the rates for our resources and then you can go back to Gantt chart View so this template you might have different stages or shorter stages you can modify it but you don’t have to start from scratch now what we’re going to want to do is we’re going to want to save this project plan foreign whatever directory you need it to be in you just navigate to where I want it and you’re going to name it training roll out initiatives 2023. and then you’re going to close it so now I’m going to show you how to share your custom objects with other project plan files we created a project calendar in here a custom view custom table and a couple of custom reports as well as some custom Fields so I’m going to show you how you can make those things available or some of those things available to all of your project plan files new or existing and we do that by going to the file tab of the ribbon and on the left side clicking on info right there you’ll see an organizer button and it says organize the global template let’s click on organizer on the left side of the organizer screen you have your Global template so in this case these are all the views that are included with Microsoft project on the left side and you’ll see at the top there’s several tabs and it defaults to the first tab which is the views tab on the right side you will have the views that are available or being utilized in your particular project and so what we’re going to do is we want the Gantt with task details view the split view that we created to be available and all project plan files new or existing so we’re going to click on it on the right side and then in the middle of the screen do your copy button and you’ll see that the Gantt with task details is now part of the global template and then we’re going to go up to the reports Tab and on the right we have our two re custom reports so I’m going to select each one and copy and then we’ll go up to to the tables Tab and on the right side we’ll select project analysis and copy and then I’ve gone to the fields Tab and at the top I selected resource we want that department drop down field that we created so I’m going to do copy and then we can do the X in the upper right hand corner to close the organizer and you can do the back arrow to get back into your plan file now you’re going to learn how to share resources across different project plan files and so the first thing I’m going to have you do we’re going to leave this training rollout initiative file open and I’m going to have you open your training rollout initiative 2023 project plan so you’ll have both plan files open once that’s done if you go to the view tab of the ribbon almost all the way to the right in the window group you’ll see your switch Windows drop down and you’ll see that you have both files open and you can switch between them that way now we need to have a new blank project plan file also open so we’re just going to go to the file Tab and we’re going to click on blank project and now the project information box popped up automatically and that’s because when we went through project options there was a setting that says prompt for this box every time you create a new project so we’re going to just cancel that if it came up for you you can cancel it and what we’re going to do is go to the Gantt chart format tab and over in the show hide group uncheck project summary task and we’re going to switch to Resource sheet view and then we’re going to save this file and we’re going to name it training resource pool so before we copy and paste the resource information into our resource pool file we need to make sure that the columns are consistent remember on our original resource sheet we added a custom field that we created for the Department we made it a lookup field so it had the drop down list so this shows you what copying things to the global organizer can do for you we’re in the training resource pool file and we’re going to right click on the type column heading and choose insert column and start typing Department all of our custom objects are now available to this file which is a new file and any other existing project plan file so you can select Department and now we’re going to use the switch Windows button to switch over to training rollout initiative and before we copy this stuff because we have these over-allocated resources I’m going to show you a little trick here if we copy them and paste them into our resource pool they’re going to be red but they’re not going to have the little red people they’re not going to be noted in the system as over allocated but they’re red bold font will carry over and you won’t be able to change it so what we’re going to do here is we’re going to go to the resource sheet format tab on the ribbon and the first button is text styles we saw this in Gantt chart format at the very top where it says item to change all we’re going to do the drop down and select over allocated resources and notice it has that deep red color and it’s also bold we’re going to change bold to regular and we’re going to do the color drop down and select the black color under theme colors and click ok and we’ll change it back afterwards but for right now we’re going to select from the First Resource name all the way over to their standard rate making sure all of our resources are selected and we’re going to do control C to copy that information go to your view Tab and using switch Windows go back to your resource pool click in the First Resource name cell and control Z and notice like I said the little red icons in the indicators column so the system would not have thought that they were over allocated in this file there’s no task there’s just a resource pool but you would not have been able to get rid of that shading even if you had gone to the resource sheet format Tab and went into text Styles in there it wouldn’t adjust it so we have this in our training resource pool let’s go ahead and save this file and then switch back over to your training rollout initiative file and we’re going to go back to Resource sheet format text styles and make sure that our over-allocated resources show up bold and then for the color all the way at the bottom under standard colors I’m going to use that first dark red and click ok so we put it back the way it was now that we have our training resource pool set up let’s switch back over to our training rollout initiative 2023 file and the first thing we’re going to do there is go to the project information on the quick access toolbar let’s go in there so this is the file that we created from the template that we saved and so it kept the original start dates and stuff like that and we want to change our project start date at this point so let’s do the start date drop down and let’s navigate to let’s say June of 2023 and let’s select June 5th and then click ok so that adjusted that file and now the second thing we’re going to do because we created this from the template and we chose to keep our resource information minus their rates in the template we want to delete everything off of this resource sheet so I’m going to select the gray box at the intersection of the row and column headings to select everything and just press delete on my keyboard then I’m going to just click on the first resource name cell and I’m going to go to the resource tab on the ribbon and the assignments group you’re going to select resource pool and then share resources so if you were using your own resources they would be populated on the resource sheet and we just deleted everything we want to use resources and it says it requires at least one open resource pool when we select that option button our resource pool should populate if not you can get to it from the drop down it needs to be open and then on the bottom on conflict with calendar or resource information we’re going to leave it on pool takes precedence and we’ll talk about that in just a few moments so we’ll click ok so now we have our resource pool information in this project plan file so let’s switch back over to our training rollout initiatives plan and this is the one that has the over allocated resources on its resource sheet so let me show you why if you’re going to be using a resource pool you should use it before any work is tracked on your project before any work assignments are done on your project you should already have it attached to the resource pool like we just did with the 2023 file because if you don’t and you try to attach it to a resource pool when assignments have already been done when work has already been done this is what’s going to happen let’s go to the resource tab on the ribbon and we’re not going to delete these resources on purpose you’ll see why in a moment and we’re going to go to Resource pool share resources so if we choose to use resources from the pool at this time we’re going to end up getting errors which you’ll see in a moment but this is a good screen to talk to you about the pool and the sharer taking precedence at the bottom of the screen so if I have my own resources here and then let’s say no work has started no actuals have been tracked and then I decide to attach it to a resource pool but I don’t delete my resources my original resources are known as the sharer resources so in a situation like that it would have a duplicate set of resources and so if I come in and I update the resource sheet depending on what set of resources I’m doing to update in it could cause a conflict and you could end up with wrong information so when you’re using a resource pool you want the pool to take precedence in our other file we deleted everything on the resource sheet so everything in there is from the pool and if we wanted to update any resources we would do them in the training resource pool file since it’s attached to the rollout initiative 2023 file all the updates will automatically flow there so if we change somebody’s standard rate or maximum units or if there is a name change if someone marries or something we can make sure that those changes are consistent across the files that the pool is attached to if we make those changes only in the resource pool file so I’m going to show you the error that’s going to get here we’re going to leave it on pool takes precedence go ahead and click ok so there’s a problem it says Resources with the same name different types that’s not really the issue here right material Resources with the names same name but different labels that’s not it either we’re going to click OK on that and so we don’t really have to our list some of it repeated right so this is one of the things the issues you can get into so we don’t want that to happen our posters are on there twice um once with the material once without the material and so what we’re going to do is go back to Resource pool share resources and choose use own resources and click ok and so now we’re just using the resources that we originally had in here again if you want to use a resourceful do it before you do any resource assignments or any actual work starts on the project or you could have issues so for this particular project plan we’re going to use its own resources as opposed to the resource pool which is unfortunate for us because let’s say Emily barrington’s salary gets raised we would have to update it in two places at this point but this is a good lesson learned for you if you’re going to be using resource pools let’s say you’re going to be working on multiple projects at the same time so in our situation the scenario would be that because we pushed a bunch of tasks back in this project when we had to reschedule a bunch of tasks that there might be some overlap between this project finishing and our 2023 project starting so we would want to be working on the plan file for the 2023 plan at the same time instead of having to manage two different plan files you can create a project within a project file and we’re going to do that now you can go ahead and close your training rollout initiative 2023 files and your resource pool file and I just switched to Gantt chart view in our original training rollout initiative file and for this one what we’re going to do is we’re going to collapse our project so I’m going to collapse test zero and I’m going to click on the first blank task name cell after that and I’m going to go to the project tab on the ribbon and the first group is the insert group and it has sub project there go ahead and click on sub project navigate to where your project plan files are and you’re going to select training rollout initiative 2023 and notice at the bottom it says link to project and we’re going to click insert so when you do that it puts it in as like a sub task a summary subtask and so what we’re going to do is when we try to expand it it lets you know that you have to have the resource pool open so we’re going to go ahead and click ok and it did that so the first thing I’m going to do is I’m going to rename this one so training rollout template is what it came in on I’m going to double click it to get into and this is inserted project information and I’m going to call it training roll out initiative and then at the beginning of it I’m going to put 2023 and a Dash and click ok so now I can be working on my original training rollout I can expand it I can be collapsing stages within it right doing all that kind of stuff and then when I need to work on both I can expand the next one and maybe do some assignments we don’t have resources assigned in the 2023 training rollout initiative so when I expand it I’m going to go to its task two notice each one has a separate set of row numbers starting over so that task 2 I’m going to go to Resource names column and choose Emily Barrington and so anything that I do in here will reflect in its original plan project plan file so go ahead and save your training rollout initiative file and reopen and then close it reopen your training rollout initiative 2023 file and you’ll see that change so with the 2023 version of the file open I can see that Emily is a resource name there and it works both ways if I do anything in this file it goes back up to the shared file or the sub project file and vice versa and you can go ahead and save and close that file so just to recap what we learned in this last module we started with reporting on a project and so you learned how to format and share your Gantt chart View and then we had a comprehensive tour of each and every existing report couple of which we modified we also created two custom reports and then exported to Excel via a visual report then in our last lesson we got into customizing the application we reviewed several project options we learned how to share custom objects across project plan files that’s not on the list here then we created a project plan template and accessed it to create a new project plan we learned how to create a resource pool file and how to share resources with other plan files and then lastly we learned how to link project plans which is an efficiency tool so if you’re managing multiple projects you can be managing them from one file instead of multiple files hi everyone Trish Connor Cato here I just wanted to officially thank you for attending this Microsoft Project 2021 video course and just to recap everything that we covered in this course focused on executing the project and that’s when we started tracking our actuals we also monitored project progress and learned how to control a project plan so after we updated our actuals we viewed the progress in a variety of different ways of our plan we went into adding custom Fields custom views custom table we learned how to work in network diagram View and how to analyze the plan and view progress by using task boards and defining sprints we also learned ways to control the plan and that included editing the task list splitting tasks rescheduling tasks and we forced a task to begin on a non-working day and updated the Baseline the final module we learned everything there is to learn about reporting on a project and then we went into customizing the application by learning about project options some of which are very useful we actually formatted our Gantt chart added a text box to it learned how to share it before we got into the interactive reports and then we exported project data to excel in the form of a pivot table and a pivot chart by creating a visual report we created a project plan template after learning how to share custom objects using the global organizer and then we learned how to access our template and create a new plan file based on it we ultimately learned how to set up a resource pool and then attached it to a plan file which is the way that you can share resources across project plans and then we ended up by linking project plan files together for more efficient oversight so that if you’re managing multiple projects you can manage them from within one plan file once again my sincere thanks [Music] for watching to earn certificates and watch our courses without ads check out learnitanytime.com foreign foreign [Music]

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • Signs of Doomsday in Sahih Muslim by Allama Javed Ghamdi – Study Notes

    Signs of Doomsday in Sahih Muslim by Allama Javed Ghamdi – Study Notes

    This text analyzes a Hadith in Sahih Muslim concerning the signs of the Day of Judgment, specifically focusing on the descent of the Messiah (Nazul Masih). The author questions the reliability and interpretation of certain narrations regarding the timing and nature of this event. He argues against a literal interpretation based on inconsistencies within the Hadith and Quranic verses. The author supports his claims by examining discrepancies in the Hadith’s descriptions and by referencing specific Quranic passages, particularly in Surah Al-Imran. He concludes that certain traditional interpretations are flawed and suggests alternative understandings.

    Review of Doomsday Signs in Islamic Texts

    Quiz

    Instructions: Answer each question in 2-3 sentences.

    1. According to the speaker, what is the primary issue with the traditions surrounding the sign of Nazul Masih (the descent of the Messiah)?
    2. What two signs of Doomsday does the speaker claim were fulfilled at the time of his address, based on a conversation between Jibal Ameen and Rasulallah?
    3. What point does the speaker make using the verse from the Quran where Jesus states he was only a witness while among his people?
    4. How does the Quranic verse from Surah Al-Imran, particularly verse 55, factor into the speaker’s argument against a second coming of Masih (Messiah)?
    5. What does the speaker say is significant about Allah’s declaration in Surah Al-Imran that followers of Jesus would prevail until the Day of Judgment?
    6. In what way does the speaker claim that Allah’s decision regarding Jesus and his followers, as mentioned in the Quran, is already a sign of the Doomsday?
    7. What other key Quranic evidence is used by the speaker to reinforce his argument that Jesus will not descend again, and what does it state?
    8. What is the speaker’s explanation for why some traditions about Nazul Masih might exist if they are not correct?
    9. What is the main difference between the way the speaker interprets the Quran and the commonly held view of the Messiah’s return?
    10. What is the importance of the phrase “till the Day of Judgment” in the speaker’s analysis of Quranic verses?

    Answer Key

    1. The speaker notes that the time of the descent of Nazul Masih has been lost in the traditions, and associated prophecies about the conquest of Constantinople have not been fulfilled. This suggests a possible error in understanding or narrating the original message.
    2. The speaker does not specify, instead he notes that two of the signs are fulfilled already and observable in the world.
    3. The speaker contends that if Jesus were to return before the Doomsday, this verse where he states he was not aware of the actions of his followers after he left would be nonsensical. He could not honestly claim ignorance of their behavior if he had just returned.
    4. The speaker argues that Surah Al-Imran comprehensively addresses the story of Jesus, including his death and the destiny of his followers until the Day of Judgment, without mentioning a second coming. This absence of a second coming suggests that it is not part of God’s plan.
    5. The speaker asserts that this declaration, made when there were very few followers, is itself a sign of the Doomsday as it confirms the continued triumph of his followers, an event which was impossible to predict at the time.
    6. The speaker argues that Allah’s promise to have Jesus’ followers prevail over his deniers until the Day of Judgment was declared roughly 2000 years ago when the believers were a small group, indicating the power and truth of this sign that has endured.
    7. The speaker references a surah where Allah declares that all will be brought before Him after the Day of Judgment, and in that context decisions will be made regarding all those who disagreed about Jesus, which according to the speaker, makes it nonsensical to state that Christ will descend again to judge.
    8. The speaker believes there was likely a misunderstanding or misinterpretation of the original messages, rather than the traditions being deliberate fabrications. He suggests that a different issue is at the root.
    9. The speaker interprets the Quran as stating Jesus will not return, arguing instead that specific Quranic verses detail his and his followers’ destiny until the Day of Judgment; the speaker thinks the view that Jesus will return relies on other sources, especially on traditions.
    10. The phrase “till the Day of Judgment” signifies the permanence and completion of the prophecies and promises made by God. If something is stated to last “till the Day of Judgment” there is no opportunity for a change of state, including a second coming of Jesus.

    Essay Questions

    Instructions: Answer each question in essay format.

    1. Analyze the speaker’s arguments against the tradition of Nazul Masih. How does he use logic and textual analysis to support his claims? Discuss the implications of these claims on traditional beliefs of a second coming of the Messiah.
    2. Compare and contrast the speaker’s interpretation of Quranic verses related to the Messiah with the more traditional interpretations. What specific verses does he utilize, and how does his reading of them differ from the conventional understanding?
    3. Discuss the significance of the phrase “till the Day of Judgment” in the speaker’s arguments. How does it relate to his overall interpretation of Quranic prophecies and beliefs about the End Times?
    4. Critically evaluate the speaker’s claim that the promise of followers of Jesus prevailing until the Day of Judgment is in itself a sign of the Doomsday. How compelling is this argument, and what are its strengths and weaknesses?
    5. How does the speaker’s analysis of the traditions of Nazul Masih reflect broader issues in the interpretation of religious texts? What does this text suggest about the challenges and possibilities inherent in engaging with religious authority?

    Glossary of Key Terms

    • Bismillah Rahman Rahim: The Islamic phrase “In the name of God, the Most Gracious, the Most Merciful.” It is often used to begin a speech, writing, or activity.
    • Sahih Muslim: A collection of hadith (sayings and actions of the Prophet Muhammad) considered to be highly authentic by Sunni Muslims.
    • Nazul Masih: The descent of the Messiah, a traditional Islamic belief regarding Jesus’s return to Earth before the Day of Judgment.
    • Rasulallah: A title referring to the Prophet Muhammad, meaning “Messenger of God.”
    • Jibal Ameen: The angel Gabriel, regarded in Islam as a highly respected messenger of God, particularly to the prophet Muhammad.
    • Doomsday (Yaum al-Qiyāmah): The Islamic belief in the end of the world and the Day of Judgment, when all will be resurrected and judged by God.
    • Zare Bais: Literally meaning “planted again,” used in the passage to refer to the act of worshipping others besides Allah.
    • Meezan: This means “balance” in Arabic, but as used in the context, it refers to a previous book by the speaker.
    • Surah Al-Imran: The third chapter (surah) of the Quran. It contains stories, laws and many moral lessons. In this passage, it is used as evidence to support the speaker’s argument.
    • Masih al-Salam: The Messiah (Jesus), may peace be upon him.
    • Fatah Qustu Tanaya: The conquest of Constantinople, a historical event with religious significance which is considered by some a sign of the end times.
    • Peshwe Goi: Prophecy or prediction, especially related to religious texts.

    Reinterpreting the Islamic Eschatology of the Messiah’s Descent

    Okay, here is a detailed briefing document reviewing the main themes and important ideas from the provided text.

    Briefing Document: Analysis of Excerpts on Doomsday Signs

    Date: October 26, 2023 Subject: Analysis of Islamic Texts Regarding the Signs of Doomsday, Specifically Focusing on the “Nazul Masih” (Descent of the Messiah) Source: Excerpts from “Pasted Text”

    Introduction

    This document analyzes excerpts from a discourse on the signs of Doomsday (Qiyamah) within Islamic eschatology, specifically focusing on the concept of the “Nazul Masih” (the descent of the Messiah, Jesus). The speaker engages critically with traditional interpretations, questioning the validity of certain Hadith (prophetic traditions) in light of the Quranic text. The core argument revolves around inconsistencies and a perceived lack of Quranic support for a second coming of Jesus.

    Main Themes and Key Ideas

    1. Critique of Hadith Narrations on Nazul Masih:
    • The speaker begins by examining Hadith number 2901 from Sahih Muslim, which deals with Doomsday signs, particularly the Nazul Masih.
    • He points out a key discrepancy: some narrators of the same prophetic gathering included the sign of Nazul Masih while others omitted it, mentioning a different sign instead. This discrepancy raises the question of which narration should be prioritized.
    • The speaker also highlights the loss of temporal context in Nazul Masih traditions. These traditions often link the descent of the Messiah with the conquest of Constantinople (Fatah Qustu Tanaya), which occurred in 1453. The failure of this link to materialize is presented as a reason to re-evaluate these traditions’ authenticity.
    • Quote: “I have said that in the traditions of Nazul Masih itself, the description of its time has been lost, that is, it has been told when it will happen and it has been told with great appreciation that this will be the day of Fatah Qustu Tanaya. If it happens immediately then it happened in 1453, now centuries have passed, nothing has happened regarding any Peshwe Goi…”
    1. Quranic Perspective on Jesus (Masih):
    • The speaker emphasizes the Quran’s perspective on Jesus, focusing on the conversation between Allah and Jesus on the Day of Judgment as described in the Quran. The speaker is referring to Surah Al-Ma’idah [5:116-118] where Allah asks Jesus if he instructed people to worship him and his mother. Jesus’ response shows that he only instructed people to worship Allah. The speaker uses this interaction to argue that a second coming of Jesus contradicts this Quranic account.
    • The speaker argues that if Jesus were to descend again, his testimony about his previous mission would be drastically different. If Jesus had returned recently, he wouldn’t say that he is unaware of his followers’ actions after he was raised up to heaven. He would say he has come back, warned them, and is aware of the misguidance they followed after he was taken up.
    • Quote: “Look at this, if Masih al-Salam has come to the world once again, then this last sentence is not relevant in any way…then he should say that I have come just a few days or a few months or some time before the doomsday and warmed their ears, I have done my duty… No, I don’t know what they were doing. I don’t know. There was no such thing in my time.”
    1. Surah Al-Imran and the Divine Verdict:
    • The discourse pivots to Surah Al-Imran (specifically verse 55) to further argue against a second coming.
    • The speaker contends that this verse, which discusses Allah’s plan for Jesus, does not mention a return before the Day of Judgment. The verse outlines a divine plan stating, “Indeed, I will take you and raise you to Myself, and purify you from those who disbelieve, and I will make those who follow you superior to those who disbelieve until the Day of Resurrection.”
    • He claims that if a return was intended, it would have been stated during this section discussing Allah’s decision about Masih, since that part covered everything about what was to happen with Jesus.
    • He argues that this verse emphasizes that the dominance of Jesus’s followers over his deniers is a sign that will remain until the day of judgment.
    • Quote: “I decided, Allah Ta’ala says, I decided, the feast was over, the community decided to kill them, on that occasion Allah Ta’ala was saying, I decided I have promised you that I will give you death, this is the first thing and I will take you towards myself and will purify you from these denies of yours or this is now a heap of filth, I will take you out from them and those who follow you i.e. those who will be born to believe in you. I will prevail over these denier till the Day of Judgment.”
    1. Reinterpretation of Doomsday Signs:
    • The speaker proposes a reinterpretation of the sign of Masih. According to the speaker, the very existence of Masih himself is a sign of Doomsday. The fact that his true followers will be victorious until the Day of Judgement is also a sign of the Doomsday. The speaker seems to imply that it’s a sign that has already taken effect.
    • The speaker argues that the Quran has explicitly stated what will happen until the Day of Judgement. Since it has been explained that his true followers will be victorious till the Day of Judgement, and then everyone is to return to Allah on the Day of Judgement, where matters will be decided, there is no space for a second coming.
    • Quote: “…see how big a sign this has become. The same has been said in another Surah that Masih is a sign of the Doomsday by his existence or you can see him whenever you want…”
    1. Rejection of Traditional Narratives and Potential Mistranslation:
    • The speaker posits that some hadith about the second coming of Jesus could be the result of mistaken interpretations or mistranslations of the Prophet’s words. He is also hinting that these hadith might have been manufactured.
    • Quote: “Then can it be said that has this tradition been made by someone or do they have some other issue and my view is that no, their issue is completely different, there has been a mistake in understanding it…”

    Conclusion:

    The speaker presents a critical perspective on the traditional Islamic belief in the second coming of Jesus (Nazul Masih). He argues that the Quran does not support this concept and that some Hadith narrations may be unreliable or misinterpreted. He emphasizes the Quranic account of Jesus’s message, the timeline of events described in Surah Al-Imran, and the sign of the victory of his followers until the Day of Judgement. The overall message seems to be a call for a deeper reliance on the Quran and a reevaluation of Hadith when discrepancies arise. The speaker seems to argue that the sign of Masih is not the idea that he will descend from the heavens, but the fact that he existed and that his true followers will be dominant till the Day of Judgement.

    Further Research:

    • In-depth analysis of the specific Hadith mentioned (Sahih Muslim 2901) and related narrations.
    • Comparative study of Quranic interpretations of Surah Al-Imran verse 55.
    • Research on historical debates regarding the second coming of Jesus within different Islamic traditions.

    This briefing document should provide a comprehensive overview of the ideas presented in the text. Let me know if you require any further clarification or analysis.

    Nazul Masih and the Signs of Doomsday

    The provided text discusses signs of Doomsday, particularly focusing on the sign of Nazul Masih (the descent of the Messiah) and its interpretation within Islamic tradition [1]. Here’s a breakdown of the key points:

    • The Sign of Nazul Masih: The text examines narrations about the return of the Messiah as a sign of Doomsday [1]. It points out that some narrations include this sign, while others from the same gathering do not, mentioning other signs instead [1]. This raises the question of which narration to prioritize [1].
    • Problems with the Nazul Masih Narrative:Time Discrepancy: The traditions of Nazul Masih have lost their time references [1]. It was said that the event would coincide with the “Fatah Qustu Tanaya” (Conquest of Constantinople), which happened in 1453 [1]. However, the Messiah’s return has not occurred, raising doubts about the accuracy of the time frame [1].
    • Quranic Perspective: The Quran does not accept the concept of the Messiah’s return in the way it is presented in some traditions [1]. Specifically, a verse from Surah Al-Imran (verse 55) is cited where Allah states that He will give Jesus death, take him towards Himself and purify him, and those who follow him will prevail until the Day of Judgment [1]. This verse is interpreted as a decision about the followers of Jesus until the Doomsday, with no mention of a return before that time [1].
    • The Messiah’s Testimony: The text argues that if the Messiah were to return, his testimony in the Quran would not make sense [1]. In the Quran, Jesus says that he was only a witness over his people while he was among them and that after his death, God was the watcher over them [1]. If the Messiah were to return before Doomsday, this last statement would not be relevant [1].
    • Other Signs of Doomsday: The text mentions other signs of Doomsday that have been fulfilled, as told by Rasulallah, indicating that those signs are more reliable [1]. It also points out that the Quran describes the actions that will happen until the Day of Judgment regarding Masih al-Salam [1]. This indicates there is no further action of the Messiah that will happen before the Day of Judgment [1].
    • Surah Al-Imran (Verse 55) analysis:
    • The verse from Surah Al-Imran discusses Allah’s decision regarding Hazrat Masih [1].
    • It states that Allah will cause Jesus to die, take him towards Himself and purify him [1].
    • It states that those who follow Jesus will prevail over the deniers until the Day of Judgment [1]. This decree is considered a sign of the Doomsday itself [1].
    • This verse indicates that the situation described in the verse will remain the same until the Day of Judgment [1].
    • Reinterpretation of Traditions: The text suggests that the traditions regarding the return of the Messiah might have been misunderstood [1]. The author argues that the issue lies not in the traditions themselves but in how they have been interpreted [1].

    In summary, the text critically analyzes the traditional understanding of the Messiah’s return as a sign of Doomsday [1]. It uses Quranic verses to argue that the Messiah will not return to Earth before the Day of Judgment, suggesting a different interpretation of the relevant traditions [1]. The text concludes by noting that this was explained in the Quran, and there is no room to think that the Messiah will come down from the sky to tell people about their mistakes and declare them [1].

    Nazul Masih: A Critical Islamic Reassessment

    The concept of Nazul Masih (the descent or return of the Messiah) as a sign of Doomsday is discussed in the provided text, with a focus on analyzing the traditional understanding of this sign within Islamic tradition [1].

    Here’s a breakdown of the key points regarding Nazul Masih’s sign, as explained in the text:

    • Conflicting Narrations: Some narrations about the signs of Doomsday include the return of the Messiah, while others, from the same gatherings, do not [1]. Instead, these other narrations mention different signs, raising questions about which narrations should be given more weight [1].
    • Time Discrepancy: The narrations of Nazul Masih are missing time references. It was said that the return of the Messiah would happen at the time of the “Fatah Qustu Tanaya” (Conquest of Constantinople), which took place in 1453 [1]. However, since the return of the Messiah did not occur, it raises doubts about the accuracy of this time frame [1].
    • Quranic Perspective: The text argues that the Quran does not support the concept of the Messiah’s return as it is described in some traditions [1].
    • Specifically, a verse from Surah Al-Imran (verse 55) is cited [1]. In this verse, Allah states that He will cause Jesus to die, take him towards Himself, and purify him. Furthermore, it states that those who follow Jesus will prevail over the deniers until the Day of Judgment [1].
    • This verse is interpreted as a decision about the followers of Jesus that will remain in effect until the Day of Judgment, with no mention of a return before that time [1].
    • The Messiah’s Testimony: The text argues that if the Messiah were to return, his testimony in the Quran would not make sense [1]. In the Quran, Jesus says that he was only a witness over his people while he was among them, and that after his death, God was the watcher over them [1]. The text argues that if the Messiah were to return before Doomsday, this statement wouldn’t be relevant [1].
    • Sign of Doomsday: The verse from Surah Al-Imran, in which Allah states that those who follow Jesus will prevail over the deniers until the Day of Judgment is itself described as a sign of Doomsday [1].
    • Reinterpretation of Traditions: The text suggests that the traditions about the return of the Messiah may have been misunderstood, and the problem is not with the traditions themselves, but with how they have been interpreted [1].
    • No Further Action: The Quran describes the actions that will happen until the Day of Judgment regarding Masih al-Salam and this indicates that there will be no further action of the Messiah that will occur before the Day of Judgment [1].

    In conclusion, the text critically examines the traditional understanding of Nazul Masih as a sign of Doomsday, using Quranic verses to suggest that the Messiah will not return to Earth before the Day of Judgment. It presents an alternative understanding of the relevant traditions and verses, and suggests there is no room for the belief that the Messiah will come down from the sky to correct people before the Day of Judgment [1].

    Nazul Masih and the Day of Judgment

    The provided text focuses on specific Quranic verses, particularly Surah Al-Imran, verse 55, to interpret the sign of Nazul Masih (the descent of the Messiah) and its relation to the Day of Judgment [1]. Here’s a breakdown of the relevant Quranic verses and their interpretations as discussed in the source:

    • Surah Al-Imran (Verse 55): This verse is central to the argument presented in the text [1]. It discusses Allah’s decision regarding Hazrat Masih (Jesus).
    • The verse states that Allah decided to give Jesus death (“I will give you death”), take him towards Himself (“I will take you towards myself”), and purify him (“will purify you from these denies of yours”) [1].
    • It also states that those who follow Jesus will prevail over the deniers until the Day of Judgment [1].
    • The text interprets this verse as a declaration about the state of Jesus and his followers that will remain in effect until the Day of Judgment [1]. This is seen as a sign of the Doomsday itself, indicating that the situation described in this verse will not change [1].
    • The text emphasizes the finality of the statement by Allah, specifically that the followers of Jesus will prevail until the day of judgment [1].
    • Implications for the Nazul Masih: The text uses this verse to argue against the traditional understanding of Nazul Masih, the return of Jesus before the Day of Judgment [1].
    • The author argues that the verse from Surah Al-Imran describes what will happen to Jesus and his followers until the Day of Judgment and this decree is conclusive [1].
    • The text argues that this verse makes no mention of a return of Jesus to Earth before the Day of Judgment and no further action that the Messiah will take before the Day of Judgment [1].
    • Therefore, the text suggests that the traditional belief that Jesus will return to Earth to correct people and punish them is not supported by this Quranic verse [1].
    • The text states that there is no room to think that the Messiah will come down from the sky to tell people about their mistakes and declare them because the entire matter has been explained in the Quran [1].
    • Significance of the Quranic description: The text highlights that the Quran has described the actions to be brought about until the Doomsday regarding Masih al-Salam and that was the opportunity to praise the words until the doomsday [1].
    • The author states that when Allah is describing the things that are going to happen to Jesus and his followers until the day of judgement, this was an opportunity to state if Jesus would be sent again before the Day of Judgment. Since that was not included, there is no basis to argue that Jesus will be sent again before the day of judgment [1].

    In summary, the text uses Quranic verses, especially Surah Al-Imran verse 55, to argue against the traditional interpretation of the Messiah’s return before the Day of Judgment. The author interprets the verse as a final decree regarding the fate of Jesus and his followers that remains in effect until the Day of Judgment, with no mention of a return to Earth. This interpretation challenges the traditional Islamic view of Nazul Masih as a sign of Doomsday and presents a different perspective based on these specific verses.

    The Messiah and the Day of Judgment in Islam

    The text discusses Masih al-Salam (the Messiah, peace be upon him), primarily in the context of his role as a sign of Doomsday and how that role is understood in Islam [1]. The text uses Quranic verses, especially Surah Al-Imran, verse 55, to argue against the traditional interpretation of the Messiah’s return before the Day of Judgment [1].

    Here’s a breakdown of the key points regarding Masih al-Salam, as presented in the text:

    • Traditional View of Nazul Masih: Some traditions suggest that the return of Masih al-Salam (Nazul Masih) is a sign of the approach of Doomsday [1]. This return is traditionally understood as the Messiah coming back to Earth to correct people and punish those who are misguided [1].
    • Quranic Perspective: The text challenges the traditional view of Nazul Masih, using Surah Al-Imran, verse 55, as its main argument [1].
    • This verse states that Allah decided to give Jesus death, take him towards Himself, and purify him. It also states that those who follow Jesus will prevail over the deniers until the Day of Judgment [1].
    • The text interprets this verse as a final decree about the fate of Jesus and his followers, which will remain in effect until the Day of Judgment. This decree is seen as a sign of the Doomsday itself [1].
    • The text emphasizes that because this verse describes what will happen until the Day of Judgment, and does not mention a return of the Messiah before that time, there is no basis to argue that the Messiah will return to Earth before the Day of Judgment [1].
    • Masih’s Testimony in the Quran: The text argues that if Masih al-Salam were to return to Earth before the Day of Judgment, his testimony in the Quran would not make sense. The text notes that in the Quran, Jesus states that he was only a witness over his people while he was among them and that after his death, God was the watcher over them [1]. If he were to return before the Day of Judgment, the text argues, this statement would be irrelevant [1].
    • No Further Action: The text states that the Quran describes the actions that will happen until the Day of Judgment regarding Masih al-Salam, and this indicates that there will be no further action of the Messiah that will occur before the Day of Judgment [1]. The author argues that when Allah is describing the things that are going to happen to Jesus and his followers until the day of judgment, this was an opportunity to state if Jesus would be sent again before the Day of Judgment. Since that was not included, there is no basis to argue that Jesus will be sent again before the day of judgment [1].
    • Reinterpretation of Traditions: The text suggests that the traditions about the return of the Messiah may have been misunderstood. It argues that the issue lies not in the traditions themselves but in how they have been interpreted [1].

    In conclusion, the text presents a view of Masih al-Salam that is different from traditional understandings. It argues, based on the interpretation of specific Quranic verses, that the Messiah will not return to Earth before the Day of Judgment [1]. Instead, the text highlights the Quranic description of the fate of Jesus and his followers until the Day of Judgment as the relevant sign of the Doomsday regarding the Messiah [1].

    Nazul Masih and the Quranic Sign of Doomsday

    The text discusses the signs of Doomsday, particularly focusing on the sign of Nazul Masih (the return of the Messiah) and how it relates to the Quranic understanding of the Day of Judgment [1].

    Here’s a breakdown of the key points regarding the arrival of Doomsday as discussed in the text:

    • Signs of Doomsday: The text begins by mentioning that it is studying narrations about the signs of Doomsday [1]. It specifically addresses the sign of Nazul Masih, which is the return of the Messiah, and notes that there are differing narrations about this sign [1].
    • Some narrations include the return of the Messiah as a sign of Doomsday, while others from the same gatherings do not, mentioning different signs instead [1].
    • This raises a question as to which narrations should be given preference [1].
    • Time Discrepancy: The text points out that the traditional understanding of Nazul Masih is linked to a specific time, the “Fatah Qustu Tanaya” (Conquest of Constantinople), which occurred in 1453. However, the return of the Messiah did not happen at that time, leading to doubts about the accuracy of the time frame mentioned in these narrations [1].
    • It is argued that it is not possible for the Prophet of Allah to fix a time for an event that does not come to pass [1].
    • Quranic Perspective on Doomsday: The text then presents an alternative perspective based on the Quran, specifically focusing on Surah Al-Imran, verse 55 [1].
    • This verse is interpreted as a declaration by Allah about the fate of Jesus and his followers, which will remain in effect until the Day of Judgment [1].
    • The verse states that Allah decided to give Jesus death, take him towards Himself, and purify him and that those who follow Jesus will prevail over the deniers until the Day of Judgment [1].
    • The text argues that the fact that the followers of Jesus will prevail until the Day of Judgment is itself a sign of the Doomsday [1].
    • Reinterpretation of Traditions: The text suggests that the traditions about the return of the Messiah may have been misunderstood, and the problem is not with the traditions themselves, but with how they have been interpreted [1]. The author emphasizes the importance of critically analyzing the narrations of the signs of Doomsday, and comparing them with the teachings of the Quran [1].
    • Masih al-Salam as a sign: According to the text, the Quranic description of the fate of Masih al-Salam and his followers is a sign of Doomsday [1].
    • The text argues that since the Quran describes the actions that will happen until the Day of Judgment regarding Masih al-Salam, and it makes no mention of a return of the Messiah before that time, the Messiah will not return to Earth before the Day of Judgment [1].
    • The text also notes that if the Messiah were to return, some of his statements in the Quran would not make sense, particularly the statement where he says he was a witness over his people only while he was among them [1].

    In summary, the text discusses the traditional understanding of Nazul Masih as a sign of Doomsday, but argues for a different perspective based on Quranic verses, particularly Surah Al-Imran, verse 55 [1]. It presents the Quranic description of the fate of Jesus and his followers until the Day of Judgment as the relevant sign of the Doomsday regarding the Messiah [1]. The text suggests that the traditional interpretation of the Messiah’s return before the Day of Judgment is not supported by the Quran and is the result of a misunderstanding of the relevant traditions [1].

    Nazul Masih: A Quranic Reinterpretation

    Okay, here is a Frequently Asked Questions (FAQ) based on the information in the sources and our conversation history about the signs of Doomsday, the Messiah (Masih al-Salam), and Quranic interpretations:

    Q: What are the signs of Doomsday according to the sources?

    • The sources discuss various signs of Doomsday, with a particular focus on the sign of Nazul Masih, which is the return of the Messiah [1].
    • Some traditions mention the return of the Messiah as a sign, while others mention different signs [1]. The text highlights a discrepancy in the narrations, questioning which ones should be given preference [1].
    • The text argues that the prevailing of the followers of Jesus until the Day of Judgment as mentioned in Surah Al-Imran, verse 55, is a sign of Doomsday itself [1].

    Q: What is Nazul Masih?

    • Nazul Masih refers to the traditional Islamic belief in the return of the Messiah (Masih al-Salam) to Earth before the Day of Judgment [1].
    • It is traditionally understood that the Messiah will return to correct people, punish the misguided, and declare the truth before the Day of Judgement [1].

    Q: What is the Quranic perspective on the return of the Messiah (Nazul Masih)?

    • The text presents an interpretation of the Quran, particularly Surah Al-Imran, verse 55, which argues against the traditional understanding of Nazul Masih [1].
    • Surah Al-Imran, verse 55 states that Allah decided to give Jesus death, take him towards Himself, and purify him, and that those who follow Jesus will prevail over the deniers until the Day of Judgment [1].
    • The text interprets this verse as a final decree about the fate of Jesus and his followers, which will remain in effect until the Day of Judgment. This decree is seen as a sign of the Doomsday itself [1].
    • The text emphasizes that since the Quran describes what will happen until the Day of Judgment, and does not mention a return of the Messiah before that time, there is no basis to argue that the Messiah will return before the Day of Judgment [1].

    Q: How does the Quranic perspective challenge traditional views of Nazul Masih?

    • The text challenges the traditional view that the Messiah will return to Earth before the Day of Judgment [1].
    • The author argues that the Quranic description of the fate of Jesus and his followers until the Day of Judgment is conclusive and does not allow for a return of the Messiah before that time [1].
    • It is argued that the traditional understanding of the return of the Messiah is not supported by the Quran, and is a misunderstanding of the relevant traditions [1].

    Q: What is the significance of Surah Al-Imran, verse 55, in this context?

    • Surah Al-Imran, verse 55 is central to the argument presented in the text [1].
    • It is interpreted as a declaration by Allah regarding the fate of Jesus and his followers, which will remain in effect until the Day of Judgment [1].
    • This verse is seen as a sign of the Doomsday itself because it describes the situation that will continue until that time [1].
    • The text notes that the verse makes no mention of a return of the Messiah before the Day of Judgment and the author emphasizes that the Quran could have mentioned that the Messiah would return if that were the case [1].

    Q: What does the text say about the Messiah’s (Masih al-Salam) role and testimony in the Quran?

    • The text argues that if Masih al-Salam were to return to Earth before the Day of Judgment, some of his statements in the Quran would not make sense [1].
    • Specifically, the text points to the statement in the Quran where Jesus says he was a witness over his people only while he was among them, and that after his death, God was the watcher over them [1]. The text argues that this statement would be irrelevant if he were to return before the Day of Judgment [1].

    Q: Does the text completely reject the traditions about the return of the Messiah?

    • The text suggests that the traditions about the return of the Messiah may have been misunderstood [1].
    • It argues that the issue lies not in the traditions themselves but in how they have been interpreted [1].
    • The text emphasizes the importance of critically analyzing the narrations of the signs of Doomsday, and comparing them with the teachings of the Quran [1].

    Q: What is the relationship between the conquest of Constantinople and the return of the Messiah?

    • Some traditions link the return of the Messiah to a specific time, the “Fatah Qustu Tanaya” (Conquest of Constantinople), which occurred in 1453 [1].
    • However, the Messiah did not return at that time, leading to doubts about the accuracy of the time frame mentioned in those narrations [1]. The author argues that it is not possible for the Prophet to fix a time for an event that does not come to pass [1].

    Doomsday, the Messiah, and the Quran

    Based on the provided sources, here is a timeline of events related to the signs of Doomsday and the Messiah (Masih al-Salam), with a focus on how the sources interpret these events:

    • Prophet’s Time: The Prophet Muhammad is asked about the signs of the approach of Doomsday [1]. He provides two signs that the text says have been fulfilled, however the source doesn’t state what those signs are [1].
    • Traditional Understanding of Nazul Masih: Narrations about the signs of Doomsday include the sign of Nazul Masih, which is the return of the Messiah [1].
    • Some narrations link the return of the Messiah to the “Fatah Qustu Tanaya” (Conquest of Constantinople) [1].
    • The Conquest of Constantinople occurred in 1453, but the Messiah did not return at this time [1].
    • This discrepancy leads to questioning of the traditional understanding of Nazul Masih and the accuracy of the narrations that mention it [1].
    • Quranic Perspective: The text introduces a different perspective based on the Quran, particularly Surah Al-Imran, verse 55 [1].
    • Surah Al-Imran, verse 55 states that Allah decided to give Jesus death, take him towards Himself, and purify him, and that those who follow Jesus will prevail over the deniers until the Day of Judgment [1].
    • This verse is interpreted as a final decree about the fate of Jesus and his followers that will remain in effect until the Day of Judgment [1].
    • The text argues that the prevailing of the followers of Jesus until the Day of Judgment is a sign of the Doomsday itself [1].
    • Reinterpretation of Traditions: The text suggests that the traditions about the return of the Messiah may have been misunderstood [1].
    • The author emphasizes the importance of critically analyzing the narrations of the signs of Doomsday, and comparing them with the teachings of the Quran [1].
    • The text argues that since the Quran describes the actions that will happen until the Day of Judgment regarding Masih al-Salam, and it makes no mention of a return of the Messiah before that time, the Messiah will not return to Earth before the Day of Judgment [1].
    • The text also notes that if the Messiah were to return, some of his statements in the Quran would not make sense, particularly the statement where he says he was a witness over his people only while he was among them [1].
    • The Day of Judgment: According to the Quranic interpretation in the text, the situation described in Surah Al-Imran, verse 55, will continue until the Day of Judgment [1]. At this time, Allah will decide about the different things among all the followers [1].

    In summary, the timeline presented in the text shifts the focus from a future return of the Messiah before the Day of Judgment to an interpretation of Quranic verses that describes the existing situation as the relevant sign of Doomsday [1].

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • Riyadh Newspaper, March 30, 2025: Eid-ul-Fitr, Vision 2030, Regional Conflicts, Energy Markets

    Riyadh Newspaper, March 30, 2025: Eid-ul-Fitr, Vision 2030, Regional Conflicts, Energy Markets

    The provided Arabic news articles and English translations cover a range of topics. One major focus is on Saudi Arabia’s Vision 2030, detailing efforts to enhance services for pilgrims, develop the tourism sector, and celebrate cultural events like Eid al-Fitr. Another significant theme is regional conflict, reporting on Israeli strikes in Lebanon and the ongoing impact of conflict in Gaza, as well as political developments in Syria and South Sudan. Energy markets are also discussed, with articles analyzing oil price fluctuations, OPEC+ production plans, and natural gas market trends. Finally, social and cultural commentary appears, addressing topics like dialogue ethics, consumer debt in Saudi Arabia, and the importance of Eid traditions.

    Pilgrimage, Tourism, and Regional Events: A Study Guide

    Quiz

    Answer the following questions in 2-3 sentences each.

    1. According to the article, what is a key goal of Saudi Arabia’s Vision 2030 regarding the number of Umrah and Hajj pilgrims?
    2. The article mentions the “Guest of Rahman Program.” What are the three main strategic goals of this program as part of Vision 2030?
    3. Beyond the increase in pilgrim numbers, what other aspect of their experience does Saudi Arabia aim to enrich?
    4. What recent event in Lebanon is mentioned in the article, and why is it considered significant?
    5. According to the report from Gaza, what is the approximate total number of Palestinian deaths reported since the beginning of the Israeli offensive in October 2023?
    6. Who was recently appointed as the Grand Mufti of Syria, and what is mentioned about his past stance?
    7. What is the King Salman Project for Riyadh City aiming to provide for citizens, and what are some of the conditions attached?
    8. The article highlights the large number of worshippers at the Masjid al-Haram during the last nights of Ramadan. What specific preparations and services were provided to accommodate them?
    9. What is the main argument presented in the opinion piece titled “Innovation: The Lever of the Economy”?
    10. What key development project is mentioned in the article as a major step in transforming Tarout Island into a sustainable tourism and cultural hub?

    Quiz Answer Key

    1. Saudi Arabia’s Vision 2030 aims to increase the number of Umrah and Hajj pilgrims to 30 million by the year 2030. The article notes that significant progress has already been made towards achieving this ambitious goal.
    2. The three main strategic goals of the Guest of Rahman Program are to facilitate access to the Two Holy Mosques, provide distinguished hospitality to pilgrims, and offer high-quality services while enriching their religious and cultural experience.
    3. Beyond increasing the number of visitors, Saudi Arabia is keen on enriching the religious and cultural experience of the pilgrims visiting the holy sites. This includes promoting the values of moderation, tolerance, and balance.
    4. The article mentions the first Israeli airstrike on the southern suburb of Beirut since the cessation of hostilities between Israel and Hezbollah in November. This event is significant as it breaks the relative calm that had been in place.
    5. According to the Ministry of Health in Gaza, the total number of Palestinian deaths since the beginning of the Israeli offensive in October 2023 had reached 50,277 by March 18, 2025, along with 114,095 injuries.
    6. Sheikh Osama al-Rifai was recently appointed as the Grand Mufti of Syria. The article notes that he was a prominent opposition figure against President Bashar al-Assad and had been critical of the regime since the 2011 protests.
    7. The King Salman Project for Riyadh City aims to provide residential land plots to citizens, ranging from 10,000 to 40,000 plots annually. Conditions include no prior real estate ownership by the applicant and restrictions on disposal, mortgaging, leasing, or selling for 10 years (except for mortgages for construction financing).
    8. During the last nights of Ramadan, over two and a half million worshippers attended the Masjid al-Haram. Authorities doubled efforts, assigned qualified staff to organize spaces, operated around the clock with 3,500 workers for cleaning, and ensured the readiness of facilities, safety systems, and emergency plans.
    9. The opinion piece “Innovation: The Lever of the Economy” argues that innovation, encompassing the generation of ideas and their transformation into solutions, products, and services, is the main driver for effective development, especially when coupled with conscious investment in technology, talent, and research.
    10. The project to develop Darin and Tarout Islands, announced in October 2022 with a budget of 2.64 billion riyals, is highlighted as a pivotal step in transforming the islands into a sustainable tourism and cultural attraction center.

    Essay Format Questions

    1. Analyze the interconnectedness between Saudi Arabia’s efforts to enhance the experience of pilgrims to the Two Holy Mosques and its broader Vision 2030 goals for tourism and economic diversification.
    2. Discuss the regional implications of the conflicts and political developments reported in the provided excerpts from Lebanon, Gaza, and Syria, considering their potential impact on stability and international relations.
    3. Evaluate the significance of innovation and cultural heritage in the context of Saudi Arabia’s economic and social transformation, drawing evidence from the articles on tourism and economic development.
    4. Critically examine the human cost of the Israeli-Palestinian conflict as depicted in the provided reports from Gaza and the West Bank, and discuss the challenges in achieving a lasting resolution.
    5. Based on the various news items, analyze the key domestic and foreign policy priorities that appear to be shaping Saudi Arabia’s actions and initiatives in the region and beyond.

    Glossary of Key Terms

    • Two Holy Mosques (الحرمين الشريفين – Al-Ḥaramayn al-Sharīfayn): Refers to the two most sacred mosques in Islam: the Masjid al-Haram in Mecca and Al-Masjid an-Nabawi in Medina.
    • Vision 2030 (رؤية 2030 – Ruʼyah 2030): Saudi Arabia’s ambitious strategic framework launched to reduce the kingdom’s reliance on oil, diversify its economy, and develop public service sectors such as health, education, infrastructure, recreation, and tourism.
    • Guest of Rahman Program (برنامج خدمة ضيوف الرحمن – Barnāmaj Khidmah Ḍuyūf al-Raḥmān): An initiative under Vision 2030 focused on enhancing the experience of Hajj and Umrah pilgrims through improved services and enriched cultural and religious experiences.
    • Umrah (عمرة): A voluntary Islamic pilgrimage to Mecca that can be undertaken at any time of the year, distinct from the mandatory Hajj.
    • Hajj (حج): The annual Islamic pilgrimage to Mecca, one of the five pillars of Islam, which all able-bodied Muslims who can afford to do so are obliged to perform at least once in their lifetime.
    • Grand Mufti (مفتي عام – Muftī ʿĀmm): The highest religious legal authority in a Sunni Muslim state, responsible for issuing religious edicts and guidance.
    • Cessation of Hostilities (وقف إطلاق النار – Waqf ʾIṭlāq al-Nār): A formal agreement to stop fighting.
    • Airstrike (غارة جوية – Ghārah Jawwīyah): An attack by military aircraft.
    • Residential Land Plots (أراض سكنية – Arāḍī Sakanīyah): Parcels of land designated for building homes.
    • Masjid al-Haram (المسجد الحرام): The Great Mosque of Mecca, the holiest site in Islam, which surrounds the Kaaba.
    • Innovation (ابتكار – Ibtikār): The creation of new ideas, methods, products, or services.
    • Cultural Heritage (تراث ثقافي – Turāth Thaqāfī): The legacy of physical artifacts and intangible attributes of a group or society that are inherited from past generations, maintained in the present, and bestowed for the benefit of future generations.
    • Tourism Hub (مركز جذب سياحي – Markaz Jadhb Siyāḥī): A central point or area that attracts a significant number of tourists due to its attractions, facilities, and accessibility.
    • Economic Diversification (تنويع اقتصادي – Tanwīʿ Iqtiṣādī): The process of shifting an economy away from a single income source toward multiple sources from a growing range of sectors and markets.
    • Internally Displaced Persons (IDPs) (نازحون – Nāziḥūn): People who have been forced to leave their homes but remain within their country’s borders.

    Briefing Document: Analysis of Provided News Sources

    Sources: Excerpts from “20727.pdf” (Al-Riyadh Newspaper, Issue 20727, March 30, 2025)

    Overview:

    This briefing document summarizes the main themes and important information presented in the provided excerpts from Al-Riyadh newspaper, issue 20727, dated March 30, 2025. The articles cover a range of topics including Saudi Arabia’s focus on serving pilgrims, developments in the tourism sector, international relations and conflicts (Lebanon, Gaza, Syria), economic news (oil prices, gas markets), and various social and cultural aspects within Saudi Arabia and the wider region.

    Main Themes and Important Ideas/Facts:

    1. Saudi Arabia’s Commitment to Serving Pilgrims:

    • Vision 2030 and Pilgrim Services: The excerpts highlight the Kingdom’s dedication to serving pilgrims and enriching their religious and cultural experience. This is directly linked to the goals of Vision 2030, which aims to attract 30 million pilgrims and Umrah performers annually by 2030.
    • “وبالحديث عن خدمة الحجاج والمعتمرين والزوار، لا يمكن تجاهل برنامج خدمة ضيوف الرحمن الذي جاءت به رؤية 2030 بأهدافه الثلاثة، وهي: الوصول إلى الحرمين وتسهيل المعتمرين، واستضافة شريفين، وتقديم خدمات ذات جودة عالية وإثراء التجربة الدينية والثقافية لضيوف الرحمن.”
    • (Translation: Speaking of the service of pilgrims, Umrah performers, and visitors, one cannot ignore the Guest of Al-Rahman Service Program brought by Vision 2030 with its three objectives: Access to the Two Holy Mosques and facilitating the pilgrims, hosting the honorable ones, and providing high-quality services and enriching the religious and cultural experience for the Guests of Al-Rahman.)
    • Crown Prince’s Dedication: The Crown Prince’s personal attention to upgrading services for the Two Holy Mosques and their visitors is noted.
    • “ويعتبر وصول سمو ولي العهد إلى مكة المكرمة ووقوفه على اهتمام امتدادًا لاهتمام خادم الحرمين الشريفين بخدمة قاصديهما وإثراء تجربتهم الدينية في الأراضي المقدسة…”
    • (Translation: The arrival of His Highness the Crown Prince to Makkah Al-Mukarramah and his personal attention are considered an extension of the Custodian of the Two Holy Mosques’ attention to serving their visitors and enriching their religious experience in the holy lands…)
    • Appreciation for Saudi Efforts: The efforts of the Kingdom in serving the Two Holy Mosques are recognized and respected by Islamic countries and organizations, as well as by the pilgrims themselves.
    • “وتبقى جهود المملكة في خدمة الحرمين الشريفين محل تقدير واحترام من دول العالم الإسلامية، والمنظمات الإسلامية، وكذا من ضيوف الرحمن أنفسهم، الذين يوجهون الشكر والتقدير إلى قيادة…”
    • (Translation: The Kingdom’s efforts in serving the Two Holy Mosques remain a subject of appreciation and respect from Islamic countries, Islamic organizations, as well as from the Guests of Al-Rahman themselves, who extend their thanks and appreciation to the leadership…)
    • Eid al-Fitr Message: A message from the Custodian of the Two Holy Mosques, King Salman bin Abdulaziz Al Saud, emphasizes the meanings of unity, compassion, and fraternity on Eid al-Fitr.
    • “# خادم الحرمين: عيد الفطر يوم فرح وسرور تتجلى فيه معاني الوحدة والتراحم والإخاء”
    • (Translation: Custodian of the Two Holy Mosques: Eid al-Fitr is a day of joy and happiness in which the meanings of unity, compassion, and fraternity are manifested.)

    2. Developments in the Saudi Tourism Sector:

    • Significant Growth: The Saudi tourism sector is experiencing annual growth, attributed to major economic and developmental transformations led by the Crown Prince.
    • “المملكة تحقق ارتفاعًا عامًا بعد عام، إذ تشير الأرقام السياحية إلى تعزز القطاع السياحي من تحقيق ارتفاعات متتالية، سجل عام 2023 نموًا ملحوظًا بفضل الاستفادة من التحولات الاقتصادية والتنموية، التي قادها صاحب السمو الملكي ولي العهد الأمين محمد بن سلمان بن عبد العزيز آل سعود -حفظه الله- منذ ثمانية أعوام.”
    • (Translation: The Kingdom is achieving an annual increase, as tourism figures indicate the strengthening of the tourism sector from achieving successive increases. The year 2023 recorded significant growth thanks to benefiting from the economic and developmental transformations led by His Royal Highness the Crown Prince Muhammad bin Salman bin Abdulaziz Al Saud – may Allah protect him – since eight years.)
    • Increased Tourist Numbers: The number of tourists in the Kingdom reached 109 million in 2023, including 27.4 million inbound tourists.
    • “وارتفع عدد السياح في المملكة إلى 109 مليون سائح، بينهم 27.4 مليون سائح وافد و81.9 مليون سائح محلي…”
    • (Translation: The number of tourists in the Kingdom rose to 109 million tourists, including 27.4 million inbound tourists and 81.9 million domestic tourists…)
    • Vision 2030 Impact: This tourism surge is a direct result of ongoing reforms and development projects aimed at enhancing the Kingdom’s attractiveness, including developing tourist destinations, preserving heritage, and improving infrastructure.
    • “وتأتي هذه القفزة السياحية ضمن رؤية 2030 كنتيجة مباشرة للإصلاحات المستمرة، والمشاريع الكبرى التي تهدف إلى تطوير الوجهات السياحية وتنمية التراثية، وتحسين البنية التحتية الداعمة للقطاع.”
    • (Translation: This tourism leap comes within Vision 2030 as a direct result of ongoing reforms and major projects aimed at developing tourist destinations, developing heritage sites, and improving the supporting infrastructure for the sector.)
    • Importance of Public Decorum: Maintaining public decorum is considered crucial for enhancing the tourism experience and reflecting the values of respect and awareness.
    • “وفي ظل “رؤية 2030″، بات تحسين الذوق العام عنصرًا مهمًا عن أي وقت مضى وجعلها تجربة أكثر راحة وجاذبية للسياح سواء من الأجانب والمواطنين المحليين…”
    • (Translation: Under “Vision 2030,” improving public decorum has become a more important element than ever before, making it a more comfortable and attractive experience for tourists, whether foreigners or local citizens…)
    • Island Development: Projects like the development of Darin and Tarout Islands are highlighted as pivotal steps in transforming these areas into sustainable tourist and cultural hubs.
    • “وأشار العمدة إلى أن مشروع تطوير جزيرة دارين وتاروت، الذي أُعلن عنه في أكتوبر 2022 بميزانية 2.64 مليار ريال، يمثل خطوة محورية في تحويل الجزيرة إلى مركز جذب سياحي وثقافي مستدام…”
    • (Translation: The Mayor pointed out that the Darin and Tarout Islands development project, announced in October 2022 with a budget of 2.64 billion riyals, represents a pivotal step in transforming the island into a sustainable tourist and cultural attraction center…)

    3. International Relations and Conflicts:

    • Lebanon-Israel Tensions: The first Israeli airstrike on the southern suburb of Beirut since the November ceasefire between Israel and Hezbollah is reported.
    • “# لبنان: أول غارة إسرائيلية على الضاحية منذ وقف إطلاق النار”
    • (Translation: Lebanon: First Israeli airstrike on the suburb since the ceasefire.)
    • Gaza Conflict: The ongoing Israeli offensive in Gaza continues, with a reported death toll of 50,277 martyrs and 114,095 injuries since October 2023.
    • “# غزة: حصيلة العدوان الإسرائيلي 50,277 شهيدًا و114,095 إصابة”
    • (Translation: Gaza: Toll of the Israeli aggression: 50,277 martyrs and 114,095 injuries.)
    • The report details continued Israeli shelling and destruction in various areas of the Gaza Strip.
    • Syria – Appointment of a New Mufti: President Bashar al-Assad appointed Sheikh Osama al-Rifai as the new Grand Mufti of Syria, replacing the previous one who was dismissed. Al-Rifai is known for his opposition to the Assad regime and his moderate religious discourse.
    • “# سورية: تعيين الشيخ الرفاعي مفتيًا عامًا”
    • (Translation: Syria: Appointment of Sheikh al-Rifai as Grand Mufti.)
    • The US Embassy in Syria issued a warning to its citizens about the increased risk of attacks during Eid al-Fitr.
    • Iraq-Jordan Relations: Iraq requested the relocation of its World Cup qualifier match against Jordan to a neutral venue or to be played without spectators due to alleged hostile events and racist chants during a recent Iraq-Palestine match in Amman.
    • “# العراق يطلب نقل مباراته مع الأردن ألرض محايدة”
    • (Translation: Iraq requests to move its match with Jordan to neutral ground.)
    • South Sudan Peace Agreement: While not directly a conflict report in the traditional sense of ongoing fighting, the article mentions the commitment to the 2018 peace agreement in South Sudan despite political tensions and allegations of hindering its implementation.
    • The UN Secretary-General António Guterres urged South Sudanese leaders to prioritize the peace agreement, recalling the devastating civil wars of 2013 and 2016.

    4. Economic News:

    • Oil Market Fluctuations: Oil prices declined amid recession fears, despite recording three consecutive weekly gains. OPEC+ is preparing to begin its program of monthly oil production increases in April.
    • “# النفط يتراجع وسط مخاوف الركود رغم تسجيله ثالث مكاسب أسبوعية متتالية أوبك+ تتأهب لبدء برنامجها للزيادات الشهرية في إنتاج النفط في أبريل”
    • (Translation: Oil retreats amid recession fears despite recording three consecutive weekly gains; OPEC+ prepares to begin its program of monthly increases in oil production in April.)
    • The article discusses factors influencing oil prices, including potential US tariffs, OPEC+ production plans, and US crude oil inventories.
    • Natural Gas Market: Liquefied natural gas (LNG) spot prices in Asia reached their lowest level in about six months due to weak demand in China and Japan. However, support is expected from rising European demand.
    • “# أسعار الغاز المسال في آسيا عند أدنى مستوى في ستة أشهر وسط ضعف الطلب الصيني”
    • (Translation: Liquefied natural gas prices in Asia at their lowest level in six months amid weak Chinese demand.)
    • The long-term global demand for LNG is projected to rise significantly by 2040.
    • Saudi Central Bank Initiatives: The Saudi Central Bank has taken initiatives to regulate consumer lending and address the high levels of personal debt.
    • The “Responsible Financing Initiative” aims to control the randomness in financing operations for individuals.

    5. Social and Cultural Aspects:

    • Eid al-Fitr Celebrations and Traditions: The anticipation and joy surrounding Eid al-Fitr in Saudi Arabia are described, including traditional customs like “Hawamah” and the preparation of special dishes.
    • “Ithraa” Center’s Role: The King Abdulaziz Center for World Culture (“Ithraa”) in Dhahran is highlighted for its diverse cultural activities and its role in fostering creativity, learning, and community engagement.
    • “في عصر التكنولوجيا والتحول الرقمي، تأتي “إثراء” كواحدة من أعظم المبادرات الخيرية التي أطلقتها المملكة العربية السعودية، لتجسد التزامها بدعم الشرائح المحتاجة وتعزيز العمل الخيري بأسلوب شفاف ومنظم.”
    • (Translation: In the era of technology and digital transformation, “Ithraa” comes as one of the greatest charitable initiatives launched by the Kingdom of Saudi Arabia, embodying its commitment to supporting needy segments and promoting charitable work in a transparent and organized manner.)
    • Importance of Innovation in Economy: An opinion piece emphasizes the crucial role of innovation in driving economic growth and sustainability.
    • “# الابتكار رافعة الاقتصاد”
    • (Translation: Innovation is the lever of the economy.)
    • Critique of Dogmatism in Intellectual Discourse: An article discusses the role of a critic, emphasizing analysis and understanding over forceful persuasion, drawing on Islamic principles of non-compulsion in belief.
    • Debt and its Social Implications: An article explores the historical and contemporary issues surrounding debt, its impact on individuals and societies, and the emergence of movements advocating for “debt justice.”

    Conclusion:

    These excerpts from Al-Riyadh newspaper provide a snapshot of various significant events and ongoing trends in Saudi Arabia and the wider Middle East region as of March 30, 2025. Key themes include Saudi Arabia’s unwavering commitment to serving pilgrims and developing its tourism sector under Vision 2030, persistent geopolitical tensions and conflicts in the region, fluctuations in global energy markets, and ongoing social and cultural discussions within the Kingdom. The articles collectively paint a picture of a dynamic region grappling with both opportunities for growth and persistent challenges.

    Saudi Arabia: Serving Pilgrims and Vision 2030 Tourism Goals

    Frequently Asked Questions

    1. What are the primary goals of Saudi Arabia concerning the Two Holy Mosques and their visitors, as highlighted in the text? Saudi Arabia, under the leadership of King Salman and Crown Prince Mohammed bin Salman, prioritizes serving the Two Holy Mosques (Makkah and Madinah) and their visitors. The main goals include ensuring the comfort and enriching the religious experience of pilgrims and Umrah performers. This involves providing high-quality services, promoting the message of moderation, tolerance, and balance emanating from the Two Holy Mosques to the world, and showcasing the noble message of Islam.
    2. What is the “Guest of the Most Merciful” program, and how does it align with Saudi Arabia’s Vision 2030? The “Guest of the Most Merciful” program is a key initiative aimed at serving Hajj and Umrah pilgrims. It aligns directly with the goals of Vision 2030 by facilitating access to the Two Holy Mosques, providing distinguished hospitality, offering high-quality services, and enriching the religious and cultural experience of the guests of Allah (the Most Merciful). A significant objective, tied to Vision 2030, is to increase the number of pilgrims and Umrah performers to 30 million by the year 2030, a target that has already seen substantial progress.
    3. How are the efforts of Saudi Arabia in serving the Two Holy Mosques and pilgrims viewed internationally? The efforts of the Kingdom of Saudi Arabia in serving the Two Holy Mosques and pilgrims are highly appreciated and respected by Islamic nations and international organizations. Pilgrims themselves express their deep gratitude and appreciation to the Saudi leadership for their dedication and care.
    4. What significant tourism developments and goals are underway in Saudi Arabia as part of Vision 2030? Saudi Arabia’s tourism sector is experiencing major transformations under Vision 2030. The number of tourists has significantly increased, reaching 109 million in 2023, including both domestic and international visitors. This surge is a direct result of comprehensive reforms and development projects aimed at enhancing the Kingdom’s appeal as a tourist destination. Key initiatives include developing new and existing attractions, improving infrastructure, and focusing on cultural and heritage tourism. Projects like the development of Tarout Island exemplify the commitment to creating sustainable tourism hubs.
    5. How is “public etiquette” (الذوق العام) seen to contribute to Saudi Arabia’s tourism goals within Vision 2030? Enhancing public etiquette is considered crucial for achieving Saudi Arabia’s tourism objectives under Vision 2030. A refined public etiquette, reflecting values of respect and cultural awareness, is seen as a fundamental pillar in building a modern and attractive society for both local and international visitors. It contributes to a positive image of the country and enhances the overall tourist experience by ensuring respectful interactions and a comfortable environment in public spaces.
    6. What was the significance of the large gathering at the Grand Mosque in Makkah towards the end of Ramadan, as mentioned in the text? The gathering of over 2.5 million people at the Grand Mosque in Makkah on the 29th night of Ramadan to witness the completion of the Quran recitation ( ختم القرآن ) during the Taraweeh and Isha prayers is a highly significant event. It highlights the deep spiritual atmosphere of the holy month and the strong devotion of Muslims, drawing an immense number of worshippers to the Haram.
    7. What does the excerpt suggest about Saudi Arabia’s role in promoting Islamic values to the wider world? The text emphasizes Saudi Arabia’s intention to convey the message of the Two Holy Mosques to the world, promoting the values of moderation, tolerance, and balance. By serving the Haramain Sharifain and facilitating the religious experience of millions of pilgrims, the Kingdom aims to project the noble and inclusive message of Islam on a global scale.
    8. Beyond serving pilgrims, what other areas of development and global engagement are highlighted for Saudi Arabia in these excerpts? Beyond its religious role and tourism ambitions, Saudi Arabia is portrayed as a nation undergoing significant economic diversification and development under Vision 2030. This includes large-scale projects like NEOM and the Red Sea Project, aiming for innovation and sustainability. The Kingdom is also actively engaging on the international stage, as seen through its participation in events like Anime Japan 2025, indicating a commitment to cultural exchange and showcasing Saudi creativity globally.

    Serving Pilgrims at the Two Holy Mosques

    The Kingdom of Saudi Arabia places immense importance on serving the pilgrims (Hajj and Umrah) and visitors of the Two Holy Mosques in Makkah and Madinah, considering it a unique honor bestowed upon them by Allah. This service is viewed as unparalleled, and the leaders of the country, from King Abdulaziz to King Salman and Crown Prince Mohammed bin Salman, have consistently strived for excellence in providing services that ensure pilgrims can perform their rituals with ease and convenience.

    Continuous Improvement and Leadership Commitment:

    • The Saudi leadership is dedicated to elevating the level of services provided to pilgrims, aiming for distinction and excellence in facilitating the performance of religious rites with comfort and ease.
    • Crown Prince Mohammed bin Salman closely monitors the affairs of the Holy Mosque in Makkah, particularly during peak times like Ramadan, to ensure the Kingdom’s aspirations for comprehensive services are met, offering the highest degrees of comfort to pilgrims.
    • The Kingdom has expressed gratitude to the millions of Umrah pilgrims who performed their rituals with sincerity and to the various state sectors for their significant efforts in serving them.

    Comprehensive Services and Facilities:

    • The Kingdom endeavors to provide everything that facilitates pilgrims’ performance of their rituals in security, tranquility, and peace.
    • Pilgrims arriving at the Holy Mosque in Makkah have been able to perform their rituals with ease and security, thanks to the services provided by the Kingdom and the projects implemented under the leadership’s direct supervision.
    • The General Authority for the Care of the Affairs of the Two Holy Mosques actively mobilizes its resources and coordinates with relevant entities to receive pilgrims, organize their entry, and provide designated paths for those with disabilities and the elderly.
    • Numerous facilities are available at the Holy Mosque, including directional signs, restrooms equipped for cleanliness, perfuming, and sterilization, a large supply of Zamzam water, the provision of thousands of prayer rugs, organized entry and exit systems, special access for people with disabilities and the elderly, and the availability of golf cart services.
    • The latest technologies, such as advanced data analysis and artificial intelligence, are employed to organize the movement of Umrah pilgrims and worshippers within the Holy Mosque, ensuring smooth entry and exit.

    Organizational and Logistical Efforts:

    • Organizing the Hajj and Umrah rituals is a unique administrative and human endeavor involving all state agencies to coordinate and provide services, raise awareness, and create conditions that facilitate the performance of rituals with ease and safety.
    • The success in serving millions of diverse pilgrims is a result of a comprehensive system that includes modern organizational methods, technology, meticulous planning, coordination, human interaction, efficient implementation, thorough supervision, continuous follow-up, evaluation, and ongoing development.

    Challenges and Expectations:

    • Despite the extensive efforts, instances of disrespecting the regulations and the sanctity of the Two Holy Mosques by some pilgrims occur, which is considered unethical and contrary to Islamic principles.
    • The Kingdom expects pilgrims to adhere to the clear regulations and easy procedures established for their benefit.

    In conclusion, the service of pilgrims is a paramount priority for the Kingdom of Saudi Arabia, driven by a sense of religious duty and a commitment to providing the best possible experience for those visiting the Two Holy Mosques. This commitment is evident in the continuous efforts of the leadership, the provision of comprehensive facilities and services, and the sophisticated organizational systems in place to manage the large influx of pilgrims..

    Vision 2030: Tourism and Pilgrim Services

    Based on the sources, several goals of Vision 2030 are discussed, particularly in relation to the tourism sector and the service of pilgrims.

    Here’s a summary of the Vision 2030 goals mentioned:

    • Increasing the number of pilgrims and Umrah performers to 30 million by 2030. This is a significant aspiration within Vision 2030, and considerable efforts are underway to achieve it. A large part of this goal has already been realized.
    • Enhancing the experience of pilgrims and visitors through the Pilgrim Experience Program (برنامج خدمة ضيوف الرحمن). This program, aligned with the objectives of Vision 2030, has the following aims:
    • Facilitating arrival and access to the Two Holy Mosques for pilgrims and Umrah performers.
    • Hosting honored guests (استضافة ضيوف الرحمن).
    • Providing high-quality services.
    • Enriching the religious and cultural experience of the guests of Al-Rahman (إثراء التجربة الدينية والثقافية لضيوف الرحمن).
    • Major transformations in the tourism sector. Vision 2030 encompasses significant development and expansion in the tourism industry. This includes:
    • Achieving consecutive increases in the tourism sector.
    • Launching major projects aimed at developing tourist destinations.
    • Enhancing cultural heritage.
    • Improving the infrastructure supporting the tourism sector, including transportation and environmental development.
    • Developing islands like Tarout into tourism hubs. The Darin and Tarout Islands development project, with a budget of 2.64 billion riyals, is a key step in transforming the islands into sustainable tourism and cultural centers.
    • Improving public decency (الذوق العام). This is emphasized within Vision 2030 as it plays a significant role in creating an attractive tourism environment and enhancing the experience for both domestic and international visitors.

    The efforts to serve pilgrims, as discussed in our previous conversation, are clearly integrated within the broader framework of Vision 2030, with the goal of increasing their numbers and enriching their experience being central to the Kingdom’s future plans. The development of tourism infrastructure and the overall enhancement of visitor experience are interconnected goals under Vision 2030.

    Riyadh Real Estate: Transaction Lifting and Financing

    Based on the sources provided, the concept of “real estate balance” is not explicitly discussed. However, there is information related to real estate activities and financing in the Kingdom, particularly in Riyadh.

    Source announces the lifting of the suspension on various real estate transactions in specific areas of Riyadh. This includes:

    • Selling, buying, division, and partitioning of land.
    • The areas affected include land south of Prince Abdullah bin Saud Road (formerly Al-Khair Road), north of Abdulaziz bin Jalawi Road, east of Asma bint Malik Road, encompassing the Al-Arid district with an area of 17 square kilometers.
    • Additionally, land north of King Salman Road, bordered by Abi Bakr Al-Siddiq Road and Al-Arid district from the east, Prince Khalid bin Bandar Road from the north, and Al-Quraywan district from the west, totaling 16.2 square kilometers, is included.
    • This is in addition to two previously mentioned areas totaling 48.28 square kilometers, bringing the total area where the suspension has been lifted in Riyadh to 81.48 square kilometers.

    This lifting of restrictions suggests a move towards activating the real estate market in these specific areas of Riyadh, potentially impacting the supply and demand balance within those zones. It indicates a governmental decision to facilitate real estate development and investment in these locations.

    Furthermore, source mentions real estate financing operations in the context of discussing consumer loans and credit cards. According to the 2019 figures from the Saudi Central Bank, real estate financing had the highest percentage increase at 121%. This highlights the significant role of financing in the real estate sector of the Kingdom. The Central Bank’s “Responsible Financing Initiative” was introduced to regulate the arbitrariness in financing operations, including real estate.

    While these points do not directly address the overall “real estate balance” of the entire Kingdom, they offer insights into governmental actions aimed at stimulating the real estate market in Riyadh and the importance of financing within the sector as indicated by past trends. The lifting of the suspension on land transactions can be seen as a measure to potentially increase land supply and facilitate development, which could influence the real estate balance in those specific areas over time.

    Beirut Airstrike: Israel Targets Hezbollah Depot

    Based on the sources, there has been a recent Israeli airstrike on the southern suburb of Beirut, Lebanon.

    Here are the key details from the sources:

    • The Israeli air force conducted a raid on the southern suburb of the Lebanese capital. This area is described as a stronghold of Lebanese Hezbollah.
    • The airstrike targeted a building that Israel claimed was a weapons depot belonging to the “Hezbollah” group.
    • Firefighters were attempting to extinguish the flames at the targeted building.
    • The southern suburb experienced heavy traffic congestion as a large number of its residents tried to flee.
    • The US State Department commented on the incident, reiterating Israel’s right to defend itself against rocket attacks from Lebanon.
    • The US also stated that it is the Lebanese government’s duty to disarm groups like Hezbollah.
    • This airstrike is reported as Israel’s first raid on the southern suburb since a ceasefire.
    • Source includes a photograph showing smoke rising from the location of the Israeli airstrike in southern Lebanon.

    Gaza Conflict: March 2025 Casualties and Impact

    Based on the sources, the toll of the ongoing conflict in the Gaza Strip is significant.

    Here’s a summary of the reported casualties:

    • As of March 2025, the number of martyrs (deaths) in Gaza since October 7th has reached 50,277.
    • The total number of injuries during the same period has reached 114,095.
    • Specifically, since March 18th, the number of martyrs in Gaza reached 921, and the number of injuries reached 2,054.
    • The Israeli occupation has been waging a “war of genocide” in the Gaza Strip for 12 consecutive days as of the time of reporting in source. This is stated despite a fragile truce that went into effect on January 19th.
    • There are significant difficulties in searching for victims under the rubble due to the extensive destruction in the area.
    • Rescue and ambulance crews faced great difficulties accessing the area.
    • In one incident, the bodies of 12 martyrs and one injured person were recovered, but 14 members of civil defense teams remain missing after being besieged and targeted by Israeli occupation forces in the Sultan neighborhood of Rafah, south of the Gaza Strip. Rescue attempts were hindered by darkness.
    • The Palestinian Red Crescent Society has also faced challenges, including the loss of contact with 15 of its members after Israeli occupation forces besieged and targeted them.

    These figures highlight the devastating human cost of the ongoing conflict in Gaza, with a very high number of casualties and significant challenges for rescue and recovery efforts due to the intensity of the hostilities and the resulting destruction.

    Royal Court: Today is the first day of Eid Al-Fitr Custodian of the Two Holy Mosques: Eid al-Fitr is a day of joy and happiness in which the meanings of unity, compassion and brotherhood are manifested.

    We thank God Almighty for making it easy for millions of pilgrims, and we thank our sons and daughters who work faithfully in various sectors of the state.

    The Custodian of the Two Holy Mosques, King Salman bin Abdulaziz Al Saud – may God protect him – delivered a speech on the occasion of Eid al-Fitr for the year 1446 AH. Below is the text of the speech delivered by His Excellency the Minister of Information, Mr. Salman bin Yousef Al-Dosari:
    (In the name of God, the Most Gracious, the Most Merciful

    Praise be to God Almighty, who says in His Noble Book, “To Him ascends the good word and the righteous deed raises it,” and prayers and peace be upon His trustworthy Prophet, and upon his family and companions.

    My sons and daughters, my brothers and sisters, citizens and residents of our dear homeland, the Kingdom of Saudi Arabia, and Muslims everywhere.

    Peace, mercy, and blessings of God be upon you:

    We congratulate you on the blessed Eid al-Fitr and thank God Almighty, who helped us to fast and pray during the month of Ramadan and brought us to this blessed day, praying to God Almighty to May God accept our and your prayers and good deeds.
    Dear brothers and sisters,
    God Almighty has bestowed countless blessings upon our country, foremost among which is the service of the Two Holy Mosques and their pilgrims, Umrah performers, and visitors, and the provision of all necessary facilities to facilitate their performance of their rituals in security, peace, and tranquility.
    As we thank God Almighty for enabling millions of pilgrims to perform Umrah and visit the Holy Mosques during the month of Ramadan this year, let us thank our sons and daughters who work sincerely in various sectors of the state for their great efforts in this field. Dear Muslims,
    Eid is a day of joy and happiness, in which the meanings of unity, compassion, and brotherhood are manifested.
    All praise and thanks are due to God Almighty for what He has given us. The Almighty said: (And that you may complete the number and glorify God for guiding you, and that you may be grateful.)
    We ask God Almighty, by His grace and generosity, to bestow security and peace upon our country, the Islamic nation, and the entire world, and that stability and prosperity may prevail everywhere.
    May the peace, mercy, and blessings of God be upon you.

    The Crown Prince directs measures to achieve balance in the real estate sector in the capital.

    The Royal Commission directs the provision of residential lands for citizens.

    Based on what has been studied by the Royal Commission for Riyadh City and the Council of Economic and Development Affairs regarding the real estate sector, and the rise in land prices and rents witnessed in Riyadh in recent years, and in order to achieve balance in the real estate sector, and after the issuance of the royal approval, His Royal Highness Prince Mohammed bin Salman bin Abdulaziz Al Saud, Crown Prince and Prime Minister – may God protect him – has directed that a number of measures be taken in this regard.

    The honor of serving the Two Holy Mosques

    Khaled Al-Rabish

    The Kingdom views serving the Two Holy Mosques and their pilgrims, Umrah performers, and visitors as an unparalleled service, a service that God has singled out for the Kingdom alone. Hence, the rulers of this country, since the era of the founder, King Abdulaziz bin Abdulrahman – may God have mercy on him – and up to the era of the Custodian of the Two Holy Mosques, King Salman bin Abdulaziz and his Crown Prince – may God protect them – have spared no effort in advancing this service and bringing it to the furthest point of excellence and brilliance, which contributes to the performance of the ritual with ease and simplicity. The arrival of His Highness the Crown Prince Mohammed bin Salman bin Abdulaziz – may God protect him – to Makkah Al-Mukarramah in the late afternoon of the blessed month of Ramadan embodies the keenness of the wise leadership to closely follow up on the affairs of the Grand Mosque and the pilgrims of the Two Holy Mosques, through His Highness’s direct supervision of the integrated services system provided to visitors and pilgrims to the Two Holy Mosques; in order to achieve the aspirations of the Kingdom to provide the highest levels of comfort for the pilgrims of the Two Holy Mosques of all nationalities. The arrival of His Highness the Crown Prince in Makkah Al-Mukarramah and his inspection of the services provided to pilgrims is an extension of King Salman’s interest – may God support him – in the Two Holy Mosques, serving their visitors and enriching their religious experience in the Holy Lands. This contributes to conveying the moderate message of the Two Holy Mosques to the world, instilling the values ​​of moderation, tolerance and balance, and strengthening the sublime message of Islam, which originates from the Two Holy Mosques to the world. The modern history of His Highness the Crown Prince bears witness to his personal keenness to advance the service of the Two Holy Mosques and the pilgrims of God around the clock, through qualitative programs and plans that he is currently working on with great care and determination to achieve the aspirations of the Kingdom’s vision, the most important of which is to increase the number of pilgrims and Umrah performers to 30 million by 2030, a large part of which has been achieved on the ground, and sincere efforts continue to achieve the remaining aspirations. When it comes to serving pilgrims, Umrah performers, and visitors, the “Suf al-Rahman” (Guests of the Merciful) Service Program, introduced by Vision 2030, cannot be ignored, with its three strategic objectives: facilitating the hosting of pilgrims, facilitating access to the Two Holy Mosques, and providing high-quality services and enriching the religious and cultural experience of the “Guests of the Merciful.” The Kingdom’s efforts in serving the Two Holy Mosques and their visitors remain a source of appreciation and respect from countries around the world and Islamic organizations, as well as from the “Guests of the Merciful” themselves, who express their gratitude and appreciation to the Kingdom’s leadership for the attention they receive that exceeds their expectations.

    Lebanon: First Israeli airstrike on Dahiyeh since ceasefire

    An Israeli airstrike targeted the southern suburb of Beirut on Friday, for the first time since the ceasefire between Hezbollah and Israel took effect on November 27, after the Israeli army launched strikes in southern Lebanon in response to rockets fired towards Israeli territory. The official Lebanese National News Agency reported that “Israeli warplanes raided the densely populated Hadath neighborhood in the southern suburb,” whose schools closed after the Israeli army issued an evacuation order for the area following the launch of two rockets at Israel in an operation for which no party claimed responsibility, and for which Hezbollah denied responsibility. Amid the buildings damaged by the strike, while firefighters were trying to put out the fire, paramedics were searching through the rubble and transporting the wounded, according to scenes from Agence France-Presse. The entrances to the southern suburb witnessed heavy traffic, as a large number of residents sought to flee. The US State Department said on Friday that Israel is defending itself against rocket attacks from Lebanon, and that it is the Lebanese government’s duty to disarm armed groups such as Hezbollah. The State Department spokesman’s comment came at a press conference in response to a question about Israel’s first airstrike on Beirut’s southern suburbs since a ceasefire agreement was reached in November. “Israel is defending its people and interests by responding to rocket attacks from terrorists in Lebanon,” the State Department spokesman said.

    Gaza: The death toll from the Israeli aggression is 50,277 martyrs and 114,095 wounded.

    Gaza – Nazir Taha

    For the 12th consecutive day, the “Israeli” occupation continues its war of genocide on the Gaza Strip, leaving hundreds of martyrs and thousands wounded, in a blatant violation of the ceasefire agreement that went into effect on January 19. The Ministry of Health in Gaza announced on Saturday that the death toll and injuries since March 18, 2025, has reached 921, with 2,054 injuries, while the death toll from the Israeli aggression has risen to 50,277, with 114,095 injuries since October 7, 2023. The occupation continued its bombing and destruction of several areas in the Gaza Strip, where four martyrs were killed on Saturday afternoon as a result of the occupation bombing of an animal-drawn vehicle in the city of Khan Yunis, south of the Gaza Strip, while a number of others were injured. Among the citizens, the occupation forces bombed a group of citizens at the Arab Schools Intersection north of Rafah, south of the Gaza Strip. The occupation forces’ artillery bombed areas south of the Zeitoun neighborhood east of Gaza City, the town of Abasan al-Kubra in Khan Yunis south of the Gaza Strip, the Netzarim area west of al-Maghraqa in the central Gaza Strip, and Beit Hanoun north of the Gaza Strip. One martyr was killed and seven others were injured after the occupation forces targeted a house in the town of al-Qarara north of Khan Yunis city, south of the Gaza Strip. The occupation forces launched four raids on the al-Faluja area in the al-Janina neighborhood, east of Rafah city, while its vehicles fired continuously at the center of Rafah city. The occupation forces also destroyed residential homes in the al-Saudi neighborhood, west of Rafah, in the southern Gaza Strip.

    Syria: Sheikh al-Rifai appointed Grand Mufti

    Syrian President Ahmad al-Sarra’ appointed Sheikh Osama al-Rifai as Grand Mufti of Syria on Friday evening. He is one of the most prominent sheikhs opposed to ousted President Bashar al-Assad. The appointment was signed at the Republican Palace during a conference to form the Supreme Fatwa Council, attended by its members. Sheikh al-Rifai is a Damascene, born in 1944, and the son of the prominent preacher Abdul Karim al-Rifai. He studied under the leading scholars of Damascus, devoted himself to studying the Arabic language and Shafi’i jurisprudence, and is known for his moderate religious discourse. Al-Rifai did not hide his stance against the Assad regime since the start of the protests in 2011. He was beaten after a Friday sermon in 2011, when security forces stormed the mosque where he was preaching, which bore his father’s name, and beat the demonstrators and arrested a large number of them. The sheikh left Syria shortly after this incident. Al-Rifai served as president of the Syrian Islamic Council, which was established by a number of scholars and preachers in 2014 in Istanbul. He remained in the Turkish city until the Assad regime was overthrown, when he returned to Damascus, where he received a large popular reception.

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • Windows 11 Full Tutorial for Teachers Windows 11 How-To Guide

    Windows 11 Full Tutorial for Teachers Windows 11 How-To Guide

    “01.pdf” serves as a comprehensive tutorial for users transitioning to or learning Windows 11. It meticulously explains the new user interface elements, including the revamped taskbar and start menu, alongside fundamental operations like file management, internet connectivity via Microsoft Edge, and customization options. The guide further explores advanced features such as virtual desktops, widgets, the integrated Co-pilot AI, and enhanced security measures. Additionally, the tutorial covers system maintenance tasks like updates and resetting the PC, and introduces new or updated applications like Clipchamp and the sound recorder, aiming to equip users with a thorough understanding of the Windows 11 environment.

    Windows 11 Study Guide

    Quiz

    1. Describe two significant changes to the taskbar in Windows 11 compared to previous versions.
    2. Explain the purpose and functionality of virtual desktops in Windows 11.
    3. How can you access and utilize the Co-pilot feature in Windows 11?
    4. What is the Windows 11 Start Menu, and how has its layout and functionality been updated?
    5. Outline the different ways to launch an application in Windows 11.
    6. Describe the tabbed browsing feature in File Explorer and its benefits.
    7. Explain the process of pinning and unpinning applications from the Windows 11 taskbar.
    8. How can you use Windows Search to find applications, files, and settings?
    9. What is the Action Center (Quick Settings) in Windows 11, and how can you customize it?
    10. Explain the purpose of Focus Assist in Windows 11 and how you can configure its settings.

    Quiz Answer Key

    1. The Windows 11 taskbar is now centered at the bottom of the screen by default, and it features new icons and integrations like the Start Menu, Search, Widgets, and Microsoft Teams chat. Additionally, right-clicking on the taskbar now primarily leads to Taskbar settings, with other options like Task Manager being accessed through the Start Menu.
    2. Virtual desktops allow users to create multiple separate workspaces on a single computer. This feature enables users to organize their applications and tasks, such as keeping work-related programs on one desktop and personal applications on another, and easily switch between them without closing windows.
    3. You can access Co-pilot in Windows 11 by clicking on its dedicated icon located next to the search icon on the taskbar. Once opened, you can enter prompts, similar to other AI assistants, to generate text, create images, and potentially perform other AI-powered tasks, with the experience differing slightly between work and personal accounts.
    4. The Windows 11 Start Menu is a centralized location to access applications, settings, and files, now positioned in the center of the taskbar. It features a revamped user interface with a search bar at the top, followed by pinned applications, a section for all apps arranged alphabetically, and recommended or recently used items, along with user account and power options at the bottom.
    5. Applications in Windows 11 can be launched in several ways: by single-clicking on pinned icons in the taskbar, by clicking on the Start Menu and selecting from pinned apps, all apps, or recommended items, or by double-clicking on application icons located on the desktop.
    6. The tabbed browsing feature in File Explorer allows users to open multiple folders in separate tabs within the same window, similar to web browsers. This reduces the clutter of having multiple File Explorer windows open and makes it easier to navigate and manage files across different directories.
    7. To pin an application to the taskbar, you can either drag its desktop icon to the taskbar or find it in the Start Menu, right-click on it, and select “Pin to taskbar.” To remove an application, right-click on its icon in the taskbar and choose “Unpin from taskbar.”
    8. Windows Search can be accessed by clicking the search icon on the taskbar or by pressing the Windows key and typing. It allows you to find installed applications by typing their names, locate files and documents, and even search for specific settings within the operating system.
    9. The Action Center (Quick Settings) is accessed by clicking in the bottom-right corner of the taskbar, typically near the clock and notifications. It provides quick access to commonly used settings such as Wi-Fi, Bluetooth, volume, brightness, and other customizable options, allowing for rapid adjustments without navigating through the Settings app.
    10. Focus Assist in Windows 11 helps users minimize distractions by managing notifications. It offers different modes, such as “Priority only” which allows only important notifications, and “Alarms only.” You can configure automatic rules based on activities like duplicating your display or playing games, and also set specific times or working hours during which notifications are managed.

    Essay Format Questions

    1. Discuss the evolution of the Windows user interface, focusing on the key changes and improvements introduced in Windows 11 as highlighted in the source material. Consider the taskbar, Start Menu, and overall visual design.
    2. Analyze the role of artificial intelligence (AI) integration in Windows 11, specifically referencing the Co-pilot feature and any other AI-driven functionalities mentioned in the provided text. Discuss the potential impact of these features on user productivity and experience.
    3. Compare and contrast the different methods for managing files and applications in Windows 11, including the taskbar, Start Menu, desktop, and File Explorer. Evaluate the efficiency and user-friendliness of each approach.
    4. Evaluate the security and privacy features discussed in the Windows 11 tutorial. How does Windows 11 aim to protect users from viruses, malware, and unwanted tracking? Discuss the user’s role in managing these settings effectively.
    5. Based on the features described in the tutorial, discuss how Windows 11 caters to both basic and advanced user needs. Provide specific examples of functionalities that benefit different levels of computer literacy and expertise.

    Glossary of Key Terms

    • Taskbar: A persistent bar usually located at the bottom of the screen that provides quick access to running applications and system features like the Start Menu and search. In Windows 11, it is centered by default.
    • Start Menu: A graphical user interface element used in Windows to launch applications, access settings, and manage files. In Windows 11, it has been redesigned and centered on the taskbar.
    • User Interface (UI): The means by which a user interacts with a computer or software, including visual elements like icons, menus, and windows. Windows 11 features a revamped UI with a new color scheme and layout.
    • Virtual Desktops: A feature that allows users to organize applications across multiple separate workspaces on a single monitor, enhancing multitasking capabilities.
    • Widgets: Small applications or information displays that reside on the desktop or a designated panel, providing quick access to information like weather, news, and calendar updates.
    • Co-pilot: An AI-powered assistant integrated into Windows 11, designed to help users with various tasks through natural language prompts.
    • Microsoft Edge: The default web browser included with Windows 11, featuring updates like a sidebar, Collections, and integrated shopping and privacy tools.
    • File Explorer: The file management application in Windows used to navigate and manage files and folders on the computer’s storage devices.
    • Pinned Applications: Applications that users have chosen to keep readily accessible, typically displayed on the Start Menu or taskbar for quick launching.
    • Windows Search: A system feature that allows users to find applications, files, settings, and web results by typing keywords into a search bar.
    • Action Center (Quick Settings): A panel accessible from the taskbar that provides quick access to commonly used system settings such as Wi-Fi, volume, brightness, and notifications.
    • Focus Assist: A Windows feature designed to minimize distractions by managing the display of notifications, allowing users to concentrate on their work.
    • Task Manager: A system monitoring program used to view running processes, performance statistics, application history, startup programs, users, details, and services on a computer.
    • PowerShell: A command-line shell and scripting language developed by Microsoft for system administration and automation.
    • Command Prompt: A command-line interpreter application available in most Windows operating systems, used to execute entered commands.
    • TPM (Trusted Platform Module): A security cryptoprocessor chip on the motherboard of a computer that stores cryptographic keys used to protect information. Required for Windows 11 installation in many cases.
    • Windows Sandbox: An isolated, temporary desktop environment that allows users to run potentially untrusted software without affecting the main operating system. Available in Windows 11 Professional and Enterprise editions.
    • Live Captions: An accessibility feature in Windows 11 that automatically generates real-time captions for any audio playing on the device.
    • Voice Clarity: An AI-powered microphone enhancement feature in Windows 11 that reduces background noise during calls and recordings.
    • Clipchamp: A video editing application included with Windows 11, offering tools for creating and editing videos.
    • Sticky Notes: A desktop application in Windows that allows users to create and display electronic notes as reminders.
    • Seven-Zip (.7z): A popular open-source file archiver with a high compression ratio. Windows 11 (with updates) allows for creating and extracting .7z files.
    • Tar (.tar): A file format commonly used in Unix-like systems for collecting multiple files into one archive file, often compressed with gzip (.tar.gz). Windows 11 (with updates) allows for creating and extracting .tar files.
    • Energy Saver: A power setting in Windows 11 designed to extend battery life by reducing system performance and screen brightness.

    Windows 11 Tutorial Briefing Document

    This document provides a detailed overview of the main themes, important ideas, and facts presented in the “Windows 11 Tutorial” (01.pdf). It includes direct quotes from the source where relevant to illustrate key points.

    Main Themes

    The tutorial comprehensively guides users through the fundamentals and more advanced features of the Windows 11 operating system. Key themes include:

    • New User Interface (UI): A significant redesign with changes to the taskbar, Start menu, color scheme, and layout.
    • Enhanced Taskbar Functionality: Centralized icons, revamped Start menu, integrated search, virtual desktops, widgets, Microsoft Teams integration, and customizable settings.
    • Revamped Start Menu: Centered location, improved search functionality, pinned and recommended applications, easy access to all apps, and customizable layout.
    • Improved Search Capabilities: Integrated search accessible from the taskbar and Start menu, capable of finding apps, settings, documents, and web content.
    • Introduction of Virtual Desktops: Functionality to create multiple independent workspaces for better organization.
    • Integration of AI with Copilot: AI-powered assistant for tasks like creating marketing plans and generating images, accessible from the taskbar.
    • Widgets for Quick Information: Customizable widgets on the taskbar for weather, calendar, news, and more.
    • Microsoft Teams Integration: Built-in chat and video conferencing capabilities.
    • Enhanced File Explorer: Tabbed browsing, redesigned context menus with labels, quick access features, and integrated compression/decompression (including 7z and tar formats in later updates).
    • Customization Options: Extensive options to personalize the taskbar, Start menu, desktop, themes, display settings, and privacy settings.
    • Windows Security Features: Built-in tools for virus and threat protection, firewall management, and account security.
    • Connectivity Management: Guidance on connecting to wired and wireless networks.
    • Microsoft Edge Updates: New sidebar, improved menus, Collections feature, automatic coupon finding, enhanced privacy settings, web select, read aloud, web capture, and the ability to install websites as apps.
    • New and Updated Applications: Introduction of Widgets, Copilot, Clipchamp (video editor), updated Sound Recorder, Media Player, and Notepad.
    • System Maintenance and Recovery: Instructions on shutting down, restarting, sleeping, hibernating, installing updates, resetting the PC, and creating bootable media.
    • Accessibility Features: Introduction of Live Captions.
    • Performance and Efficiency Tools: Focus Assist for minimizing distractions, Task Manager enhancements including efficiency mode, and Power Saver for extending battery life.
    • Command Line and Advanced Tools: Accessing Command Prompt, PowerShell, Windows Terminal, and managing startup applications manually.
    • Virtualization with Windows Sandbox: A secure environment for testing applications and websites.

    Most Important Ideas and Facts

    • Taskbar Changes: The taskbar is now centered by default, and the icons and options have been modified. “as soon as you log into the system one of the first things that you’ll notice is that the taskbar has changed it’s changed the location and also the items in the taskbar also the options of the taskbar have changed.” Users can still align it to the left in the taskbar settings.
    • Revamped Start Menu: The Start menu is also centered and features pinned applications, all apps, and recommended items. “you’ll notice the start menu has been revamped through the new user interface.” It offers enhanced search and customization options.
    • Improved Search: Windows 11 features a prominent search bar on the taskbar and within the Start menu. “the search option major Improvement in Windows 11”. It allows users to quickly find applications, files, and settings.
    • Virtual Desktops for Organization: This feature enables users to create and switch between multiple workspaces. “virtual desktops is a functionality where you can launch specific programs on a workspace.”
    • Copilot AI Integration: Windows 11 includes an AI assistant, Copilot, accessible from the taskbar. “co-pilot in Windows 11 to access co-pilot click on this co-pilot icon next to the search icon on the taskbar.” It can assist with various tasks using prompts.
    • Widgets for Quick Access to Information: Widgets provide at-a-glance information like weather and news. “if you click here on widgets the taskbar is typically one of the tools of an operating system that it’s used as a quick way to launch specific operating system functions.”
    • Enhanced File Explorer with Tabs: A significant update introduces tabbed browsing for easier file navigation. “This is a recent update to Windows 11 notice that there are now tabs that you can open instead of opening multiple windows to navigate through your files in your PC.” The context menus have also been visually updated with labels. “with a 24 H2 update of Windows 11 there’s new function functionality related to Windows Explorer prior to this release if you right clicked on the file You’ only see these little icons and didn’t have the tags or the labels below the icons.” It now supports creating and extracting 7z and tar files in later updates.
    • Customization is Key: Windows 11 offers numerous ways to personalize the user experience, from the taskbar and Start menu to themes and display settings. “you can customize a view of it by right clicking on it and you have a bunch of options here.”
    • Windows Security as a Built-in Solution: Windows 11 comes with its own security suite. “Windows 11 actually comes packaged with its own Security Suite and firewall tools as well.” Users can access and manage these settings through the Windows Security app.
    • Microsoft Edge Enhancements: The default browser includes a new sidebar for quick access to Bing search and tools. “I have opened Microsoft Edge and notice on the right hand side we have this new sidebar.” It also features Collections, coupon finding, enhanced privacy, and other useful tools.
    • New and Updated Apps: Clipchamp provides video editing capabilities. “clipchamp and it allows for video editing so it’s a video editor in Windows 11.” Sound Recorder and Media Player have received visual and functional updates. Notepad now has theme and font customization options.
    • Resetting Your PC for Recovery or Clean Up: The tutorial details options for resetting a Windows 11 PC, either keeping personal files or removing everything. “resetting your PC may be necessary if your computer got infected with the virus or something is not working well in your PC and you just need to go back.”
    • Windows Sandbox for Secure Testing: Available in Professional and Enterprise editions, Sandbox provides a virtual environment for testing software and websites. “Windows sandbox is a separate Windows environment on top of the poost operating system for Windows 11 professional or Windows 11 Enterprise.”
    • Accessibility with Live Captions: A new feature transcribes audio playing on the screen in real-time. “with the 24 H2 release of Windows 11 there’s new functionality that of live captions to enable live captions we go here to the quick settings or the control center as it used to be called then click on accessibility and then click on live captions”.
    • Efficiency Mode in Task Manager: Users can now set certain processes to run in efficiency mode to reduce resource consumption. “One of the new features in the new task manager in Windows 11 is the option for you to specify a process or to define a process to run in efficiency mode.”
    • Power Saver for Battery Life: A new quick setting allows users to enable a power saver mode. “with a 24 H2 release of Windows 11 there is a new function related to power settings in Windows 11 and it’s called power saver.”

    This briefing document captures the core information presented in the Windows 11 tutorial, highlighting the key changes, new features, and essential functionalities of the operating system.

    Windows 11: First Look and Key Features

    Frequently Asked Questions about Windows 11

    1. What are some of the first changes I will notice after logging into Windows 11?

    One of the most immediate changes you’ll see is the redesigned taskbar, which is now centered at the bottom of the screen by default and features a new set of icons including the Start menu, Search, Virtual Desktops, Widgets, Microsoft Teams chat integration, Microsoft Edge, File Explorer, and Mail. The user interface also has a different color scheme and layout, and even the login, logout, and shutdown processes have a new look and location within the Start menu.

    2. How has the Start menu been revamped in Windows 11, and what are its key components?

    The Windows 11 Start menu is now centrally located on the taskbar. When opened, it features a search bar at the top, followed by pinned applications for quick access, which you can customize by pinning and unpinning apps. Below the pinned apps is an “All apps” section, providing an alphabetical list of all installed applications. Additionally, there’s a “Recommended” section displaying recently used files and applications, and at the bottom, you’ll find options for your user account (for logging off, locking, or signing out) and power options (sleep, shut down, restart). The Start menu can be further customized through “Start settings,” allowing you to adjust the layout to show more pinned apps or recommendations, hide recently added or most used apps, and choose which folders appear alongside the power options.

    3. What are Virtual Desktops in Windows 11, and how can they improve my workflow?

    Virtual Desktops is a feature in Windows 11 that allows you to create multiple separate workspaces on your computer. This enables you to organize your applications across different desktops. For example, you could have one desktop with your work-related applications, and another with personal or client-related applications. You can easily switch between these virtual desktops, keeping your different tasks and projects separate and reducing clutter on a single screen. To access and manage virtual desktops, you can click the Virtual Desktops icon on the taskbar, where you can create new desktops and switch between existing ones.

    4. How can I use the Search functionality in Windows 11 effectively?

    Windows Search in Windows 11 is a powerful tool accessible by clicking the search icon on the taskbar or by pressing the Windows key and typing. It allows you to find applications, files, settings, and even information on the web directly from your desktop. The search results are categorized for easy navigation. You can customize the search options and the types of results displayed through the settings accessible via the three dots (options) icon within the search interface. Windows Search is designed to be a quick alternative to manually navigating through your files and settings.

    5. What are some key features and changes in File Explorer in Windows 11?

    File Explorer in Windows 11 features a redesigned interface with a new “Home” tab that provides quick access to frequently used folders (like Desktop, Downloads, Documents, Pictures), favorite folders and items, and recent files. A significant update is the introduction of tabbed browsing, allowing you to open multiple folders within the same File Explorer window, similar to a web browser. The toolbar at the top has been updated with new icons for common actions like creating new folders or files, and the context menus (right-click menus) have been visually refreshed with clearer icons and labels. You can also easily pin folders to the “Quick access” section for faster navigation.

    6. How can I customize the Taskbar in Windows 11 to suit my preferences?

    You can customize the Windows 11 taskbar by right-clicking on an empty area of the taskbar and selecting “Taskbar settings.” This will open a settings page where you can control various aspects, such as toggling the visibility of search, task view, and widgets buttons. If you have a touchscreen, you can enable the pen menu option. A notable customization is the ability to change the taskbar alignment from the default center to the left, which resembles previous versions of Windows. For multi-monitor setups, you can configure whether the taskbar appears on all displays. You can also customize the icons that appear on the taskbar and manage taskbar behaviors like automatic hiding.

    7. What are Widgets and how can I use them in Windows 11?

    Widgets in Windows 11 are small, dynamic panels that display information such as weather, calendar events, news, sports scores, and more. You can access them by clicking the Widgets icon on the taskbar. The widgets are customizable; you can add, remove, resize, and rearrange them according to your preferences. You can also personalize the content displayed within some widgets, such as news topics or sports teams. Widgets provide a quick and easy way to stay informed about various topics without needing to open full applications.

    8. How can I connect to the internet using Windows 11, both via wired and wireless connections?

    For a wired connection, if you have a Windows PC with a network port and a live Ethernet connection in the wall, simply plug in the Ethernet cable. Windows 11 should automatically establish a connection. For wireless connections, if you have a laptop or a wireless device, look for the network icon (usually a globe with an arrow or Wi-Fi signal icon) in the bottom-right corner of the taskbar. Clicking this will open the Quick Settings panel where you can turn on Wi-Fi if it’s off. Once turned on, click the right arrow next to the Wi-Fi button to view available wireless networks. Select your desired network, click “Connect,” and enter the network password if prompted. Windows will typically remember the connection for future use. You can also manage Wi-Fi settings and connect to new networks by searching for “Wi-Fi settings” in the Windows search bar.

    Windows 11 Comprehensive User Guide

    The sources provided contain excerpts from a comprehensive tutorial on using Windows 11. The tutorial starts with the basics and progresses to more advanced features. It emphasizes hands-on practice while watching the video and refers to a quick guide in the video description.

    Here’s a discussion of the topics covered in the Windows 11 tutorial based on the provided excerpts:

    Getting Started and User Interface Changes:

    • Upon logging in, users will notice changes to the taskbar, including its centered location and the icons it contains. The options for the taskbar have also changed.
    • Key components of the revamped user interface (UI) include a different color scheme and layout.
    • The tutorial covers changes to the login, log out, and shutdown processes.
    • The Start menu has been revamped with a new user interface, offering access to pinned applications, all apps, and recommended items. Users can customize the pinned and recommended apps, as well as choose to show recently added or most used apps. They can also customize which folders appear in the Start menu.
    • The search option is a major improvement in Windows 11 and can be accessed from the taskbar, the Start menu, or by pressing the Windows key. It allows searching for apps, files, settings, and web content.
    • Virtual desktops allow users to create separate workspaces for different tasks and switch between them, helping to organize open applications.
    • Widgets are accessible from the taskbar and provide quick access to information like weather, calendar, news, and sports updates.
    • Microsoft Teams chat and video conferencing are integrated into the operating system and accessible from the taskbar.
    • Other taskbar icons include Microsoft Edge, Windows Explorer (now called File Explorer), and access to email.

    Taskbar Customization:

    • Users can customize the taskbar settings by right-clicking on it and choosing “Taskbar settings”.
    • Customization options include showing or hiding search, task view, and widgets icons.
    • Touchscreen users can enable the pen menu option.
    • The taskbar alignment can be changed from the default center to the left.
    • Users with multiple displays can control whether the taskbar shows on all displays.
    • Right-clicking on the Start menu provides access to key areas like Disk Management, Computer Management, Device Manager, and Task Manager.
    • The quick action center, accessible by right-clicking on the Start menu, allows configuration of Wi-Fi, airplane mode, accessibility settings, and battery options.

    Desktop and Application Management:

    • The desktop is an area for placing application icons, website shortcuts, and file shortcuts. Applications on the desktop are typically opened with a double-click, while those on the taskbar require a single click.
    • Users can customize the desktop view, arrange icons, and show or hide them. They can also create new shortcuts and folders.
    • The recycle bin stores deleted items, which can be retrieved.
    • Desktop personalization options include changing background, themes, lock screen, taskbar items, fonts, and display settings (resolution, font size).
    • The tutorial covers launching applications from the taskbar, Start menu, and desktop.
    • Managing applications includes minimizing, maximizing/restoring, and closing windows using the controls in the top right corner.
    • Windows 11 introduces a new window resizing feature accessible by holding the mouse over the maximize button, allowing users to quickly snap windows to different parts of the screen.
    • Force-closing unresponsive applications can be done through Task Manager, accessed by right-clicking the Start button or searching for “Task Manager”. The Task Manager shows running apps and processes, allowing users to end tasks.
    • Switching between applications can be done by clicking on their icons in the taskbar or by using the Alt + Tab keyboard shortcut. Switching between virtual desktops is also covered.

    Windows Search:

    • Windows Search is a powerful feature for quickly finding applications, files, and settings.
    • Users can customize search options and settings.
    • Search can be launched from the taskbar icon or by pressing the Windows key and typing.

    File Explorer (Windows Explorer):

    • File Explorer is used for navigating files and folders on the computer, accessible from the taskbar.
    • The “Home” option provides quick access to frequently used folders, favorites, and recent files.
    • The left-hand side offers navigation to OneDrive, quick access items, “This PC” (listing storage devices), and network locations.
    • Windows 11 introduces tabbed browsing in File Explorer, allowing users to open multiple folders within the same window.
    • Common file management tasks like creating new folders and files, copying, pasting, renaming, sorting, and changing the view of files and folders are demonstrated.
    • Users can pin folders to “Quick access” for easier access.
    • Options for showing hidden items, preview pane, and customizing File Explorer settings are covered.
    • Context menus in File Explorer have been visually updated with labels below the icons for common actions like copy and paste.
    • The tutorial explains how to create compressed (zip) files by right-clicking on a folder and choosing the compression option. It also covers how to extract files from a zip archive.
    • With a 24H2 update, the ability to create and extract 7-zip and tar files has been added.

    Taskbar Management:

    • The tutorial demonstrates how to pin applications to the taskbar by dragging them from the desktop or by right-clicking on them in the Start menu and selecting “Pin to taskbar”.
    • Applications can be unpinned from the taskbar by right-clicking their icons and selecting “Unpin from taskbar”.
    • The location of the taskbar can be changed from the center to the left via taskbar settings.

    Working with Files and Folders:

    • Basic concepts of working with files and folders, such as creating, moving (drag and drop vs. cut and paste), and selecting multiple files, are explained.

    Internet Connectivity and Browsing:

    • Connecting to the internet via wired and wireless connections is covered. For wireless, users need to click on the network icon in the bottom right, turn on Wi-Fi, select a network, and enter the passphrase if required. Wi-Fi settings can also be accessed through Windows Search.
    • The default web browser in Windows 11 is Microsoft Edge, and the tutorial highlights the combined address and search bar. It advises typing URLs in the top address bar to navigate directly to websites.
    • Customizing browser settings, such as the start page, is demonstrated.
    • New features in Microsoft Edge are discussed, including the sidebar for Bing search, Discover, and quick access to tools like calculator and Outlook. The sidebar can be customized or hidden.
    • Visually updated menus, Collections (similar to bookmarks with added functionality), and a feature to automatically save money while shopping are highlighted.
    • Privacy settings in Edge, the Web select tool for copying text, the Read aloud feature, and the Web capture tool for taking screenshots are demonstrated.
    • The ability to install a website as a separate app, the Cite this tool for generating citations, and the Math solver are also covered.

    Widgets:

    • Windows 11 has a dedicated widgets panel accessible from the taskbar, displaying information like weather and news.
    • Widgets can be customized in terms of size and content, and new widgets can be added.

    Shutting Down, Sleeping, and Restarting:

    • The tutorial explains how to shut down or restart the computer via the Start menu’s power icon.
    • The differences between sleep and hibernate modes are briefly explained, with hibernate being more effective for saving laptop battery.

    Windows Updates:

    • Installing Windows updates can be done by searching for “Windows Update” in the search bar and clicking “Install now”.
    • Options for pausing updates, viewing update history, and configuring advanced update settings (install times, optional updates) are covered.
    • Keeping the PC up to date is important for security, performance, and new features.

    Customizing Look and Feel:

    • Users can customize the look and feel of Windows 11 through the “Personalize” option accessible by right-clicking on the desktop. This includes changing themes, sounds, and cursor.
    • Adjusting the font size of icons and other Windows components is done via display settings.

    Windows 11 Settings:

    • The Settings app can be accessed by searching for “Settings”.
    • The tutorial highlights the improved structure and visual appeal of the Windows 11 Settings app compared to previous versions.
    • Key settings categories like System, Devices, Network & internet, Personalization, Apps, Gaming, Privacy & security, and Windows Update are mentioned.
    • Uninstalling applications through the Apps settings is demonstrated.

    Privacy Settings:

    • Customizing privacy settings involves searching for “Privacy settings”.
    • Users can configure various privacy options under General, Speech, Ink and typing personalization, Diagnostics and feedback, Activity history, Search permissions, Location, Camera, and Microphone.
    • The tutorial advises being cautious when turning off camera and microphone access for all apps.

    Action Center (Quick Settings):

    • The Action Center, or Quick Settings, is accessible from the bottom right of the taskbar and provides quick access to common settings like Wi-Fi, Bluetooth, and volume.
    • Users can customize the Quick Settings by adding or removing items.
    • Updates to the Quick Settings with the 24H2 release include a scrollable list of icons for more options like energy saver, accessibility, and live captions.

    Default Printer:

    • Setting or changing the default printer involves searching for “Printers & scanners” in Settings.
    • Users need to disable the “Let Windows manage my default printer” option and then select a printer and click “Set as default”.

    Microsoft Store:

    • The Microsoft Store (app store) can be accessed by searching for “Store” or clicking its icon.
    • It allows users to download and install apps (both free and paid) from Microsoft and third-party developers, similar to app stores on smartphones.
    • The option to install Android apps via the Amazon Appstore is also mentioned.

    Changing Password:

    • Windows passwords can be changed by pressing Ctrl + Alt + Delete and selecting “Change a password” or by searching for “Change password” in Settings.
    • Corporate network password changes might need to be done through IT department tools.

    Locking Your Computer:

    • Locking the computer for security can be done by pressing the Windows key + L.

    Windows Security:

    • Windows 11 includes its own security suite and firewall tools, accessible by searching for “Windows Security”.
    • The Windows Security app provides an overview of the computer’s security status and allows users to manage settings for virus & threat protection, account protection, firewall & network protection, app & browser control, device security, and device health.
    • Running scans for viruses and malware, checking protection history, and configuring firewall rules are covered.
    • Family safety features, allowing management of kids’ screen time, are also accessible through Windows Security.

    Connecting to External Displays:

    • Connecting to a second monitor or projector typically mirrors the display by default (duplicated).
    • To extend the desktop across multiple displays, users can press the Windows key + P and select “Extend”.
    • This can also be done by searching for “extend” or “duplicate” in the search bar.

    Casting to External Devices:

    • Casting to a wireless display or remote device can be initiated by pressing the Windows key + K.
    • The “Cast” option can also be found by searching for it or through the Quick action items.

    Projecting from Android to Windows:

    • Windows 11 allows mirroring the screen from an Android device using the Projection tool and Connect app, typically via Miracast.
    • Both devices need to be on the same Wi-Fi network and support Miracast.
    • Projection settings need to be configured in Windows by searching for “Projection settings” and enabling the options.
    • The Connect app needs to be launched on the Windows PC to make it discoverable.
    • On the Android device, users need to find the “cast,” “broadcasting,” “mirror,” or “connect” option in settings. Apple devices are not supported.

    Snap Feature:

    • Windows 11 has an enhanced Snap feature for arranging multiple application windows on the screen.
    • Hovering the mouse over the maximize/restore button provides different layout options for snapping windows to specific parts of the screen.

    Removing Unwanted Applications:

    • Uninstalling applications can be done by searching for “Add or remove programs” in Settings.
    • Users can click on the three dots (more options) next to an app and choose “Uninstall”.

    Sound Settings and Volume:

    • Adjusting sound settings and volume can be done via the sound icon in the taskbar, which opens the Action Center with volume controls.
    • More advanced sound settings can be accessed by clicking the arrow on the volume slider in the Action Center or by searching for “Sound settings”.
    • Right-clicking the sound icon in the taskbar also provides options to open the Volume mixer or Sound settings.

    Task Manager:

    • Task Manager can be accessed by right-clicking the Start button or searching for “Task Manager”.
    • The “Processes” tab shows running applications and background processes, along with their resource usage (CPU, memory, disk, network). Users can end tasks from here.
    • A new “Efficiency mode” allows limiting resource usage for specific processes (requires administrator rights).
    • The “Performance” tab provides an overview of hardware resource utilization (CPU, memory, disk, GPU).
    • The “App history” tab shows resource usage history for applications.
    • The “Startup apps” tab lists applications that run automatically on startup, allowing users to disable them.
    • Other tabs include “Users,” “Details,” and “Services”.
    • Task Manager settings allow customization of the default tab, resource display, and other options.

    Focus Assist:

    • Focus Assist helps users concentrate by managing notifications.
    • It can be controlled from the Quick Settings with options for “Off” (all notifications), “Priority only” (only important alerts), and “Alarms only”.
    • Focus Assist settings can be customized to set automatic rules based on display duplication, gaming, and specific times or working hours.

    Command Line Terminal:

    • The command prompt can be accessed by searching for “command”. It allows running manual commands and checking system settings.
    • Windows Terminal, which uses PowerShell, is a newer way to manage settings and run commands, accessible by searching for “Windows PowerShell” or right-clicking the Start button. Some functions may require running as administrator.

    Adding Applications to Startup Manually:

    • Manually adding applications to Windows startup involves using the Run command (Windows key + R) and typing “shell:startup”. This opens the Startup folder.
    • Users then need to locate the application’s executable file in File Explorer, right-click it, drag it to the Startup folder, and choose “Create shortcut”.

    Co-Creator in Paint:

    • Paint has an image creator feature powered by AI that generates images based on user prompts.
    • Users need to be signed in with a Microsoft account to use it.
    • They can select different styles for the generated images and further modify them with Paint’s tools.
    • A similar image generator is available directly in the Photos app.

    Live Captions:

    • The 24H2 update introduces live captions, which transcribe audio playing on the screen in real time.
    • Live captions can be enabled via Accessibility settings in Quick Settings.
    • The system will download language files for this feature.
    • The live captions bar can be positioned anywhere on the screen and works for both local and web-based audio.

    Power Saver:

    • The 24H2 update includes a Power Saver (Energy Saver) mode accessible from Quick Settings.
    • Enabling Power Saver extends battery life at the cost of performance and slightly dims the screen.
    • It can be toggled on and off in Quick Settings and is also available on desktop computers.
    • Battery settings, including power mode and options for lid closure and power button press, can be accessed by clicking the battery icon in Quick Settings.

    Voice Clarity:

    • The 24H2 update introduces Voice Clarity, an AI-powered microphone enhancement to remove background noise during calls or recordings.
    • It can be found in Settings under System > Sound > Microphone > Default microphone audio processing mode.
    • Previously a Surface PC exclusive, it’s now rolling out to all Windows 11 PCs.

    Clipchamp (Video Editor):

    • Clipchamp is a built-in video editor in Windows 11, accessible from the Start menu.
    • Users need to sign in with a Microsoft account to use it.
    • It offers templates or the option to start from scratch.
    • Video editing involves importing media, adding it to the timeline, and using various tools and effects.
    • Text, fonts, colors, and transformations can be modified.
    • Finished videos can be exported as MP4 files in various resolutions and shared to different platforms.

    Sound Recorder (Updated):

    • The Sound Recorder app received a visual update.
    • It can be found in the Start menu or via search.
    • It allows recording audio, importing existing files, and managing previous recordings (renaming, deleting).
    • Users can select the microphone and start recording.
    • Recordings can be paused, stopped, played back, and shared.
    • Recording format and audio quality can be adjusted in settings. Basic audio editing is not available within the app.

    Media Player (Updated):

    • The Media Player app also received a visual update.
    • It organizes music and video libraries by allowing users to specify folders.
    • It includes options for play queue, playlists, and settings for music and video locations, theme, and album information retrieval.
    • Video playback controls include play/pause, volume, full screen, and options for casting, video settings (rotation, enhancements), and skipping forward/backward. It also offers integration with Clipchamp for video editing.

    Notepad (Updated):

    • Notepad has a new look and includes settings to modify font and theme.

    Resetting Your PC:

    • Resetting the PC can be done by searching for “Reset PC” in Windows Settings.
    • Options include fixing issues without resetting, going back to a previous version of Windows, or fully resetting the PC.
    • When resetting, users can choose to keep personal files or remove everything. Keeping files requires reinstalling apps and settings. Removing everything is recommended when selling or giving away the PC and offers an option to erase the drive securely.
    • The tutorial also briefly mentions creating a bootable USB drive for Windows installation from the Microsoft website.

    Enabling TPM in Hyper-V:

    • This section demonstrates how to enable the Trusted Platform Module (TPM) in a Hyper-V virtual machine running Windows 10 to allow upgrading to Windows 11.
    • This involves turning off the virtual machine, accessing its settings, going to the Security tab, enabling TPM, and then starting the machine.

    Sticky Notes:

    • Sticky Notes is a tool for creating on-screen reminders, accessible from the Start menu.
    • Users can take notes, create new notes, customize them, and delete them. It may prompt for a Microsoft account login.

    This comprehensive tutorial covers a wide range of Windows 11 features, from basic navigation and UI changes to more advanced topics like security, customization, and using built-in applications. The inclusion of updates from the 24H2 release makes it relevant for users with the latest version of the operating system.

    Windows 11 User Interface: A Comprehensive Overview

    Windows 11 introduces several significant changes to the user interface (UI) compared to its predecessors. These changes aim to provide a modern, streamlined, and more user-friendly experience. Here’s a comprehensive overview of the UI modifications based on the provided source:

    Core Taskbar and Start Menu Changes:

    • Centered Taskbar: One of the most immediately noticeable changes is the relocation of the taskbar icons to the center of the screen by default. However, users have the option to align it to the left, similar to previous Windows versions, via Taskbar settings.
    • Revamped Start Menu: The Start Menu has been completely redesigned with a new color scheme and layout. It is also now centered at the bottom.
    • It features a prominent search bar at the top.
    • Below the search bar are pinned applications for quick access, which users can customize by pinning and unpinning apps.
    • The “All apps” section provides an alphabetically categorized list of all installed applications.
    • The Start Menu also includes a “Recommended” section displaying recently used or suggested apps and files. Users can remove items from this list.
    • The user account options (log off, lock, sign out) and the power options (sleep, shut down, restart) are now located at the bottom of the Start Menu. The shutdown and restart options have a new location within the Start Menu.
    • Users can customize the Start Menu to show more pinned apps or more recommended items. They can also choose to show or hide recently added apps and most used apps. Additionally, users can select specific folders (like Documents, Downloads, Settings) to appear as icons in the Start Menu for quick access.

    Desktop Enhancements:

    • The desktop serves as an area to place icons for launching programs, website shortcuts, and file shortcuts.
    • Applications launched from the taskbar require a single click, while those on the desktop typically need a double click.
    • Right-clicking on the desktop provides options to customize the view (icon size, arrangement, alignment), show/hide desktop icons, create new shortcuts and folders, and personalize the background, colors, themes, lock screen, taskbar, and fonts.
    • Display settings, including font size and screen resolution adjustments, are also accessible by right-clicking on the desktop.

    Window Management:

    • Windows 11 introduces enhanced window resizing and layout options, especially beneficial for larger monitors. By hovering the mouse over the maximize button of an application window, users can choose from various predefined layouts to snap the window to different parts of the screen.
    • Standard minimize, maximize/restore, and close buttons are located at the top right of application windows.

    Taskbar Customization:

    • Right-clicking on the taskbar now primarily offers access to “Taskbar settings”. The direct access to Task Manager and other options via the right-click menu is no longer the default.
    • The Taskbar settings allow users to customize which items appear on the taskbar, such as the search bar, task view, and widgets.
    • For touch screen devices, there’s an option to enable the pen menu.
    • The taskbar alignment can be changed from the default center to the left.
    • For systems with multiple displays, users can configure whether the taskbar appears on all displays.
    • Right-clicking on the Start Menu icon on the taskbar provides quick access to various system tools like Disk Management, Computer Management, Device Manager, and Task Manager.

    Quick Action Center (Control Center):

    • The quick action center, located on the far right of the taskbar (next to the clock), provides quick access to frequently used settings such as Wi-Fi, airplane mode, accessibility settings, battery, volume, and brightness.
    • It features customizable tiles that can be toggled on or off.
    • Users can edit the quick settings to add or remove available options like cast, NightLight, nearby sharing, and project.
    • With the 24H2 update, the quick settings area introduces a scrollable set of icons for more options like energy saver, live captions, and hotspot.

    File Explorer Redesign:

    • File Explorer features a redesigned interface with a new “Home” section that includes Quick access (Desktop, Downloads, Documents, Pictures), Favorites, and Recent files.
    • It now supports tabbed browsing, allowing users to navigate multiple folders within a single window, similar to web browsers.
    • The top of the File Explorer window features new icons and menu items for common actions like creating new folders or files.
    • Contextual tools in the top menu appear after an item is selected.
    • Right-clicking on files and folders provides context-sensitive options, including the ability to “Pin to quick access”.
    • The visual look of the context menus has been updated with rounded corners, and with the 24H2 update, options are rearranged with labels below the icons for better clarity.
    • Copy and paste functionality has been enhanced with more obvious icons and labels in the context menu (24H2 update).
    • Sorting and view options (large icons, list, details, compact view) are available. Users can also show or hide the preview pane and hidden items.
    • File Explorer options allow customization of the default opening location, single or double-click to open items, and clearing history.
    • New functions in the 24H2 update include the ability to create 7-zip and TAR archive files directly within File Explorer, in addition to extracting them.

    Microsoft Edge Updates:

    • Microsoft Edge features a new optional sidebar providing direct access to Bing search, Discover features, tools like calculator and clock, and integration with Microsoft Office and other web applications like Gmail. The sidebar is customizable and can be hidden.
    • Menus in Edge have a more visually appealing design with rounded corners.
    • Collections, similar to bookmarks but allowing for saving screen clippings and articles, have been added.
    • The browser includes features for automatically finding coupons while shopping.
    • Privacy settings have been enhanced with options to block trackers.
    • Tools like Web select (for selecting text), Read aloud (with highlighting and auto-scrolling), and Web capture (for taking screenshots with annotation options) have been added or improved.
    • Users can install websites as separate apps, creating shortcuts on the Start Menu and taskbar.
    • A citation tool helps users properly cite web resources.
    • The Math Solver assists with mathematical equations.

    Widgets:

    • Windows 11 features a dedicated widgets panel accessible from an icon on the taskbar.
    • Widgets display information like weather, calendar, news, and sports.
    • Users can customize the widgets by resizing, removing, and adding new ones.

    Settings App Overhaul:

    • The Settings app has been significantly improved with a restructured and more visually appealing interface.
    • Settings are now organized into clear categories like System, Devices, Network & internet, Personalization, Apps, and Privacy & security.
    • The new design aims to be more intuitive and easier to navigate compared to previous versions.

    Other UI Related Changes:

    • The login and log out screens have a different visual appearance.
    • Paint has been updated with enhanced tools and a new image creator feature powered by AI, allowing users to generate images based on text prompts.
    • A new live captions feature (24H2 update) transcribes audio playing on the screen in real-time.
    • The Sound Recorder application has a new visual design (2022 update).
    • Media Player has been updated with a new look and features, including library management and integration with Clipchamp.
    • Notepad features a refreshed look and options to customize the font and theme.
    • Task Manager has a redesigned interface with new features like “Efficiency mode” for managing process resource usage.
    • Focus assist helps users minimize distractions by managing notifications.
    • Sticky Notes provides a simple way to create digital reminders.
    • Windows 11 introduces Windows Sandbox (for Professional and Enterprise editions), a separate, isolated desktop environment for testing applications and websites.
    • Voice Clarity, an AI-powered microphone enhancement, helps remove background noise during calls and recordings.
    • Clipchamp is a new in-built video editor for creating and editing videos.
    • The ability to connect and extend display to a second monitor has been streamlined, with options accessible via Windows key + P or through the Display settings.
    • Casting to external devices is made easier with Windows key + K or through the quick action center.
    • Windows 11 allows projection from Android devices to a Windows PC using the Projection tool and Connect app.
    • The snap layouts feature is enhanced, offering more intuitive ways to arrange multiple application windows on the screen.

    These UI changes collectively contribute to the modern and updated look and feel of Windows 11, aiming for improved usability and productivity.

    Windows 11 Taskbar Customization Guide

    Based on the sources, Windows 11 offers several ways to customize the taskbar to better suit your needs and preferences. Here’s a discussion of the taskbar customization options available:

    Default Configuration and Key Components: By default in Windows 11, the taskbar is located in the center of the screen. It includes several default items such as the Start Menu, Search, Virtual Desktops, Widgets, Microsoft Teams chat integration, Microsoft Edge, File Explorer, and access to email.

    Accessing Taskbar Settings: To customize the taskbar, you can right-click on any empty space on the taskbar and select “Taskbar settings”. This will open the dedicated settings page for taskbar customization.

    Customizable Taskbar Items: Within the Taskbar settings, you can configure the visibility of several key elements:

    • Search: You can choose whether or not to display the search bar or icon on the taskbar.
    • Task View: This option controls the display of the Virtual Desktops button on the taskbar.
    • Widgets: You can enable or disable the widgets button on the taskbar.
    • Pen Menu: If you have a touch screen device, you can enable the option for the pen menu to appear on the taskbar.

    Taskbar Alignment: One of the primary customization options is the ability to change the alignment of the taskbar icons. If you prefer the traditional left-aligned taskbar familiar from previous versions of Windows (like Windows 10 or Windows 7), you can change the “Taskbar alignment” setting from “Center” to “Left” under the “Taskbar behaviors” section in the Taskbar settings.

    Taskbar on Multiple Displays: If you are using multiple monitors with your Windows 11 system, you can control whether or not the taskbar is displayed on all of your connected displays. This option can be found within the Taskbar settings, and you would typically need to have a checkmark enabled for the taskbar to show up on all displays.

    Pinning and Unpinning Applications: You can easily customize the applications that appear on your taskbar for quick access.

    • Pinning from Desktop: You can pin an application to the taskbar by simply dragging its icon from the desktop and dropping it onto the taskbar.
    • Pinning from Start Menu: You can also pin applications from the Start Menu. To do this, open the Start Menu, locate the desired application (either in the pinned apps list or under “All apps”), right-click on it, and select “Pin to taskbar”.
    • Unpinning: To remove an application icon from the taskbar, right-click on the icon and select “Unpin from taskbar”.

    Removing Applications: While you unpin an application from the taskbar to remove its shortcut, to completely remove or uninstall an application from your computer, you need to go to the Settings app and navigate to the “Apps” section, where you can uninstall applications.

    Context Menu Changes: It’s important to note that right-clicking on the taskbar itself now primarily leads to the “Taskbar settings”. The direct access to Task Manager and other system options that was available in previous Windows versions through this right-click menu has been replaced. Instead, you can access tools like Task Manager by right-clicking on the Start Menu icon on the taskbar.

    In summary, Windows 11 provides a good degree of flexibility in customizing the taskbar, allowing you to adjust its position, the items that are displayed, and the applications that are pinned for quick access.

    Windows 11 File Explorer: Features and Usage

    Based on the sources, Windows 11 File Explorer is a tool for navigating the files and folders on your computer. Here’s a discussion of its key features:

    Accessing File Explorer: You can access File Explorer by clicking on the File Explorer icon located on the taskbar.

    Layout and Key Sections: Upon opening File Explorer, you’ll notice several key sections:

    • Home: This is a new option in Windows 11 that provides quick access to:
    • Quick access: Includes default folders like Desktop, Downloads, Documents, Pictures, and more.
    • Favorites: Folders and items that you have marked as favorites.
    • Recent files: Files that you have recently been working on.
    • Left-hand side pane: Offers options like OneDrive, items marked for quick access or as favorites, and further down, access to default folders (Desktop, Downloads, Documents, Pictures) and key storage locations.
    • This PC: Lists the storage devices available on your computer, including the C drive and any other internal or external drives (like USB flash drives or CD-ROM drives).
    • Network: Allows you to browse network locations.

    Tabbed Browsing: A significant update to File Explorer in Windows 11 is the introduction of tabbed browsing. This allows you to open multiple folders in different tabs within the same File Explorer window, similar to a web browser, eliminating the need for multiple windows. You can open a new tab by clicking the “+” icon.

    Top Menu Bar: Below the tabs, you’ll find a menu bar with options that become contextual depending on what you have selected. For example:

    • When no item is selected, you have options like “New” to create new folders, shortcuts, or various types of files (like Word documents or Excel worksheets).
    • When a file or folder is selected, additional icons for actions like cut, copy, paste, rename, share, and delete will appear. You can also find options for sorting (by name, date, etc.) and changing the view.

    Interacting with Files and Folders:

    • Selecting: You can select single or multiple files and folders by clicking on them. For multiple selections, you can use the Shift key to select a range or the Ctrl key to select non-contiguous items.
    • Opening: To open an application from the desktop, you typically double-click its icon. In contrast, to open an application or file from the taskbar, a single click is usually sufficient. To open a file from File Explorer, you generally double-click it.
    • Right-Click Context Menu: Right-clicking on a file or folder brings up a context menu with various options relevant to that item, such as copy, paste, rename, delete, and more. With the 24H2 update, these context menus have been visually updated with rounded corners and more meaningful labels below the icons at the top. A “Show more options” selection might be available to access the older style context menu from Windows 10.
    • Moving Files: You can move files by dragging and dropping them between folders, although the source suggests that using cut and paste is a safer method to avoid accidentally dropping files in the wrong location. You can cut by right-clicking and choosing “Cut” or using the cut icon in the menu, then navigate to the destination folder and paste using the right-click menu or the paste icon.
    • Copying and Pasting: To copy a file or folder, right-click and choose “Copy,” then navigate to the desired location and right-click to “Paste”.
    • Renaming: You can rename a file or folder by right-clicking on it and selecting “Rename” or by selecting it and then clicking on its name.
    • Sorting and Viewing: File Explorer allows you to sort files and folders by various criteria like name, date modified, size, etc.. You can also change the view to display icons in different sizes (large, medium, small), as a list, with details, or in a compact view. You can also choose to show or hide the preview pane on the right side.

    Quick Access: The Quick access section on the left-hand side allows you to pin frequently used folders for easy access. To pin a folder to Quick access, you can right-click on the folder and select “Pin to Quick access”. This will add it to the list on the left, allowing you to jump directly to it from anywhere in File Explorer without navigating through the entire folder structure.

    Creating and Extracting Compressed Files: File Explorer has built-in functionality for working with compressed files:

    • ZIP Files: You can create a ZIP file by right-clicking on a file or folder, selecting “Compress to ZIP file” (in older versions it might say “Send to” and then “Compressed (zipped) folder”), giving it a name, and hitting enter. To extract the contents of a ZIP file, you can right-click on it and choose “Extract All…“.
    • 7z Files (with 24H2 update): With the 24H2 update, you can now create 7z files by right-clicking on a folder, clicking “Compress to“, and selecting “7z file“. To extract a 7z file, right-click on it and select “Extract all“.
    • TAR Files (with 24H2 update): Similarly, the 24H2 update enables you to create TAR files by right-clicking on a folder, selecting “Compress to“, and then “TAR file“. To extract a TAR file, right-click on it and choose “Extract all“.

    Showing Hidden Items: To view hidden files and folders, you need to go to the “View” tab in File Explorer, then under “Show,” check the box for “Show hidden items“.

    File Explorer Options: Further customization of File Explorer behavior can be found by clicking the three dots () on the top menu and selecting “Options“. Here, you can configure things like whether File Explorer opens to “Home” or “This PC,” how folders are opened (in the same or a new window), and single or double-click actions. You can also clear the File Explorer history for privacy and restore default settings if needed.

    In summary, Windows 11 File Explorer offers a comprehensive set of features for managing your files and folders, including a modern tabbed interface, quick access to important locations, improved context menus, and integrated support for common archive formats.

    Windows 11 System Settings: An Overview

    Based on the sources, the System settings in Windows 11 provide a central location to manage various aspects of your computer’s operation and configuration. The source highlights it as a “major Improvement” in Windows 11 compared to previous versions, noting the restructuring, enhanced clarity, and visually appealing design.

    Here’s an overview of the System settings:

    Accessing System Settings: The source mentions that the easiest way to get to the System settings is through the search option. You can:

    • Click on the search icon on the taskbar.
    • Press the Windows key on your keyboard.
    • Then, type “settings” and click on the “Settings” app when it appears in the search results.

    Structure and Key Categories: Once you open the Settings app, you’ll find a well-organized interface with different categories. The source outlines several key areas:

    • System: This top-level category encompasses core system-related settings. This includes options for:
    • Display: Adjusting screen resolution, brightness, scaling, and orientation.
    • Sound: Managing audio output and input devices, volume levels, and sound settings.
    • Notifications: Configuring app notifications and Focus assist settings to manage interruptions.
    • Power & battery: Adjusting power modes, sleep settings, and battery usage.
    • Storage: Viewing storage usage and managing storage settings.
    • About: Information about your computer’s hardware and Windows version, and options for renaming your PC and checking for updates.
    • Devices: This section allows you to manage settings related to any devices connected to your computer, such as printers, scanners, mice, keyboards, and Bluetooth devices.
    • Network & internet: Here, you can configure your network connections, including Wi-Fi, Ethernet, VPN, and mobile hotspot settings. You can also manage data usage and network properties.
    • Personalization: This category lets you customize the visual appearance of your operating system, including themes, background images, lock screen settings, colors, sounds, and the Start Menu and Taskbar.
    • Apps: This section allows you to manage the applications installed on your computer. You can:
    • See a list of installed apps.
    • Uninstall applications (by clicking the three dots or configuration icon and choosing “Uninstall”).
    • Configure default apps for different file types and links.
    • Manage startup apps.
    • Accounts: Here, you can manage your user accounts, including adding or removing accounts, changing your account picture, and managing sign-in options like passwords and PINs .
    • Time & language: This section allows you to configure date and time settings, language preferences, and region formats.
    • Gaming: This category provides settings specifically for gaming, such as Xbox Game Bar, game mode, and graphics settings.
    • Accessibility: These settings help make your computer easier to use based on your individual needs, with options for vision, hearing, and interaction.
    • Privacy & security: This crucial section allows you to manage your privacy settings. This includes controlling:
    • General privacy options.
    • Speech settings.
    • Inking and typing personalization.
    • Diagnostics and feedback.
    • Activity history.
    • Search permissions.
    • App permissions for features like location, camera, and microphone.
    • Windows Security, where you can access firewall and virus & threat protection settings.
    • Windows Update: This section allows you to check for, download, and install Windows updates. You can also manage update settings like pausing updates and viewing update history.

    Search Functionality: The source emphasizes that within the Settings app itself, you can search for specific settings if you are unsure of their exact location. By using the search bar within the Settings window, you can quickly find the setting you want by typing relevant keywords (e.g., “disk cleanup”).

    In conclusion, the System settings in Windows 11 offer a significantly improved and centralized way to manage and customize your computer’s various features and options, covering everything from display and sound to privacy and updates. The clear organization and search functionality make it easier to find and adjust the settings you need.

    Windows 11 Full Tutorial for Teachers – 2 Hours Complete Course

    The Original Text

    hello my name is solic s the following is a comprehensive tutorial on using Windows 11 we will start with the very Basics and then proceed with more advanced features to master Windows 11 as you watch the video consider the quick guide posted in the video description the best way to learn Windows 11 is to also practice the described features handson while you watch the video as soon as you log into the system one of the first things that you’ll notice is that the taskbar has changed it’s changed the location and also the items in the taskbar also the options of the taskbar have changed you have the start menu the search option major Improvement in Windows 11 the virtual desktops and I’ll get into more later as to how that works the widgets the integration of Microsoft teams chat and video conferencing as part of the operating system getting to the web Microsoft Edge Windows Explorer and then access to email part of the revamped user interface or UI you have a completely different color scheme and layout of the components in Windows 11 the login and log out has changed so it looks different here and even the shutting down of the computer it it’s now in a new location in the start menu there are also some behind the scenes features and enhancements to the operating system with the emergence of the larger monitors that Windows allows you to resize a window by simply holding the mouse on The maximize button for any of the applications and you can choose a particular lay out there enhancements related to gaming there is a gaming mode also widgets so if you click here on widgets the taskbar is typically one of the tools of an operating system that it’s used as a quick way to launch specific operating system functions so you want to get to settings for example you want to get to launch the different applications or launch your files so you need a way to get started in Windows 11 the taskbar is this set of icons here in the bottom now it’s in the middle of the uh screen now some of the components of the taskbar and then how to customize the taskbar so one of the first options here is a start menu you’ll notice the start menu has been revamped through the new user interface you can navigate pinned applications as part of your options you can get to all the apps in the operating system from here or there are also recommended apps or what you have used recently the next part of the taskbar is the search menu if we go to click on search and by the way you can get to the search by pressing the Windows key on the keyboard and it will launch the same thing the third option here is the virtual desktops so virtual desktops is a functionality where you can launch specific programs on a workpace so right now I have let’s say word let’s say five or six programs but then all of a sudden I need to meet with a client and instead of me having to clear my desktop and having to uh prepare my desktop to share my screen and so on I can come down here to the virtual desktops area click on it and create a new virtual desktop it’s going to be a clean start I can uh follow up with a client work with them open new applications and switch between the multiple virtual desktops by retaining the previous settings to go back to the previous desktop I can simply click on or hold the mouse on Virtual desktops icon and then switch to my first virtual desktop where I’ll get access to my apps co-pilot in Windows 11 to access co-pilot click on this co-pilot icon next to the search icon on the taskbar and then if you’re signed in with a work account you’ll be working through the cloud co-pilot application if you’re using a personal account then it will use the desktop version of the co-pilot so in my case I’m going to click here on go to co-pilot for work and at this stage very similar to open AI for chat GPT here we can ENT The Prompt so we want to create a marketing plan for an MBA online program and then we simply click on submit we can also create images from here and this will most likely evolve from the time of this recording because AI is constantly changing and advancing at this point it’s working to create to design an image uh if you use certain type of prompts you can also create bar charts visual representations of data the other cool feature as part of the new windows taskbar is the widgets to to access the widgets you can click on widgets and then you can have the weather you can have the Outlook calendar reminder Sports and you can add other widgets such as traffic and so on and if you scroll down down there is news and stock updates to the right of this there is the Microsoft teams video conferencing as part of this operating system then next Microsoft Edge which is one of the web browsers obviously then you have the file explorer and I’ll get into more of those Concepts shortly and then email now to customize those settings for the taskbar you can right click on it and choose taskbar settings one thing that is different from previous versions is that you don’t have the task manager and a whole bunch of other options you simply have now the task settings under task settings this is where you can customize whether you want search to show up as part of the taskar whether you want the task view to show up like those buttons that we saw down here whether you want them to be displayed or not if you have a touch screen you might want to enable the option for pen menu in most cases that would be enabled but if it’s not this is where you enable it if you don’t like the taskbar in the center how Microsoft has set it by default you can change it to be on the left and it will be very similar to the Windows 10 or Windows 7 if you have multiple displays you can control whether you want your taskbar to show up on all displays and this you’d have to have a check mark in here for that as part of the taskbar on the start menu area if you right click on it you have a bunch of options very similar to Windows 10 and Windows 7 where you can get to certain key areas in your computer so for example if you need to check the Disk Management or if you want to check the computer management devices and Tool and resources in your computer or if you want to get to the task manager this is how you now get to it the Run command and even shut down and restart the computer it’s by right clicking on start menu on the far right you have this quick action center and we’ll get into that later as well but for now here is where you can configure and connect to the Wi-Fi airplane mode and then change accessibility settings things related to the battery and so on so this is kind of the quick settings for your desktop to change your time clock and your computer you can do it from here along with adjustments of the notification settings while you are focusing on work the start menu in Windows 11 allows you to access applications installed on your computer the settings in your computer as well as files and navigate to the files and so on so it’s basically a way to access what is available in your computer to access the start menu in Windows 11 notice that now it is centered in the bottom here we click on start this icon here in the bottom left and that’s where the start menu is in Windows 11 notice at the very top of the start menu you have the search option and this is Windows search it’s also the same function as over here to the right of the start menu right below the search option you have the pinned applications those are commonly used applications that have either been pinned by Microsoft by default fault or that you can pin them on your own manually if you don’t want one of these applications pinned in here you can rightclick and choose to unpin it from the start menu if you want a particular application to show up in here let’s say PowerPoint search for it and then right click on it and choose pin it search for the applications once you locate your application you can right click and choose to pin it to the start menu if we click on the start menu again we should have PowerPoint as one of the options notice I have to scroll down to access it if we want to move one of those to a different location in the start menu in the pinned area select it and then drag it up or down in your list of applications to the right of the pinned area we have the all apps this is how you can can access all the applications in your computer if you click on all apps notice that they are categorized alphabetically and you’ll simply scroll down and access any of those applications some of them contain folders so if we click here on text Smith for example notice that there are various other options within that folder one application could contain other sub applications as part of of that main application further down here we have also the recommended apps these are applications that Microsoft is recommending for you to have access directly from the start menu these could be various files that you have used or various applications installed in your computer to remove one of those applications from the recommended list right click and choose remove from the list further down in the start menu we also have the option to log off this is the account that I’m log into this computer currently and if you wanted to switch accounts you’ll click on it and then choose to change account settings or to lock the account or sign out on the right hand side this is where we have the power options we can choose to put the computer to sleep from here or we can shut it down or restart the computer furthermore we could customize the start menu by clicking on this empty space because notice we have all this this empty real estate here in the bottom between the account logged in and the power options to get to the settings of the start menu right click anywhere in this empty space between the two and choose start settings from here we can select a different view so if we wanted more icons to show up as more pins to be displayed by default it’s basically some of the pinned apps and then recommended apps but if you want more of the pinned apps as part of that real estate you can choose to more pins and it will look like this notice more of them showing up or more recommendations more recommendations will shrink the space of the pin apps and it will give you more recommended options down here below if you do not want to show the Recently Added apps in the start menu you can turn this option off so so notice down here this is what I had installed recently these two applications if you don’t want that options you can choose off and now those will no longer show up in the start menu to show the most used apps in the start menu in Windows you can select this option turn this to on and now if I click on the start menu they will show show up in here now this account I don’t use it much so that’s why you’re not seeing any difference at this point I use this only for the recordings you can also choose to hide or show the recently opened items such as file explorer files and if you want to turn this off now notice that the recently opened files that I had from earlier they’ll no longer show up as part of the start menu further down you can choose to show the various folders as part of the start menu so this would be items that you want to be displaying in here between the DL staff and the power options so we click on here and then let’s say I want to show the settings there I want to show file explorer documents downloads music network settings or even personal folders it allows you to create personal folders in your computer as part of the start menu now if we go back to the start menu notice that down here I have all of these options that I can access the documents downloads or whatever I selected to add over here so that is how you use the windows 11 start menu the desktop is simply an area where you can place various icons in order to launch programs in your computer and a lot of other cases is you can place shortcuts to website or even shortcuts to files so in this case we have a bunch of the icons or programs here in the left now the difference is that in order for me to open an application from here for example Microsoft Edge I need to double click on these icons to open them up while from the taskbar here in the bottom if I’m launching something from the taskbar I’ll click only one time in order to open that application as you install different programs different icons will show up on the desktop what shows up on the desktop depends on whether the application has been configured by default to put an icon on the desktop you can customize a view of it by right clicking on it and you have a bunch of options here you can change the view to have larger icons or different types of icons and whether to arrange the icons on your desktop a certain way align them and even to show or not show the icons on the desktop also you can create new shortcuts or new folders on the desktop so if I want a new text document there I click on new choose new document or new Excel document and there it is now of course to move those things around you can drag them at wherever you want them to delete an icon from the desktop that is quite obvious you simply select it and you press delete one of the key components of the desktop it’s also the access to the recycle bin so typically anytime you delete something from your computer it’s going to put it automatically in a recycle bin so if you wanted to retrieve something from a recycle bin double click on it and then it will display what you recently deleted here I can right click on it and choose to restore it to customize the desktop right click on the desktop choose to personalize it and then under personalize this is where you can change a lot of the different settings such as a color themes the lock screen and taskbar items and things like that fonts and so on and obviously here we are personalizing the background and so on you can pick different backgrounds photos change those contrasts by right clicking anywhere on the screen or you can change the display settings if I wanted to change the font size on the monitor the resolution and so on this is where I’ll make those changes if I right click again on the desktop notice there are some additional options here opening an application and managing an application from Windows 11 now this is a very B basic concept that most of you have used but yet if somebody is for the first time trying to understand the windows 11 operating system this would potentially help so to launch an application if if the application is already on the taskbar you can simply click on it and single click and it will open up for example here Microsoft Edge if I wanted to open an application from the start menu you just simply click on start and then pick the application from here or under the all apps so in that case I’m simply finding it then clicking on it and then launching it if the application is also listed on the desktop and you want to launch it from the desktop here you’d have to double click instead of single clicking one of the features in Windows 11 in any application actually is that on the top right here typically you have these controls now on a MacBook or in a Mac OS those controls would be on the left hand side that you can minimize this app by clicking on the little minus icon in the bottom left and it will bring it down to the taskbar and you can get a preview or relaunch it by clicking on it again the other option is this minimize maximiz option what you see here on the screen this is a new feature in Windows 11 and this allows you with the emergence of the larger desktops you simply hold the mouse on the icon here on the middle one and then you can select to park this application in half of your screen or a certain position of your screen so if I want to just on the bottom right top Corner the fourth of the screen out click on this and now it’s only on that part of the screen and then I can have something else on a different part of the screen to close the application you can click on X on the top right and that is standard with other versions in some cases when working on an application it crashed on you and you just need to somehow make sure to close it without rebooting the computer one of the ways to do that is to access or to close the application from the taskbar so let’s say the application is here somehow it’s misbehaving now I need to get to the taskar to close it to access a taskbar and by the way this has changed you right click here on the Windows icon and you click on task manager or you can simply go to the search option and type task manager and now this will give you something like this it will show up task manager and the apps that you currently have opened so if I wanted to end this app application forcefully I’ll click on the application and then choose and task in some cases that application may not show up in this list and then in that case you can click here on more details and then find the application and choose end task to find it you click here on processes in this module of the windows 11 tutorial I’m going to go over how to switch between applications in Windows 11 the process is the same as previous versions of windows but for the purpose of understanding how the windows 11 operating system works I’ll cover it here as well so let’s say we have two or more applications opened and we need to switch between them and we have only one monitor let’s say I wanted to switch to word one of the options is to Simply go to the taskbar in the bottom and then click on word and switch between the two if I have more than two applications opened obviously the process is going to be very much the same so I’d go the taskbar and switch between the applications here on the bottom another way to switch between the applications is to hold down the ALT key on the keyboard and then press tab this will display all the applications running currently on this computer and then keep on pressing Tab and switch to a different application or while I’m holding the ALT key I can go and click on a specific one to switch to it earlier I also covered that you can switch and have multiple desktops or multiple virtual desktops as well if I want to switch to a completely different desktop I’ll go here to the bottom and switch to a new desktop desktop 2 let’s say and from here I can launch a whole new setup a variety of applications in this module of the windows 11 tutorial I’m going to go over briefly how to use Windows search Windows search it’s actually one of the cool powerful features of the upgraded Windows operating system instead of you having to scroll and locate a various application and identify where it is and so on you can click here on search and simply start typing that will search for apps it will search for all the components on the computer we’ll search for documents uh the web and people photos videos and so on those search options can be customized by clicking here on these three dots or options icon on the far right and then customize various icons and also the search settings as well the search can launch it directly here by clicking on the Windows icon or you can press the Windows key and then simply start typing so you type the name of the application and then you just click on it and it will bring it up the other thing you can do is that you can search for settings in your computer so let’s say you wanted to change the display settings you go here to the display area or any of the display components and then change the various settings like the scaling and so on another example would be for example the Wi-Fi if you’re not sure how to connect to the Wi-Fi you can type Wi-Fi or Wireless and then click on it and it will take you to your Wi-Fi settings so the idea is anytime you need something instead of having to know where it is located you can search for it with an approximate word and the system will bring up that particular file or that particular setting or that particular application in this session of the windows 11 tutorial I’ll demonstrate how to use file EXP Explorer in Windows 11 file explorer is a tool for navigating the files in your computer to access file explorer click here on file explorer from the taskbar and then on the left hand side we have the home option this is a new option in Windows 11 that contains by default a quick access options such as the desktop downloads documents pictures and so on favorites folders and items that you have marked as favorites and then recent files these would be files that you have been working on recently then on the left hand side options such as one drive or items that you have marked as favorites or marked for quick access then further down you have desktop downloads documents pictures and uh various key folders that you may want to access quickly further down we have the options for this PC and network this PC this is what lists the storage devices that you have in your computer by default every computer has C drive and then if you have a second hard drive it will be listed something similar to this but then if you have a cdrom drive in your computer it would be D drive typically or e Drive and then if you add a flash drive this is where it will show up so basically to access a any of those items you’ll need to click on this PC and then further down this is where you can navigate the files and folders in your computer this is a recent update to Windows 11 notice that there are now tabs that you can open instead of opening multiple windows to navigate through your files in your PC you can now open a new tab very similar to a web browser for navigating the files now at the very top if we go let’s say to a Loc that say downloads in this computer and if I want to create a new folder I can click here on new so notice we have these icons or menu items right below the tab here so if I want to create a new folder I click on new and then choose folder and then simply give it a name from here and I double clicked on it to access it now to create a new file I could create it either using word from the application or I could create the file directly from here as well so if I click on new word document I’m basically giving it a new name from here and then it will give me the option to double click on it and then open it in word and it will save it to the location that I created this file once you select an item notice that the other menu items in the top show up after the item has been selected so it’s very similar to contextual tools in office applications to determine as to what these icons stand for you need to hold the mouse on them and it will display what the item is remember also that to modify any of these files you can rightclick on them and then you have other options as well related to that file if I want this folder to be listed here under my favorite folders all you have to do is is you right click on the folder and select pin this to quick access and Noti this point it will add it here on the leftand side the advantage of the quick access is that anytime I’m working in file explorer instead of going to downloads and then selecting my folder I can click here on the left hand side and it will take me directly to that folder now to copy a file right click and choose copy and then I can go to a different different folder where I want to paste it and right click in that location and then paste it obviously this is a simple concept but it’s to demonstrate the functionality in Windows Explorer to rename this file right click on it and choose rename or click over here and the file name and then choose the rename icon notice there is also the Sorting option that I can sort them by name or by date and then there is the view option whether I want large icons or whether I like a listing of files or also the details for those files there is also the compact view the changing of the various views so if you want to see more files in a compact way You’ select this option and you can also select from here whether you want to show the preview pane on the right hand side so if I click on this file it will give me a preview of what that document contains can even have checkboxes under View and then show this is where you can also select to show hidden items or hidden files in Windows further to the right we have these three dots this is where you can see additional options whether you want to select them all or the properties for this folder or options for file explorer if we click here here on options this is where we can configure in the system when you open File Explorer if you wanted to see the Home tab or if you want to go to this PC automatically here in the bottom this is also where you can define whether you want to open each folder in the same window or in its own window and whether single click or double click on items to open them here is how you can clear the history for privacy reasons in your computer if for some reason you mess up those settings you can also restore those defaults by clicking on this button restore defaults Under The View area and this is where we are getting more granual this is where you can specify additional options whether you want to show certain items and you can apply this to all the folders now if you make changes in your PC and you want to go back to revert back to the default options you can always click here on reset folders and that will reset all the settings to the default folder settings as I mentioned earlier you also have the tabed browsing in file explorer the advantage of this is that you can navigate to various folders in your PC and instead of interfacing between various Windows you’re just interfacing via the various tabs in your computer with a 24 H2 update of Windows 11 there’s new function fun ality related to Windows Explorer prior to this release if you right clicked on the file You’ only see these little icons and didn’t have the tags or the labels below the icons so now with this update you can right click on something press copy and then right click again and then select paste but it’s more obvious as to the function for copying and pting in those files or folders same thing also with file so if you right click on this notice you have the options which are more meaningful at the very top here with the labels below them and then if you want to paste it in this case it’s larger and in the past it used to be a tiny icon without the label below it so you’d have to know what it was now if you help the mouse on it it will tell you what that icon stands for and also what the shortcut for it is this segment of the windows 11 tutorial I’ll demonstrate how to pin apps to the taskbar in Windows 11 now you can pin apps to the taskbar by simply dragging them from the desktop to the taskbar and just letting the mouse go let’s say I want to pin the zoom application to the taskbar I simply can drag it to the taskbar and then let the mouse go and it will create a shortcut on the taskbar if you want to add another application to the taskbar go to the start menu search for the application or locate the application and then right click on it and choose pin to taskbar to remove an application from the taskbar right click on the icon and then select unpin from taskbar in this segment of the windows 11 tutorial I’ll demonstrate how to change the location of the taskbar in Windows 11 in Windows 11 by default the taskbar is centered to the bottom of the screen if you want to change this similar to the prior versions of Windows right click here in the taskbar and select that taskbar settings scroll down under taskbar behaviors and then change the taskbar alignment from Center to the left then close the taskbar settings and then you are all set working with folders I find that most users don’t fully understand working with files let’s say I wanted to create a new folder here if I click on new up here I can choose to create a new shortcut or a new folder and a new bunch of other stuff here but for now I want to create just a new folder so I click on new and then choose folder and then I have the name of the folder and then you hit enter to move a file into this folder I can do it a couple ways let’s say I have this file right here and I want to move it over here I can simply drag it and then it will put it in that folder drag and drop it’s great as long as you’re precise there’s a danger in a drag and drop because sometimes you may drop a file in the wrong place so the best thing to move files around is by selecting them if there are more than one then you can either select all of them or select just a few of them or you can hold the control key and select random ones or you can click on the first one hold down the shift key and then select a few of them and then use these options up here by the way Microsoft in Windows 11 change this so we can cut these and then move them somewhere else this is the safer way to move files around or you can also right click click on Cut here and now I go back navigating to the top folder or I can go to the left and use navigation on the left and then let’s say I want to paste those files in here right click and choose the option to paste or you have the paste icon on the top these may be very basic concepts but it’s necessary in the workplace now one of the needs that I also find the users are not very familiar with in any version of Windows is how to create a compressed file or a zip file as it’s called so let’s say I have here this word 2019 folder and it has a bunch of stuff in there now let’s say I want to send that to somebody in a compressed format because it has a lot of stuff in it to create a zip folder a zip file all you have to do is right click on it click on compress to zip file now the terminology here in Windows 11 has changed so we click here on create a zip file it’s going to do its thing and it’s actually putting all of these files including the folder and potentially sub folders into one single file for you to send away notice it says it’s a zip folder it has a zip little icon thingy here and that’s what You’ need to send but you’re sending one compressed package typically for large files instead of emailing them maybe share them either using one drive or Google drive or some kind of cloud file sharing platform now let’s say that I received this file typically with a zip file you also need to extract those files notice there is an option for extract all items in this folder or you can right click on it and choose to extract all and that’s a necessary process for any zip files for you to do on your end obviously you need to do this only when you’re completely assure from a a safe sender notice it’s going to by default extract it in the same folder that we had it however you can change it to a different folder you press extract and all those files at this point will be displayed in here notice it creates a new folder matching the zip folder and under that then there are the actual files the context menus for the file explorer and windows 11 have changed notice first the rounded Corners the visual look and feel and then these options have been kind of rearranged and the icons have changed more options this will bring more of the old look and feel from Windows 10 and that’s how it used to actually look finally as you’re accessing files in some cases there might be a need to track down hidden files in your computer there are certain places that the files are stored and you just need to make sure to kind of get to them or view them or do something with them so and one common area is for example if we go here under the users folder we go under this account my profile account notice that by default you see maybe 10 or 12 different folders in here however there are files and folders in there that are actually hidden by default and to view those files and folders going under view scroll down under show and then choose show hidden files or unshow hidden files and notice now app data you’ll have this displayed so if you have a Windows PC with a network connection a wired connection obviously you simply take the wired connection and provided the port in the wall is active you simply plug it in and you should be able to connect to the internet if you have a wireless laptop or a wireless device with Windows 11 and you want to connect to a network whether at home or at your business in the bottom right here you’ll see a globe with a little arrow like this so you’ll need to click in this area it doesn’t matter which area and it’s going to bring up quick settings notice that currently the Wi-Fi is not turned on so I can click here to turn it on and notice now it’s blue so typically this has to be blue it has kind of changed in Windows 11 and once this is blue for the wireless connection that means that it’s on and available to view the wireless networks then we need to click here on this right arrow to click on the wireless connections and then you would pick the connection in your area or from your business typically the ones that have a lock means that there is a passphrase and you need to know the passphrase typically on your own router or in a business it might be a shared password through the IT department or in a lot of cases it’s upon login click on the network connection and then you press connect it will prompt you to enter it if it doesn’t need a password in this case I was connected before that’s why it didn’t prompt me then it will remember those settings under this little icon you can also check additional properties related to the wireless network to get to these settings obviously you can go to the settings area and Windows search and then choose wifi settings and then choose show wireless networks and this is where you pick to connect to another Network so that’s another way to manage the wireless network and connect to the network in this module of the windows 11 tutorial I’m going to demonstrate how to connect to the internet this is really very basic but it’s one of the aspects of learning about an operating system particularly if you’re not sure how this is is done once you have connected your computer to the network in a wired way or a wireless way once you have done that typically you need to use a browser and the default browser included in Windows 11 is Microsoft Edge other browsers are Google Chrome Firefox and other ones such as Brave which is recent one based on Chrome as well but for more privacy notice that you have a search box here on the bottom and then you have an address bar on the top on the top that’s where you type your url now that can search also if you type sell tutorials notice it’ll perform a search that’s because the address bar on the top acts as both a navigation tool and also a Search tool they are combined into one now a lot of users they search in this area here this search box so whenever you’re typing in here cell.com for example that is actually not going to take you directly to the website you’re just searching as part of the default search so it’s going to give you a lot of different options here but not necessarily take you there directly so my suggestion to be effective and to know how this is done you just type what you want to type on the top part and not the second part well another thing to consider for the web browsers check the settings and modify the settings in your browser so you click on these icons here on the top and you go under settings and then here is where you can change whether it’s a privacy whether it’s the appearance look and feel of your browser starting page this is where you can set a new page so for example if I want to always start with a new page here and that new page should be ci.com that’s how I add it in here now that I change the default start page notice that once I open it up again it will take me just to that website that I configured earlier one of the tools that I find useful is also here under the settings and then which is the three dots up here and then under more tools there is this option also to cast this to a device to connect to a remote display in this segment of the updated window Windows 11 tutorial I’ll go over some of the features in Microsoft Edge that were added with this update I have opened Microsoft Edge and notice on the right hand side we have this new sidebar and the sidebar you can search with Bing directly from here and obviously you can search from the top here as well but this is an option that it doesn’t close the existing tab the Discover option you can search whether from this site based on this site or relevant information similar to this site other tools such as a calculator the clock various conversion tools games open Microsoft Office Outlook and add a variety of other applications from here so for example if you wanted to always open Gmail it can simply click on it and it will add this little icon on the right hand side now furthermore you can customize the sidebar by clicking here on settings and then selecting additional options from here if you do not want to see this sidebar you can click to hide it to bring it back click here on settings and then click on show sidebar another Improvement was the menus notice that the menus now are much more visually appealing with around corners as well another enhancement was the addition of Collections and collections are similar to bookmarks but you’re adding screen clippings articles websites to to a particular collection so if you click here on collections you can create new collections by clicking on start a new collection and you can sort them however you want so to add this page to one of the collections you can right click on the tab and then click on add the tabs to a specific collection so you’re adding all the tabs that we currently have opened to the tech collection another useful function in the updated Microsoft Edge is to automatically save money while you shop so if we go here to walmart.com and search for the word computer or whatever you want to search for notice at the top we have the option that says this site has coupons click on it and it will display current coupon codes that you can utilize from this website you can copy the coupon and then enter it during the checkout other enhancements also include the privacy settings so if we go here under settings and go under privacy search and services under balanced has also the option to block The Trackers from sites that you haven’t visited content and ads and it blocks harmful track haers as well so this is selected by default and you can even make it stricter than what it is here another helpful tool is the web select feature which basically it allows you to select a whole bunch of text so if I click here on web select you drag the mouse to the section of text that you want to select and notice it’s going to pick all of those text areas next we can paste what we copied from here in another application another great feature is also the option to read this page aloud when we click here over 400 free tutorials start learning and advance in your career free technology training access more than 400 free tutorials on the YouTube channel on Microsoft Office 2019 so the audio is it’s fairly clear and accurate and it makes it very easy to read with a natural voice this as you notice also it highlights and Autos Scrolls the text to help the learner and those with reading difficulties another feature that is very helpful is and this is new as well is the web capture feature the web capture you can select either the whole page or you can capture a particular area you select the section that you want to capture and then you can copy this or mark it up we going to bring up The annotation tools similar to to this another nice feature in the updated Microsoft edge with the ability to launch a particular website or a tab as a separate app so if we have this website and we click here on the configuration then go under apps then you can click here under install this site as an app give it a name press install and then it will pin it to the start it will pin it to the taskar it’ll can create the desktop shortcut and it can also auto start it when the device signs in you click on allow here this is how it will look and there will be an icon on the desktop and on the taskar to launch it other helpful tools with this update include also this area here if you go to settings and choose more tools you can obviously cast this to a media device you can even site this and this is actually pretty cool so if we go here to the YouTube channel you’re not sure how to site this resource click on settings go to more tools click on site this and it will prompt us to pick what style for citations whether it’s MLA or APA 7 and then you copy this and then put it in your paper as part of the citation you can pick whether it is a website and put the author’s name the date it was published in the year you can pick today and then put some kind of annotation if necessary and the citation will look like this then you’ll copy this and put it as part of your citations as part of your research paper other helpful tools include the math sober the math sober is basically if you want to use mathematical equations whether they are on a website where it will allow you to select those math problems or you can write and it will help you solve those particular math problems Windows 11 has a new feature called widgets here in the taskbar it’s one of the main icons by added by default you click on widgets and you’ll be able to see particular ones that the Microsoft has already put in there by default for you however you can customize those widgets by using the more options item here and you can make this large or medium or remove it completely you can go and add new ones pick the items that you want to add and customize the size and other options related how to shut down the computer in Windows 11 this might seem like a very easy and simple step to shut down or reboot the computer you simply go here under the start menu and then you click on the the power power icon in the bottom right from here select the shutdown option or the restart option obviously the restart option but clear everything from the memory if the computer is running into problem it is highly recommended that you first reboot the computer before you get too frustrated with a problem that you are running into when you put the computer in sleep mode it’s not closing the programs it’s keeping everything the way you had them before but just conserving energy and putting things to sleep the hibernate mode is actually more effective in saving battery life on your laptop but it takes a little bit longer for it to start up if you have a solid state drive the hibernate mode probably is the better option for conserving battery in this module of the windows 11 tutorial I’ll demonstrate how to install the Windows updates and keep the computer up to dat we go here under the windows search or press the Windows key and then type Windows update notice that there are some updates here we simply press install now and the updates will be installed in the computer the other thing to remember is that you can pause Windows updates if you don’t want the computer to be restarted during business hours or you want to pause them for a week and so on this is where you can change those settings if you want to look at the history of update you can click on Windows updates history and it will show you what has been installed in the computer further down here under Advanced options you can also choose to install the updates at certain hours of the day or at certain times you can choose when to receive the Windows updates under optional updates sometimes there are a driver software for your PC or non-crucial updates for your PC that might be helpful but it is important to keep your PC up to dat for security reasons for better performance of your PC and sometimes additional functionality as well in this segment of the windows 11 tutorial I’ll demonstrate how to customize the look and feel of Windows 11 there are a couple ways you can do the the changing of their look and feel you can right click from the desktop here and then choose personalize and then under personalize you can change and pick themes so let’s say I want to utilize this one it will adjust all the colors and everything related to that Windows theme I’m going to revert it back for now if you want to further just customize certain things for example the desktop settings if you wanted to change the The Sounds or change defaults or the cursor and so on this is where you’ll do it as well to change the font size of your icons and components of Windows right click here on the desktop and choose display settings I’m showing you this from the desktop functionality however you can also search for it just choose display settings and then under the scaling you can change change this so that it can be larger fonts and larger icons or smaller if you prefer and screen orientation and things of that nature how to customize the windows 11 settings just like with any other operating system there is typically a need to go and modify particular settings in the computer so think of it like if you have an iPhone and you go to the settings area you can modify by a variety of things whether it’s for the apps or the privacy and things like that regarding your device so the same thing here as well you can uh go under the search option to get to settings and this would be the easiest one you can press the Windows key on the keyboard or you press the search option and then type settings that’s the quickest way to get to it once you click on settings this is actually a major Improvement in Windows 11 while in Windows 10 you had settings that had the different the old look and feel to them in Windows 11 Microsoft they are really outstanding uh work on restructuring them making sense and also visually appealing as well so the very top here you have the option about the system so you can change system related settings such as the name of your computer the updates about the computer and obviously under the system settings you can change settings related to the display the sound notifications power storage anything that is system related as far as devices and so on you can click on that and you’ll be able to customize settings related to any devic is connected to your computer and the same under uh Network and so on then personalization this is where you change the themes and a look and feel of your operating system system and then under apps this is where you can click and choose default features or even and uninstall various applications in your computer so this is where you can add and remove programs from your computer now if for some reason you need to delete an application to remove it notice that this has changed in Windows 11 and you can click here on the three dots in the far right or in the configuration icon in the far right and then choose to uninstall it from here Additionally you have the gaming settings and also privacy settings and Windows update so all of that to say that very similar to an iPhone or a smartphone where you can change and customize the settings about that device the same idea is here as well you can also search here for a particular setting let’s say your not sure where dis cleanup is located you can still search for it in this module of the windows 11 tutorial I will demonstrate how to customize the privacy settings in Windows 11 so you go in the start menu or the windows search either one of them and we type privacy settings now this on the left you’ll have privacy and security and then you can change other stuff related to security as well but in our case here we are concerned primarily about the privacy settings so you can go here under General and you might want to turn off a lot of these options then we go back here under privacy and you’re not done yet by the way you go here under the speech settings and then you change also the speech settings to change those to off basically you’re not sending the speech patterns or whatever you say it be stored externally from your PC then you can go down under the ink and typing personalization you can turn off also the dictionary and certain terms and words that you type on the on the soft keyboard so that those are not stored outside of your PC additionally go under the diagnostic and feedback and you want to potentially turn all of these off and then under the feedback frequency so basically put the most minimum that it allows you to put in there of course take note of what you’re turning off so that just in case something happens you’d come back to them if you go under the activity history and you can choose to turn that off as well you can clear the privacy setting there then go under the search permissions this is probably what you want to do for the safety of kids or the moderate search this has to do with the web content that is that’s going to display in your computer as far as the cloud search content and so on you can turn these off as well in more privacy under location notice that there are also app permissions such as location and this is very similar to like if you have an iPhone you can control what apps can access your location and things like that it’s very similar to that here as well you’re just going here and then identifying which apps have access to your location settings and change change this by default or you can clear that history the same is with camera and microphone however for camera and microphone i’ be cautious on turning things off from here for example if you’re turning this off from Skype uh you’re not allowing it at all for a specific app when you go to use that app you’ll most likely have problems with using the camera or the microphone so I’d be very cautious on turning off the camera settings voice activ keep these off for the particular Cortana or keywords this would be like apple has hyeri Windows if you have this option on it’s always listening for the word Cartana in this module I will demonstrate how to use the action center or quick settings Center in Windows 11 typically here in the taskbar on the far right of the desktop we have these options this is area a listing of items or functions that you can quickly access anything in blue that’s active anything that is not in blue that’s not activated at this point we can change the display we can change the sound settings and so on and the volume settings and you can go and more volume and so on there is also an edit icon in here and we can add additional items to the quick settings are area which Microsoft would actually have added these additional settings by default so I click here on ADD and let’s say I want a cast option so I can connect to a remote display easily let’s say I also want the NightLight option I want um the nearby sharing and also the project option then I click on done now those options will be available at any point by clicking anywhere in here and then selecting that particular option for quick access with a 24 H2 release of Windows 11 Microsoft is making changes to the control center the Quick Settings area so if you click here next to the clock on your computer you click on the control center now in a new feature is these set of icons that you can scroll up and down so we have here energy saver accessibility project and so on but if you click on this next page that will give you more options such as live captions hotspot nearby sharing in this module I’ll demonstrate how to change the default printer or how to set up the default printer in Windows 11 by default in Windows 11 the windows determines as to which printer becomes the default so to set the default printer we go here under the search menu and then we type printers we go to printers and scanners and then the first option that we want to change to scroll down here below the list of printers and turn off the option for letting Windows manage it once we have uh turned off the option for Windows to manage the printer then we go to the particular printer that we want and then click on it and then this button will show up for making it as a default and notice here at this point it will state default in this module of the windows 11 tutorial I’ll demonstrate how to connect to the windows 11 store think of the windows 11 store as the app store if you have an iPhone or the Google store if you have an Android phone so to access the App Store you click on the Windows start or on the search and and then you can simply search for store or you just click on the Microsoft store these are apps from Microsoft or third party apps that you are adding onto your PC to increase its functionality there is also in Windows 11 functionality or the option for you to be able to install Android apps as well and you’ll do that primarily through the Amazon app store if we wanted an app installed whether it’s Netflix or Whatsapp or whatever it is the apps here you simply click on it and then sometimes you might have to pay additional fee for it sometimes may not you can check the ratings you can check the description and uh so on and if you decide to install it then you can click on get it will associate the app with your Microsoft account you’ll need to enter your Microsoft account login and it’s going to be very similar to an app store from Apple or from Google and smartphones in this video I’ll demonstrate how to change your Windows password there are a couple ways to change it if you’re working in a corporate environment and you’re connected to a network then obviously you change the password through the tools that the IT department has set up for you in most cases even if it’s a network account you can change your Windows password by simply pressing control alt delete in your computer and then a prompt like this will come up and then you can click here on change password and then you can put in your old password the new password and confirm the new password as well and this is the quickest and easiest way to change the password the other options are also under the search if we go here to search and then change password we have more clicks that are involved in this step through this procedure but You’ still reach to the same conclusion in this module of the windows 11 tutorial I’ll demonstrate how to lock your computer if you’re going to step away from your desk for a few minutes or for the rest of the day this is a very good practice to get into the custom of doing and obviously this is for security and maintaining your privacy and the security of your files so you can be on any application that you’re working on and at any point that you want to lock your computer you simply can press the Windows key and the letter L on the keyboard and then it will bring you back to this option so it’s basically going to bring you to the login screen again when you’re ready to come back and start working again you can hit any keys on the keyboard enter your password in this segment of the windows 11 tutorial I will go over the Windows security settings and how to check your computer for viruses and malware Windows 11 actually comes packaged with its own Security Suite and firewall tools as well to get to those tools we need to go to the or one of the ways to get there is to open the start menu or the search window and then search for Windows security go to security settings and here it’s going to give us a preview of actions that are necessary in your computer things that are okay in your computer so now to customize the settings click here on open window security and then set up one drive if we preferred to this is not really necessity this is basically Microsoft pushing One Drive and also trying to make sure that you’re backing up your files online on the cloud and not necessarily lose them at some point in time then under the account protect login here with the Microsoft account on the left hand side we have here the firewall and network protection notice that there no action is needed at this point but you can go and click on it and check various firewall rules and advanced settings and customize those fire wall settings if you prefer under the app and browser control this can block unwanted apps and currently it’s turned off you want to make sure it’s turned on and you press put in your password and it will enable it for you under the device security there are additional settings behind the scenes here that it’s utilizing such as the single core isolation the security of the processor level and so if we go here on under virus and threat protection on the left hand side this is where we can run a scan on your computer you can do a quick scan in my case it took uh 2 minutes and 31 seconds or you can change those scan options and do a full scan a custom scan and once you pick the type of scan that you want you click on scan now and it may take quite a bit of time if you have a lot of files and you choose the full scan option as the files are scanned typically it’s going to show you the results and things it has found and things that you need to correct or to allow and all you need to do is basically proceed with a positive way to remove them or apply what Microsoft determines as you can also check here for protection history what has taken place at certain points in time and it’s basically a log of uh the activity from the scanning software so all that to say that under the security Center the Windows security you have a virus and firewall protection there is also the account protection there is the firewall and network protection aspect the browser level protection device security at the component level in the computer and then also device health under the Windows security here it’s important to note that there are also family options here you can set it up to protect the kids screen time habits you can set time for kids how long they can use the devices and so on to do that you’d go under view family settings and You’ have to configure it using your Microsoft account basically all the devices are connecting to a Microsoft account and then Microsoft is managing that time and the settings that you have configured for your family in this module of the windows 11 I’ll demonstrate how to connect and extend your display to a second display device in Windows 11 this comes in handy if you have a second monitor or a TV where you want to project to or if you want to connect to a projector in a classroom or in a business meeting as soon as you connect a second monitor to your PC by default the content from your main PC see to the second one will be mirrored that’s referred to as a mirrored display now to connect to a projector you can press the Windows key on the keyboard and then P the letter P on the keyboard and this will bring up this menu currently I have only one monitor connected to this system but if I had a second one typically by default it will be duplicated as soon as you connect a second screen however the function that you want to use is the extend desktop that will make it so that you can move the mouse from one screen to the other and open one application one screen another application in the other screen and to do that you simply click on the extend display option now of course I’m recording this and it’s not as easy to replicated to show what happens but you basically just see the second desktop and you can move the mouse to it and the way you get to this is by pressing the Windows key and then letter P if for some reason you don’t uh remember the Windows key and then P for project there one of the things that you can do is click on on the search icon and then just type extend you want to extend the desktop or or you can do the word duplicate and click on duplicate or extend desktop dis playay and it will give you the options for multiple displays and so on in this module I’ll demonstrate how to cast or connect to an external device or a remote monitor or a remote TV or a remote windows pc windows 11 has a functionality to connect to a remote display and you can do that by simply pressing the Windows key and then the letter key K this will bring up the cast option you can click on it and then it will connect to the Remote device to get to this in case you don’t remember the Windows key and then K you can go here under the search option and then just choose cast and then you have the option here to connect to a wireless display and then you’ll click on connect and it’s going to bring you back to the same option that we had one other option is that you can go here under the quick action items on the bottom you can click on any of those icons at the bottom you can choose to add other functionality for example nearby sharing you can enable it or casting or projection to add the project icon so that you can always access it easily add it once and then you’re done then when you go in the future you click here on the quick actions instead of having to do control k or Windows and MP you just have the option to cast or to project from here because I’m recording a tutorial I can’t demonstrate the mirroring of it with a connection but that should work in this module of the windows 11 tutorial I’ll demonstrate how to connect to a Windows PC and mirror the screen from an Android device Windows 11 has the capability to allow other devices to connect to it to mirror the screen from the Remote device to the windows 11 device and that is done using the projection tool in combination with the connect tool this is typically done using a mirracast connection which is a Microsoft Technology available through Android devices as well for this to work the devices have to be on the same wir less Network and also support the myasp connection so the way to do this is go to the Windows start and then you go search for projection you go here under projection settings and then you need to enable these options very similar to here so we want to make sure that to allow this from everywhere for Windows and Android devices to project to this PC when you say it’s okay so you’d have to approve it basically but yet you’re making your computer available availability is for you to connect both from an Android device or a Windows PC the next option that you want to make sure is that every time a connection is requested for you to be approving the connection and then the third one is for you to provide a pin you can say never to this as soon as you confirm it they will be able to connect or you can just give them a pin every time to connects it’s up to you but you’d have to give that user then the PIN for them in order to project to your PC to mirror their screen to the PC once you’re ready by the way there is additional help options down here in the bottom as well but once you are ready for you to allow somebody to connect to your PC You’ basically click here to launch The Connect app that is making your computer available for somebody to connect it’s making their computer discoverable in the network to connect now on the Android devices and I unfortunately I cannot simulate it here you’re going to need to go to settings and select one of the options obviously in Android most devices differ from one to the other some of them use the word cast broadcasting the screen some others use the word mirror others use the word connect so you might have to look through the settings but you want to find the setting to connect connect to mirror your screen to another device it’s important to note that this function will not work on Apple devices so once you ready here for to allow a connection you click on launch The Connect app to project to this PC and then it’s ready as soon as they are able to connect you’ll be able to see the content or mirror of their screen on their devices they will need to choose to connect to a Remote device so they’ll have to use the cast option and if they are using a PC they’ll need to use the cast option which is Windows K on a keyboard or connect to a remote display or in an Android device they would have to use the connect or mirror option depending on the android model in this session of the windows 11 tutorial I’ll demonstrate how to use the windows snap feature this is enhanced in Windows 11 and it’s actually very powerful particularly it’s useful with larger monitors nowadays and more convenient as well so let’s say I have this application I have word here and then I also have PowerPoint and I have only one monitor but I want to use those side by side so the easiest way is if I go here on the top right under the maximize minimize icon notice there are these different layouts that are available and this is new you hold the mouse on it want to maximize minimize and now let’s say that I want to put this application on the left half of the screen I simply click on it it will put my PowerPoint on the left half of the screen now I go back to my word document and do the same thing but I want to put it in the second half of the screen but now let’s say that I want a third application to have on the right hand side as well but split the right half into two parts so I could do that this way I can go and pick something this layout with three components to it and then let’s say I want a Microsoft edge here and in Microsoft Edge I want to put that in the bottom right now this works well to navigate it particularly if you have a really a large monitor or a TV and you want to have different apps as part of that navig a without having to switch from one to the other in this module I’ll demonstrate how to remove unwanted applications from your computer typically when you buy even a new computer there might be applications that you really don’t want and you just want to speed up the computer and remove them get to see what applications are installed in the computer you can access it a couple ways you can go here under the search option and then just type apps so you click on add and remove programs and here it will list all the various programs that are installed in this computer now to remove one of those programs you I go here to Camtasia I click on the more options and I can choose to modify it or uninstall it modify it’s going to Simply select new parameters for the inst reinstallation of the application typically it’s not very useful typically you want to use the option to uninstall in this module of the windows 11 tutorial I’ll demonstrate how to adjust the sound settings and sound volume in Windows 11 for some reason this function has become more complicated in this version of Windows in the past we would go here under sound and we could just go and change now as we click on that icon for the for the sound and volume notice it brings up the action center the action center here one of the options is the sound so if we click on the little arrow and the on the far right this is where we can change which speakers to use there are additional settings here as well that we can adjust as far as the sound goes we can get to this settings also by going under search menu and then just typing sound settings one other option is by right clicking if you scroll down if you move the mouse to the sound icon and right click on it and choose to open the volume mixer or the sound settings in this session of the windows 11 tutorial I’ll go over some of the changes in Windows 11 task manager to get to the task manager we need to click here on the start menu we can right click on it and choose task manager or we can go to the search menu and simply type task manager we have processes is the first uh tab that opens up when you open Task Manager to the right of it we have the option to run a new task under processes it lists all the processes that are running under this user in this PC at this point by clicking on the name here you can sort them by title and you can navigate to the right right hand columns and see the total CPU usage in this PC how much memory is being used dis usage Network usage and so on typically the PC should be running anywhere between 4 and 6% CPU utilization when doing regular task now in my case I’m recording this video notice it’s using camt recorder and it’s using 10% of the CPU just for that if this application was not the one that you are intending to use but you’re noticing that the CPU is running at high utilization then come in here and you can click on it and then select the application and then choose to end task that will terminate that application that is potentially causing issues in your PC now obviously I’m not going to end it because I’m using it for recording if I wanted to end let’s say the task manager obviously it will close this choose end task and it will close just that particular process one of the new features in the new task manager in Windows 11 is the option for you to specify a process or to define a process to run in efficiency mode so for example let’s say we have Microsoft Word here and we want it to run in efficiency mode now for this you need administrator rights to your PC so

    you select Microsoft Word and you then select efficiency mode and then select turn on efficiency mode and it will run it for only this particular application for those applications that are running in efficiency mode notice that it’ll add this little icon next to it the first option on the task manager is the processes I just covered the next option on the left is the performance tab this gives you an overview of the resources and the utilization of these resources in your computer so I click here on processes or performance and notice I have the processor the CPU the speed the details and the general usage for this particular processor Noti this under memory how much memory is being used and then the dis drives in the PC the writing speed and the read speed further down you also have the graphics utilization for your graphics further down here on the left hand side we have the the app history and the utilization of these applications notice you can delete the usage history further down we have the applications and the startup in Windows startup so all of these processes are basically running automatically on Startup so let’s say I’m not using one drive you can select from here the application on the left hand side under the name area and then select disable so this is how you disable an application from the windows 11 startup click on it select disable and now that application will not start up every time you start your PC further down we have the users and all the processes associated with that user notice that you have also the options to disconnect a specific user and also to manage the user account so this is another way to get to account management in Windows 11 further down we have various details if you want to see what an application whether the status of it how much memory is being utilized the architecture and the name of it and so on further down we have Services these are the various services that run in the PC and obviously you need to be careful here not to turn off specific ones that may be necessary if one needs to be running but it’s not then this is where you could click on it and then select to start it up here on the top right on the very bottom left we also have the settings for task manager here you can specify which tab to open automatically when you open Task Manager by default its processes whether to use a lot of resources what priority to give to this application and whether you want this to always stay on top or whether you want to have it minimized when it’s in use and so on when you switch away from this application this top menu here the three lines in the very top it also gives you a more descriptive view of the task manager in this module of the windows 11 tutorial I’ll explain some of the concepts related to focus assist it’s a new feature in Windows 11 it was also introduced late in Windows 10 Focus assist it’s one of the features that allows you like the name States for you to focus it’s designed for you to focus on your work and not be bothered by alerts while you are working the settings can be controlled very easily from the control center so if we go here in the bottom right and click on the control center there is this option Focus assist by default all notifications are going to be popping up on your computer depending on whatever is you have allowed to change those settings you can click on the next option to Priority only so this will allow only priority alerts to be displayed and you’ll not be bugged while you’re working on a particular project you can also choose only alarms the alarms would be let’s say meeting notifications or meeting reminders now as far as figuring those settings you can go under the search area go under the focus assist and this is where we can change the settings so you can have have automatic rules that you can set if you’re duplicating your display it’s going to display only the alarms but not necessarily other alerts that you might be getting from chat applications and that would not be a good thing if you want to project it to a meeting and but you can display and customize so that only certain settings are displayed like connecting to a secondary display or duplicating the display or if you’re playing a game what should happen what alerts would come up you can also prioritize the settings from here you can hide all notifications at particular times and you can set the working hours or specific times of the day where certain actions are allowed or notifications are allowed or disallowed in this session of the windows 11 tutorial I’ll demonstrate at how to access a command line terminal for Windows 11 sometimes you may need to run applications manually or just check settings or check things manually in your computer you can either go under the search option here and then type the word command and it will take you to the command prompt this will allow you to access uh files or to run specific commands or let’s say find the IP address specific settings in your computer so this is the command prompt option there is also the option to access the windows terminal Windows terminal it’s actually uses the windows Powershell it’s one of the newer ways of managing settings in a PC and running particular commands in a PC so you could search for this by going to the search option and search search for Windows Powershell and it will get you to the same item or you can rightclick and choose Windows terminal for a lot of the functions you might need to run it as an admin equivalent being able to execute specific commands in your PC in this module of the windows 11 tutorial I’ll demonstrate how to add an application manually to Windows startup for some reason this feature in Windows 11 it’s more complicated than it needs to be I’ll demonstrate how to do this manually uh to do this first we need to be able to run the Run command so unlike going up here and doing the search we need to either be in command line or in the terminal mode or go here and right click on the desktop and choose run it will bring us the old run command like in Windows 7 or Windows 10 you can also add access this by pressing the Windows key and R and that will get you the Run command as well now at this point we need to type in there shell colon startup and then we hit enter this will bring us to the location where we can place specific programs that we want to open on Startup keep this window open on the left hand side and then go to our file explorer and then open a new session of the file explorer now from here we need to go to let’s say to the programs wherever that particular program is located so program files and let’s say I want this program called handbreak and I want this to start up every time upon boot up of the computer at this point I can right click on this and then drag it to the left and it’s going to create a link to it in the startup and I click here to create a shortcut on this area so again that was Finding initially where the program is located right clicking on it dragging it over and then choosing to create a shortcut not copying it because then we are copying the whole program we’re just creating a shortcut in order to launch that specific program you can do this also with other applications so let’s say here we are in the all apps area so let’s say I want Firefox to be one of those programs so I can right click here and choose more and then find the file location so this is where the file is actually residing the executable for this program is residing in the PC now from here again I rightclick it and then create a shortcut and now both of these programs will open up every time automatically once I reboot Windows 11 the co-creator in paint is an image creator that can generate images based on prompts provided by the user here’s how it works so you go here and type paint open the paint application you have these enhanced set of tools much more improved than previous releases of Microsoft Paint to the right of it we have the image Creator to use the image Creator you have to be signed in with your Microsoft account so as soon as you click on the image Creator it’s usually going to prompt you to sign in with your Microsoft account from here simply type a prompt and then you press create you can also select different styles for these images such as charcoal ink sketch watercolor realist photo realistic and digital art and so on then select the picture that you prefer and if you don’t like that one change it to a different one then further modify it using the paint tools or the brushes or the shapes and so on and the image generator in photos lets you generate that image directly in the device without having to reach out to the cloud with a 24 H2 release of Windows 11 there’s new functionality that of live captions to enable live captions we go here to the quick settings or the control center as it used to be called then click on accessibility and then click on live captions or now we can go on the drop-down there’s another page right below this and click on live captions from here as soon as we select to enable live captions it prompts us to continue the setup of live captions and we say yes to continue it will download the language files and then press continue then move this bar wherever we prefer it and then if we go and play any videos it will play those Clos captions Down Below in this bar in the quick in the live captions option these close captions are different from those of YouTube whatever content that is being played on the screen it’s transcribing it for us live now this applies to videos from your computer or content that you’re playing from the web with the 24 H2 release of Windows 11 there is a new function related to power settings in Windows 11 and it’s called power saver to enable power for saver click here on the quick settings or control center as it used to be called and then there is the option for energy saver now this typically will extend the battery life in your computer at the cost of the performance of the computer and this function will also be available in the desktop computer to enable the energy saver in the computer we simply tap on the energy saver icon and the the screen will be slightly dimmer and the performance of the computer will be adjusted now to disable the energy saver mode in your computer we click again on quick settings and then click again so it’s not selected and that will deactivate the energy saver option in Windows 11 while you’re in quick settings you can click on the battery icon in the bottom left and that will take you to the power settings for your computer and you can change the power mode from here and the usage and what happens when you close the lid and when you press the power button and so on in your computer with a 24 H2 release of Windows 11 Microsoft has introduced voice Clarity an AI powered microphone enhancement feature that will remove background noise when you’re on a call or recording so to get to this you need to go to settings and then once you’re in settings it will come up with something similar to this you’ll need to click on system on the left then you go to sound and then select your microphone click on the arrow on the right hand side and then you have have the option here for the test and also you have the option for the default microphone audio processing mode now this was a feature that was previously exclusive to surface PCS with npus Hardware but now it’s rolling out to all windows 11 PCS in this segment of the windows 11 tutorial I’ll do a very quick overview of a new application that was added to Windows 11 the application is called clipchamp and it allows for video editing so it’s a video editor in Windows 11 so to locate clip champ you click on the start window and then start typing clip champ video editor it would also be a ailable from the all applications in the start menu click on it now the first thing that you typically need to do is sign in with a Microsoft account once you sign in or create an account for clipchamp pick whether you’re using it for education or for other types of content or you can skip this once you sign in you have some templates that you can utilize for various platforms whether it’s YouTube or gaming or Instagram or social media further down here you can go to settings and control the various settings whether it’s the connection to the Microsoft account or changing accounts so to create a new video you can pick one of the templates from here or start from scratch on the top right you first need to insert the media first and then you have all these various options and graphics and so on that you can utilize in this case add those to the timeline it will import all the components and all you have to do is change the content of the current template now to modify the text here you simply Click on each of these areas so you select the area of text and on the right hand side select change the actual text then select the next text option and preview it then you can change the alignment change the fonts and other properties for it various color options transforming this into different positions fading it filters and colors and so on importing media from MP4 files that you might have in your computer as part of the track here and um manipulating the components that already exist in here once you are set with the video itself then you’ll click on export and then select to export it as an mp4 you can obviously 1080p is what in most cases you’ll use that’s a higher quality so you click on 1080P and then you’ll select where you want to save this clip once it’s produced you can upload it to Google Drive YouTube or other social media platforms as you see from here once the video has been produced produced we can click here on open file and we’ll be able to preview it at this point we can save it to our computer or share it to various social media Platforms in this segment of the windows 11 tutorial I’ll demonstrate how to use the updated sound recorder application in Windows 11 with the 2022 update for Windows 11 the sound recorder application was updated to have a much more visually appealing look and feel to it to access a sound recorder application you can go under the start menu and either locate it under the list of applications or all apps or under the search select sound recorder then once located click on it the first time you open it up it may require an update and once you open it up you have these options right here to start recording on the left hand side you have the option to import an existing file further down you have previous recordings that you may have done in this computer and you can manage those recordings by right clicking and then choose to rename them or to delete them if necessary and then further down you have the option for the microphone that you want to use for the recordings and then you are ready to start recording and in the center area this is where the wave file will be displayed now on the top right we can select to share this and there are also additional settings to customize the sound recorder application so to record something we simply press here the record button and just talk away at this point you just keep on talking and the wave file will be displayed at the center of the screen once you’re done with the recording press pause and you can press space to pause it or you can press stop to stop the whole recording now to preview our recording press play at this point you just keep on talking and the wave file will be displayed in the center of the screen here now unfortunately you cannot do editing of the audio file from here it would be nice if we were able to do that but we can change however various other settings for example here under settings you can change change the recording format whether you wanted MP3 or other formats the audio quality recording and the theme media player is another application that was updated if we go here to applications and search for media player the one called media player you’ll notice that it has a completely different visual look so you have your home location here it’s your music library and you specify a folder where your music is located by simply clicking on add a folder and then the video library as well after having specified the folder in my case I had specified the folder for it you can add a new folder from up here on the top right and then select wherever your videos are located you have also the play CU and the playlist or media files now in the bottom left here we also Al have the settings area and this is where you can control the music locations and specify what folders and the same thing for video locations as well the theme can select the system setting or dark mode and the accent color using system settings or the default color scheme for missing album information you can select so it looks up the album information from online as well now for the various videos we go here to the video library and pick any of these videos notice you have the configuration icon here where you can play the video you can play it next basically add it to the queue and also edit this in clipchamp clipchamp is a new video editor that was added with a 2022 update on the bottom right here you have also the languages and subtitles if the video has subtitles then it’ll be able to display them during the play time and the audio controls the volume control full screen option and you can minimize the player then on the far right here you have the further configuration settings for the Windows Media Player where you can uh bring up the equalizer for the sound the speed casting it to devices video settings rotating it and enhancements and so on and then skip forward or backwards obviously at the center here in the bottom you have the option to play the actual video so it’s a good enhancement overall compared to what it used to look before for example this is the Legacy Media Player notepad is another application that was updated it just has some simple but good improvements so we go here under the start menu or the search item here and then search for notepad obviously it was right there because I had opened it a moment ago notice that the look of it has changed and on the top right here you also have settings that you can modifies the font and the size of the font including the theme as well in this module of the windows 11 tutorial I’m going to demonstrate how to reset your PC resetting your PC may be necessary if your computer got infected with the virus or something is not working well in your PC and you just need to go back the other option is that you can reset your PC when you’re selling it or giving it away and you want to wipe everything out so this video is going to demonstrate how to do that as well so to get to the reset this PC option we just simply search under the Windows settings and search for reset PC at this point we have four options one of the things is that we can fix issues without resetting the PC so this can take a while you can just click on it you can it’s going to run a troubleshooter for specific items and it and it will notify you what the issues with your PCR so I’ll suggest that you try this first the other thing to try if you’re having problems with your PC is to go back to previous date and time and try that this is like if something is not working for a particular version of Windows you can go back to a previous version of Windows by clicking on go back You’ enter your password provided it prompts you it’s going to give you you times and dates when you want to go back to now in this case it’s prompting us well before you go back why don’t we check for updates first that’s something probably good to do sometimes there are drivers fixes that can be applied to the PC but for now I’ll say no in your case you probably would want to say yes before you do this then we click here next and then it’s making sure that we can sign in again and then it’s prompting us to go back to Windows 10 in this case I had updated from Windows 10 to Windows 11 this is going back to a previous version of Windows the other option is to reset this PC resetting the PC there will be two options here we can reset it keeping the files or we can reset it and remove everything to keep the files if you choose this option this option is best if you’re infected with a virus and you want to just keep your files your personal files and reinstall all your programs remember this is going to need for your programs to be reinstalled so if you had Microsoft Office in your computer or your business management software loaded in your computer you’d have to reload these programs all over again so this will remove the apps and settings and it will keep your personal files my suggestion even in this case is that if you have access to the files consider also backing up the files first just in case back them up to an external flash drive to an external drive or to a cloud storage service such as Google drive or one drive so here you click on this it says it’s not going to take very long and then it says well how do you want to download your next version of Windows let’s say I want to download it from the cloud because we don’t have the local install and you click on next and just follow the prompts from there now if you are resetting this computer or selling it then you remove everything it will remove all your personal files the apps and settings and so on this process it’s going to prompt a couple times here and I’m not going to do it obviously choose the install version of Windows and then you click on next and then it’s going to confirm that we really want to delete the files from your PC and obviously if you really want to do it you’ll approve it and then proceed with with a Reload this is a clean install this is not going to retain anything this is the safest thing the last thing for virus provided you don’t need your files or you have backed up your files the process it’s going to take anywhere from 30 to 60 Minutes depending on how fast your computer is what the storage is in your what type of hard drive you have in your PC during the reinstall of Windows and the cleaning of the PC there’s also going to be an option to erase the drive and access to the files permanently you probably want to select that option if you are selling your computer or giving it away that’s going to basically write a bunch of zeros across the whole drive so that somebody cannot recover your files that you had deleted if for some reason you need to create a bootable flash drive as well so You’ go to this website microsoft.com and- English SLS software down download software D download windows1 from here you can either get the latest version of Windows 11 and download it manually and run a new upgrade or update in your PC or you can scroll down and create a bootable flash drive a bootable USB or DVD drive in this video I’ll demonstrate how to enable TPM in hyperv machine is hosting and Windows 10 machine the reason we want to do this is because we want to upgrade to Windows 11 and by default in Windows 11 the installation wizard is going to fail unless the TPM module is enabled in the virtual machine so here is my hyperv and also my uh desktop that I have currently running with Windows 10 now we go here to the actual machine I have this off bured in the off State we right click we choose settings once we are in settings then we can go to the security and choose to enable the enable trusted platform module then click okay at this point we’re all set with the process and now we can fire up a machine and upgrade this to Windows 11 in this module I’ll demonstrate how to use sticky notes in Windows 11 sticky notes is just an add-on tool or actually tool that comes with Windows 11 but it’s useful for reminders simil to posted notes on your desk to access sticky notes you go to the start menu and type sticky notes once it opens up it may even prompt you to connect to a Microsoft account and if so then just simply log into it at this point you can take a note you can use the a new note on the top here and simply type and that’s it now you can close this and you have very ious notes all over your desktop and you can customize those and once you’re done you can simply delete them or close and with the 24 H2 release of Windows 11 there is new functionality related to creating seven zip files and uncompressing seven zip files prior to this release you could actually extract seven zip files but you couldn’t create them so now to create szip files to compress them let’s say I have this folder with these files and I want to send these files as a szip format to someone else but before I can send it I need to create the szip file to create the seven zip file right click on the folder and then click on compress 2 and then select 7z file give it a name and then hit enter so this is the compressed file that You’ sent to someone else it will contain that folder or a bunch of folders that you may have within the folder along the all the files but it’s one file now let’s suppose that you received this file and you want to uncompress it you want to extract the contents of this 7even ZIP file you don’t need to download any special program to extract them to extract those files you click on the szip file compressed file here and then select extract all then pick the folder where you want to place it so in my case I’m going to put it under documents and then press extract once you extract those files they’ll show up like this with a folder structure and also the contents of the files prior to being compressed with the 24 H2 release of Windows 11 there is new functionality to create compressed files in Linux format or in tar format prior to this release you could open those types of files but now you can also create tar files from Windows so let’s say I have this folder with these files in it and I want to send this in a compressed format and tar format Now to create a tar format or compressed file right click on it and select compress 2 and then select T file at this point it’s going to prompt you to give it a new name or you can keep the name as is and then hit enter now you send this file to uh someone else and that file would contain all the files and folders in it in a compressed format now let’s say that you received a file similar to this from someone else and once you received the file you want to extract the contents of this compressed Linux file format so then we click here on the file itself and then click on extract all then from here create a new folder if you’d prefer and then click on extract this will contain all the files and the folder structure as prior to the compression from whoever sent it to you so that’s how you create compressed tar file and how you uncompress the contents of it with a 24 H2 release of Windows 11 there is a new function related to power settings in Windows 11 and it’s called power saver to enable power saver click here on the quick settings or control center as it used to be called and then there is the option for energy saver now this typically will extend the battery life in your computer at the cost of the performance of the computer and this function will also be available in the desktop computer to enable the energy saver in the computer we simply tap on the energy saor icon and the screen will be slightly dimmer and the performance of the computer will be adjusted now to disable the energy saver mode in your computer we click again on quick settings and then click again so it’s not selected and that will deactivate the energy saver option in Windows 11 while you’re in quick settings you can click on the battery icon in the bottom left and that will take you to the power settings for your computer and you can change the power mode from here and the use agent what happens when you close the lid and when you press the power button and so on in your [Music] computer in this brief video I’ll demonstrate how to enable Windows sandbox on a Windows 11 professional or Windows 11 enterprise system so here I have Windows 11 professional in this computer now at this point to enable sandbox we need to go and add this as a feature under the program feature so just type in the search window enable features and then click here on turn Windows features on and off and then scroll all the way to the bottom select Windows sandbox and then click okay once installed it will prompt you to restart your computer and you want to go ahead and restart it once you have restarted the computer you should be able to launch it by either locating it under under the list of programs or simply click on search and type Windows sandbox now Windows sandbox is a separate Windows environment on top of the poost operating system for Windows 11 professional or Windows 11 Enterprise it’s not available for Windows home now here we can maximize this and we can use this for testing whether it’s to test uh links from a website or to test applications and it will not impact none of these settings will stay with the virtual machine after you close that session so it’s designed to be a secure area for you to test software or to test various applications so here is an example so this will basically function just like a regular Windows 11 we can open here a browser and I’ll demonstrate by installing let’s say team viewer so we install the application it doesn’t matter what it is now that I have Team Viewer installed on the sandbox once I close the sandbox application it will erase all settings and everything that was added from the last time that I launched it so we click okay here now if we go back and open sandbox again this will start with a brand new session with clean setup now Windows sandbox also has the option where you can copy files from your host machine’s desktop or any of the file locations and bring those files back to the sandbox by copying and pasting them so let’s say I have this file here I’ll copy it go and open the sandbox and I can simply right click here and choose paste here is another example where you might have to check out a game or something of that nature and you’re going to all of these different websites but you want to test it first on the sandbox so you go to that particular website and uh you try to download it and as you know with any of the free games out there it’s going to download a lot of uh junk in your computer so now if we go ahead and run this it’s going to download who knows how many other things to our computer notice it’s coming up with a free ride games and then the solitire [Music] Kingdom so now let’s suppose that um this is not the game that we really want notice it has added all kinds of other stuff here have come to the determination that this is not really the game that I want if I wanted something I can go ahead and install it in the host machine but now if I go ahead and close this it’s going to quit all the stuff that I downloaded and now if I go and open the sandbox again it’ll be a fresh start again in my host system the main one where I’m uh running the sandbox none of that is impacted so this is one of the good uses of um Windows sandbox is basically the test software test URLs that might look suspicious before you run them on your main production machine [Music]

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • AI Voice Agent: Building a Conversational Learning Platform

    AI Voice Agent: Building a Conversational Learning Platform

    The provided text details the development of an AI voice assistant for educational content using various free tools and services. The process begins with setting up a Next.js application and integrating UI components using Shadcn. Authentication is implemented with Stytch, followed by the creation of a dashboard featuring interactive coaching options. The text then explains how to establish real-time speech-to-text functionality with AssemblyAI, connect to AI models via OpenRouter, and utilize Amazon Polly for text-to-speech conversion. Finally, it covers user profile management, token usage tracking, deployment on Vercel, and putting Stytch into production.

    Study Guide: AI Voice Assistant for Educational Content

    Quiz

    1. What is the primary purpose of AssemblyAI in this project?
    2. Describe the function of OpenRouter in the context of the AI voice assistant.
    3. What are the two main ways to host Convex, as mentioned in the source? Briefly explain each.
    4. Explain the role of Shadcn UI in the development of the user interface.
    5. What is StackOS, and what problem does it solve in this project?
    6. Describe the folder structure created when a new Next.js application is initiated using the command npx create-next-app@latest.
    7. What is the significance of the middleware.jsx file in this application?
    8. Explain the purpose of React Context in managing user data within the application.
    9. How is user authentication handled before a user can access the dashboard?
    10. What is the role of Amazon Polly in the final stage of the AI voice assistant’s functionality?

    Quiz Answer Key

    1. AssemblyAI is used to convert live audio input from the user into text with high accuracy and low latency, enabling real-time transcription of speech.
    2. OpenRouter serves as a platform to explore and utilize multiple Large Language Models (LLMs) from various AI providers, allowing the application to leverage different AI models for generating responses.
    3. The two main ways to host Convex are Convex Cloud, where the database is set up and managed on Convex’s own platform, and self-hosting, where Convex can be hosted on the developer’s own infrastructure using Docker.
    4. Shadcn UI is a Tailwind CSS-based UI component library that provides pre-built, customizable components to rapidly build the user interface of the AI voice assistant.
    5. StackOS is an authentication service provider used to add user sign-up and sign-in functionality to the application, ensuring that only authenticated users can access protected parts like the dashboard.
    6. The initial Next.js application structure includes an app folder for routes and layouts, public for static assets, next.config.mjs for Next.js configuration, and package.json for project dependencies and scripts. The global.css handles global styles, and with Tailwind CSS v4, it also includes color variables.
    7. The middleware.jsx file is used to protect specific routes of the application. It checks if a user is authenticated before allowing access to those routes, redirecting unauthenticated users to the sign-in page.
    8. React Context provides a way to share data (like user information and authentication status) across different components in the application without the need for prop drilling, making the data accessible in various parts of the UI.
    9. User authentication is handled using StackOS. When a user attempts to access a protected route, the application checks their authentication status. If authenticated, they are granted access; otherwise, they are redirected to the sign-in/sign-up page.
    10. Amazon Polly is used to convert the text generated by the AI model (as a response to the user’s speech) back into spoken audio, allowing the AI voice assistant to provide verbal feedback to the user.

    Essay Format Questions

    1. Discuss the key technologies and services (AssemblyAI, OpenRouter, Convex, Shadcn UI, StackOS, Amazon Polly) chosen for this AI voice assistant project. Explain the specific role and benefits of each in the overall functionality of the application.
    2. Outline the process of setting up and implementing user authentication and authorization in this Next.js application using StackOS. Detail the steps involved in protecting routes and managing user sessions.
    3. Compare and contrast the two methods of hosting Convex databases (Convex Cloud and self-hosting with Docker). Discuss the advantages and disadvantages of each approach in the context of developing and deploying this AI voice assistant.
    4. Describe the workflow of a user interacting with the AI voice assistant, from speaking into the microphone to receiving a spoken response. Detail the steps involved in speech-to-text conversion, AI model processing, and text-to-speech synthesis, highlighting the technologies used at each stage.
    5. Evaluate the importance of state management in this AI voice assistant application, focusing on the use of React Context for managing user data and conversation history. Discuss how effective these strategies are for maintaining application state and facilitating component communication.

    Glossary of Key Terms

    • AssemblyAI: A platform that provides APIs for converting speech to text and offers features like live audio transcription with high accuracy and low latency.
    • Convex: An open-source, real-time database service that offers features like type safety, serverless functions, and self-hosting capabilities.
    • Docker: A platform for building, sharing, and running applications in isolated environments called containers, used here for self-hosting Convex.
    • Large Language Model (LLM): An AI model with a vast number of parameters, trained on a massive corpus of text, capable of understanding and generating human-like language (e.g., Gemini, GPT).
    • Next.js: A React framework for building server-rendered and statically generated web applications, offering features like file-system routing and API routes.
    • OpenRouter: A platform that aggregates multiple AI LLMs, allowing developers to access and utilize various models through a single API.
    • React Context: A feature in React that allows sharing state between components without explicitly passing props through every level of the component tree.
    • Shadcn UI: A collection of reusable UI components built using Tailwind CSS, designed for easy customization and integration into React applications.
    • StackOS (Stackup): An authentication service provider that simplifies the process of adding user sign-up, sign-in, and user management to web applications.
    • Tailwind CSS: A utility-first CSS framework that provides low-level utility classes to style HTML directly in the markup.
    • Amazon Polly: A cloud-based service that converts text into lifelike speech, supporting various voices and languages.
    • Self-hosting: The practice of hosting an application or service on one’s own infrastructure rather than using a third-party platform’s managed service.
    • API Key: A unique identifier used to authenticate requests to an API, ensuring that only authorized users or applications can access the service.
    • Middleware: A layer of software that acts as a bridge between an operating system or database and applications, often used for tasks like authentication and request handling.
    • Mutation (Convex): A type of function in Convex that modifies data in the database.
    • Query (Convex): A type of function in Convex that reads data from the database without making any changes.
    • React Hook: A feature in React that lets you use state and other React features without writing classes (e.g., useState, useEffect, useContext).
    • Speech to Text (STT): The process of converting spoken audio into written text.
    • Text to Speech (TTS): The process of converting written text into spoken audio.

    Building an AI Voice Assistant for Education

    ## Briefing Document: AI Voice Assistant for Educational Content Development

    **Date:** October 26, 2023 (based on content references)

    **Subject:** Review of Source Material for Building an AI Voice Assistant

    **Introduction:**

    This briefing document summarizes the main themes, important ideas, and key facts presented in the provided source (“01.pdf”). The source outlines the initial steps and technologies involved in developing an AI-powered voice assistant specifically tailored for educational content creation. The document highlights the planned features, the technology stack, and the setup procedures for the frontend, authentication, backend database, speech-to-text, text-to-speech, and basic UI components.

    **Main Themes and Important Ideas:**

    1. **Goal:** To develop an AI voice assistant that can be used for creating educational content. This involves converting speech to text, leveraging AI models for content generation or assistance, and converting text back to speech.

    2. **Technology Stack:** The project intends to utilize a free-to-use technology stack, including:

    * **Frontend Framework:** Next.js (version 14 or 15 based on “at latest” mention, specifically using the app router).

    * **UI Component Library:** Shadcn UI (Tailwind CSS based, targeting version 4).

    * **Authentication:** Stytch (free to use).

    * **Backend Database:** Convex (with options for both cloud and self-hosting using Docker).

    * **Streaming Speech-to-Text:** AssemblyAI (aiming for 90% accuracy and <600ms latency, with a $50 credit offer).

    * **AI Model Exploration:** OpenRouter (to access multiple LLM models).

    * **Text-to-Speech:** Amazon Polly (free to use).

    3. **Project Setup (Next.js):** The source details the initial steps for creating a Next.js application using `npx create-next-app@latest`. It covers:

    * Project naming (“AI coaching voice agent”).

    * Choosing not to use TypeScript.

    * Using ESLint.

    * Selecting Tailwind CSS (mentioning the shift in version 4 where `tailwind.config.js` is integrated into `global.css`).

    * Opting for the app router.

    * Describing the basic folder structure (`app`, `public`, `next.config.js`, `package.json`).

    * Running the development server using `npm run dev`.

    * Basic page creation (`page.js`) and folder-based routing.

    > “now simply go to the terminal click new terminal or you can open this terminal from the bottom just type a command npm run D click enter and then you will see your application is now running on this particular URL with this 3,000 port number”

    4. **UI Component Library (Shadcn UI):** The process of integrating Shadcn UI is explained:

    * Visiting `ui.shadcn.com` and following the Next.js installation guide (specifically for Tailwind CSS version 4).

    * Initializing Shadcn UI using `npx shadcn-ui@latest init`.

    * Selecting base color themes (e.g., neutral).

    * Forcefully adding the library with React 19 (`use force`).

    * Installing individual components (e.g., button using `npx shadcn-ui@latest add button`).

    * Customizing component styles through `global.css` by modifying color variables.

    > “simply copy this command in order to initialize the shadan I will open another terminal and and simply we’ll execute this shadan command”

    > “whenever you want to use any shat CN UI components you have to first install that component so in this case let’s say you want to use button component so I will copy this inside the terminal let’s paste that”

    5. **Authentication (Stytch):** The source outlines the integration of Stytch for user authentication:

    * Creating a free account on `stytch.com`.

    * Creating a new project and selecting sign-in options (Google, GitHub, email/password, etc.).

    * Copying the `.env` variables provided by Stytch and creating a `.env.local` file in the project root.

    * Installing the Stytch Next.js SDK using `npm install @stytch/nextjs`.

    * Initializing Stytch using the provided command (which might require `sudo` on macOS due to permission issues).

    * Stytch automatically creates a `handler/stytch/page.js` route for signup and sign-in.

    * The `<StytchProvider>` is added to `layout.js`.

    * Using the `<UserButton>` component from `@stytch/nextjs` to display user profile options.

    * Implementing route protection using middleware (`middleware.jsx`) and the `@stytch/nextjs/server` package.

    > “in order to add an authentication we are going to use a stack o when I search on Google the bestas authentication service provider there are lot of service provider like Clerk and stack O is a alternative for the clerk”

    > “simply simp go to this stack o.com and create a new account and again one more important thing that it is free to use”

    > “I will create this file called middleware and this need to be a jsx and simply we’ll copy this line of code”

    6. **Backend Database (Convex):** The source details setting up Convex as the backend database:

    * Creating a free account on `convex.dev`.

    * Creating a new project.

    * Installing the Convex client library using `npm install convex`.

    * Initializing Convex in the project using `npx convex dev` and linking it to the created project.

    * A `convex` folder is created in the project.

    * Wrapping the application with the `<ConvexProvider>` in a custom `provider.js` (marked as `use client`).

    * Creating a schema (`schema.js`) to define database tables and their columns using Convex’s type system (`V.string`, `V.number`, `V.optional`).

    * Convex automatically generates unique IDs and creation timestamps.

    * **Self-Hosting Convex:** The document briefly mentions the option for self-hosting using Docker, referring to a separate guide for detailed instructions. This involves downloading a `docker-compose.yml` file, running `docker compose up`, generating an admin key, and configuring environment variables (`.env.local`) with the self-hosted Convex URL and admin key.

    > “in order to store a application data we need a database and for that one we are going to use a convex convex is a open-source database for your application”

    > “simply click create project and give the project name here we’ll say AI coaching voice agent and simply click create once it is created your database is now ready”

    > “simply go to the uh copy this npm install convex command we’ll go to our terminal and inside the new terminal we’ll execute this command”

    > “inside the Explorer you will see the new folder get created called convex and inside that you will have some of the files you don’t need to worry about any of this file right now”

    > “inside the schema we’ll simply say export default Define schema and inside the Define schema you need to write a table name let’s say users here we’ll say Define table”

    7. **Saving User Information:** The process of saving user information to the Convex database upon successful authentication is described:

    * Creating a Convex mutation function (`users.js`) called `createUser` to insert user data into the `users` table.

    * The function checks if a user with the given email already exists before inserting a new record.

    * It takes `name` and `email` as arguments and defaults `credits` to 50,000.

    * The `subscriptionId` field in the schema is marked as optional.

    * A custom `AuthProvider` component (marked as `use client`) is created to fetch user information using Stytch’s `useUser` hook.

    * A React state (`user`) from `useUser` provides user details (display name, primary email, etc.).

    * A Convex mutation hook (`useMutation`) is used to call the `createUser` function.

    * The `createUser` mutation is called within the `AuthProvider` when user information is available, passing the user’s display name and email.

    > “next Once user is authenticated very first time we going to save user information to our database so that we can keep a track of all the user uh activity and everything so that what we are going to see next”

    > “inside the convex we need to write a function so I will create a new file called users. JS and inside that we’ll create export constant create user now inside this create user we are going to insert the user inside our database for that one obviously it’s a mutation”

    8. **State Management (React Context):** The source introduces the use of React Context for sharing user data across the application:

    * Creating a `_context` folder to store context-related files.

    * Creating a `userContext.jsx` file using `createContext`.

    * Wrapping the application’s children within the `AuthProvider` with the `UserContext.Provider`.

    * Storing the fetched user data in a React state (`userData`, `setUserData`).

    * Passing the `userData` and `setUserData` to the `UserContext.Provider`’s `value`.

    * Components can then use `useContext(UserContext)` to access the shared user data.

    > “once we get the user information from the database we need to save in a state so that we can share it across a application in a different different components and for that one we are going to use a react context”

    > “simply go to this app and inside this we’ll create a component sorry create a folder called underscore context now we are giving this name under UND start with underscore because nextjs then will not consider this as a route”

    > “now inside that I will give the context name I will keep the context name similar to the file name and we’ll say create context and that’s all that’s how easily you can create the context”

    9. **Dashboard UI Structure:** The source begins to outline the basic structure of the dashboard screen:

    * Creating a `main` folder to house authenticated application routes.

    * A `layout.jsx` within `main` serves as the layout for the dashboard.

    * A `dashboard` folder with a `page.jsx` represents the main dashboard page.

    * Route protection using `middleware.jsx` to redirect unauthenticated users away from `/dashboard` routes.

    * An `_components` folder within `main` to store shared UI components (e.g., `app header`).

    * The `AppHeader` component includes a logo (loaded from `public/logo.svg`) and the Stytch `<UserButton>`.

    * A `FeatureAssistant` component is introduced for displaying core functionalities as a grid of options with icons and names.

    * A list of coaching options with names and image icons is defined in `services/options.jsx`.

    * Basic styling using Tailwind CSS classes is applied for layout (flex, grid, padding, margin, etc.) and visual appearance.

    * Sections for “Your previous lectures” and “Interview feedback” are planned.

    > “it’s time to design the dashboard screen where we are going to add the header at the top and we will make sure uh all the routes which user can uh have authorized to see right that on that all the pages we are going to keep this header uh constant”

    > “inside this main folder I’m going to create another folder called underscore components and inside this we’ll create app header do jsx”

    > “inside this main let’s create a new uh folder called dashboard inside this dashboard uh we can create a page jsx file”

    10. **Enabling Microphone Access:** The initial steps for enabling microphone access using `record-rtc` are outlined:

    * Installing the `record-rtc` library.

    * Creating a `connect to server` function to initiate recording using `navigator.mediaDevices.getUserMedia`.

    * Using React state (`enableMic`, `setEnableMic`) to toggle between “Connect” and “Disconnect” buttons.

    * Using `useRef` to manage the `recorder` object.

    * A `disconnect` function is created to stop recording and reset the recorder state.

    * Addressing potential server-side rendering issues with `record-rtc` by dynamically importing it.

    > “now it’s time to enable the microphone and this is the first thing that we want to implement I’m going to make your life easier because I’m going to provide this source code uh so that you can enable the microphone and it’s quite straightforward”

    > “inside this connect to server method we need to call when we user click on this connect button so here we say on click and then call this connect to server”

    > “constant recorder is equal to use reference and initially it will be nuls make sure to import this use reference as well”

    11. **Speech-to-Text with AssemblyAI:** The source introduces AssemblyAI for real-time speech-to-text conversion:

    * Creating an account on `assemblyai.com`.

    * Installing the AssemblyAI JavaScript SDK using `npm install assemblyai`.

    * Explaining the concept of streaming speech-to-text for live audio transcription with low latency.

    * Setting up a WebSocket connection to AssemblyAI’s streaming endpoint.

    * Sending audio data (Blobs) to the WebSocket.

    * Handling incoming messages, including `partial_transcript` and `final_transcript` types.

    * Updating a React state (`transcribe`, `setTranscribe`) to display the transcribed text in real time.

    * Storing final transcripts in a `conversation` state.

    > “The next step is to convert our speech to a text and for that one we are going to use an assembly AI where we are going to stream the speech in a real time to a text”

    > “simply go to this assembly ai.com or click uh the link in the description so you’ll jump on specific page”

    > “very first thing we need to do is to install this assembly AI so I will copy this assembly AI statement and inside our terminal I will just make sure to install that”

    > “we’ll set up a WebSocket connection to this URL and then we’ll pass the key and the format”

    12. **AI Model Integration with OpenRouter:** The source details using OpenRouter to access various LLM models:

    * Creating an account on `openrouter.ai`.

    * Generating an API key.

    * Installing the Open AI SDK (`npm install openai`).

    * Initializing the Open AI client with the OpenRouter API key.

    * Using the `chat.completions.create` method to interact with an AI model (e.g., Gemini Pro 2.0 experimental).

    * Passing user input (topic and message) and a prompt (defined in `services/options.jsx`) to the AI model.

    * Replacing a placeholder (`user input`) in the prompt with the actual user topic.

    * Sending the conversation history (last two messages) to the AI model for context.

    * Handling potential browser security errors (`Dangerous allow browser`) by moving the Open AI API call to a server-side API route (implicitly suggested by the later fix).

    * Updating the `conversation` state with the AI model’s response.

    > “we are going to use an open router. a open router contains a lot of different AI model which you can use it for free”

    > “simply uh make sure to sign up with this your account and then select the model which you want to use”

    > “install this open so let’s copy this uh inside the terminal make sure to install and once it install make sure to import this open a”

    > “using the chat.completions.create method to interact with an AI model”

    13. **Text-to-Speech with Amazon Polly:** The source explains integrating Amazon Polly for converting text to speech:

    * Creating an AWS account and accessing the Amazon Polly service.

    * Generating AWS access keys (Access Key ID and Secret Access Key) with the necessary permissions for Polly.

    * Installing the AWS SDK client for Polly (`@aws-sdk/client-polly`).

    * Initializing a Polly client with the AWS region and credentials.

    * Using the `SynthesizeSpeechCommand` to convert text to an audio stream in MP3 format.

    * Selecting a voice ID based on the chosen expert.

    * Converting the audio stream to a buffer.

    * Creating an audio element in the browser and setting its source to a data URL representing the MP3 audio.

    * Playing the generated audio.

    > “it’s time to convert our text to speech and for that one we are going going to use AWS Amazon poly”

    > “simply search on Google Amazon poly and uh it’s free to use”

    > “install the AWS SDK client for Polly (`@aws-sdk/client-polly`)”

    > “using the `SynthesizeSpeechCommand` to convert text to an audio stream in MP3 format”

    14. **User Interface Enhancements:** The source covers various UI improvements:

    * Implementing a dialog for user input upon selecting a coaching option.

    * Displaying the selected coaching option name as the dialog title.

    * Adding a text area for users to enter their topic.

    * Showing a list of coaching experts with their names and avatars (loaded from `public`).

    * Allowing users to select an expert, visually indicating the selection with a border.

    * Adding “Cancel” and “Next” buttons in the input dialog.

    * Creating a chat box to display the conversation history, differentiating user and assistant messages with styling.

    * Implementing scrolling for long conversations within the chat box.

    * Adding a “View Summary” section with basic formatting.

    * Creating a profile dialog accessible via the user button in the header, displaying user information (profile picture, name, email), token usage with a progress bar, current plan, and an upgrade option.

    15. **Token Management:** The source details the initial implementation of token usage tracking:

    * Adding a `credits` field to the user schema in Convex.

    * Creating a Convex mutation function (`updateUserToken`) to update a user’s credits.

    * Using a React mutation hook (`useMutation`) to call the `updateUserToken` function.

    * Calculating token usage based on the length of user and AI-generated messages.

    * Updating the user’s credits in Convex and the local `userData` state after each message exchange.

    16. **Deployment (Vercel):** The source briefly explains deploying the Next.js application to Vercel:

    * Creating a Vercel account and linking the project repository (GitHub, GitLab, Bitbucket).

    * Vercel automatically detects the Next.js project and handles the build and deployment process.

    * Environment variables (API keys, database URLs) need to be configured in the Vercel project settings.

    * Stytch and Convex production settings need to be enabled.

    **Key Facts:**

    * The project aims for a free-to-use technology stack.

    * AssemblyAI offers a $50 credit for new users.

    * Stytch provides a free authentication service.

    * Convex offers both cloud and self-hosting options.

    * OpenRouter allows access to various free AI models.

    * Amazon Polly is free to use for text-to-speech.

    * Next.js version 15 was the latest at the time of recording.

    * Tailwind CSS version 4 integrates its configuration into `global.css`.

    * Stytch automatically creates authentication routes.

    * Convex automatically generates IDs and timestamps.

    **Quotes:**

    * *”assembly AI with the help of assembly’s streaming speech to text you can convert the live audio into a text up to 90% of accuracy and within a less than 600 millisecond of latency how cool”*

    * *”all the sources that we are going to use to build this application is free to use”*

    * *”assembly AI will give you $50 of credit by joining the link in the description”*

    * *”convex is a open-source database for your application uh it also provide a lot of different feature like realtime updates it’s a type safety included also if you want to run any specific task you have the chrone job uh in order to store the file they also provide a file storage functionality and there are many more”*

    * *”stack O is a alternative for the clerk so I thought to give one try to the stack o and let’s see how it works so simply simp go to this stack o.com and create a new account and again one more important thing that it is free to use”*

    * *”Amazon poly to convert our text to speech everything”*

    **Conclusion:**

    The source provides a comprehensive overview of the initial stages of developing an AI voice assistant for educational content. It lays out a clear technology roadmap, details the setup procedures for key components, and begins to implement core functionalities such as frontend structure, authentication, database integration, and basic speech-to-text capabilities. The emphasis on free-to-use services and the step-by-step instructions make this a practical guide for developers looking to build similar applications. The subsequent parts of the source likely delve deeper into AI model integration, text-to-speech implementation, UI enhancements, and deployment.

    AI Educational Voice Assistant: Technology and Implementation

    Q1: What technologies and services are used to build the AI voice assistant for educational content?

    The AI voice assistant will utilize several key technologies and services:

    • Next.js: A React framework used to build the web application, taking advantage of its features like folder-based routing and component structure.
    • Shadcn UI: A Tailwind CSS-based UI component library for creating a consistent and customizable user interface.
    • Stack o: An authentication service provider offering features like user sign-up, sign-in (including social logins), and user management, which is free to use.
    • Convex: An open-source, real-time database for storing application data, with options for both cloud-hosted and self-hosted deployments using Docker.
    • AssemblyAI: A speech-to-text service with a streaming API capable of converting live audio into text with high accuracy and low latency.
    • OpenRouter: A platform that provides access to multiple large language models (LLMs), allowing the application to explore and use various AI models.
    • Amazon Polly: A text-to-speech service used to convert the AI model’s responses back into spoken audio.

    All the core services and technologies mentioned are free to use, making it accessible for development.

    Q2: How is the Next.js application set up, and what is the purpose of the key files and folders?

    The Next.js application is set up using the npx create-next-app@latest command, which installs the latest version of Next.js (version 15 in the source). During setup, the user is prompted to configure options like using TypeScript (no), ESLint (no), Tailwind CSS (yes – installing version 4), and the app router (yes).

    Key files and folders include:

    • app folder: Contains all the application’s pages, routes, and layouts. page.js is the default home page, and layout.js is the root layout defining the structure for all pages. global.css contains global styles, including Tailwind CSS variables.
    • public folder: Stores static assets like images and fonts, which can be directly referenced in the application without specifying a path.
    • next.config.mjs: Contains configuration settings for the Next.js application.
    • package.json: Holds metadata about the application, including its name, version, scripts for running and building the application, and dependencies with their versions.
    • middleware.jsx: Used for protecting routes by checking user authentication status before allowing access.
    • convex folder: Created after setting up Convex, containing files related to the database schema and functions.

    Q3: How is authentication implemented in the application?

    Authentication is implemented using Stack o, a free authentication service provider. The process involves:

    1. Creating a new project on the Stack o platform and configuring sign-in options (e.g., Google, GitHub, email/password).
    2. Copying the provided environment variables (Stack o project ID, public API key, and secret API key) into the application’s .env.local file.
    3. Installing the Stack o Next.js SDK using npm install @stack-o/react.
    4. Initializing Stack o in the application, which automatically adds necessary files and components like handlers/stack/page.js, loading.js, layout.js (with a <StackOProvider>), and stack.js.
    5. Utilizing the /handler/signup route provided by Stack o for user registration and login.
    6. Using the <UserButton> component from @stack-o/react/stack to display user profile information and options like account settings and sign out.
    7. Protecting routes using a middleware.jsx file, which intercepts requests and redirects unauthenticated users to the sign-in page using Stack o’s functionalities.

    Q4: How is the Convex database set up and used for storing application data?

    Convex is set up as the application’s database. The process involves:

    1. Creating a new project on the Convex platform (or opting for self-hosting via Docker).
    2. Installing the Convex client SDK in the Next.js application using npm install convex.
    3. Initializing Convex in the project by running npx convex dev and linking it to the created Convex project. This generates a convex folder in the application.
    4. Wrapping the application within a <ConvexProvider> in a provider.js file (marked as a client component) to provide Convex context to the application. This provider is then used in the root layout.
    5. Defining the database schema in a schema.js file within the convex folder. This involves exporting a default DefineSchema and specifying tables with their columns and data types using Convex’s v (validator) object. Convex automatically handles unique IDs and creation timestamps.
    6. Creating Convex functions (queries for fetching data and mutations for modifying data) in files within the convex folder to interact with the database.

    The application uses Convex functions to check if a user exists upon login and to save new user information, including name, email, and initial credits, into the “users” table.

    Q5: How is self-hosting of the Convex database achieved?

    Self-hosting of the Convex database can be achieved using Docker. The steps include:

    1. Installing Docker Desktop on the local machine.
    2. Downloading the docker-compose.yml file provided in the Convex self-hosting documentation and placing it in the root directory of the project (renaming it to docker-compose.yml).
    3. Running the command docker-compose up in the terminal, which sets up the Convex backend and dashboard using Docker.
    4. Generating an admin key by running a specific Docker command provided in the documentation.
    5. Accessing the Convex dashboard locally (usually at localhost:6791) and logging in using the generated admin key.
    6. Updating the environment variables in the .env.local file to point to the self-hosted Convex instance (NEXT_PUBLIC_CONVEX_URL and CONVEX_ADMIN_KEY) and commenting out the cloud-based Convex URLs.
    7. Running npx convex dev again to connect the application to the local Convex instance.

    This setup allows developers to run and manage their Convex database on their own infrastructure.

    Q6: How is speech-to-text functionality implemented?

    Speech-to-text functionality is implemented using AssemblyAI’s streaming speech-to-text service. The process involves:

    1. Installing the AssemblyAI client library using npm install assemblyai.
    2. Creating an AssemblyAI account and obtaining an API key.
    3. Implementing a function to connect to the microphone using the recordRTC library. This function initializes the microphone and starts recording audio.
    4. Establishing a WebSocket connection to AssemblyAI’s streaming endpoint (wss://api.assemblyai.com/v2/realtime/ws?sample_rate=16000) when the user clicks a “connect” button. The API key is sent in the WebSocket URL’s Authorization header.
    5. Sending the audio data in chunks (Blobs) over the WebSocket connection as the user speaks.
    6. Receiving real-time transcription results from AssemblyAI over the WebSocket. These results include “partial transcripts” for immediate feedback and “final transcripts” when AssemblyAI detects a pause in speech.
    7. Updating the application’s state with the received transcripts to display the spoken text on the screen in real time.
    8. Handling the “disconnect” event to close the WebSocket connection and stop the microphone recording.

    The final transcript is used to pass the user’s spoken input to the AI model for processing.

    Q7: How is text sent to the AI model and the response handled?

    Text is sent to the AI model using OpenRouter, a platform that provides access to various LLMs. The process involves:

    1. Signing up for an OpenRouter account and obtaining an API key.
    2. Installing the OpenRouter SDK (using npm install open-ai) and importing the OpenAI class.
    3. Initializing the OpenAI client with the OpenRouter API key and a custom base URL (https://openrouter.ai/api/v1).
    4. Creating a function that takes the user’s input text (obtained from AssemblyAI), the selected coaching option, and potentially conversation history as arguments.
    5. Within this function, constructing a message payload with roles (“user” and “assistant” or “system”) and content. The “assistant” role’s content includes a prompt tailored to the selected coaching option, with a placeholder for the user’s topic which is replaced with the actual input.
    6. Using the OpenAI client’s chat.completions.create method to send the message payload to a selected AI model (e.g., Gemini Pro 2.0 experimental).
    7. Receiving the AI model’s response, which typically contains generated text.
    8. Parsing the response and updating the application’s state to display the AI-generated text in the chat interface.

    The application can be configured to send only the last user message or a history of the conversation to the AI model to provide more context.

    Q8: How is text-to-speech functionality implemented to vocalize the AI’s responses?

    Text-to-speech functionality is implemented using Amazon Polly. The process involves:

    1. Installing the AWS SDK client for Polly using npm install @aws-sdk/client-polly.
    2. Setting up an AWS account and creating an IAM user with programmatic access and the AmazonPollyFullAccess policy.
    3. Obtaining the AWS access key ID and secret access key for the created IAM user and storing them as environment variables in .env.local.
    4. Creating a function that takes the text to be synthesized (the AI model’s response) and the desired voice ID (based on the selected expert) as arguments.
    5. Within this function, initializing a Polly client with the AWS region and credentials.
    6. Creating a SynthesizeSpeechCommand with parameters including the text, output format (MP3), and voice ID.
    7. Sending the command to the Polly client to synthesize the speech.
    8. Receiving an audio stream in the response.
    9. Converting the audio stream into an audio buffer.
    10. Creating an audio element in the browser and setting its source to a data URL representing the audio buffer (e.g., audio/mpeg;base64,…).
    11. Playing the audio, allowing the user to hear the AI’s response.

    The application uses different voice IDs based on the “expert” selected by the user, providing a personalized voice for the AI assistant.

    AI Voice Agent: Speech-to-Text with Assembly AI

    The sources discuss speech-to-text technology extensively in the context of building an AI-powered voice agent for educational purposes. The application aims to teach users about specific topics, conduct mock interviews, provide question-and-answer learning, and even assist in language learning. A key feature of this application is the ability to convert speech to text.

    Here’s a breakdown of the speech-to-text aspects based on the sources:

    • Core Functionality: One of the fundamental aspects of the AI voice agent is learning how to convert speech to text. This allows users to interact with the agent using their voice.
    • Real-time Transcription: During interactions like mock interviews, there is a live Speech to Text option that displays the user’s speech in real time. This feature is crucial for a natural conversational flow.
    • Technology Used: The application utilizes Assembly AI to implement the speech-to-text functionality.
    • Assembly AI’s streaming speech-to-text feature is specifically employed to convert live audio into text with high accuracy (up to 90%) and low latency (less than 600 milliseconds).
    • The development process includes learning how to integrate Assembly AI’s streaming speech-to-text from the basics.
    • Workflow Integration: The workflow of the application involves several steps, including getting microphone access, converting spoken words into text using Assembly AI, and then processing this text to get responses from an AI model.
    • Once the user speaks, the audio needs to be converted to text, which is then passed to the AI for generating an answer.
    • Implementation Details:The application uses the recordRTC library to handle microphone access and audio recording in the browser.
    • The recorded audio is then sent to Assembly AI for transcription.
    • The implementation involves setting up a WebSocket connection with Assembly AI’s streaming endpoint and sending audio buffers for real-time transcription.
    • Assembly AI sends back transcript data, which includes both partial transcripts (for real-time display) and final transcripts (once the user pauses speaking).
    • The application includes logic to process these transcripts and update the user interface to show the text in real time.
    • The final transcript is used to capture the complete user input for processing by the AI model.
    • Cost Considerations: Assembly AI provides a $15 credit to new users who join through a specific link, making it free to get started with the speech-to-text integration.
    • Token Management: The transcribed text (output of speech-to-text) plays a role in token management, where the length of the conversation (in words) might be used to track user usage and potentially for paid plans.

    In summary, speech-to-text is a foundational component of this AI-powered educational voice agent. Assembly AI is the chosen technology for providing accurate and real-time transcription of user speech, enabling a natural and interactive learning experience. The development process includes learning to integrate and utilize Assembly AI’s streaming capabilities effectively.

    Educational Voice Agent: AI Model Integration

    Based on the sources, AI models are central to the functionality of the educational voice agent being built. The agent relies on these models to provide a variety of learning experiences, including:

    • Answering questions.
    • Facilitating mock interviews.
    • Delivering topic-based lectures.
    • Assisting with language learning.
    • Generating feedback on mock interviews.
    • Creating notes for topic-based lectures.

    The application aims to be flexible in its use of AI models, utilizing Open Router to explore and integrate with multiple Large Language Models (LLMs). The developers intend to connect to various AI models such as Gemini, OpenAI, ChatGPT, Dips, and CLA.

    Here are further details about the use and integration of AI models:

    • Model Selection: The project utilizes Open Router, which allows access to a wide range of AI models. This platform offers both free and paid models. One specific model mentioned as being used (at least for demonstration purposes) is Gemini Pro 2.0 experimental, noted as being free to use.
    • Prompt Engineering: To get relevant responses from the AI models, prompt engineering is crucial. The application uses prompts that are tailored based on the coaching option selected by the user. These prompts include the user’s chosen topic, and a template that gets populated with the actual user input. The prompt can also be designed to influence the length and specificity of the AI’s responses.
    • Interaction via API: The application uses the open-ai SDK to interact with the AI models through the Open Router API. This involves initializing the OpenAI client with an API key obtained from the Open Router platform. The API key is stored as an environment variable for security.
    • Passing Context: For more coherent conversations, the application has been designed to pass the conversation history (or at least the last few messages) to the AI model. This allows the AI to provide contextually relevant responses based on the ongoing interaction.
    • Generating Feedback and Notes: A separate AI model (or potentially the same model with a different prompt) is used to generate feedback and notes based on the completed conversations. The summary prompt defined for each coaching option guides the AI in generating these summaries.
    • Client-side vs. Server-side Implementation: Initially, the code for interacting with the AI model was implemented directly on the client-side. However, due to potential security concerns (exposing the API key) and best practices, the source suggests that it might be better to handle the AI model interaction on the server-side by creating an API endpoint. The source also mentions a quick fix of using dangerousAllowBrowser: true to bypass a browser security warning when using the OpenAI client directly on the client-side for development purposes.

    In summary, AI models are the intelligence behind the voice agent, enabling it to understand user input, provide educational content, and generate valuable feedback and notes. The application leverages the Open Router platform to access a variety of LLMs and uses prompt engineering and conversation history to guide the AI’s responses. The interaction with these models is facilitated by the open-ai SDK.

    AI Voice Agent: Text-to-Speech with Amazon Polly

    Based on the sources, text-to-speech (TTS) is a crucial component of the AI-powered voice agent for educational purposes. It serves as the mechanism to convey the AI agent’s responses to the user in an audible format, contributing to a more natural and interactive learning experience.

    Here’s a breakdown of the text-to-speech aspects discussed in the sources:

    • Core Functionality: The application aims to convert text responses generated by the AI models into speech, allowing users to hear the information rather than just reading it. This is essential for creating a voice-based interaction.
    • Technology Used: The application utilizes AWS Amazon Polly for the text-to-speech functionality. Amazon Polly is described as an AWS service that converts text into lifelike speech. It is also mentioned that Amazon Polly is free to use.
    • Implementation Details:The implementation involves using the AWS SDK client for Polly (@aws-sdk/client-polly). This SDK needs to be installed as a dependency in the project.
    • A PollyClient is initialized with AWS credentials (access key ID and secret access key) and the desired AWS region. These credentials need to be obtained from an AWS account with appropriate permissions for Amazon Polly. It is recommended to store these keys as environment variables for security.
    • To convert text to speech, a SynthesizeSpeechCommand is created. This command requires several parameters:
    • Text: The text that needs to be converted into speech. This text comes from the responses generated by the AI model.
    • OutputFormat: The desired format for the synthesized speech, which is set to MP3 in this application.
    • VoiceId: The voice to be used for synthesizing the speech. The application intends to select the voice based on the coaching expert chosen by the user. The expert’s name is used to determine the VoiceId for Amazon Polly.
    • The polyClient.send() method is used to send the SynthesizeSpeechCommand to the Amazon Polly service. This returns an audio stream.
    • The audio stream is then transformed into a byte array (transformToByteArray).
    • The byte array is converted into an audio blob (new Blob) with the correct MIME type (audio/mpeg).
    • Finally, the audio blob is converted into a URL that can be used by an <audio> element in the browser using URL.createObjectURL().
    • An <audio> tag is added to the user interface with the src attribute set to the generated audio URL and autoplay enabled, so the AI agent’s response is played automatically.
    • Voice Selection: The VoiceId parameter in the SynthesizeSpeechCommand is linked to the coaching expert selected by the user. The application attempts to use the expert’s name to choose a corresponding voice from Amazon Polly.
    • Error Handling: The code includes a try…catch block to handle potential errors during the text-to-speech conversion process, logging any errors to the console.

    In summary, Amazon Polly is the chosen service for converting the AI agent’s textual responses into audible speech. The implementation involves using the AWS SDK, configuring credentials and voice settings, sending the text for synthesis, and then handling the resulting audio stream to play it in the user’s browser. This text-to-speech capability is essential for creating a fully interactive voice agent.

    AI Voice Agent: A Next.js Educational SaaS Application

    The sources detail the development of an AI-powered voice agent for educational purposes built using React and Next.js. This is described as a full-stack SaaS application being built from scratch. Here’s a comprehensive discussion of the Next.js application based on the provided information:

    • Foundation: The application is built upon the Next.js framework, utilizing its features for server-side rendering or static site generation, routing, and API endpoints. The initial step in the development process involves creating a new Next.js application using the command npx create-next-app@latest. Using @latest ensures that the latest version of Next.js (version 15) is installed.
    • Project Setup: The setup process includes prompts for project name, TypeScript usage (chosen as ‘no’), ESLint linking (chosen as ‘no’), Tailwind CSS (chosen as ‘yes’), src directory (chosen as ‘no’), and App Router (chosen as ‘yes’, which is highlighted as very important).
    • Project Structure: After creation, the project structure includes key folders and files:
    • app folder: This folder contains all the pages, routes, and layouts of the application. Next.js uses a folder-based routing system, where the folder structure within the app directory defines the application’s routes. Files named page.js or page.jsx are treated as route handlers.
    • public folder: This folder is used to store static assets such as images, fonts, and other files that can be directly accessed by the browser.
    • global.css: This file contains the global styles applied to the application. With Tailwind CSS version 4, the Tailwind CSS color variables are included directly in this file, eliminating the need for a separate tailwind.config.js file.
    • layout.js (or layout.jsx): This file defines the root layout of the application. It contains the <html> and <body> tags, and all pages are rendered within this layout. Custom fonts and meta tags for SEO are also typically added here. Specific layouts can also be created within subdirectories (e.g., main/layout.jsx for the dashboard layout) to apply different structures to different sections of the application.
    • page.js (or page.jsx) in the app directory: This is the default page of the application, rendered when the user navigates to the root path (/).
    • next.config.mjs: This file contains configuration related to the Next.js application.
    • package.json: This file stores information about the application, including its name, version, scripts for running and building the application, and a list of dependencies and devDependencies along with their versions. The source notes that after installing Tailwind CSS version 4, it and its related postCSS dependency are listed here.
    • Routing: Next.js employs a folder-based routing system, making it easy to define routes based on the directory structure within the app folder. The source mentions that Next.js handles routing without manual configuration and that the developers will learn about nested routing and dynamic routing.
    • UI Components: The application integrates Shadcn UI, a Tailwind CSS-based UI component library. Shadcn UI components are installed individually using the npx shadcn-ui@latest add <component-name> command. The library is configured using npx shadcn-ui@latest init. Shadcn UI components generate .jsx files within a components folder, which can then be imported and used in the application. The theme and base color of the UI can be customized.
    • Authentication: Stack O is used as the authentication service provider for the Next.js application. The integration process involves installing the Stack O SDK using npm install @stack-o/js. Environment variables provided by Stack O are stored in a .env.local file. Stack O provides pre-built UI components for sign-up and sign-in, such as the UserButton, SignIn, and SignUp components. Middleware can be used to protect specific routes by checking user authentication status.
    • Data Storage: Convex is used as the open-source database for the application. The Convex client library (convex) is installed using npm install convex. A Convex development environment is started using npx convex dev. Convex uses a schema defined in schema.js to create tables. Mutations and Queries are defined as functions within Convex to interact with the database. Next.js hooks like useMutation and useQuery from the convex/react library are used to call these Convex functions from React components.
    • State Management: React Context is used for state management, specifically to share user data across different components. A UserContext is created, and a provider wraps the application to make user information accessible throughout the component tree.
    • Layouts: Custom layouts are implemented to provide a consistent structure for different parts of the application. For example, a dashboardLayout is created within the main folder to provide a specific layout for all routes under /main/dashboard.
    • API Routes: Next.js allows the creation of API routes within the app/api directory. These routes can be used to handle server-side logic. For example, an API route /api/get-token/route.jsx is created to fetch a temporary token from Assembly AI.
    • Deployment: The application is deployed on Vercel, a platform optimized for Next.js applications. The deployment process involves pushing the code to a Git repository (like GitHub) and connecting it to a Vercel project. Vercel handles the build and deployment automatically. Stack O also requires setting the application to production mode in its dashboard and potentially adding the production domain.

    In summary, the Next.js application being developed leverages many key features of the framework, including its routing system, component-based architecture, layout capabilities, API route functionality, and integration with third-party services and UI libraries to build a comprehensive AI-powered educational tool.

    Stack O User Authentication in a Next.js Application

    Based on the sources, user authentication is a critical aspect of the AI-powered voice agent application, ensuring that only authorized users can access the dashboard and secure their data. The application implements user authentication using Stack O, which is presented as a free alternative to Clerk.

    Here’s a detailed discussion of user authentication as described in the sources:

    • Authentication Service Provider: The application utilizes Stack O as its authentication service provider. Stack O is chosen for its ease of use and the fact that it is free.
    • Integration Process: Integrating Stack O involves the following steps:
    • Creating a Stack O Account and Project: The developer needs to create a new account on the Stack O website (stacko.com) and then create a new project within the Stack O dashboard.
    • Selecting Sign-in Options: During project creation, the developer can choose which sign-in methods to enable, such as Google, GitHub, email/password, etc..
    • Obtaining Environment Variables: Stack O provides environment variables (API keys or IDs) upon project creation, which need to be copied.
    • Installing the Stack O SDK: The Stack O JavaScript SDK (@stack-o/js) is installed into the Next.js project using the command npm install @stack-o/js.
    • Storing Environment Variables: The copied environment variables from Stack O are pasted into a .env.local file in the root directory of the Next.js application.
    • Initializing Stack O: Running the command npx @stack-o/js init in the project’s terminal initializes Stack O for the application. This might require using sudo on macOS due to permission issues. This process adds necessary files like handlers/stack/page.js, loading.js, layout.js (with a StackoProvider), and stack.js.
    • Authentication Flow: The application enforces authentication with a standard flow:
    • When a user attempts to access protected areas (like the dashboard), the application first checks if the user is authenticated.
    • If the user is already authenticated, they are redirected to the dashboard.
    • If the user is not authenticated, they are redirected to the sign-in/sign-up page provided by Stack O (/handlers/signup).
    • After successful sign-in, the user is redirected back to the dashboard.
    • Protecting Routes: The application uses middleware (middleware.jsx) to protect specific routes from unauthorized access. By specifying route paths within the middleware, the application can ensure that only authenticated users can access those routes. For example, the source indicates that all routes under /dashboard will be protected. The middleware utilizes the @stack-o/server/app package and NextResponse from next/server.
    • Stack O UI Components: Stack O provides pre-built React components that simplify the integration of authentication features into the user interface:
    • UserButton: This component displays the user’s profile image and provides options for account settings and signing out.
    • SignIn and SignUp components: These dedicated components provide ready-to-use sign-in and sign-up forms.
    • User Information Retrieval: The @stack-o/react package provides the useUser hook, which allows React components to easily access the authenticated user’s information, such as display name, primary email address, and profile image URL. This hook is indicated to be used on the client side.
    • Saving User Information to the Database: Upon the first successful login, the application saves the user’s information (display name, primary email) into the Convex database using a mutation called createUser. This function checks if the user already exists based on their email; if not, a new user record is inserted with default credits.
    • Account Settings and Sign Out: Stack O provides a dedicated account settings page that users can access. The UserButton component offers a straightforward way for users to sign out of the application.

    In summary, user authentication in this Next.js application is handled by the Stack O service, which provides a comprehensive set of features including UI components, route protection via middleware, and user management. The integration involves a simple setup process, and the application leverages Stack O’s capabilities to secure access and manage user sessions. Upon successful authentication, user information is also stored in the application’s database (Convex) for further use.

    🎙️Build & Deploy an AI Voice Agent for Education | Next.js, React, Tailwind, Convex, AssemblyAI

    The Original Text

    with the help of react nees and power of AI we are going to build a powered voice agent for educational purpose this is one of the gamechanging size application which we are going to build completely from the scratch hey there and welcome back to tub guruji Channel today we are going to build AI powered Vice agent to learn about a specific topic give the mock interview learn about the question answer or you can even learn any Lang languages this AI voice agent help you this is a full stack s application which we are going to build completely from the scratch after building this application you going to learn how to convert text to speech or speech to text as well as how to get the response from the AI and how to present to the any user with modern UI Trends we are going to design this application and build it step by step let me walk through the demo of this application and then we’ll talk about the all the text tag which we are going to use to build this application here we have this beautiful Landing screen and after clicking get started it will redirect you to the signin screen where you have option to sign in with the GitHub sign in with the Google or even you can sign in with the email and password so let’s sign in with the Google after sign in you will land on the dashboard screen if you see after refresh you will see this beautiful animation effect it will give you say the feding effect to this all the list then you have all these different different options that you can add it and you going to learn how can you add other uh coaching option as well for example if you want to learn about the any topic based uh lectures you can get that even though you can do the mock interview or prepare for the question answer then if you want to learn any new language that also you can learn and for if you want put a con concentration while doing a study then you can select this meditation option let’s select this mock interview now if I select here you need to give topic on which you want to give the mock interview let’s say you are a full stack developer and you want to give a mock interview on that one so we’ll say full stack uh frontend developer and especially you can say reactjs then you have option to select a coaching expert you have Jonah Sally joy and that also so I’m going to tell you how to do it and simply after selecting click next then you’ll land on this discussion room page where you have option to connect now right now I disable my camera but once you enable this camera you can see your uh camera or webcam view as well at this side at the bottom side then we’ll connect with the jna and then once it connect we will start conversation hi Jonah how are you good morning good morning I’m doing well thank you ready to dive into your interview yes I’m pretty excited great to hear let’s start with the basics what is react and why would use it in a project react is a web framework to develop the web application and it’s client Side Library as well good start to clarify react is a JavaScript library for building user interfaces can you explain its key features and that’s how you can do a two-way conversation after doing the all the conversation you have option to generate the feedback If You observe when you talk about uh anything you will see a live uh Speech to Text option and that’s how we are going to implement with the help of asembly AI assembly AI help us to stream the speech to text and with the of that one we are going to implement the speech to text uh feature into our application now on the right hand side you will see all this uh conversation between you and the voice agent over here you will see an option to generate the feedback and notes depends on your conversation now if you are giving the interview then it will generate the feedback for your interview and some suggestion as well to improve it and if you are learning uh topic based lecture then it will give you the notes let’s generate the feedback and notes it start generating the feedback and notes with the help of AI models that we are going to learn how to connect and attach to our application once the feedback and notes are saved you will see this notification and then you can go back to the dashboard on the dashboard you will see this option where you can see the feedback anytime if you talk about any lecture then you will see the notes over here if I go to this View feedback it will navigate to The View summary screen where you will see your conversation everything in the detail along with uh some key feature the uh the Gap where you are lacking and everything in the detail on the right hand side you will see the conversation and depends on that one you got the feedback for that given interview everything we are going to implement from the scratch but not only that we are conver this application to SAS if I go to this profile you will see we use this token based architecture where depends on the user usage we are updating the token user have option to upgrade to the paid plan and with the help of Reserve pay payment Gateway we added the payment integration as well right now I’m on paid plan and that’s the reason I’m able to use up to 50,000 tokens and that’s completely uh up to you how much much token you want to give for a free or on a paid plan over here you also see an account setting option if I go to this account setting you have option to update your profile email out and everything and everything that we are going to implement within a one single component without writing any code how cool right as this is a completely responsive friendly application and you can also work on this application can work on any different kind of uh devices this application is not only a SAS application but with this application you going to learn a lot of different text tack which are very important to get a job in the IT industry once you build this application it will be very useful to the all the students or job Seeker to prepare for their exam and interview let’s talk about the text tag which we are going to use to build this application along with the react and negs we are going to use a tawin CSS version 4 then for the UI component Library we are going to use a shadan and for the database we are going to use a convex database also we are going to learn how to do the convex self hosting and for a streaming speech to text we are going to use an assembly AI with the help of assembly’s streaming speech to text you can convert the live audio into a text up to 90% of accuracy and within a less than 600 millisecond of latency how cool and that also we going to learn from the basic then for the AI model I’m going to use open router where you can explore a multiple AI llm model and the last but not least the Amazon poly to convert our text to speech everything and all the sources that we are going to use to build this application is free to use also if you want to access all of my uh exclusive courses and the source code you can visit to tui.com where you will find all the projects and their source code you can join the tub gurji Pro membership just under $15 also assembly AI will give you $15 of credit by joining the link in the description just click on that one and you will get $50 of credit to use it all the important links all the text tag which we are going to use I will put the link in the description so that it will be easy for you to access it so guys without doing any further delay let’s begin to develop AI voice assistant for educational content now let’s create the react nijs application so this is a command to create the nextjs application so simply go to the folder where you want to create this project open a terminal at that folder and then just type npx create next app at latest now we you mentioned at latest then it will install the latest version of nextjs which is nextjs 15 then say do you want to proceed and then it will ask you to enter the project name so here we’ll say AI coaching voice agent okay we can rename that again later on then it will ask do you want to use ties script we’ll say no also no to the yes link and yes to the telin CSS now recently telin CSS um launched the version uh four and with that version it will you will not see the telin CSS file but obviously once you say yes it will install the telin CSS for you and we will see the all new changes introduced inside this telin CSS version 4 say app router yes this is very important and we’ll send not to other two question now if you see uh it it will install some dependency which is the important like react react Dom next and Dev dependency for the twiin CSS now project is ready simply go to the vs code open a folder where you just created your project and I will open this folder say yes I trust the author and here you will see all the files and some folders get created when you create your application let me walk through each one of one by one so first is a app folder which contain all your pages routes uh the layouts right so first we have this global. CSS so which contain the all the style applied to the uh application so you can mention it here now with with the help of tvin CSS version 5 all the tvin CSS color variable also included inside the global CSS so you will not find the new or separate file for the tail. config.js file okay if you see we don’t have that file anymore then we have layout. Js which is the root layout of your application in which you will see this HTML body tag and through this body tag you are all the pages are going to render here you will see the meta tag as well this is very important uh in order to add SEO inside your application and at the top uh here you we have some uh custom fonts which is applied but obviously uh you can update it that later on then we have the page.js file which is the default page of your application now once we run the application you will see this page is going to render then we have this public folder in which we are going to save all our images assays font whatever you want you can save inside this public folder and without mentioning any path you can directly use it right then we have this uh next doc. MJS file which contain the configuration related to the nextjs application the package.json which contain the name and version of your application also uh the script to run to build your application and the dependency along with their version so whenever you install any new dependency you will see this dependency along with their version and the de dependency as well here you will see the tailn CSS is now on version 4 and this is the post CSS which is again related to the telin CSS only now simply go to the terminal click new terminal or you can open this terminal from the bottom just type a command npm run D click enter and then you will see your application is now running on this particular URL with this 3,000 port number so I will just go to this browser open this local 3000 and then you will see your application is now running as I say in the beginning that this is the default page which is nothing but our inside this app we have this page.js file and this is the default page of your application now let me bring this side by side quickly and let me delete all of this line of code okay and simply we are going to add a du tag inside the DU tag I will add h2 tag and here we will say subscribe to tube guruji so if you did not subscribe to our Channel please do subscribe and save it as soon as save you will see the text is now displaying to subscribe to tub G now all the routes or Pages you need to name with the page.js file and the route name is nothing but the folder name which you want to give that we are going to learn it also along with that one you want to learn how to add the nested routing Dynamic routing and many more as nextjs is a folder based routing it will be very easy and you don’t need any configuration for the routing now next thing we want to uh add the UI component Library which is a Shad CN Shad CN is a tailn CSS based UI component library and it’s very popular among the developers simply go to the ui. shen.com and here just go to this documentation now click nextjs as a framework because we want to install now at the top here you will see the following guide is for twin CSS version 4 right but if you’re using version three or any other then you have to follow this tutorial okay or you can use this shadan with the version now this updated shn tutorial is supported with the version T CSS version 4 okay now simply copy this command in order to initialize the shadan I will open another terminal and and simply we’ll execute this shadan command now we’ll say yes to proceed and then you can select the base color whether you want neutral gray or any other so here we’ll select the neutral and obviously as we are using the react version 19 we have to forcefully um add this Library so we’ll say use force and then it will install but if you next from next time if you don’t want that particular command to run just go to the package.json and simply update the react version to 18 it will not affect to your application but make sure once you update the version inside the package.json install make sure to run this npmi command so it will install the L uh whatever the version you mention that particular package will will get installed now once the shat scene is ready you will see inside our folder uh or inside our Explorer you will see two new things get added one is the leave folder inside that we have .js file and other component. Json file which contain the shn related configuration here you will find the theme the base color the style and everything next Let’s test this particular component now whenever you want to use any shat CN UI components you have to first install that component so in this case let’s say you want to use button component so I will copy this inside the terminal let’s paste that and then once the button component get installed you will see inside this component folder this button. jsx file get added obviously this is the shat you have option to customize whenever you want and if I go back to the button.js I will simply add this button component and here we’ll simply write subscribe now if I go back back to our application here you will see the button called subscribe obviously it’s not uh it’s like just like a ghost kind of thing it’s not showing the color and everything because we provide a neutral uh color also if I go to this Global CSS here you will see all the colors and the the respective color code as well here you can update your color with your hex code as well if you want to add something like hash which is kind of black color save it and if I go back you will see the button color will change to Black okay so it’s up to you and obviously you can customize all other um styling as well if you want to use something like let’s say destructive okay so I will go to this button I will put the variant as a destructive and here we have this destructive um button okay so uh everything whatever the theme you want to add just update the color combination and then you are good to go it’s time to add an authentication inside our application it’s very important if you are developing any size application you have to protect your application from unauthorized user to maintain all the data to be secured from unauthorized user and that the reason also we are going to add an authentication inside our application so let’s consider that user want to xess access our dashboard or application first obviously we going to check if user is authenticated or not if user is already authenticated then we are going to redirect user to the dashboard if not then we’ll redirect user to the signin sign up page and after successful sign in only then we are going to redirect user to the dashboard as as simple as that and in order to add an authentication we are going to use a stack o when I search on Google the bestas authentication service provider there are lot of service provider like Clerk and stack O is a alternative for the clerk so I thought to give one try to the stack o and let’s see how it works so simply simp go to this stack o.com and create a new account and again one more important thing that it is free to use okay so you don’t need to pay anything I will log to my account and after successful signing you will land on this project page where you have option to create a new project so we’ll click on new project here uh give the project name so we’ll say AI coaching voice agent you can give whatever name you want you can even change that later on and and here you can add whatever the signin option you want to add right now I’m keeping sign in with Google sign with GitHub email password and everything now simply click create project after creating project you will get this um en variable just copy that and go back to your application inside the root directory we’ll create a EnV file or we click. loal and simply paste this all these three which key which we copy and save it after that we’ll say continue and then this is your um dashboard for your application here you can see once user login and accessing your application you can see live uh from which country which location everything then at the bottom you will see uh all the daily signups active user everything inside this user tab you will find the list of user and there are other lot of things you can just go ahead and access it here obviously you have option to modify your different SSO providers as well you can add it you can enable disable now simply go to the documentation page because that’s where uh obviously we need to integrate first and click on setup and installation first thing uh this is the recommended way okay and it’s very easy to go but you can uh do it manually as well let’s select this command and copy this command and go to this project inside the terminal we’ll just paste this command and then it will ask you do want to proceed we’ll say yes and then next uh it will initialize this uh stack up for us so right now if you see on the Windows you might sorry on the Mac OS you might get this error okay because it is just um not allowing user or is denying the permission in Windows you might not get this error okay so simply what I will do I will run this command using sud sudo so that it will ask me to enter a password just we are giving permission to write into the file and now if you see it will it will ask question we found the nextjs project do you want to install the stack o so we’ll say yes click enter and then it will start installing the uh stack op for us now after successful installation automatically this page will open okay just close this one and here you will find some of the file get created let’s go to this uh folder structure and inside this you will see a new folder get created called Handler and and inside that we have this stack folder and then inside we have this page.js file which is added by Stack o again after this you will see one more file get added called loading. JS and lay inside the layout. JS you will see this tag provider uh get added okay this is the context and this context get added with this all the uh oh stack theme is also get added so this component two component get added okay and last important thing the stack. JS so these are the file get added you don’t need to worry about any of this file okay just I’m telling you just that you will get to know okay which are the files uh where it came from and everything now I will go back and over here obviously in the step three it will it’s just mentioning which are the different different file get added and everything okay now if I go to this particular route which is local 3000 Handler SL signup let’s click on this one you will see our application now has the dedicated signup screen how cool right now obviously um all of these things you can manage from your um U dashboard page okay and that’s where you can enable or disable the provider I will select the account and we’ll log to our account and once you log in now obviously you will redirect to this local 3,000 page okay so that’s how simple it is in order to add at this authentication service provider now you can even go to this account setting page and here you will see your account details along we have the sidebar and everything okay uh obviously we are not going to use this but in if I go to this next here we have this dedicated component called user button then we have this sign in sign up component and lot of other let’s try this user button so simply I will go to our page.js and I will use this user button component okay if you see it is that it’s importing from the stack frame / stack and simply save it now if I go to this local 3,000 I will just refresh this and here you will see the user profile image if I click on that one you you will see an option called account setting sign out the user email and all perfect right so that’s how you need to add an authentication now one more important thing that there are there is a uh um obviously you need to add or you need to protect some routes right so if I go to the next um with the help of this ug user hook you will get the user information that we will see later on but if I scroll down again I think uh protecting page so this is the option called protecting page now there are three way that you can protect the page one using this middle we file one is the client component and one is the server component the best way I think is a middleware because everything you can keep in one file only whenever you want to protect any routes you can just mention that over here so I will create this file called middleware and this need to be a jsx and simply we’ll copy this line of code now make sure to install this stack server app from the stack and make sure to import uh import this next response as well and then save it right now we are not protecting any route because we only have the default page but once we have the dashboard and everything is set up then we are going to add the route which you want to protect okay so that route we going to add inside the middle wear. jsx file now next Once user is authenticated very first time we going to save user information to our database so that we can keep a track of all the user uh activity and everything so that what we are going to see next in order to store a application data we need a database and for that one we are going to use a convex convex is a open-source database for your application uh it also provide a lot of different feature like realtime updates it’s a type safety included also if you want to run any specific task you have the chrone job uh in order to store the file they also provide a file storage functionality and there are many more I’m using this convex from a long time and it perfectly work into any application with the help of convex you can build web application mobile application keeping your data at one place now convex provide a two different way to where you can use the convex one is the convex Cloud where you can uh set up the datab based on their own platform or convex also provide a self hosting where you can host the convex on your own premises or on your own platform how cool right and in this particular chapter we are going to see both the feature that how to enable convex on their own platform or how to do the self hosting with the help of Docker so first thing go to the convex DOD and here create a new account if you don’t have or just log to your convex account here if you see I already have a lot of project I created with the convex and here are some of the project which you can see that I already used the convex now simply click create project and give the project name here we’ll say AI coaching voice agent and simply click create once it is created your database is now ready over here inside the data you can able to create the tables obviously we are going to write a schema in order to uh generate these tables then whatever the function you write you function will comes under this function tab then you can upload the files you can schedule the chrone job and everything you will find over here the best thing about this convex that you can keep this Dev environment and the production environment separately you also have preview environment as well how cool right so you your data will be uh specific to that particular environment also once your convex is ready simply click in the link in the description about the convex documentation then you will jump on this specific documentation for the convex nextjs now first thing you need to do is uh to install the convex as we already created the nextjs application so we’ll just go to the uh copy this npm install convex command we’ll go to our terminal and inside the new terminal we’ll execute this command after this you just need to run npm npx convex D so right now okay I need to run with this pseudo so we’ll run with the sud sudo npm and after that I will run this npx convex de so it will run the convex now we’ll choose the existing project and here make sure to select the correct project so I will select the AI coaching voice agent and click enter and over here you will see it’s saying your convex function is ready now inside the Explorer you will see the new folder get created called convex and inside that you will have some of the files you don’t need to worry about any of this file right now okay now let’s go back and the next important step you need to do is wrap your application inside this convex provider okay so if you see this children is rendering inside this convex provider so we’ll go back to our application and inside this app folder we’ll create a new file called provider. JS you can say jsx add a default template and I will just rename this to provider with the p capital and I will accept the children now I’m making this provider as a different file from the layout because we can keep this provider on the client side and we can keep the layout. js on the server side now simply I will also Mark this as a use client and save it now make sure to render this children like this and inside your layout. JS now I will wrap this children inside this provider now obviously on the application side nothing will get change okay now simply you copy this import statement okay let’s copy this one and inside the provider I will paste it here next you need to copy this convex provider client okay now if you see over here inside the clients they provide this convex okay they initialize this convex client so I will just copy this and we paste inside this provider I will just remove this exclam Mark and uh this next public convex URL it automatically get added inside your env. loal and if you see it has this convex deployment URL and the convex URL as well this is very important because that we need it later on but for now you’re good and then we’ll W this children so copy this convex provider and I will just paste it here something like this perfect right after this if I go to this particular section you don’t need to implement that this all of these things because we keep as simple as as it is and I think your convex is now ready and anytime if you find any error you can see inside the terminal now let’s create a new table so I will go to this convex folder and we’ll create a new file called schema .js now inside the schema we’ll create a new table and inside this schema we’ll simply say export default Define schema and inside the Define schema you need to write a table name let’s say users here we’ll say Define table and inside this Define table you need to mention all the column which you want let’s say we want a name column which is of type let’s make sure to input this uh convex value as a V Dot string then email ID we want so we’ll say email column as V do string again and I will also put a credits column uh which is of type number okay so we can give some default credit to the user and here also we will say subscription ID if you subscribe to our uh application right with some payment that subscription ID we want to save which is up type string obviously later on you can add as much column you want as well you can come back add the column and that’s all as soon as we save this one you will see that our convey function is now ready if I go to our convex uh data and boom here we have the new table cool right inside the schema you will see the schema which you wrote and obviously if I click on add you you will see these are some of the fields uh which you can add it it’s nothing but those column now you might wonder why we did not add it the ID column now convex will automatically generate the unique ID for each of the record also along with that one it also generate the uh created time when you created this record so you don’t need to uh create those column okay now let’s save this one and that’s all that’s how you can create and set up the convex now this is the first method that you are running this convex on their own platform okay obviously uh you cannot move that because that is running on their convex Cloud platform okay now the question is how to do the self hosting so simply click on the link uh which I kept in the description which is regarding the self hosting and click on this self hosting guide okay I will also put the link in the description now on this particular documentation you will find everything in the detail how to uh host the convex on the docker with the help of Docker how to connect the convex to the postgrad SQL database using the neon and there are lot of other uh things is mentioned inside this documentation let’s do one by one for because first we want to host uh convex on our platform so with the help of Docker we are going to do so so simply go to the doer. and if you’re not familiar don’t worry just follow this particular video and you will be okay so click download Docker desktop and make sure to select your operating system and downloaded it now I already downloaded so I will just open this Docker see so I will open the docker and uh in the meantime it’s opening but yeah this is how it looks like okay if you see I already have this Docker sorry this particular application running on this Docker but um let’s go to the documentation and you need to download this Docker Das compose file so just click on it make sure to download now I already have multiple files but I will edit the name as well so I will copy that and will paste inside the root directory now I will just rename this to only Docker compose okay something like this after that let’s go back to the documentation again you need to run this command called Docker compose up so inside the terminal we’ll add a new terminal and just paste this command now it will set up the back end and dashboard for you with the with the help of Docker and convex so we’ll wait to finish and after that you need to generate the admin key okay which using this command so copy this command and once it is finished creating the back end and the dashboard if you see now it’s running right now inside the new terminal we’ll just run this command which will generate the admin key see now go to this particular URL local 67 91 and on this particular uh URL you need to add this admin key so copy this admin key and simply paste it here and click login and boom now if you see same UI you will see on the convex Cloud as well that also running on your Local Host it means it’s running on your local and you don’t need to worry about the cloud how many users you have to do nothing about that you can just run convex locally how cool right now next thing if you go back to this documentation that you need to add these two variable so let’s go back to your environment file so I will go to this enemy. loal but make sure to comment this both this URL because that that was running for the cloud right now we will add this self hosted URL and self hosted admin key now whatever the admin key is generated I will just copy that and I will paste it here say okay now once you put the production you just need to updated this host hosted URL that also mentioned in this documentation how to put in the production now obviously we already have the convex installed you don’t need to install but you can run this convex de command so simply what I will do I will go back to this particular convex and obviously it’s running again see it’s updated but I will stop this and I will run this npx convex T command and boom see now that’s all you need to do now if I go to this local 6790 sorry 9 6791 and inside the data you will see the table call user and here obviously whatever you saw in the convex platform same thing you will see inside your convex local as well okay so that’s how you can uh do the convex self hosting if you have any question about the self hosting you can always reach out to the convex Discord Channel or you can ask the question in the comment section or on my tube gji Discord Channel as well now once user successfully sign in or sign up we need to save the user information to our database as our database is already set up just we need to save the user information we also need to make sure that if user is new then only we want to save the user user information but if user already exist inside our database then we don’t need to store the user information so let’s go back to our application and inside the convex we need to write a function so I will create a new file called users. JS and inside that we’ll create export constant create user now inside this create user we are going to insert the user inside our database for that one obviously it’s a mutation so we’ll say mutation but if you are fetching the data then it will be a query now make sure it’s importing from this uh path then inside that we’ll get the arguments okay now obviously inside the argument we’ll get the usern name we’ll provide a type so we’ll say V Dot string then we want to uh get the user email of type string so right now only two parameters are necessary then we want to add a Handler with a Sync here we have CTX comma arguments and the arrow function now first thing we’ll check if user already exist if not then add new user okay now in order to check if user is already exist or not we’ll say constant user data is equal to AIT cx. db. query because we want to F the record you have here you need to give the table name dot filter and depends on the email ID we will we can check it so filter here we’ll say q q do uh equal and inside that we’ll say q. fill on email comma uh arguments. email here we’ll check the fill from the table and from the our uh arguments email we’ll check if both are match then just f it okay like this now if user data user data is empty okay so here we say if user data Dot length is equal to equal to zero it means it doesn’t don’t have any user data then we need to insert the record so here we’ll say constant result is equal to await CTX do DB dot insert and you need to provide a table name users and then you need to provide the value so first is name now instead of providing this value over here I will just Define a constant called data and inside that we’ll Define name let’s say name with arguments. name then email as arguments. email and I’m also going to provide credits okay uh from obviously I will put default credit to 50,000 also one more thing that I’m going to update so inside the schema I will make this subscription ID as a optional field so just wrap this particular column inside this v. optional okay so we are just making that this particular field is optional you don’t need to pass any data if you don’t have so right now these three field are mandatory so we are passing that one and either you can pass data something like this or you can just destruct dest structurize it something like this okay it’s up to you and once it is inserted we’ll return the data now we are not returning the result because result will only return the um inserted ID so we’ll just console that one as well okay but if uh user data is already there then over here we’ll say return user data of zero now obviously user data will give the list and from the first item we need to just return that one and then save it so this is how easily you need to create a function and inside this function you will see all the logic we return now next thing let’s go to the app and inside the provider. jsx here instead of Provider we’ll create another provider okay so here we’ll say uh Au provider. jsx okay now what out provider will do it will check if user is new or not but first we’ll Define this o provider something like this um you can rename this provider only I think that’s okay that’s fine I think o provider and just get the children I will render this children over here and then I will wrap this o provider something like this okay now if I go to our local 3,000 you will not see any change okay because we are just rendering this children again through this OD provider now inside this OD provider first we’ll get the user information using constant user is equal to use user and this user hook we are getting from the stack frame okay now if you want we can I can show you what data it will return so whenever the user information is available we’ll just console this user and if I go to this inspect panel go to the console here inside this object you will see that it will return the display name then it has the primary email address profile image URL and many other things perfect now simply in order to save the user information we’ll create a new method called constant here we say create new user and uh simply first Define the mutation so we’ll say create new create user mutation I will say only is equal to use mutation and if you see this use M mutation is importing from the convex re inside this use motation you need to provide this API so which is api. use us. create user now over here we say constant result is equal to await and the mutation name which is create user and then inside that you need to provide the value the first is the name that you can get it from the user do display name and the email which is user dot uh email I think let me a primary email I believe so you can just check the object and where is the email so which is this primary email perfect now here let make this as a sync and once you get the data you will see inside this result Now call this create new user method only when the user information is available let’s say with this one let’s go back to our application and I will just refresh this screen once and right now we have one error okay so it’s about the so we use this hook you user okay and I think it look like we need to call this on the client side so let’s make this as a client and let’s test this out now this error cause because we added this loading. TSX file but it’s saying NOS SP boundary error now to fix this issue simply go to your uh provider. jsx and over here I will just add this suspense from the react okay so make sure to wrap this and over here we say fall back and inside that we’ll add a P tag we’ll say just loading okay so this is a fallback Whenever there is a loading going on now if I refresh it you will see the text loading and then it will jump on this particular uh home screen over here in the inside the console you will see inside the loging we got this ID from this create user convex cool right and it will return me this particular information that we that we are expecting not only that but if I go to our database here inside the users you will see a new record with the credit email name obviously we are don’t have subscription ID but we also have this creation t along with this ID right and this is the same ID what it is printing over here because this is the inserted record ID right which we um console inside this create user right now we don’t need this I will remove that one and that’s how you need to add now again if I refresh it now in this case it will just return us the data and if I go over here you will see we have this IDE and all the information but uh it will not insert the record into database because it’s already checking if this user email already exist or not and depends on that one it will take an action so that’s how easily you can write the convex function in order to create a new user and check if user is already exist with the help of convex functions you can write the logic on the on this convex function itself and you don’t need to write it inside your client component once we get the user information from the database we need to save in a state so that we can share it across a application in a different different components and for that one we are going to use a react context context is State Management who help us to share the data across the different component instead of passing from one component to other let me show you how to define it first so simply go to this app and inside this we’ll create a component sorry create a folder called underscore context now we are giving this name under UND start with underscore because nextjs then will not consider this as a route okay now inside this we’ll create a user context. jsx file now inside that I will give the context name I will keep the context name similar to the file name and we’ll say create context and that’s all that’s how easily you can create the context now next step is simply uh go to the O provider and over here you can wrap this children inside this user context something like this now to this user context obviously it has a provider so make sure to pass um add this provider and then we have to pass some default value so we’ll Define the user uh here we’ll say user data comma set user data is equal to use State and once we have the user information right over here we’ll set the user data as result and simply pass this user data State comma set user data now in in what or whichever component you want to use this user data information just you need to use the context call user context and then you can access that obviously you can you you want to learn how to do that but for now make sure that you are passing this user data to our user context provider now it’s time to design the dashboard screen where we are going to add the header at the top and we will make sure uh all the routes which user can uh have authorized to see right that on that all the pages we are going to keep this header uh constant then the the dashboard content contain this some options the button for the profile where user have option to see the credits account setting and lot of other things and then user have uh option that he can see the previous lecture and the interview feedback at the bottom okay this is Simple and Clean screen obviously all these assets I’m going to share with you so first let’s go back to our application and inside this app folder I’m going to create a new folder called main now inside this main folder whatever the um application routes which we want to keep after user authenticated we can keep inside this main folder now first I will create a layout. jsx file now this layout is dedicated to a dashboard screen so I will add a default template and we’ll call it as a dashboard layout okay now through this one obviously I’m going to render the children and nextjs will automatically detect that this layout page layout uh file can be used for all the route which is inside this main folder let’s save this one now inside this main let’s create a new uh folder called dashboard inside this dashboard uh we can create a page jsx file and then add a default template to this we’ll say a dashboard you can give any name you can say workspace as well and save it now if I go back to our application let’s go to the new route called dashboard you will see we are now redirecting to the dashboard screen perfect right but what user is not authenticated let me go back and let me log out user so I will sign out out the user and it’s saying leave the site then I will go to the dashboard screen and it’s allowing me but we don’t want that one if you remember when we add the authentication I we added this middle. jsx file where we need to add whatever the route which you want to protect so over here I will just add all the routes come after the dashboard we can just protect that see something like this and then save it now if I go back and try to refresh this you will see it will navigate us to a signin screen because it will check if user is already authenticated or not and boom if you say it’s navigated cool right now only one when you sign in then only you can able to access the uh dashboard screen and now if I go to the dashboard then I can able to access the dashboard that’s how you can protect your routes from unauthorized user okay perfect now let’s go to the dashboard and first thing we need to add the header so inside this main folder I’m going to create another folder called underscore components and inside this we’ll create app header do jsx now let’s add a default template and then save it now make sure to add this app header inside the layout because we want to keep this app layout throughout the uh Das dasboard right so over here we’ll say app header and then save now you will see uh on this we have this app header showing on the top now first thing we want to get the logo so I will use this logo placeholder site okay to get the logo it’s just a placeholder but you can replace with a with an actual logo so let’s search some Simple and Clean logo so I will get this logo click on it it will copy the SVG file and then simply go to the public folder inside that we create a logo. SVG file and paste the code which is the SVG code save it so that you can use inside this app header so first thing we’ll add image tag from the next SL image then Source tag now this image tag from the next slash image is very helpful for the image optimization okay now inside the source just Define the file name and automatically nextjs will detect that you are trying to access this particular image or file from the public folder now here we say logo now whatever the width and height you are mentioning here that you are just optimizing that image I will give let’s say 200 and height of 200 okay and save it now if I save and go back to our application or let me open this one let me make sure to save this one okay I think it’s saved and here we have the logo perfect obviously uh you can just change width and height according to your requirements then we also want to show a user button on the right hand side so here we’ll say user button now this component is inputting from the uh stack frame sl/ stack and save it and now it will reload I don’t know why it’s slow but yeah if you see now we have this profile now we want this button on the right hand side and also we are going to add some padding to this header so for this du we’ll add a class name We’ll add padding to let’s say three and we also add little bit Shadow so we’ll say shadow small and then save it now if you see once we add the padding we’ll see the change now also make this do as a flex and then make justifi between along with the item Center so that this particular item will be on the right hand side where we have option to see the account setting and other options cool right now this is how our header is ready now moving to the next part which is this particular section called workspace now over here I’m going to create a component inside the dashboard because this component related to dashboard so we’ll create that new folder called underscore compon components and inside this we’ll create we can call it as a feature assistant. jsx okay you can name anything and then add a default uh template now inside our page. jsx I will just add it here call feature assistants and then save it now if I go back to our application you will see that feature assistant will display over here right now we want to give some padding and margin so that we can keep everything in the center and depends on the screen size you can change the padding as well so for that one uh I will go to this layout. JS and I will give the padding to this children so that whatever the routes that we are going to add inside this uh main it will apply to all the screen so over here we’ll add a class name first we’ll give padding to 10 we’ll give margin top to let’s say 20 then on the medium screen we’ll give padding to 20 maybe yeah then on large screen we’ll give padding to 32 on extra large we’ll give padding X to 48 and we have 2 Xcel as well you padding to let’s say 56 and save it now once we add the padding you will see the feature assistant now showing over here okay let’s add more padding let’s say over here you can say 72 so that you will see the change so actually this screen comes under the Excel size so maybe we can increase this one perfect okay after that we want to add this particular text called my workspace and then welcome back and username so this will be the usern name that we want to display and on the right hand side we have this button as well so let’s go back and simply uh future assistant over here I will add a texe called my uh let me see the text so it’s called My workspace and Below to that we have wel welome back and the username so username will be uh we can or we can get that username from the hook so we’ll say use user okay and obviously May mark this particular component on the client side as well and over here we’ll just say user dot display name and save it okay and if I go back here we have this text called my workspace and on the second line you will see that we have the welcome back and the name of the uh user now let’s applied some style so over here we’ll say style oh sorry the class name because we are applying the tailn CSS over here we say font medium and I will just change the gray to let’s say 500 then for this S2 tag We’ll add a class name we’ll say text let’s say 3XL font bold and this is how it will look like on the right hand side we will add a button so first I will wrap this in a d and then we’ll add a button and we’ll simply say uh profile and save it you can name whatever the button you want and once you add you will see the button will display on the right hand side or obviously currently it is just below to that one but we want to move to the right side so I will again drag this de I add this both the component inside this du and then we’ll add a class name we’ll say Flex then justify between and item to be in the center okay also um let’s save this first and let’s see how it looks and boom now we want to keep the primary color little different kind of blue color right we want to change the whatever the components that we are going to add from the shatan we want the primary color something like our logo so in order to change the primary color for all the components simply go to the global CSS that’s where you will find all the uh color codes Now search for the primary right now it’s a black color we added right but over here we want to add some kind of blue so I will just change this x to uh 1 F at4 EF and then save it and make sure to okay let’s save this okay I think we need to add colum and save now once you save it just make sure to refresh your application and boom if you see the button color is now changed right and whenever you add any any component the primary color will be this blue color next we want to display all of these options right and for each of them I already added these images inside our public folder so if I go to the our project inside this public folder I added this let’s say interview. PNG language.png and so on as I told you that I’m going to share that with you now obviously uh we’ll create one list and in that we’re going to add the name icon and all other fields which we want so basically uh first thing I will create a new folder called Services inside the services we’ll create options. jsx file and inside that we say export constant um I will name it as let’s say what name we give for this component assistants so so here we’ll say um experts list we can say okay and inside that I will add the name let’s say um lecture on topic over here I will add the icon related to that one so inside this I already have this uh lecture. PNG so we’ll just name it as a lecture. PNG I will copy this and we’ll add it something like this okay right now for this particular screen If You observe we only want the image and the name right so that’s the reason we added only these two Fields uh then we want let’s say interview or we’ll say mock interview for that one we have this interview. PNG file then question answer prep over here say we’ll say qa. PNG and then we have the another one I think called languages here we say language.png you can name whatever you want and then last we’ll say meditation to focus on the study so here we’ll say mediation PNG and then save it now make sure to export this particular list so that you can use it so once you uh add added this all the options simply go to our app folder and inside our dashboard component where we have this feature assistant list right here we are going to just display that so I will add one du inside this du uh we’ll add an uh let me I forgot okay it’s a expert list do map and here we’ll say expert we’ll say just option comma index and the arrow function inside this we’ll add one more View and then oh sorry uh the D we want to add and inside that we’ll add an image The Source tag and inside this image we want to add option do icon okay here inside the alt tag I will give the option do name as a alt tag then inside the width you can just mention the width let’s say 150 height to 150 and then inside the class name you can actually mention the height so let’s say 70 pixel and width to 70 pixel now this width and height is used to optimize our uh images okay now let’s save this one and let’s go back to our application and over here now we’ll display the images and boom if you see we have all the images right also this particular error which you saw we got it because we need to provide the key as a index and then save now after this uh we also want to show the uh name or text whatever we give so here we’ll say option do name and save it and once we add that one you will see the name for each of these options perfect now we want this in the form of grid so for this du we’ll add a class name and we’ll make this as a grid Now by default we can show a three column and when screen size is larger we’ll say grid column 5 on extra large maybe we can say grid column 6 and save and now you will see everything will will be in the form of grid see perfect now obviously we want to add some style to this one first thing for this de I will add a class name we’ll give a padding to three and we’ll give a background color to a secondary also we’ll make rounded corner to let’s say uh 3 XL um we’ll make this Flex Flex column and justify in the center and also make item to in the center so everything will be in the center something like this say now let’s give some Gap as well so over here for this actually uh D we need to give Gap let’s say Gap to 10 perfect and uh let’s give margin from the top so over here we say margin top to 10 uh for now let’s make this F and let’s see how it looks I think five is also much better okay one more important thing um I think for now I think that’s good uh if you want to change the this text you can uh change the size and all here I will add just margin top to two and then save it and most important thing if you try to go to the inspect panel and change the size you will see the change now on the smaller screen I think it’s uh better if I go to the this mobile view this is how it look likees right instead of making three you can just mark this as a two okay so that will be good one perfect now next thing we want to add is this particular section okay so again we have to add uh two section for that one so I what I will do I will go to the page. jsx and just below to that I will add a du and inside this du first we want to add a component called uh lectures or we say history history. jsx we’ll add a default template and we’ll add another component called feedback do jsx now both the component I’m going to add over here first we have the uh history and then we have the feedback component now for this du we’ll add a class name and we’ll make this as a grid and make grid column one when the screen size is smaller and grid column two when the screen size is medium or larger and then I will give the Gap to 10 as well and now if I go back to this page you will see the history and feedback let’s give margin top so over here I will just add margin top to 10 then then uh we are I’m just going to Simply add this particular text and also we’ll increase this margin top to let’s say 20 now inside the history we’ll say the text called your previous lectures your previous lectures over here we’ll add a class name we’ll make font bold text large same uh I will copy the same h2 tag I will just make sure that it’s displaying correctly I think we can increase this size let’s say Excel and then copy this oop sorry copy this and go to the feedback same thing I’m going to add inside the feedback and here we’ll say um feedback as a text only and save it now under the history I’m uh obviously we don’t have anything so I will just add a text a simple text okay obviously we going to update that here we say you don’t have any previous lectures and inside the class name we’ll say text Gray to let’s say 400 same thing I’m going to add over here and here we say you don’t have any previous interview feedback and save it and let’s go back and here we have perfect so that’s how our dashboard is now ready only thing that I’m concerned the space from we gave from the top so basically inside the P um not here but inside the layout we give margin top to 12 over here I will just make to let’s say 140 I don’t know uh let’s make it 11 14 only margin top to 14 and I think that will be good one I think that’s good okay so that’s how guys you need to uh add the dashboard simple we don’t have any logic return just we uh display the images now one last important thing that we want to do is to add some animation to this particular cards so whenever we we h on this one we want to move this um images little bit so it’s quite easy simply go to our feature assistant component and for this image we’ll say onover I just want to rotate this image let’s say 12° okay also we’ll add a cursor pointer so here we’ll say cursor pointer and then save now if I on this one you’ll see this beautiful moment right and that’s the reason we added this now for the smooth animation you can also mention transition all and that once you add this particular um tell CSS class this it’s very smooth see now from the previous okay also if you want to when you reload your application we want to show this uh cards with some kind of animation and for that to Shad CN animation uh you can go to this magic ui. design go to the components here you will see a different different uh components for the card I will definitely prefer this FL blur fade okay and if you see if I refresh this is how it will look like okay very easy to install first just copy this npm command execute inside your vs code inside the terminal I will just paste that and then just go to the code and here we have the example how to use it you just need to wrap your component inside this BL fed and then you need to provide the delay let me show you how so I will copy this and then okay so over here I think we need to I need to pass with the pseudo okay because in my Mac OS is little secured it will not give you permission easily and in meantime I will just wrap this particular uh view inside this blur fade now make sure to close this tag as well uh I think this particular tag perfect and uh over here we’ll say a key let’s say key as option dot uh icon over here this is the delay okay so depends on the index it will show and I think that’s pretty good let’s save this one and let’s teste this out so let’s go back now to our application also I just um is that you need to import this blur Fed so make sure to import this blur fade from this magic UI import statement and then save it now if I go back and refresh this screen and if I reload this now you will see how beautiful the animated right boom so that’s how you can add the animation you can explore the more animation inside this one we will use some of them so that our application look more interactive and once you add the animation it will give a different effect to your application as well now when user click on any of this option we want to open a dialogue and on that dialogue we are going to accept the topic name on which user want to uh put a conversation and the different tutorial guide so in this case if you see we have three guides in this mockup and that kind of way that that we want to show it on this dialogue now if I go back to our application right we have this five different kind of Agents we can say and on the click of any of them you want to open dialogue obviously we are not going to create a different dialogue for each of them but rather we will create only one dialogue and on the click of that one that will open that particular dialogue and only thing that um the information depend on which U agent user selected that information we want to pass to that d so let’s go back to our application and very first thing that we need to do we’ll create a new component and we’ll call it as a user in input dialog. jsx let’s add a default template now in order to add a dialogue uh I’m going to use a Shaden dialogue component so go to the Shaden and search for this dialogue component it’s very easy uh if I click on this one this is how the dialog will open first thing you need to install this dialog component so inside the new terminal I will just add this dialog component and once it is installed in the meantime we can copy this import statement and then we’ll also copy this example and we’ll paste it here and save it now if you see this is the dialog trigger it’s nothing but on the click of this open Button this dialogue will open but we want to open the dialogue on the click of these particular options so simply you can accept the children and pass the children inside this dialog trigger now I will go to this our feature assistant one more thing that I updated this name to coaching options okay so over here we have the pre different name but I just updated doesn’t matter actually that much but just I rename that particular list now simply I’m going to our wrap this inside our user input dialogue okay something like this so now what will happen this will be our children for this user input dialogue and along with this one we I’m also going to pass the some data so here we’ll say uh coaching option is equal to and then selected option and here I will accept that okay and save it now if I go back I will just make sure to refresh this once and if I open any of them let’s open this one you will see that I have this uh dialogue open right but there is some style change as well so let’s fix that one so I will just do one thing I will just copy this over here and I will remove this all the class name let’s see how it

    looks I’m not sure but still we want to give this in the center of the screen so let’s keep this yes we don’t need to give the padding okay I’m just updating the style uh nothing else and I think y that’s pretty cool perfect next thing uh after this let’s go to this user input dialogue and for the dialog title I’m going to show the from the coaching option do name that’s what we give right so if I click on this question answer you will see it sh question answer if I select mock interview it will show the mock interview and so on now let’s go back and here inside this dialogue description I’m going to Simply add a du and inside this du tag We’ll add a text we’ll say enter a topic to master your skills in and you can give the this uh name okay so and save it now if I go back if I click on this one you will see it’s saying enter topic to master your skill here we have the error which is the hydration error so either you can just add it as a as child to this one and hopefully the error will come if I select this one if you see the error is no longer uh present now I will just give margin top as well so for maybe you can give it to this D okay so margin top to three and then we want to add a text area so from the shat CN we have the text area component just uh make sure to install so I will just copy this component and over here I will paste it so it will get install and after this S2 tag We’ll add this text area component in inside that we’ll add a placeholder and we’ll say enter your topic here if I go back now you will see the text area perfect just I will give little bit margin top to two and uh for this h2 tag I will make a text is of black color perfect now next thing we wanted to show the teachers or the expert name right the guide so for that one I’m going to add I will copy the similar S2 tag I will paste it here uh I will add some margin top to five and then we want to show that all the options so I will add that option inside our service folder inside this options and here we say export constant coaching expert is equal to and inside this um we’ll add a name now name is nothing but the name of the person obviously but this name we also going to use to give the voice okay and for that one we are going to use Amazon poly which is a uh text to speech AI generator that we going to learn it later on in the this course but for now make sure you will keep the same name okay and I’m also going to show you how to get all of this name as well then for outar I will say we give the name as a T1 dot I think it’s a jpj so I already added that images inside our public folder oh so it’s avif that’s interesting and I will paste this couple of times the second name I will give is as a Sally and Matthew and this is T3 it’s a JPEG and save it now this particular uh option we wanted to show so we’ll say coaching expert. map we say expert comma index and the arrow function inside the that we’ll add a text sorry sorry uh not text here we will add an image tag and inside that we’ll add a source The Source will be expert. AAR here we’ll add Al tag as expert. name and then we’ll give width let’s say 100 height 200 now if I go back to our application you will see this options perfect also uh I will make sure to wrap this in a du for this du We’ll add a key as a index and then we’ll add an H2 tag with a name now for with this de We’ll add a grid and we’ll make grid column three when the screen size is smaller and on on medium or larger we’ll say G column five also we’ll give cap to let’s say six and this how it look like perfect um after this for this image We’ll add a class name we make a rounded let’s say 2 XEL and save this one let’s give height proper height so we’ll say 80 pixel width to 80 pixel and we’ll say object cover so it will not break and if you see this is how it will look like uh for this particular de we’ll give some margin top to three some space perfect now let’s make sure to Center this particular text so we say text in the center now whenever we h on this one we want to give some kind of uh Zoom effect right so basically either you can provide some border okay when user select that particular item so onover I will just scale this to 105 and for smooth animation we’ll say transition all and if i h on this one so this is how it looks okay and once you selected we want to show a border so in order to save the selection we say constant selected expert comma set selected expert is equal to use State okay and on the click of that one obviously we want to show Alo forgot to add the cursor pointer so whenever you hover on this one you will see this cursor pointer um here we will add on click event and when it’s selected so we’ll say set selected expert will be the expert. name because we are just saving the name of the selected expert after this uh we can add a border so we can add a class name make sure uh you’ll add the curly braces because we want to add depends on the condition right so here we’ll say condition if selected expert is equal to equal to expert. name then we we I put and and operation and then we want add a border uh I think just add a border okay let’s say border two uh also outside of this one will give a padding to one and for I will also make the rounded corner and save it and let’s see how it looks so if I open any of this one if I select this you will see this border and the selected one perfect right instead of I think uh let’s let’s remove this uh this styling and we’ll apply to the image only okay so we want don’t want this to the de so basically I will wrap in a curly Braes with this tag sorry quot and then this condition I’m going to write over here and I will remove from this one okay and save it now if I select this one the border is visible but very small and either we need to give a padding so here we’ll just save border but let’s add a padding to one perfect and now if I see if I select this one it’s showing the selected one perfect you can even change the color border color so here is we’ll say border primary I think that’s much better see perfect right and then at the bottom we want to add two buttons so maybe oh sorry after this du we’ll add one more du here we’ll say button and we’ll say cancel and we have another button and here we’ll say next now this cancel button we put a variant as ghost and for this du We’ll add a flex gap of five and justify to end and this will be look like this at the right hand side perfect uh I will also give margin top to five perfect and this is how our dialogue simple and cling is ready now make sure when user enter the topic we need to save it in one state so we’ll Define a state set constant topic comma set topic is equal to use State and when user enter value inside the text area we need to add onchange method which will emit the event e and here we’ll say set topic with the event. target. value and then save it perfect right now if I open this one whenever you enter any topic select this and then click next now you also make to you have to make sure that whenever you enter the topic value and selected the option then only you need to enable this next button so basically here you can add a condition it will be disabled if uh topic or you can add something like this if topic and and or if topic is not there Q or we’ll say or the expert name is not there so here we say selected expert is not there then disable it if I open this one right now it’s disabled I will enter some topic and and select this value and boom now it’s enabled perfect right and if I remove the topic it will again disable it also on the click of this cancel we want to close the dialogue so simply uh we have one uh component here we have dialog close but make sure it’s importing from this component UI dialog and then wrap your button inside this dialog close also don’t forgot to mention it as a child save this one and if I go back to our application if I click cancel see it’s closing right but obviously once you enter the data select this and the next it’s not uh closing it because on the click of next we want to save the user information like which top user selected which agent or that particular is selected like in this case I select the mock interview you we enter some topic then user will select this um some expert and this information we need to save I just figured out we keep this same name over here so we’ll update this name sorry this particular label so let’s go to this dialogue and over here we’ll say select your coaching expert so that yeah now it’s perfect now to save this information we need to have the table into our database so simply go to the schema. JS file which is inside this convex uh folder and in here we’ll create a new uh table we’ll call it as a dis discussion room okay and we’ll say Define table inside here you can provide the column name so First Column I will name it as coaching option or coaching type you can say here we’ll say V do string because it is of type string string then the topic name again it is of type string then the expert name you can mention as type string and uh we are going to save the conversation between this expert and the user right so conversation now this will be an optional field so I will put an optional and it is of type any because we are going to save a Json data into this conversation column now as soon as you save this this one right inside this um convex you will see the discussion room table is get created now let’s create a new function called discussion room and whatever the um functions related to a discuss room which we are going to write like mutation query we keep inside the same folder now inside this we’ll say export constant create cre new room and this will be the mutation so we’ll write mutation first we’ll get the arguments so I will simply copy this because all of this we want except the conversation so I will remove this then we say Handler async CTX comma arguments and the arror function here we say constant result is equal to await CTX do TB do insert and here you need to provide a table name which is discussion room and then provide all the field so first let’s say you want to save this coaching option so we’ll say coaching option do is sry coaching option then the value will be arguments dot I think we forgot to import this V make sure to pass this and then we’ll get the coaching option same thing you want to say topic so we’ll say V sorry arguments do topic and then expert name as arguments dot expert name okay so these three fields which we are adding and once we get the uh when once we inserted the record successfully we’ll get the result which is nothing but the inserted record ID so here we say return the result okay now this return return is very important because once we get the ID with that ID we need to uh pass inside the uh route okay because we are creating Dynamic route later on but make sure to return the result now simply go to this user input dialogue and here we’ll Define this mutation here we say create uh discussion room is equal to use mutation and here we provide API do discussion room do create new room and then we’ll create a new method called constant on click next because that a next button and then over here we say constant result is equal to await create discussion room and inside this we need to pass a topic name which we already have then you want to pass a coaching option that we can get it from the coaching option do name because we are just saving the name and then expert name so expert name again uh which is nothing but the selected expert so from this state and then here we mark it as a sync okay now this on click next I’m going to attach to our button so here we say on click and just call this button right also when uh the data get inserting right we’ll add a loading State and which will be the false initially and when uh you click on this next button we’ll set the loading as a true and once it finished we’ll set the loading as a false now also make sure whenever there is a loading is true right we can show the indicator loading indicator so over here I will add a condition if loading is true then I’m going to show a loader icon and I will just add some animation to this so we’ll say animate spin also I will disable this button whenever the loading is true okay so user will not click multiple times and I think that’s all we needed I will just console the result as well and then save it now if I go back to our application I will just refresh this once and let’s say you want to do some lecture on your topic so I open this and give the topic name so here we’ll say uh I want to learn react CHS basic okay then you can select the coaching expert okay let’s select Matthew and then I will also open the inspect panel so we can observe the result and click next Once you click next right now we get an error it’s saying uh are you running the npx convex de so I’m not sure whether we are running or not so I think we are running okay okay so I think we forgot to save this particular uh screen if you see we have this dot it means we did not save we forgot to save and now if you see uh I think it look like data inserted or not sure let’s let’s try it again so I will open this we say uh basic react JS you want to learn select it and then click next and boom if you see inside the console we got the ID now this ID is nothing but the record which we inserted and it has generated this unique ID if you see we have this coaching option obviously conversation is empty the expert name topic and the creation time all the details are now are now saved to our tables perfect right so that’s what we wanted now as soon as this ID generated we want to navigate to the new screen and on that one user can start learning from our AI voice agent let’s understand the workflow of our application now very first thing we need to do is to connect to the server and very first thing that we need to um get access to the microphone now once you open our application we have to make sure we will allow you uh the microphone access so that we can talk it and then the next step is whatever you talk we need to convert that into a text and for that one we are going to use an assembly AI which is the sponsor of this video now this assembly AI has a feature called streaming speech to text which will uh give us a text in a real time so as soon as you start speaking you you will get the text immediately without any lag and that’s the reason we are going to use the assembly Ai and once we uh get the microphone access then also we are going to start the session uh in assembly and that also we are going to learn next next step is uh to get an answer from the AI model once user ask any question once we have the text we will pass that text to the um gini or any a model obviously we going to pass the prompt and I’m going to tell you that how we can connect to the different uh AI model like Gemini open AI chat gpts dips CLA and many others and that is completely for a free and once we have that model ready and set up we’ll get the answer from the AI model and once we have that answer in the form of text we going to convert that into a speech and for that one we again we are going to use an AWS Amazon poly Amazon poly is a AWS service which will convert your text to speech and again it’s also free once we have this ready then we’re going to play that uh audio uh to the user and that’s how all the AI voice agent works and this is the simplest workflow that I I gave it to you obviously while implementing this I’m going to uh or we are going to follow step-by-step process and each time I’m going to inform you how and where and at what step we are on so that you will understand step by step process to implement it and integrate all of these AI models now once we added the all this information to our database we need to close this dialogue and we want to navigate to the new screen so we want to create a new route and this is our new screen will look like if user select any of these options right it will navigate to this new route and over here we have option uh you will see this image which uh you will feel like okay you are talking with some uh assistant or some agent uh at the right hand side this will be actually our um chart section okay so as soon as you start speaking you will see the chart between you and uh the assistant so you don’t need to type anything but you can see in a real time and then we have this Connect Now button which will connect to the server it allow you to talk um it will also enable the microphones and everything okay so we need to create this route as well uh first thing inside this user input dialogue we have to make sure uh once we save this information we need to close the dialogue and for that one we can programmatically close this dialogue so first we’ll say open dialog comma and we’ll Define this state actually is equal to use State and initially I will make this false now once uh user successfully uh let me click this down when user successfully save the information information we’ll simply say set open dialogue to false okay and for this dialogue we’ll say open as open dialogue okay and then it also have another method called on open change and here we’ll pass set open dialog okay and then save it also I will make sure everything is good over here and Let’s test this out now if I go back and I will just refresh this once and when you open any of this one and add some topic react I want interview on the react just um you can select the any coaching expert and click next and boom obviously it is inserted to our uh table as well okay so that’s how it works now as soon as it gets saved we want to navigate to the new route so let’s create a new route first so inside this main folder I’m going to create a new folder called discussion room and inside this discussion room we are going to create a dynamic route okay and this will be like the room ID okay now this room ID might be different every time okay I make sure this room ID we need to create inside the discussion room okay and then we have this room ID and then we pass the page. jsx file add a default template here we will say discussion room as the uh component or page name and then save it and let me show you how it works so over here if I go to the discussion room/ one then it will navigate to that particular page and if you see the text showing discussion room now on this particular URL you can pass any IDE it doesn’t matter because it’s a dynamic one and that’s the reason whenever you want to create any Dynamic route make sure to give the folder name with a square okay and then you have to pass this room ID which we pass inside the URL now in order to get this room ID you just need to write constant then the name of this particular uh folder is equal to use params okay so this use par hook we are going to use I will make this component on the client side okay and then save it now I will just console this room ID so that you can check whether it’s a correct or not now inside this inspect panel and if I go to the console you will see this ID see and this one and this one perfect but what we want to do um when we create a new record we want to navigate with that particular ID so so basically from this user input dialogue we want to navigate right so as soon as you uh click on next simply or here we’ll say we want to navigate so we need to add a router first so we’ll Define a router is equal to use router from the next SL navigation and simply I’m going to say router. push and give the path name so in this case is discussion room slash and the ID now this ID is nothing but the ID which you get it from this result so that result I will pass okay and then save it and let’s test this out now I will say lecture on topic here we’ll say I want to learn on um history of India okay and you can select any coaching expert say next and boom over here you will see our path along with the ID this is the record ID obviously we have getting from that from the convex and then we jump on this home screen obviously this is the discussion rooms home screen okay so that’s how guys you need to Route it now on this screen as per the design we need to create it and one more important thing if You observe we have the header you don’t need to add a header because we are already in uh using the dashboard layout file okay now for this one first if you see whatever we select that name we are showing so same thing I’m going to add but before that with the help of this room ID we need to get the record information from the database so I will go to this uh discussion room. convex file and here we write new function to get the uh room details okay or the discussion room details or record details you can say so here we say constant get discussion room and the arrow function like this oh sorry not Arrow function as this is the just a query so we’ll pass a query and inside the query we’ll accept the arguments and the argument will be the just ID and here we’ll say V do ID but you have to tell from which column so that column name is nothing but the discussion room I just copy this and paste it here um then we’ll add an Handler async and the aror function okay so here we say constant result is equal to await CTX okay so we need to add CT comma DB sorry arguments and here we say CTX do D.G because we already have the ID so you don’t need to give any table or anything okay just um inside here you need to add the ID something like this argument data ID and conx automatically detect where you are fetching from because we already mentioned this uh ID from which table right and that’s all you need to do once we have the return a result just return the result and then save it as simple as that now inside the page. jsx you have two option that you can fit it either you can uh use the Ed convex hook or you can use the Ed query hook I’m going to Simply uh let’s use the use qu hook so simply here we say constant uh get we say uh discussion room is equal to discuss room data we’ll say is equal to um use Query and then API sorry API dot discussion room. get discussion room and here we need to pass an argument so in this case the ID we need to pass and we already have the room ID so let’s pass that room ID and let’s console this discussion room data and then save it now if I go back to our application go to the inspect panel just to verify whether we got the data or not okay and Let me refresh this screen once and I don’t know whether we got it okay yeah if you see we got the data so which has the coaching option expert name topic name perfect now with the help of this information obviously this information we already have now right but uh from this information we uh or from the expert name we need to get the information so if I go to our options right and if I if I passing this John so I need also I want to fetch out right so that information will get it so simply we’ll say constant or let’s do one thing um okay let’s add a constant uh expert is equal to and over here we’ll say discussion room data okay not discussion room but we’ll say options let me see the field name coaching expert actually so from the coaching expert make sure to import dot find and here we’ll say item then item dot name is matches with the discussion room data sorry this data dot uh expert name and that expert we are going to fet I will just make sure and console whether we are getting or not and we’ll save it and if I refresh this so it’s saying the expert name is undefined because it takes some time to fade the data say right so another option is obviously you need to add that inside the use effect okay and then call this only when the discretion room data is available so here I can add a condition if discussion room data is available then only call it and here we’ll pass the inside this use effect okay so whenever the discuss room data is updated it will execute this line of code and then that expert information need to save so we’ll say constant expert comma set expert is equal to use state so make sure it’s a use State and then we’ll set the expert as a expert perfect and then save it now if I go back and refresh the screen you will see now we got the data with outar and the name now let’s go over here let’s add h2 tag and I want to give the name from the description room data so here we say discussion room data dot um is a coaching option right so that’s what we gave the name let me check and if you see the lecture on topic let’s apply some font to this one so here we say style oh sorry not style the class name and here we say text large font bow then we’ll add a du inside the D we’ll add two more du and we’ll give a class name margin top to five and in this first du we’re going to show um let me show you the mockup so this particular section and on the right the chart section okay so over here first let’s show the image and that image we will f it from the expert do um outar here we’ll say outar only the width let’s add 200 for now height to 200 I will just make sure it’s displaying on the screen so right now we have an error okay so make sure it’s an optional field oh not optional but it’s we will add this uh operator optional operator okay so we have an error expert is not defined obviously because it start with a small e and we have this image beautiful obviously uh I’m going to add a class name we’ll say uh height to 80 pixel and width to 80 pixel and also we’ll make rounded full full okay and uh for the image we’ll say object cover and save it perfect now let’s divide this particular du um this complete de right because we have we need to make two column so here I will add a grid when the screen size is smaller we’ll make grid column two and when the screen size is larger we make grid column uh four okay out of these four column I’m going to assign three column colum to this one so this need to be a column span three and one column to this one only when the screen size is larger and let’s give the Gap so we’ll say Gap to 10 okay and if I go over here obviously you will not see any change but uh later on you will see this then uh for this particular du uh we’ll add some sty uh tail CSS class so over here I will provide some height let’s say 60 pixel uh then I will add a background color to let’s say secondary and also add border we’ll make rounded to 4 4XL and I will make it Flex Flex column item to be in the center and justify in the center and then it’s waiting oh that’s weird this this is not I expected but let’s see why it’s happening okay so this need to be a column span three okay we gave the incorrect name and now we have the width but somehow the height did not okay so instead of 60 pixel we need vertical height 60 vertical height so that’s what we need to mention and boom so this is how it will look like perfect right uh then after that um I’m going to add the text below to this one so we’ll say S2 tag and inside this uh we’ll just add expert. name okay and save it so now we have the name for this one so you will get to know who you are talking with okay and uh let’s add a class name we’ll make text Gray let’s say 500 okay and save it now for this image we can add one animate uh pulse effect okay so you will see once we add the pulse effect it will glow and hide it something like this right it will give you the something like talking calling effect on the right hand side we want to show your uh profile image something like this see so that what we are going to show so simply over here I will add a d and inside this du We’ll add a user button okay and for this du we’ll add a class name uh first I will add a padding let’s add padding to five okay then we’ll add a background gray color let’s add background okay let’s add background gray to 200 okay then we’ll make ping X to 10 and we’ll make rounded large and save it see but we want on the right hand side right so make this as absolute and we will say bottom to 10 and right to 10 and oh so if you see it’s going to this screen right side but we want over here so simply uh for this particular du you can mark it as a relative and then it bounds the boundary kind of thing right and it will be inside this one now perfect next on the right hand side we need to show a chart box so basically similar de I will just copy over here and I’m going to paste something like this okay the height 60 vertical is fine everything is fine and just write a chart section inside the S2 tag and if I go over here okay it’s coming to the bottom that’s the reason is we have this columns span I will remove that that and then on the right hand side we have this chart section as well okay beautiful but it’s quite small right so what you can do you can just change this column span to two and here I will make this three so now this one is quite bigger I think this is much better now now below to this one we are going to add one button which will connect which will have the text called connect Okay so let’s go over here okay I think we need to wrap this in a one de okay something like this and make sure this particular option you’ll add to this particular D so that in another du I can add a button and we’ll just say connect here we’ll give class name margin top to five we’ll make Flex then item to be in the center justify contain in center and then save it and here we have the button okay now obviously this button help us to connect to the server and then you can start the conversation uh over here I’m going to write one message just below the chart section so again same thing I’m going to add over here I will wrap this in another de and then over here we’ll add h2 tag and we’ll simply say uh at the end of your converation we will automatically generate feedback slash on notes from your conversation okay so what we are going to do we are going to generate the feedback note depends on on the user conversation that also we are going to learn okay so in obviously inside the workflow I did not mention that one but this is very important part as well let’s save it and this is how it will look like I will just add some style so here I will add a class name margin top to five I will make text Gray let’s if uh 400 and uh we’ll make text smaller and this how it will look like I think that’s much better also over here we have lot of space so I will also fix this simply uh for this parent de you can add a class name give margin top to let’s say 12 and once you add the margin it will go into the negative margin right and that’s how you need to add inside the telin CSS I think and now if you see the margin is gone I think this is much better so everything will be in the same screen you don’t need to scroll it now it’s time to enable the microphone and this is the first thing that we want to implement I’m going to make your life easier because I’m going to provide this source code uh so that you can enable the microphone and it’s quite straightforward so first let’s copy this from this documentation I will keep the link in the description and when we click connect uh that time we need to call so here we say constant connect to server I will say and the arrow function like this and simply paste this line of code uh obviously there are lot of spaces so I will just remove this all the spaces and then save it now this particular connect to server method we need to call when we user click on this connect button so here we say on click and then call this connect to server also we have to make sure whenever we do the click connect we need to show a disconnect button to disconnect from the microphone as well or from the server as well so I’m going to create one state we’ll say constant enable uh microne I we say enable recording okay so enable mic or we say set enable mic is equal to use State and initially it will be false now whenever the set mic is false then we are going to show this connect button so here will say say uh enable mic if it’s false so I will make this as opposite then show the connect button otherwise we’ll add another button we’ll say disconnect and for this button I’m going to add a variant as destructive so let me get this variant name so this is the destructive I will just paste it here and then close it so obviously uh we’ll call a new method to disconnect here we’ll say uh dis connect okay and this disconnect method I’m going to write over here perfect and uh let’s save this one now over here we use this record RTC from the browser method okay so we have to import this This Record RTC first so from this package uh you can just search on Google record RTC you will find this package copy that and then paste it here so inside the browser I will just add this record RTC oh I need to add with the sud sudo and then once it is installed you can easily import that so now if you see it’s importing from this record RTC uh I will just also comment this one because we don’t have this transcript rber okay but I think other than that we are good uh at the top make sure to define the recorder okay because this is very important and obviously uh we also need to add let’s do one thing let’s add a constant recorder is equal to use reference and initially it will be nuls make sure to import this use reference as well so that uh we can start we can refer that and we saying just start the recording and once it is finished we’ll say stop the recording as well so inside the disconnect it will accept the event and inside that we’ll say e dot prevent default so this need to be a prevent default and then we’ll see recorder do current dot PA recording okay and then we’ll set the recorder. current to null and also we have to make sure set enable mic to be false okay and once you start connecting we’ll say set enable mic to true and then save it now let’s go back to our application I will just refresh this once also one more thing I forgot um you need to mention this slice timeout so I will at the top I will just say let slice sorry silence timeout this is needed uh to check whether user is silent or not right if user pause it means we have to make sure that now ai need to do his work okay because here user will waiting for the ai’s answer right and that’s the reason we added this um I don’t know why we got this internal server error Let me refresh this again we got this internal server error because we added this record RTC and sometime Nick just first run on server and then we’ll check is it a client or not so to fix this I added this line called constant record RTC and then I’m importing dynamically with this import statement and make sure you can say server sign rendering as a false okay and uh uh inside this connect server we already have have this method I just commented to test this out and I think we are good let’s test this out so if I click now connect and right now if you see it’s saying permission denied right and Mac phone is not allowed now I by means by manually I disable this one but once you enable right I will reload our application and then if I click connect you will see that the microphone is enabled right and it’s saying using now it means whatever we are speaking now it’s getting started now to test this out I will just console this buffer so that you will get to know whether we are recording or not now if I click connect you will see it start recording perfect so as soon as I start speaking it will change this value as well when I click disconnect it will just pause the recording and now it will not record anymore okay so that’s how you need to uh connect the microphone and enable it and depends on the requirement you can connect and disconnect the call now the next step is to convert our speech to a text and for that one we are going to use an assembly AI where we are going to stream the speech in a real time to a text so it will be very useful so that whatever the text we are going to get it from this assembly AI we are going to pass to the AI model so simply go to this assembly ai.com or click uh the link in the description so you’ll jump on specific page the assembly is a platform where you can convert speech to text also it provide a product called streaming to spee to text that what we are going to use uh in real time it going to happen so as as soon as you start speaking you will see uh it will display the text on the screen also it provide a lot of other different features which you can taste power frame they have the playground where you can taste these features uh you can try out and definitely asmbly AI is one of my favorite um platform because I already use asmbly a in my one of the previous video now simply create a new account if you don’t have and log to this account on the home screen you will see the code example if you want to do the uh transcribe your first audio file to to the text and there are lot of other model now we want to deal with this transcript live audio stream that’s what we are looking so very first thing we need to do is to install this assembly AI so I will copy this assembly AI statement and inside our terminal I will just make sure to install that once it install uh this is the code that you can use it but we are going to write in a little bit different way which is comp completely comp able to the react and nijs also let me walk through this assembly AI dashboard so whenever you uh make a call to this assembly AI API you will see this usage over here uh along with how much did it cost and everything you will also get $50 of credit uh once you join it okay then you will find all all all of these analytics uh depends on how much you use then inside this account section you’ll you will find all the red part in the building section you have option to add a funds um you’ll see this all the pricing um the most important and most interesting thing that you can set the alert so right now if you see I just set alert to $1 and whenever the $1 reach I I will get notification that okay you are about to reach $1 then we can take an action accordingly inside this API key you’ll find this API key just copy this API key which we want later on in this project and then in the documentation you’ll jump onto this assembly AI API documentation which help us to integrate with any kind of uh application or any kind of platform with an assembly AI now first thing uh I’m going to copy this API key because we want that okay so just copy this go back to your project and inside your do local file I will just paste it here okay so let’s paste assembly API key is equal to and paste this key and simply save it I will close all of this tab for now now once you install the assembly AI let’s go to the discussion room page. jsx file and here I’m going to define the we’ll say real time transcriber is equal to use reference and initially I will set this as a null now inside this connect to server over here we’ll initialize this uh assembly AI first okay now inside this assembly AI we’ll say realtime transcriber do current is equal to new real time transcriber okay and inside this one you need to provide the token now we need to generate the token every time whenever uh you your session is started you have to make sure every time you will generate new token which will help us to avoid unauthenticated uh API call to this uh assembly a okay and then we also need to provide a sample rate now the REM recommendation from the assembly AI the sample rate need to be 16,000 something like this you need to provide and here we need to generate the token okay okay so once you generate the token then it will get initialized automatically now in order to generate this token you need to generate on the server side so for that one inside this app folder I’m going to create a new folder called API and inside this API folder we are going to create a new uh folder again called um let’s say get token okay and then we’ll say route. jsx now this is the end point that API endpoint or API we are going to create called get token and in that one we are going to uh write or we are going to call assembly AI to get the temporary token so it’s quite simple we’ll say export uh con sorry export async function as this is a get request so we’ll say get request and then we’ll say constant token is equal to await here we’ll say uh assembly is okay let me Define this first okay so over here we say constant assembly is equal to say assembly AI uh is equal to new assembly AI make sure to import that one and here inside that you need to provide the API key which we already have from process. EnV and from this environment variable we’ll copy this assembly API key and we’ll paste it here and then once we have this assembly AI we’ll say assembly AI do real time. create temporary token and you can even uh mention the expiration of this temporary token let’s say um 6 Minute 5 6 minutes something like that I think okay and just mention once you get the token you just return that token so we say next response do Json and then pass this token okay and then save it so that’s how you can create the API endpoint now once you have this API endpoint ready uh simply go back to your to this page.js and here we’ll say await oh so over here uh we need to call this HTTP endpoint to get the token so what I will do uh inside our service folder let’s go to the services folder and we’ll create uh one file and we’ll say uh Global Services dot jsx okay we’ll add a default template and we’ll write this method over here to make an uh sorry we don’t need a default but we’ll just add that something like this and uh to make an HTTP call to this particular API endpoint we need an exos exos is the HTTP uh client Library so just install that first so you just need to add npmi exos and it will install the exos for you once it is installed we’ll write a method called export constant get token and arror function over here we’ll say constant result is equal to await exos doget and then give the end point which is API SL uh get token okay and we’ll make this as a sync and once we have the result we’ll say return result. data and inside this result. data we have the token let’s save this one and simply call this so we’ll say get sorry await first await get token and if you see it is importing this get token um from our Global Services okay so that’s how uh you can generate the token and then you can use it now every whenever you start the session it will generate the new token for you now write some uh uh shocket function or from the assembly so it’s like realtime transcriber do current. On and Here the name is so I will just copy this name from here if you see uh uh let’s go to this stream typescript and this is the transcript okay so we’ll copy we’ll paste it here we’ll say async transcript okay and the aror function now inside this one um you will get the transcript so I will just console this transcript for now and we’ll tast this out okay and over here don’t forget to connect that so here we say await realtime transcriber do current do connect so it has a Connect method which will connect to the asembly AI okay and then save it also when you disconnect it it’s very important that you you also disconnect from this assembly AI so we’ll say realtime transcript do current do close something like this okay and then Simply Save it let make this as a sync and save now we’ll test this uh until this point and we’ll check whether we are getting any data from AI uh assembly or assembly AI so let’s refresh uh we’ll connect this and uh let’s talk something okay I’m not sure whether something is happening or not just we are getting this whatever you talk right that buffer we are getting right now we are not getting anything right so what we are missing that whenever you speak right you need to pass that buffer or because whatever we we are getting from the mic to this socket so this is the socket nothing but uh uh this transcript when you pass that it will detect that the change and then it will consolid now obviously first we’ll say if realtime transcriber do current is true or not okay and then uh over here we’ll we need to send this buffer so we’ll simply say realtime transcriber do current do send audio and that audio file we are going to send we’ll say buffer so whatever we have inside the buffer that is nothing but the encoded uh audio okay whatever we speak and that we are passing now let’s save this one and then let’s test this out so I will refresh the screen once go to the inspect panel and console and let’s start now we say connect now once you connected uh we’ll see whether we are getting any data or not and right now if you see we got some data and beautiful right let’s stop it and once we stop obviously it will stop but over here you will find we uh inside the transcript we got different type of data okay obviously over here you will see whatever we talk that coming inside the text but it’s called a partial transcriptor but once you find ize then we’ll also have the message type called final transcript which contain your complete message now partial transcript is helpful when you want to show in a real time and final transcript is helpful when you want a complete uh text once us are pause for few millisecond or second then this final transcript will get execute right now until this point simple thing that we are able to uh get the data inside the transcript only thing that we need to to uh show it on the screen right as soon as we start talking so over here what we can do um let’s say so we’ll write a logic in order to update the real uh state in real time so you can define a uh over here we say let text and curly braces okay and also I’m going to Define constant real time text comma send Real Time text or we can say uh transcribe actually here we say set transcribe is equal to use State okay now inside this transcript we’ll simply get the text first okay so I think it’s name this two let’s make it text now in in order to show the real time right we’ll say text TT inside that we’ll say a transcript dot let me see what we get yeah transcript dot audio start okay obviously this particular field you will find over here see audio start okay and then we are going to show a transcript dot uh text because we are getting that text then we’ll say constant Keys is equal to object do keys and then we’ll pass a text into that one okay after this we’ll say keys do sort and we are just shorting depends on the time right because we have the already saved and then last we’ll save for constant key of keys and arrow function here we say if takes of key if it’s there then we’ll simply say message obviously we’ll Define a message in a moment and then we’ll save in that one okay so we’ll just add text of key okay and obviously uh every time whenever this particular transcript execute right we’ll Define a message over here and once we have all of this message then simply we are going to save in a state so here we have already Define the state called set transcribe and then we’ll add the message to that one okay now for now okay we are going to show the transcript maybe uh after this du we can add let’s add a du again and inside do we can show this transcrip and then save it now Let’s test this out I’m not sure whether it will work or not but now what you need to do let’s connect again and once it connected obviously it will take some time we need to add a loading function for that one and we’ll see whether it’s working or not right now um I think something is missed so we have an error so it’s saying Keys is not defined okay let’s fix that one so maybe somewhere we use incorrect variable name oh okay so over here it need to be a keys okay we gave the incorrect one so let’s connect again uh you will see that as soon as I talk speaking you will see in a real time we are getting the uh text printing on the screen how cool right so that’s how uh this assembly AI give you the speech to text in a um real time so that’s how easy it is right we did not add a lot of code just you need to make sure uh once we get the data from this uh transcript right we need to add it in proper way so that we can just display it on the screen and here we have the result obviously uh over here I’m going to update little bit so we will see um u in proper way but inside the chart section we need to save the final script okay we don’t want a partial script some return something like this so to do that uh inside the transcript over here okay maybe uh we can add after this we’ll say if transcript okay let me first disconnect this because otherwise it will get all my text so I will disconnect this and make sure to refresh now inside the transcript we will say transcript do message type is equal to equal to and if you go okay I just refresh that’s fine it has a um field name called final I me the message type has a two type of script one is the final and one is the uh partial okay we want the final script and then once we have the final script we’ll Define in a or we’ll push it inside this list so we’ll say Conversation Set conversation is equal to use state and it will be the list and once we have the final script we’ll just push that so we’ll say set conversation here we’ll add the previous one and we’ll say dot dot dot previous value along with the new value now here I will add a role as a user because when users speak then we are adding that right and here we add a content with the transcript sorry uh transcript. t text okay so what we are doing whatever the final transcript we are getting we are just pushing it with the role as a user and inside the content we uh add whatever the text we are getting from the assembly AI as simple as that and then save it now we have this conversation right uh State now only thing that we need to do once we get this result we need to display it in the form of chart as simple as that and once we have uh the user conversation then we’ll move to this next thing that to get the answer from the AI prompt now moving to the next section which is uh getting the response from the AI model as we already have the text which uh user speak and we converted to a text by using the assembly Ai and then that text we are going to pass to the AI model now in this case you can use any AI model like Gemini open AI D CLA and any other I’m going to tell you how to get all of this API for free also uh inside our option. jsx where we have this coaching option and we added the name and icon along with that one I added this prompt field now I’m going to share this particular file with you so that you can use this prompt in each of this prompt we pass this user topic right and obviously we are going to replace this user topic string with the actual user topic which user enter I will just rename this fi name okay so I will make sure it’s in the small case and then save it now I will close this all of this file and inside this services in Global Services we are going to create a new um method we say constant uh we’ll say AI model and the arrow function now inside this we’ll write a logic to get the data from the AI model and for that one we are going to use an open router. a open router contains a lot of different AI model which you can use it for free they also have paid um uh API available but it’s up to you which one do you want to use you can even try by going to this chart and you can teste this out completely for free now if I go to this model section here you will find a bunch of different model which you can use it now if you want to use any free model here you will see uh the model for for example this gamma 31b is completely free that we can use it or you can just filter filter this out with this free model and here you will see that we have the dips um the Google Gemini and there are lot of other right so you can use whatever whichever you want now simply uh make sure to sign up with this your account and then select the model which you want to use let’s say for example I want to use this Gemini Pro 2.0 experimental select this model here you will see all the information okay then inside this API section you need to create an API key okay just click on this create API key and you will jump on this API key you have option to create a new API key I already created for uh VI agent so I will just copy this one but you can create that’s completely for free then select the typescript and this is the simple code example that you can use it directly inside your application but if you want to use any third party um hdk that also you can use it so I will click on this framework documentation and it will jump on me to use this open asdk and that’s what we are going to use okay so uh basically what I’m going to do um I will copy first obviously make sure to install this open so let’s copy this uh inside the terminal make sure to install and once it install make sure to import this open a so over here I will import that and then I will just copy everything as it is so let’s copy this open initialization first so we’ll copy this uh I will put just above this so it will initialize we don’t want this default header so I will remove this we want to replace this with an actual API key so I will just copy this environment variable which I kept inside this. loal file and then simply I will say process. EnV and this key once you open is initialized let’s go back to the documentation and this is the simplest code which you can use it okay let’s copy this console log as well to verify that we are getting the data let make this as a a sync and over here you need to provide the model which you want to use now we’ll go back to this previous screen and you will see this model name over here just copy this model name and over here just wanted to show you that this is completely free okay so you don’t need to pay anything you don’t need to add any card detail just uh use it now once you add this gini AI model inside this messages you have option to pass the role okay now to this AI model we are getting we are going to accept two main FS one is the user topic okay whatever the topic user selected and other is the uh I think that we can call it as a instruction we say uh coaching option user selected option okay that option we are going to get it so if user select this one then that option will get it uh I think that’s all we needed for now okay over here here I will just commment this code because from this coaching option we need to get the prompt so here we say constant um here we say option is equal to we say coaching option I don’t know what we call okay coaching options so here we say coaching options. find and here we’ll say item if item dot name is matches with the coaching option name okay so whatever the coaching option name you pass if that matches then we have this option and then once we have that we have this prompt right and uh we can just get that prompt using option. prompt okay now to this one we need to replace this particular keyword called user input and we need to replace with the actual topic so here I will say replace this user uh topic string with an actual topic which user entered okay so this topic we have and then once we have this final prompt I will just uncomment this here I’m going to add one more uh message will say assistant okay or you can add a system we’ll say assistant and then inside the content you can pass this prompt okay so what it will do every time when you send a request it will make sure this is the prompt that you are passing so that uh from next time it will give you the uh answers related to that particular uh promp okay so that that’s the reason we added also we need to accept one more fill call message so whatever the message you just send that message we are going to pass over here and then save it now this is the simplest way that we are doing but later on we are going to update this message field in order to get an uh quite accurate data if you are talking with the AI voice agent for 10 minutes right so obviously we need to pass an all the history so that depends on that one he will send you the relevant data now once you are done with this one let’s save it and then I will save this file as well and go back to your component called discussion page right over here inside this final script once we have the final script we need to call that AI model to get the answer so here we’ll say uh calling AI text model to get response so we’ll say constant result or we’ll say uh AI response is equal to await AI model and make sure to import that one and here we need to pass the three field first is the topic so obviously from our discussion data you’ll get the topic dot topic we have then uh from the discussion room data so we say disc room data dot um the coaching option which we selected and the last the message now the message is nothing but the one which you are getting from this one right so we have this transcript. text something like this okay I will just bring this down and then we’ll say console. log AI response and then save it now in the browser you will see you might get this error called Dangerous allow browser because we use the open AI directly on the client side so basically what you can do either you can create a write the method in on the server side by creating the API or other option is just um over here just pass this dangerous allow to True okay and then save it and now if I refresh you might not get any error also when we click connect right we want to show the loading so that we can just disable the button and we can show that that particular page is get load sorry we are going to connect it so what we can do we can just create a loading state is equal to use State and initially I will make this as a false and when user click on this connect to server we’ll set the loading as a true and once it’s connected successful so after this one we can set the loading as a false and for this button where we have this connect button right over here I’m going to show a loader icon so first I will add loading condition if loading is true then we can add a loader icon and in order to spin it I will add animates pin animation okay and then save it same thing you can do it for the disconnect as well whenever user click on disconnect we’ll set the loading as a false sorry uh true and when it’s disconnected successfully we’ll set the loading as a false and and that also we can show the same thing so I will just copy this and then we’ll paste it here okay but make sure whenever the loading is true you can disable this button okay so we’ll say disable whenever the loading is true so user will not click on this button again and again now let’s test this out I will open the inspect panel and the console we can observe the result now when I click connect you will see it’s showing the loading and button is disabled and now I can able to speak hey bro how are you hey hi there and wow so if you see we have this role and it’s saying some message and we got the response perfect uh I think I’m talk lot so that’s the reason it’s not giving immediately answer but let’s try to disconnect and try it again if you see we got the response as well but obviously when I want to explain then it will be little difficult to get the answer immediately because I’m talking some random things right let’s try it and I will just talk with him him okay just observe hi Jonah how are you can you tell me little more about India and H and its culture now I’m disconnecting this one and if you see we got the response here we have lot of other things see I asked about the Indian culture and it’s saying let’s explore the Fantastic culture of India and there are lot of other things pretty cool right so that’s how we can get it but if you see we have very long response and we have to minimize this response obviously in order to do that you need to update our prompt and that’s very important okay because many guys think about why we are not getting exact response and many other things but to update this particular prompt is very very important so that you can get an exact answer okay so either you can just put it put this in a chat GPT tell him that okay we want to update this prompt in a specific format and then you can up update it but don’t worry I’m going to update it for you and then you can use it directly so boom I updated this prompt but it’s quite similar but here I added that uh the answer need to Wi 12 character only okay now once you mention this one this is very important uh Thing Once you mention it so that from next time it will not give you the big answer and you don’t need to wait for a long time if you see it’s very big answer actually okay here we have see okay and we don’t want this big answer because it’s a conversation between uh the AI assistant and us right so that’s the reason and uh obviously now you can try this and then you will find out obviously you can test our demo of this application I will put the link in the description so you can just just check it out and then you’ll get the idea how it works now once we get the answer we need to save it in our conversation list because we already have this conversation and we are saving the user but now we also want to save the uh AI response okay so simply I’m going to add a set conversation after uh getting this AI response and here we’ll say previous one dot dot dot previous one comma the AI response now I keep I’m just adding this AI response as it is because we are getting the similar structure what we are using so if I go to this this one so we are getting the role as a assistant if it’s from Ai and we are getting the content as well and that’s what we wanted and that’s why I’m directly saving inside this conversation okay and then save it now we need to show this all the conversation inside our chart box so that’s what now we are going to display uh whatever the conversation we are going to make whenever you just speak that uh conver that text also going to display inside the chat section if the AI or assistant give the reply that reply also we are going to show so for uh designing the chat box this is how uh it will look like we have the user added message means whatever user speak that going to add and the the response from the AI as well okay so it’s not that much difficult so let’s go back to our application and we already have this chat box section right so this particular so basically I’m going to create a component inside this discussion room so we add a or maybe let’s create inside this let me go to this room ID and inside that we’ll create underscore components folder inside this we’ll add CH box. jsx file add a default template and then I will just cut everything from here and then we’ll paste it inside this chat box over here I will just import the chart box component and uh I think we need to add a du so let’s wrap this in one de something like this and then save both the things make sure that on the UI side nothing will get changed okay so I will just refresh this once and everything will be as it is beautiful um then to this chart box component we want to send a conversation right so I will pass this conversation state which we have and for now as a default one right just for testing purpose I’m going to add two messages one from the user let’s say AI for example or sorry it should be assistant and then the content we’ll say hi then I will also add another one with the role user and then the content is hello okay now this is I’m just adding so that we can display it and then we can design according to our

    requirement so here make sure to accept the conversation and now we need to uh iterate this list of conversation in order to display it so I will add one D inside this du We’ll add a conversation so here we’ll say conversation do map we’ll say item comma index and the Arrow function let’s add a du and inside this du I will add an H2 tag and then we’ll say item do content and save it now if I go to this chat box you will see that we have this High and Hello currently it’s showing in the center of the screen so basically you need to remove this item Center justify Center okay and then save it and if you see now it’s showing on the left side corner if you want you can just uh change this rounded to little bit smaller something like this I think that’s will be good uh also I’m going to add some padding let’s say padding to four and I will just change this style little bit okay now next thing if the message is from AI we want to show it on the left side otherwise we want to show it on the right side so to add that we need to add a condition so inside here we say if item do roll is equal to equal to assistant right then we’ll say let’s add a S2 tag with item. content obviously we need to add a style to this one otherwise let’s add another S2 tag uh if the user is user role is uh sorry the item role is user so it will show this h2 tag now for this AI S2 tag we say class name uh we’ll add padding to one padding X to two we’ll change the background color to primary and then make the text white okay here I will make the uh inline block okay that is important and if you want you can add the rounded uh Corner let’s say medium for now and then save it let’s see how it looks and if you see this is the message will look like beautiful same thing you need to do so I will just copy everything as it is for this S2 tag right but instead of background primary I’m going to add a background gray let’s say 200 and text I will make I will keep it as a black only okay and we want inline block and rounded MD but it’s just showing below to this message but we don’t don’t want that one also we want some margin top to one so for both of them I will give margin top to one and over here I will mark it as a flex and then we’ll say justify end okay I think you don’t need to Mark flex but let’s say justify in and that’s nothing is happen actually so we need to apply that style to this de let’s add a class name and I will add a conditional over here okay so first we’ll make it Flex then in dollar sign We’ll add a condition if item do R is equal to equal to user then I will make this justify end okay so we want on the right hand side so that’s how it looks on hello here we have the high perfect right so that’s how you can add it now obviously once you start entering them or adding the message it will just display over here now if you have more than let’s say 10 message 20 message right you need to have a scroller over here so that user you can able to scroll it properly so basically for this particular du or maybe for this de only okay uh let’s remove this do and just keep the top du and to this du we’ll say overflow Auto okay and then save it and I think that will be okay now once you start speaking you will see the message will appear over here and let’s test this out also uh inside the Global Services we did not return this message so make sure uh from this a model we will return the response okay so that we’ll get it uh on the UI side obviously inside the page. jsx once we have the response we are adding to this set coners so that it will displayed inside our chat box as well and if you see I added some uh questions and some answer and it’s starting adding inside our chart box as well pretty cool right also it’s showing all of this information uh the user obviously the a which one is from a assistant which is from the U and everything cool obviously uh you can add some more styling to this one so if I go to the chat bo uh chart board I will add some more P margin top okay also um I think that’s all we need it if you want you can change the size font size but I will keep as it is that’s I think better one and uh that’s all now another thing if you see this scroll bar right if you want to keep the scroll bar then you can keep it but if you want to hide this scroll bar you can also hide it so for that one you have to say you just search on Google uh tell says no scroll bar in M package now in TSS you cannot hide the scroll bar directly so we have to use this third party Library uh make sure to install this one so I will just add that and with this with the help of this Library first thing um you need to add this TN SC height but the thing is we don’t have that file okay so I don’t know whether this will work or not but let’s directly add okay so if you see we have this t for CSS support that’s pretty cool so I will just um use this scroll bar hide and let’s see whether it’s working or not if it’s not then we will leave it as it is but if I say scroll bar hide I don’t think so it works okay but anyway uh maybe let’s refresh this maybe after refresh it might work okay if not work then you can just leave it it’s not big deal now one last important thing that the thing which we want to do uh to This Global API service we are just passing one single message right but instead of that one we can pass the last two to three message maybe okay or you can pass complete conversation to this particular AI model okay so it’s quite simple inside this page. jsx currently you’re passing this uh text right instead of that one I will pass pass the conversation and let’s try to pass last two messages so what we can do just before this one I will uh just get the last two message so here we say last two uh message I will say is equal to conversation dot slice and we’ll say minus two okay so it will give you the last two result and then once we have that one we can just pass over here okay like this now inside your am model here we have this uh we say last to conversation I will just rename this one okay and I’m going to pass that over here so I will just remove this and we say dot dot sorry dot dot dot and this one so what will it will do it will dest structurize your list and it will be something like this okay it will add to this messages only and then save it so um I made one quick fix uh I paused the video and I made that fix so inside this connect server right we uh just after inside this final script we are making an AI model call right I move this AI model call to the inside the US effect okay so I added this fet data as a one assing function and inside that I’m calling it the reason is um whenever the conversation change I am executing this use effect but I also made make sure the last message is uh and or added by the user and then only I’m making the AI model call okay that is necessary because whenever um the conversation uh State change we need to make sure we are updating the list okay so make sure to uh add this particular fix this is very very important now it’s time to convert our text to speech and for that one we are going going to use AWS Amazon poly as we completed all of these STS one by one and this is one of the last ST which we need to convert the text to speech so simply search on Google Amazon poly and uh it’s free to use so you don’t need to pay any anything for this one just go to that one and here you will find all the details about this Amazon poly it has a real life vies customizable output and there are lot of other feature this Amazon poly will uh provide you now simple sign into your account and then over here or you can search on the search bar let’s say Amazon poly okay now once you are in this Amazon poly uh you can even play around it you can test a different different engines uh if you have standard then make sure to select the specific voice we have a lot of specific voice as well and simply click listen my name is you can test different different uh engines along with the different voices along with the different languages as well pretty cool right now the thing is how to enable this now first thing uh you need uh Amazon poly SDK so here we will say just search on Google Amazon poly SDK or just type npm as well so over here we’ll say oh sorry I think I forgot to add WS poly npm and then open this first npm package which is this aw SDK client poly copy this go back to your project and just execute over here now once you install this inside our global Service we are going to create a new method so over here maybe after this we’ll say constant convert text to speech and the arrow function like this obviously it will accept a text which you want to convert right and here this will be an async then we’ll say constant poly client is equal to new poly Cent and make sure to import this from this AWS hdk client poly then inside this we need to provide a region now which region you want to use that region you can provide so that region name you can find it uh to your Amazon so right now if you see we have this Us East one which I selected but you can select anything let’s say if you want to select Mumbai you have to type AP uh South one okay so like that then after that you need to provide the credentials now inside the credential first we have this access key ID which you want to add and another is uh security access key now both the key we need to generate and get it from the AWS so in order to generate it go to your accounts and click on this SEC security credential inside here you will see the users right now I already have this voice agent created before as well but you can create a new one so click on create user and give the user name so here we’ll say uh AI coaching uh voice agent or we can say whatever you want then click next and make sure to select this attach policy directly over here search for AWS poly so over here if you type poly you will see this Amazon poly access just click on that and click next after this just review all the changes because this is required and then click create user once the user is created then you have the access then simply go to this AI voice agent here you have option called security credentials and you can create this access key okay uh if you scroll down you have multiple option but we need to create an access key so we’ll create access key over here you need to click on this application running outside AWS right because we are running outside AWS click next and then you can just add the tag value whatever you want want it’s not mandatory I believe but you can now create access key and boom if you see now we have this access key that I’m going to use I will copy that go to your environment file and then over here I will paste it so we’ll say next underscore public underscore AWS access key ID is equal to and paste this key then we want one more which is nextore public uh AWS secret key and that will paste it here okay so you can just copy this and then paste it here save it so that uh now once you save it uh just click done okay and you can even download it but make sure that you will copy this otherwise you will not get it get it okay you have to create it everything again uh so once you create that’s all you need to do and then your Amazon PO is now enabled inside the AWS now just use that so here we’ll say process do environment Dot and I will copy this access key ID and the secret key ID as well so we’ll say process. EnV and this key and and then save it okay I will just make sure to export this so we can use it later on now once your poly client is initialize here we say constant command is equal to new and we have synthesis speech command okay it is importing from this hdk client poly make sure to import that and to this one you need to provide a text now whatever the text we are passing to this one this text you need to add then you can provide the output format it has the different output format but we want the MP3 so we’ll select MP3 and then a voice ID now this voice ID we have a lot of other see right but obviously depends on this option because we are already passing that option that option uh like uh the name expert name we give right so I will accept the expert name as as well and then we’ll pass it here after this uh inside the try catch block uh we’ll say constant we will we need to generate the audio stream so we’ll say audio stream is equal to await poly client. send and this particular configuration we need to send to the poly client hdk once we send it we will get the audio stream and that audio stream we need to convert into a buffer so we’ll say constant audio array buffer is equal to await audio stream so we see audio stream so this need to be an capital A actually okay so I will just use this one audio stream dot transform bite to sorry transform to bite array so here we say trans transform to bite array okay something like this and once you done this one convert this into a blob so here we say audio blob is equal to new blob and inside that we’ll say audio array buffer make sure to wrap this and here we’ll say of type in to add audio SL MP3 okay and once we have audio block we’ll make sure to convert into a URL which you can play so here we will add URL do create object sorry create object URL and then pass this audio block then inside the return we’ll say audio URL as simple as that if you get any error so inside the console I will D I will just pass uh console the error okay so that is the complete uh logic in order to generate the text to speech now let’s save this one and inside the page. jsx once you have the response ready we are going to generate that okay so over here we’ll say um constant uh audio we’ll say just URL for now a wait and we’ll paste this not paste but what is the name we give convert text to speech so here we’ll say convert text to speech now whatever the AI response we are getting and from that one we will get the content comma um we also need to pass the name of the experts so that we are getting from the discussion room data so over here we’ll say discuss room data do expert name okay and once we have that I will just console the log with a URL okay now this URL obviously this is audio URL we need to save in one state so here we’ll say audio URL comma set audio URL is equal to use State and at the bottom so inside the use effect we’ll set the audio URL to URL as simple as that and then save it okay now now let’s test this out I will go back to our application I will make sure it’s completely new okay let me go to the existing one also one more thing uh we we have this inside the global Service we added this audio stream this n Tu capital A with the audio with the audio string okay so this is important because we are just whatever the value we are getting from this poly client s we are D structur structur it and we are getting this this audio stream so make sure that uh now I will open the inspect panel inside the console we’ll check whether we are getting the URL or not so let’s connect it and let’s talk hey hi I am tube gurji so right now it look like um the value which we pass right it’s not correct the Sally is not correct let’s pass some other name okay so let’s see because we have couple of name right that we can use it uh let me go back and select the other one so I will go to this previous one let’s go to the dashboard and we’ll create a completely new it look like Sally is not working uh so let’s select this topic based lecture here we’ll say I want to learn react native basic and we’ll select the J okay and click next and let’s connect now and then we’ll speak hi Janna how are you and over here you will see we got this URL perfect right once we get this URL we need to uh play that audio URL inside the audio tag as we are we are already saving that URL inside this audio URL state so simply uh maybe after this image tag after this expert name I’m going to add an audio tag over here we’ll provide a source The Source will be audio URL just close this tag over here I’m also going to provide a type uh I will just say audio MP3 and uh make sure to do the auto play okay so as soon as the audio URL is ready it will play automatically you don’t need to do anything let’s save this and let’s restart again and in this case now you’ll see once we start talking okay it will also give give us the response in a voice and that’s what uh this all about so let’s save this one I will just open the console in case we see any error hi Jonah how are you I’m doing great thanks how about you ready to dive into some react native Basics yes for sure awesome let’s start with what react native is it’s a framework for building mobile apps using JavaScript and react excited yes quite excited great to hear do you have any specific topics in mind like components or navigation can you tell me how to create the react application sure to create a react native app use the commanda set it up no um I have to go okay bye no problem have a great day feel free to out have more questions bye and that’s how cool it is right instantly within a second you are getting the answer from the AI and everything we are going we already connected together all the pieces first we connected the microphone then we convert that speech to text with the help of assembly AI then we C the response from the AI model and then we convert the text to speech and then we are playing that one and again the last step repeat obviously that is already happening how cool right and everything we implemented for free so guys that’s how um it works now you have one task right now if you see as soon as we talk we are showing that over here right either you can style this as depends on your requirement or you can add some text box so that it will get added to that text box and then once you stop it will get sent it’s up to you how you want it okay but uh I will leave up to you okay so until this point if you have any question any doubt let me know in the comment section ask the question on my Discord Channel because there are lot of things that we are going to implement again now it’s time to save the user conversation with an AI into our database if you know that we already have this column conversation inside the discussion room and in that one we want to save all of this conversation so in order to do that we just need to Simply uh write a function and then we need to save it so let’s go back to our convex and inside the convex we already have this discussion room inside that we are going to write a new function to update it so we’ll say export constant update um conversation and is equal to mutation now obviously this is a update so obviously it’s come under mutation and arguments we are going to pass or we are going to get the user record ID okay so here we’ll say ID uh V do ID and then we just want to pass the table name which is discussion room after this we also need to get the conversation whatever the conversation we want to save and which is of type A any so we’ll say V do any then let’s define the Handler and make sure you’ll get this idea and conversation when you are passing now inside the Handler we’ll say async uh CTX comma arguments so args and arrow function over here we can directly Define a wa CTX do db. patch now patch is used in convex to update the record here you need to pass the ID of the record which you want to update so here we say arguments. ID and then the field which you want to update so in this case we’ll say conversation and simply We’ll add argument. conversation and that’s all that’s how easy you can do this update uh the record functionality using the conve now simply go back to our uh discussion room page. jsx and here we’ll Define the mutation so we’ll say constant update conversation is equal to use mutation and give the API endpoint so API do discuss room do update conversation now this update conversation we need to call so let’s go back and whenever user disconnect the uh conversation or then then only we are going to call so here we’ll say await um the update conversation and inside that we need to provide the arguments so ID now ID is nothing but from we can get it from the discussion room data doore ID and then the conversation which we already have the state called conversation and that’s how easy you can do it and that’s all about the updating the conversation now let’s test this out so simply we’ll uh we’ll connect with connect cre and then we’ll uh add some conversation and once we add right and if you see right now I added some of the conversation now I will disconnect it right and as soon as I disconnect it will also save to our database so after disconnecting let’s go to the um discuss u in our convex and inside the convex if you see we have the user conversation if I open you will see the content the role depends on whether it’s a user or assistant all the conversation now we saved to our discussion room conversation column that’s how you can do it guys um if you have any question in it this application will not only help you to convers uh put a conversation between you and air Voice Assistant but it also give you the feedback or notes depends on the choice now once you click on disconnect uh you have option to generate the feedback or notes depends on whether you are you are giving interview question answer or topic based leure okay once you click on the feedback then we are going to send all the conversation to the AI model along with the some prompt and same thing we are going to do for the notes once you send this conversation to the AI model it will get the response and it will generate the feedback and notes and then that feedback and notes we are going to save to our database later on on the dashboard user can access the conversation and the notes or feedback any time how cool right so that’s what we are going to see next so very first thing that we need to do uh let’s go back and inside this option. jsx I added this summary prompt and uh for the topic based lecture uh learn language and meditation added same kind of summary prompt okay it will just say I generate notes depend on the conversation okay but for the mock interview and question answer it will generate the feedback along with the various the Improvement space okay and that’s all obviously if needed we can uh redefine this prompt okay so to get an exact output from the AI model now once we have this summary prompt simply go to the AI model so sorry go to our Global Services and inside that we already have this uh AI model right but uh we can actually use the same model as well okay because uh we need to pass a topic we need to pass a coaching option and from that one once we get the option we can just get the prompt which we want okay but it’s always better uh we can keep this uh separately so I will just copy this and let me paste just below to this one and it will say AI model to generate feedback and notes okay so obviously in this case you can pass the topic if you want uh it’s completely optional okay so the topic is not that much required okay so I will just remove that topic and uh coaching option is required and the conversation so here we’ll say conversation now first obviously we need to get the option okay so depends on the name right we will get the option once we have the option we’ll get the prompt so over here we want summary prompt and you don’t need to pass any topic then uh this will be same as it is uh you need to pass prompt and then uh conversation okay maybe you can just move this something like this and let’s see whether it’s okay or not I’m not sure exactly whether it’s working or not but let’s try this out and then once it is ready let’s go to our page. jsx file and uh once you click disconnect right because uh here we can um set one state let’s say constant enable feedback note comma set enable feedback notes is equal to use State initially it will be false and once it disconnect then we’ll set this enable feedback nodes to True okay now at the bottom over here maybe I think we need to add that inside the chat box that’s where we have uh we need to add the button right so over here I will add that enable feedback notes option we copy this so that we can accept that inside the chat box and we can just hide this uh we will enable this when it’s a false okay and then we will add a button to generate it so over here we’ll say button and close this now inside that we’ll say generate uh feedback SL notes okay and then save it now inside this this actually we can write okay instead of going back so over here we say constant generate feedback notes and inside here uh we need to call this method on the click of this one so here we say on click and simply call this method next uh from our global Service we need to call this method so over here we say constant result is equal to await AI model uh generate feedback and notes and to this one we need to pass the coaching option uh I don’t think so we have this coaching option here we will add add it in a moment and that’s all we need it okay uh so let’s get the coaching option so from here we are passing this coaching option from the discussion room data so I will pass that to the Chart box so over here we say coaching option which US are selected so here we are saving at a coaching option only and inside the chat box make sure to accept that so that we can pass and then we also want to pass a conversation which we already have then let make this as a sync and once we have the result we’ll say result dot uh content okay and then save it now here I’m going to define the state so call loading set loading is equal to use State and initially it will be false but once you start generating we’ll set the loading as a true and after finish we’ll set the loading as a false then when the loading is true we can just show show the loader icon so over here we’ll say if loading is true then we’ll show the loader icon something like this then inside the class name we’ll say animate spin so it will give some animation and also I will make sure this button is disabled when the loading is true okay and then save it now if I go back obviously we don’t have any conversation so I will pause the video we’ll make some conversation and then we’ll see whether it’s working or not now over here I had conversation and after disconnecting if you see we have this button generated right obviously we’ll align this button right now it’s not correctly aligned we need to give some margin top and all but when I click generate feedback and notes if you see it start generating feedback and notes and it will take a some few seconds of time but inside the console we also check whether it’s working or not right now um if if you see it it threw an error on line 41 saying last two conversation is not defined so that’s where so if I go to the global Service we forgot to add this conversation over here and that’s the reason we caught that error um I think we need to start again and now again we will try this and once you click on generate feedback and notes we’ll see boom we got the information pretty cool right so it it contains the uh some star it means it’s a bold one and obviously we will convert that into a um specific type when you want display that but right now if you see we have all the information pretty cool right so that’s how you can generate the feedback and notes so in this case this is a question answer so that’s why it generated the feedback but when you are uh selected the lecture then it will generate the notes for you depends on your conversation now once it generate we need to save this into our database right now we don’t have the column to save it so we need to uh either create a new column or you can create a new table in that one also you can save it but rather we can save in same column We’ll add a new column as well so before that let’s align this um button okay so because right now it’s weird so I will go to the chat box and to this button I will add a class name you margin top to 7 oh sorry margin top up to 7 and also we’ll mark withd to be full okay uh next let’s go to the schema file inside the convex in order to add a new column okay so before that okay you can make it optional so inside the description room I will add a new column called summary only okay so and inside the summary we’ll put this as an optional field and then I will put it is of type any or you can put it as a string as well or text and save it uh let’s make it this as a text if we I don’t think so we have the type text inside this um I will put it any only okay that will be good and then save it now over here you will see the new column get added call summary and currently it is unset now obviously let’s go back to the discuss room. jsx inside the convex and here we need to write a method to update the um summary so I will copy the existing method and here we say update summary inside that everything will be good over here I will accept the field as a summary and over here we’ll also update the summary okay so just make these small changes and that’s all you need to do after this let’s go to the chat box and once the it generated first Define this mutation so we’ll say constant o sorry let’s define a constant then update summary I will say is equal to use mutation API do discon room. update summary and then over here we’ll say a wait update summary dot oh sorry uh we need to pass a field we need to pass an ID so if you don’t have an ID we need to get the ID inside the chat box and uh or you can also get the ID directly from this uh discussion room ID okay so this room ID you can get it something like this room ID is equal to use parents okay the similar way we get it from the page.js and once we have that we’ll pass that room ID after this we need to pass a summary and that is nothing but this result. content okay and then save it you can WRA this everything in try catch block okay so we’ll put it inside the try block so if you get any error then it will not stop your application and over here we’ll set the loading as a false and outside of this one as well or maybe inside this we can set loading false okay and then SA save this one uh I think that’s all we need it for now now one more thing uh whenever you save any information you disconnect it or whatever right we need to show some kind of notification so that you will get to know whether the feedback notes generated or not and like that right but before that let’s test this out and right now we already have the information I will again click on this generate feedback notes and we’ll see whether it’s getting saved into our database or not okay now if you see we I generate this feedback and notes inside discretion room boom We inside the summary we have this summary now beautiful right perfect so that’s what we wanted and it means once we generate the feedback and notes we are able to save it successfully now simple thing that we need to show a notification so from the shadan we have a component called sonar this component act like a toast message see so in order to add it just copy this uh npm command then uh you need to add this toaster inside your layout file so over here I need to add a sudo in my case and then I will go to the layout file you can add it inside the root layout and over here you can add toaster from the component U onar and once once you add that go to the chat box and whenever the content is ready you can show the toast message saying um feedback sln notes saved okay and over here if it’s Error we’ll say internal server error try again okay uh so that’s how you need to do it um I think uh when user connected inside the page.js that Al that time also we can show the toast message so basically on connect to server when we click on the connect right so over here we’ll set the we just show the to message saying uh connected and on disconnect I can show toast message disconnected okay and then save it perfect so that’s how we need to do it I will just try this one more time oh so it refresh everything anyway but once you try it now you will see the toast notification okay so that user will get to know whether the feedback is generated or not it’s time to display all the previous history uh in in which obviously whatever the lecture user attend whatever the mock interview attend everything we are going to display on the dashboard and the along with their feedback notes generated by the AI okay so for that one uh we are going to fet the data from the discussion room but we have to make sure we only F the record which is belong to that particular user but unfortunately we are not saving the user information inside this discussion room we need to add a new column called user ID and in that one we need to save uh which user created this particular record so simply uh I will close this tpe for now and let’s go to this convex and schema inside the schema I’m going to uh add a new column over here and we’ll say user ID here uh right now I have to give it as a optional field and we’ll say v. ID but over here you need to give the table name okay and this automatically connect to our user table like this and then save it now as soon as you save uh you will see new column get added to our convex uh discussion room and over here if you see we have this user ID right but right now it’s empty so what I will do I will just copy this user ID and I will paste it uh so that we can tast out so this need to be a string okay uh I think oh that’s correct so this need to be a string so I will paste something like this I added for a couple of uh Records okay now obviously from next time we have to make sure we will save the user ID so we have to make some changes so inside the uh discussion room right here uh when we create a new room we need to accept the user ID which is of type ID but make sure uh that table name we need to give and then simply I’m going to pass that user ID over here so we’ll say arguments. uid now from next time it will save it but when you click on creating this uh discussion room that time also we need to make sure we will pass the user ID so over here we have this user input dialogue and on the click of next we are creating that so make sure to pass this user ID now in order to get the user information you’ll get it from the hook which you are you already created which is user data is equal to use context and user context and from that one from the user data you’ll get the user ID something like this underscore user ID okay and then save it now whenever you create a new room it will automatically save the user ID for us now in order to display the previous lecture and history right or feedback uh this is how we are going to show now you have two option one you can use this existing icon in order to do display or you can add a new abstract images for each of them so in this case I am going to add this abstract image to show it okay so it will give you some different uh if uh look to your dashboard and then uh the topic name the coaching uh option name and then the time when you did uh you attend last time right and uh inside our option. jsx for each of these field sorry this object I added this abstract fi and this ab1 ab2 PNG I have this file I already added inside our public folder something like this okay and that what we are going to use so let’s go back to our uh dashboard and inside that we already have this history. jsx page correct now inside this we need to fetch all the uh option which is belong to that particular user so we need to fetch all this record from the discussion room so we’ll say constant gate uh discussion rooms and the arrow function now inside the discussion room. jss from the convex right uh just make sure you inser inside the convex here um we already have this gate discussion room but it gives by ID we want all the discussion room right so here you need to write a method or you can just copy this existing one and then I will paste it here but over here we’ll say get all discussion room then inside the argument we need to get the user ID so here I will say U ID and and this need to be a users ID okay and uh over here I will just filter that out so instead of get we’ll say DB do query inside that you need to give the table name from which you want know Fage then we’ll say do filter and here you need to write a logic on which column you want to F so here we’ll say q q do fill and inside this we’ll say Q do equal to uh oh sorry I think uh this need to be a first Q do equal to because we need to compare with the two column so we’ll say q. fill and then give the fill name which is the user ID we want to compare with our arguments user ID and if that is match then simply we’ll say dot collect okay it means select all that uh Records which matches this particular condition and once we have the result we simply going to return that and then save it now let’s go back to this history. jsx here as this is a query and we want to fetch depends on the user ID I’m going to define the convex first and we say use convex hook okay along with that one we need a user ID so that you can get it from the user data is equal to use context and here we’ll say user context now inside the use effect we going to call this particular method and we want to execute this use effect only when the user data is available and here we’ll say that’s the reason we are going to add user data is and and gate discussion room it will call this method only when the user data is available and then inside the gate discussion room here we say result is equal to await convex do query and inside this you need to pass the API so which is this um get all discussion room okay and then you need to pass a parameter which is the user ID we need to pass so that you can get it from the user data doore ID as we use AWA let’s make this as a sync and then once we have the result for now we’ll just consol it and we’ll verify whether we are are getting the result or not inside this history component so let’s go back to our application I will go to the inspect panel and inside the console uh obviously we you uh we use this use effect and so I think we need to make this component on the client side so we’ll say use client and if you see over here we got the for record with this coaching option expert name topic and menu other things now simply we want to save this in one state so inside the history I will create a state called constant discussion room list comma set discussion room list is equal to use State okay and then save it now over here we’ll say set discussion room list with an result now next thing if the discussion room list so over here we say if discussion room list. length is equal to equal to zero then we are going to show this h2 tag with this particular text okay and uh if obviously if discussion room is there then we show the discussion room list so over here we’ll add discussion room list do map here we’ll say item comma index and the arrow function like this oops and inside that we’ll add a d now inside the DU I will add one more de and we’ll add a text oh sorry uh the h2 tag with item dot um I just verify the field name so the field name is I want this topic name so we’ll say topic something like this okay after this uh another H tag with the coaching option so we’ll say item do coaching option and then save it now if I go back and obviously on the screen let’s refresh this once you will see we have this list of all the information but also we have to make sure only lectures means topic based lectures learn language and medication uh list or records we are going to display under this previous lecture for mock interview and question answer we are going to show on the feedback side because uh from the previous lecture we are going to show all the notes and for feedback we are going to show the feedback okay so that’s the reason we have uh differentiating that two things uh also for this one we’ll add key as a index and uh as I say right here we’re going to add a condition so simply we’ll say if item dot uh coaching option okay if item. coaching option is equal to equal to um I will just get the exact option name which is topic based lecture or or okay item do coaching option is equal to equal to let’s say learn language then only we want to allow right and medication as well that you can add it here we’ll add and and operator and let let bring this down okay and then save it now if I go back you will see only two records beautiful now for this h2 tag I will say class name font bold and here we will say class name text Gray 400 something like this uh after this as I told you right we also want an image so I will Define one method called constant get uh abstract images is equal to and here I’m going to pass an uh Arrow function and inside this I’m going to pass an option on depends on that one we want it right so here we say constant uh coaching option here we say coaching option is equal to coaching options doind here we’ll say item then item dot name it matches with the option then we are getting this coaching option and then simply we’ll return the coaching option dot uh abstract okay so that abstract image I’m getting now this particular method I’m going to call so over here I will WRA in another du something like this and then over here we’ll add an image tag with a source and inside the source I’m going to call this method then inside the alt tag I’m going to you can say anything let’s say abstract then inside the width let’s say 70 and height is of 70 or let’s make it 54 now and save now if I go back and here okay so we got an error but not sure okay I think yeah we have the error it’s saying coaching option do abstract is undefined okay so maybe what you can do you can add optional field and over here if it’s not there I’m going to add a slab 1.png okay I think that will be good let’s save it and let’s test this out and right now if you see we have this images okay so both are topic based lecture so that’s the reason it uh it has the same image that’s good now let’s add some Styles so here we’ll add a rounded corner with a full and save it let make this 17 let’s see how it looks also for this du I will add a flex gap of 7 and item to be in the center okay obviously uh we need to give height inside this let’s say 70 pixel width of 70 pixel I think that’s too big right let’s make it 50 only perfect now let’s give some margin from the top oh sorry uh so over here for this D only we’ll add a class name margin top to five then we want to add a border at the bottom side only okay so maybe for this do we’ll add a class name we’ll say a border bottom to let’s say 2 pixel and also padding bottom to let’s say three and save it so what it will do it will add the um border only okay I will make this one pixel and also We’ll add margin bottom to let’s say four perfect okay and that’s what we wanted now another important thing when we hover on this one we want to show a button and that button will call view notes so in order to add an H effect to that one we’ll add first we’ll make this as a group okay now inside this D only I’m going to add a button uh we’ll say view notes to this button I will I’m going to add a class U let’s add a variant only so variant I’m going to add as a outline so you will see this outline button but we want on the right hand side so for this de we’ll make a flex justify between and then item to be in the center so it will be on the right hand side but we only want to show when you hover on any of this particular item so basically inside the class name we’ll say invisible okay but on a group H so here we’ll say group however we want to show it so we’ll say visible now right now if you see it’s invisible but if you h on this one it visible now if i h on any of these items is still visible you don’t need to hover on this button only because we already mark this as a group so this will be a one group and even though on a it’s a group hover right even though you hover on any of this item or on this particular group it will uh show this particular button okay uh also make sure I will add this cursor point enter over here and then save it perfect and now you you see the cursor get changed as well same thing you have to implement for the feedback also we are getting uh the same image the reason is uh we we are not passing the option over here so we need to pass uh coach item. coaching option okay to this method so that you’ll get a different result also um from the discussion room you can order by the creation time and right now we are not showing the time when it get created so I will add another S2 tag and inside that we need to add item dot um let’s get the fill name which is the underscore creation time we’ll say underscore creation time and save it so you will see this time but this time is in the form of time stamp we’ll change that in a moment but I will make this gray 400 only and save it now to make this like um 20 minutes ago 30 minutes ago or 24 hours ago you need to add one Library called moment.js so simply just type npmi moment click enter and then it will add the moment.js library which help us to convert any kind of date in a specific format you can just go to this mj.com and here you will find a different different option now if you type this from now it will calculate like this 303 days ago 9 hours ago 29 minutes ago right how cool so that’s how we want to do it so we already have the uh creation time right simply I will add a moment Library make sure to import this and here we’ll say from now and save it once you add that one you will see it’s saying 21 hours ago a day ago something like that now for the order by right because we want this as a first because the latest one we want to show at the top so inside the discussion room when you f the all the discussion room here we have um I think just before that we’ll say order and then you can add order by let say descending okay and let’s save this one and and then if I refresh this screen now you will see now the latest one is on the top also um I will just change the font size for this time so here will say text small perfect now same thing you have to implement to the feedback okay so what I will do I will just copy everything as it is so everything I want to copy okay and then inside our feedback I’m going to paste something like this okay obviously we need to import the all the statement so it will be better if you copy as it is and then save it now over here once you save it uh it’s also showing on this side but we need to change that now little bit name because we copied so here we say um your previous feedbacks or just we will say feedback here as well we need a feedback and but most important the coaching option that we need to update so obviously the coaching option um only when we want to show the name is mock interview and the question answer prep so over here will say mock interview and this side will say question answer prep pration we don’t need third one so I will remove that and everything will be as it is let’s save this one and right now if you see we only one have one uh option which is this react just which is question answer prep and instead of view notes we’ll say view feedback and then save it okay so when I H on this one you will see this button view feedback perfect and that’s how you need to display your previous or history about your lectures about your interviews and everything which you can uh see later on at this point you already build 80% of application so you learn a lot of things and you know now whatever the new feature you want to add you can add yourself if you build until this point and now we are going to add one more feature where when you click on any of these view notes or view feedback option we are going to navigate to the new screen which you already know how to navigate it and on that particular screen um as per this mockup I don’t have the exact design for that one but at the top we are going to show some basic information similar like this one uh and at the bottom side we are going to show a feedback notes so whatever notes we are already saved that note uh notes or feedback we are going to display and on the right hand side we are also going to to add a chart box where um we can show the conversation history okay obviously you cannot talk just a display purpose only and for this chat box we can use the existing chart box okay so we already have the component for that one just we need to add a new component for the feedback and notes now as I say that you already know a lot of things so simply let’s create a new route so inside the main I will add a new folder here we say view um discussion room or we say you we can say view feedback and notes so we’ll say view or we’ll say simply summary that will be easy and inside that we want a dynamic route so we’ll add a room ID again so this need to be actually folders so make sure is a folder so room ID and then I will add a new page. jsx file let’s add a default template here we’ll say view summary and then save it now inside this view summary first thing we need to get a room ID so we’ll say room ID is equal to uh use params so we’ll get the room ID now we need to get the discussion room information from the room ID so here we say get discussion room data I will say and you already have the uh query for that one so I don’t think so we need this particular method okay I think let’s let’s just call constant uh or let’s copy from our discussion room page. jsx because we already have this discussion room data just copy that as it is and then paste it here because we are just passing this room ID as it is and just for your confirmation I will also print this room discussion room data okay now on the click of view data or sorry view feedback or view notes we want to navigate to this particular page so I will go to the dashboard and inside the history. jsx where we have this button right I will just use a link tag so you can use this link tag in order to navigate it’s similar to our anchor tag inside the HTML CSS but it’s optimized one in for a next J so that’s the reason we are going to use over here we’ll say view summary slash and the ID which is uh the ID is just Item doore ID and then save it now if I go back to our application and if I click for example let’s say reactjs view feedback and uh okay I think let’s refresh this on and when we click view feedback I don’t know why it’s not navigating oh so we did not add it for this feedback we just added for this uh lecture so if I click on this it is navigating but obviously we have error in that page so let’s fix that one as well so inside the page we need to mark this as a use client because we are using this room ID right and uh also inside the feedback. jsx I’m going to wrap inside the link tag H reference here we say slash view summary slash the ID which is the item doore ID and the arrow function something like like this and save it okay and now we can test again so if I click view feedback now I don’t know it did not refresh or what and I will also make sure it’s saved I think it’s saved and now if I click view feedback boom it’s navigating to view summary with this ID and if I go to the inspect panel we’ll just make sure we are getting all the data so inside the console here we have object and inside the object we have this coaching option expert name along with this ID conversation and lot of other information beautiful now let’s go to our page. jsx and as I told you right we need to divide into two screen and at the top we want to show um oh let me go back to our markup we want to show this information so let’s add that quickly so first I will add a de and again I will added one more de over here we’ll say image The Source tag and the arrow function and I will go to this feedback where we have this abstract image right I will just copy this and we’ll paste it here because we want to get the abstract image from the coaching option so similar way I’m going to pass the discussion room data dot coaching option so from that one we’ll get the abstract image here we’ll say Al tag as a abstract then we want to show we we will add a width let’s say 100 height to 100 inside the class name we’ll say width to 70 pixel height to 70 pixel I will make this rounded full and save it and if I go back let’s make sure the image is showing beautiful then inside this du tag similar like this history or whatever right I will just copy everything as it is and I will paste it here okay now over here this need to be a discussion room data. topic uh coaching option and the creation time and save it make sure to import this moment library and is refreshing also make sure to add this question mark for that optional operator and if I go back okay we have an error Let me refresh this again and here we have the data beautiful now let’s apply some styling so for this de we’ll add a class name we’ll make it Flex gap of let’s say seven item to be in the center and as I told you right we want this on the right hand side so basically for this h2 tag I will keep uh let’s keep outside of this one or let’s let’s add let’s do one thing I will put outside of this one and then I will wrap again inside one more d and over here I will just keep this size as it is and now for this D as well we make it Flex I will add justify between and uh item at the end okay something like this see perfect I think this is good for me um just one more uh here we’ll make text larger next thing as I told you we want to divide this into two uh columns so basically we’ll add a d and inside this we have the two option one for the chat box and one for the notes and here we’ll add a class name We’ll add a grid grid column one when the screen size is smaller and when the screen size is larger we’ll make grid column uh four okay out of this four column I’m going to assign three column to this particular do so here we’ll say column span 3 and also I’m going to add a gap to five and save it now as you know that we already have the chart boox component so I’m going to use this chart boox component as it is to this chart boox component we need to set a conversation that conversation you can get it from the discussion room. conversation then we also have the coaching option that coaching option you can get it from the discussion room. coaching option and we don’t have the enable feedback notes so here I will make this as a false and then save it and once you save you will see the chart box as well okay so make sure this you are making this feel optional the reason is initially the discuss room data is empty right so that’s the reason you need to mark this as optional operator field with an optional operator field um also over here we have an error it’s saying cannot re property of undying map so let me get back to our inspect panel and inside the console okay maybe we what we can do we can just make sure we want to show this chat box only when we have the data okay so if chatbox do data we’ll say do conversation if it’s there then only show the chat box component and boom here we have and this is our chart box component perfect somehow it’s coming very small uh the reason is we need to put our grid so this is our grid right and uh I think that’s good I don’t know why it’s showing too small okay so here this need to be a column span three okay so maybe that is the reason and instead of that one let’s make it span two only so this will get little more space and I also Mark this column span two now we I think we are good on this part see perfect so this is the conversation uh simply for this da I will Mark margin top to five so some space um now on the left hand side we can show the notes as well so I also modify this grid little bit I made this five and then 32 okay so three size to this first D and other for two now over here we need to create a component for the nodes so simply inside the view summary I will add underscore components folder and inside this we’ll say uh summary box. jsx add a default template and save it and this summary box I’m going to add over here perfect now to this summary box we need to pass the summary okay so here we say summary as from the discussion room data do summary and save it now inside the summary box make sure to accept that as a summary only and save it now here we’ll say h2 tag and simply you can show the summary as well like this and once you add you will see this summary but obviously you need to format this uh perfectly right now it’s completely unformatted so you need to format this now to format this particular text you need to use this react markdown Library okay so which will convert your unformatted U text to a perfect formatted value so simply copy this npm command and then install this okay once you install this you just need to wrap your summary so here we say react markdown make sure to import this react markdown and inside that you need to provide your text which you want to format it and here after refresh it’s refreshing and boom if you see now some of the text are in bold and it’s well formatted but still if you want to add uh little spacing between this line and all simply We’ll add a class name here we’ll say text Medium sorry text base slash you can provide the how much um size you want for example in this case we mark it as a text base sl8 you will see the line spacing the line height is change okay and that’s good also you can uh make this scroll so you don’t need to scroll the complete page so for this du We’ll add a class name here I will add a height of 60 vertical height which is similar to our chart box and then we’ll say overflow Auto okay and then save it now over here if you see you need to scroll it in order to view beautiful right and you don’t need to uh scroll your complete page this will help us to do that uh also I’m going to make one more change inside this page. jsx I will add a class name we’ll say minus margin top to let’s say 10 so it will be little up okay and I think that’s much better perfect over here um you can give some Valu or let’s say h2 tag and here I will say uh summary of your cont conversation I will add a class name font instead of font we’ll say text large let’s say font bold let’s see how it looks perfect okay and where you can scroll it um you can give margin bottom so here we say margin bottom to let’s say six so some space okay and same thing you can do over here on the right hand side so I will copy the same one just I will paste it inside this D tag and here we will say uh your conversation okay and I think that’s all let’s save it and let’s test this out perfect so here we have this conversation we don’t need this particular text okay so so let’s remove this from the chart box because that is not that much relevant okay so I will just let me do this empty I don’t want to show anything so I will just remove that this particular text okay and I think this is pretty much all for this particular text okay so that’s how guys you need to show this view summary as simple as that you it’s not a rocket science but the most interesting thing about this one user can see what answer he gave and what feedback he received inside this summary it is very important in order to build this size application we need to keep track of all the uh conversation and the tokens because we already giving the user some default token when user create the account and when user makes some usage right when user start conversation we need to update the token obviously we need uh so that user can purchase later on if if he needed now in order to update this token we need to count the length of the uh conversation right so if user talk five words then we need to calculate that five words and then we need to update that so simply uh go to this discussion room page. jsx file and that’s where all our logic are right so inside this I’m going to create a new method called constant update user token and the arrow function now in order to update it first we need to write a method to update the token so inside the users uh con uh convex folder right here uh we’ll write a new method we say export constant update user token is equal to mutation and in that one it will get two arguments one is the ID so this ID is nothing but the user ID right and then uh the credits okay the updated credits that we are going to which we have want to update so that is of type number and then we’ll pass the Handler over here we’ll simply say a wait CTX do db. patch and and then we need to pass which uh record you want to update so we’ll say arguments. ID and then the field which you want to update so in this case we’ll say credits with our arguments do credits perfect something like this okay and that’s how you can update it as simple as that now simply at the top we’ll mention that particular um we will update that so here we say update user token is equal to use mutation and then provide the API so API dot users do update user token now make sure to update this particular method so here we say update user token uh we’ll say method only okay and inside that we’ll say constant result is equal to await update user token and inside this we need to provide two important value one is the user ID so that we can get it from the user data doore ID now if you don’t have this user data Define here you can get it from the use context so over here you can Define user data comma set user data is equal to use context and here we’ll say user context now once you define this user data from the user data you’ll get the user ID here I will make this as a sync and then in order to create the credits obviously you have this user data do credits as well but the problem is we need to calculate that first so simply over here we say constant token count is equal to and now this particular method we need to call inside the use effect because use effect executing whenever the conversation changes right so simply at the bottom you can call this method called update user token method and inside this conversation or instead of this conversation right let’s update uh whenever you you generate the final transcript okay so over here you can update it and you just need to send this text and nothing else something like this okay but also uh here I will make this await if needed but also you need to update on uh whenever the AI generate the response so that logic uh inside this uh use effect right so maybe you can say after this conversation and over here we’ll say update token but we just want a generated message so that we can get it from the AI response do content okay so here we’ll update AI generated token and over here we’ll say update user generated token okay so this two method we update and then inside this update user token we’ll get the text and depends on this particular text we’ll say text. trim and of obviously if it’s uh there we say text. trim then we’ll split this and here we’ll say uh this is the rejects okay that we need to follow and Slash and we’ll say dot length so it will calculate the length otherwise it will give zero if the text token count is empty and then once we have some token right so this will be our token so we’ll just minus the token from this one so if user have the some

    credits minus this token now make sure this is a number and I will also make sure this will be also a number okay and then in credits we’ll get the result as a number only and that’s all you need to do also make sure you’ll update our hook so inside the set user data you need to write um let’s say previous and inside this we’ll say all the field from the previous but you need to update the credits field with this value perfect right so make sure to update like this and then save it now what we do from the next time whenever uh you uh start the conversation it will also update your token and that is very very important so here I did some conversation okay and if you see in our database we have this credit updated to 49928 okay depends on how much conversation I did how cool so that’s how you need to do it you can also implement the same thing when you generate the feedback and notes okay so same thing you have to do just call this method when you are disconnecting right we already have this update conversation and uh once you get the result then also you can update it’s up to you so if you have any question any doubt let me know in the comment section you can ask on my Discord Channel as well now it’s time to implement the profile section on the click of profile we are going to show a dialog and on that dialogue we user have option to uh update his account setting usern name as well as he can check the how many credits left and option to upgrade and join the membership as as well through that particular profile section so first thing we going to add the dialogue on the click of this profile so simply we’ll go to the shadan and search for the dialog component as you know that we already installed this component so you don’t need to install it again just copy this import statement also uh we are going to create a new component for that so inside our dashboard component folder I’m going to add profile dialog. jsx we’ll add a default template and then simply whatever the UT statement you copy for the dialogue paste it here same thing I’m going to copy this uh dialogue use case example we’ll paste it here and then save it now we want to open this dialogue on the click of this profile button so simply uh go to the page. jsx that’s where okay so inside this feature assistant uh we have this button right so we’ll just wrap the profile dialogue something like this okay now this will be the children so inside the profile dialogue we’ll accept the children and then we’ll render this children over here make sure to mark this as a child so that you will not get any hydration error now once you save it let’s go back and now on the click of this profile you will see it opens the dialogue pretty cool right so that how it works as simple as that now inside this dialogue description I’m going to create a new component under this component folder under the dashboard called credits. jsx and in that one we are going to show Credit Now this component we are going to just import inside this dialog description so over here we say credits and then save it now if I go back and click profile you will see the text credits only now let’s go to this credits and that’s where we are going to show how many credits left and option to upgrade the credits as well so first I’m going to get the user information so we’ll say user data is equal to use um context andway here we say user context okay and then save it now inside this D first we’ll add uh another div inside this we’ll say image The Source tag and inside the source we want to show a user profile picture so here we will say user dot picture it’s need to be user data actually user data. picture then we’ll give width let’s say 60 and height to 60 now if I save this one make sure the profile picture is displaying on the screen so somehow the profile picture is not f visible I will just make sure the field is correct so right now uh it look like we are not saving the picture so in order to get the user picture you can get it from the uh our authentication hook so which is equal to use user from the stack uh St frame SL stack okay and then you can say user. picture and I will just make sure so we will say user Dot uh profile image URL okay so in order to display the picture you need to add this profile image URL uh now if I go to this profile so right now we are getting this error now this error is stating that you need to add this host name inside your next. config.js file because this is third party URL right and we need to add this host name into that one so simply copy this host name go to the next docon MGS file inside here let’s add images inside the images let’s add a domain and whatever domain you want to Whit list just add this once you add that you need to refresh your application or restart your application and in meantime uh I will also check whether it’s displaying or not and here we have perfect now we’ll just add some styling so over here we’ll add a class name we’ll make rounded full and save it after this uh on the right hand side I want to show user name so over here we’ll say user do um display name then another tag for user. email or primary email now for this S2 tag We’ll add a text larger font bold perfect and let’s bring in one line so um for this one as well I will make a gray color let’s say 500 and uh for this de I will make it Flex gap of five item to be in the center something like this okay then I will put one horizontal line so after this de We’ll add a horizontal line here uh you can add class name margin y to let’s say three so some space then um we’ll add another du tag and it will show the how many token you we we you already use right so um simply uh let’s for now let’s say S2 tag inside that we’ll say token usage and uh I will give a class name font B okay then just below that one we want to show how many token usage let’s say uh 30,000 from the 50,000 you can say anything like this okay and then we want to show a progress bar so right now this is how it look lies but we want to show a progress bar and it will display uh the actual progress so in order to add a progress bar just go to this shadan components and search for this progress component it’s very easy just copy this import statement and make sure to install this uh once you install just use it so over here I will add this progress from the components and to this progress you can Define the value okay so if you see this example you need to Define this value for now let’s say Define a value as 33% completed okay um perfect and save it and if I go back to this profile you will see this one now for this progress bar We’ll add styling We’ll add margin top let’s say margin y to five so some space perfect okay uh next I will just make this four or maybe three and then we want to show the current plan information okay so over here I will add an D tag inside the D we will add h2 tag and inside that we’ll say current Plus plan then we’ll add another h2 tag and we’ll say for example free plan okay and save it right now we are just building UI but we are going to add some condition as well that I’m going to tell you in a moment now over here we’ll say class name font bold then for this do we’ll add a class name we’ll make it Flex then justify between item to be in the center for this S2 tag I’m going to add a class name We’ll add a padding into one then background secondary and also we’ll make rounded corner to let’s say uh large something like this see let’s add padding X2 two perfect uh for this due let’s add margin top to three perfect okay then we want to add one card uh in that one we can show option to upgrade so over here I will add one du inside this du uh let’s add another du with an H2 tag and here we’ll say Pro Plan then we’ll add another h2 tag here we’ll say uh how many tokens you are giving to that Pro Plan so we’ll say 50,000 tokens now over here we’ll make font bold and uh I will make sure to wrap this in One D something like this and then we’ll add another us tag to display the amount okay so here we’ll say $10 per month here I will make this font bold okay now let’s bring everything in one line so here we class name flex and justify bit so this is how it will look like but obviously we need to use some margin top and all so for this one we we will add margin top to five then we’ll add padding to let’s say five and save it perfect let’s add a border as well and we’ll make rounded uh to Excel and then at the bottom we want to add a button so over here uh first We’ll add a horizontal line for this we’ll add margin Y 2 3 and then we’ll add button we’ll say uh upgrade into this button I’m going to add a wallet icon and we’ll say upgrade you can pass the amount as well we say doll10 and then save it and this is how it look likees let’s put the width to be full so for this class um button We’ll add width to full something like this and that’s how our uh token profile uh dialogue is ready okay now the question is how can we show which one is free plan which one is paid and everything if you remember when we create the user information we added this subscription ID if user has a valid subscription ID then we are going to show that user is on a paid um plan and also we are going to show the credits because we already have this credit information as well so from the user data we are going to show the credits how many credits you user left with so over here we’ll just simply going to add a credits sorry user data dot credits and if I save it now you will see the actual user credits so right now it’s not displaying somehow so it need to be a credits with a C Small C and here we have and you can just detect this uh 50,000 from this one okay but before that uh I’m going to now if it’s a free plan then we can show the uh just minimum token right so let’s consider over here we can add a condition if user data dot subscription ID I will just make sure the FI name is correct okay so this is the subscription ID I will just uh okay that’s fine if subscription ID is there right then we can show the text as 50,000 token okay otherwise we can show uh let’s say 5,000 tokens okay and uh after this let’s save this one and then you will see now user only have 5,000 token obviously by default I already have the 50,000 token right but now let’s let add subscription ID let’s say 1 2 3 4 5 as this is a string I will add this and if I refresh it now you will see that token count is to 50,000 good right so that’s how you need to add it uh next thing uh same thing depends on that one we need to calculate the progress so over here I will write a method constant calculate progress I will say and the arrow function now this method I’m going to call over here and it will return a data so first we’ll check if user is free or not so over here we say if user data dot subscription ID if it’s there right then we’ll return the 50,000 minus user data dot uh credits okay so this need to be a number so I will just make sure it’s a number okay and then save it now if I go back and uh I don’t know okay so if you see uh if I refresh this let make sure it’s correct and make sure okay so you have to make sure it you have it need to be between 1 to 100 so you have to divide this by 100 so let’s divide this by 100 so actually here instead of minus let’s do divide this uh number of tokens so we’ll do number of tokens divide by uh maximum token so in this case maximum token will be 50,000 right and then we’ll say into 100 so into 100 let’s say save it and let’s see I think it’s over the our logic I think our logic is incorrect our logic is correct but if you see the percentage is very minimum it’s 99.85% let’s say I will make 40,000 right and enter it then if I refresh this now you will see that change and then you will update this progress to let’s say 80% see okay so this is correct so that’s good and uh obviously once you reach to zero then this progress bar will end to this left side right so nothing you don’t have a token then you need to upgrade it so something like that uh next thing uh over here you need to show paid plan if user already have that subscription ID so over here I can put a logic so you can put this logic I will just copy everything as it is I’ll paste it here and the free plan we can add over here and this will say paid plan okay and if you see oh I think spelling is incorrect so here we say paid plan so you if user is already on paid plan then you will see displayed plan option but if you want to upgrade this plan then after clicking on that one you can navigate to this payment Gateway now for the payment Gateway I already added the Reser pay payment Gateway which is compatible to our Indian currency but you can also add the strappy and for that one you can watch my bill personal AI assistant uh video in that one we already have the dedicated payment uh integration chapter uh you can refer to that one it’s similar uh 99% similar to what we already build it also you can go to the TU guru.com we have this build personal aist application go to that one um you can also get the source code of this one or you can get the source code of this particular application from the tui.com so on that one on the click off upgrade you will navigate to this Reserve pay payment Gateway and then you can easily make a payment I will add the payment integration into this source code so you can get the source code and then you can have the payment integration ready to use now you also need to make sure once you add the payment and you have the subscription ID make sure to update the subscription ID into your user us column as well as you need to update the credits so this two point is very important now let’s consider that you want to show your video on the screen right obviously we need to enable the webcam for that one and that’s what we are going to integrate now now it’s up to you whether you want to display the webcam on this big screen or on this small screen now consider that we want to show this on this smaller screen so first that one the easiest way to do that just uh install this react webcam Library copy this react webcam make sure to install this one and once you install you can simply uh add that so what I will do um right now I’m going to uh commment this out okay for testing purpose and I will add a du inside that we’ll add a webcam like this and then save it now to this webcam I’m going to provide the height and and width so let’s say I provide the height of 1770 width I will give 250 also you can provide the class name and I will make a rounded corner to let’s say 2 XEL and then save it now once we add that let’s go back and here we have we can able to see the webcam cool right now next we want this on the right side corner similar like this one so you can just add the class name we’ll make this absolute the class name to be an absolute then we’ll set a bottom to let’s say uh 10 and right to 10 okay and then save it now it will be on the right hand side at the bottom I think we can decrease this size so I will make this to let’s say 80 and here I will make this 130 some little smaller something like this I think that’s much better okay so that’s how you need to add it uh if you want to add more customization into that one on the click of that you want to see the bigger image that also you can do it it’s up to you how you want to do it okay for now I will keep it simple but uh if you want to know how to do it let me know in the comment section and we can do it in the source code now it’s time to deploy our application to a production so I added this land Landing screen Simple and Clean if you want to get this Landing screen you can access it from the source code it is included in the source code as well also there are some features that are also available in inside the source code if you want it you can access that one now first thing that we are going to do is to push all our code to the GitHub and then we are going to connect GitHub to a worel because worel is the cloud platform to host your site for a free so let’s go to GitHub first and we’ll create a new report here I will give the name as AI coaching voice agent then you can keep the public or private it’s up to you and then create the repo once the repo is created you can set the origin to this repo so I will copy this and simply go to your terminal here I will first initialize the git once it is initialized set the remote origin then run G add command so all your files are get stage then give the commit message we’ll say initial commit and then simply push this change but if you are pushing this first time then make sure to push with this command and then once the code is pushed it will be available to your repo now many user ask me the question why we are not pushing directly to the worel you can also do that but keeping the all your code to the GitHub will help you to update in later on you will not lose your code at any time and it will be very uh easy to share across a multiple uh uh way right so simply once it pushed make sure it is available on the GitHub now go to the versal and over here you have option to click add new click project now you have to connect your GitHub report to this one so I already connected then you will see um the name of your project because we just now pushed so it will it’s saying just now and then click import over here you can give the project name then it automatically select the framework as well now as we are also using the convex so you have to do little bit modification while building the versal project so if I go to this convex documentation here you need to follow couple of Step first thing you need to override this build command with this npx convex deploy and this npm run build so I will copy this go back to your project and over here we have this build output setting just overwrite this and I will paste the one which we copied then I will go back over here and then you need to get the convex deploy key so simply in order to get this conx deploy key go to the dashboard and and inside the dashboard select the project but make sure to select the production mode now inside this production mode obviously uh go to the settings and inside the settings you have this URL deploy key now let’s generate this production deploy key as I’m using the convex Cloud on their own platform so uh you can directly go to the dashboard here I will say production key and then save it once this key is generated just copy this key and you need to add the environment variable with this convo deploy key okay so that’s how easy it is but before that after overriding this command click environment variable and go back to your project open the env. local file and copy all the environment Keys like this and simply paste it here boom right then I will add one more key and then we want to give the name as a convex dep key so I will add that and from the convex production we need to also copy the convex production key and I will paste it here and simply click deploy now if you face any issue while deployment just check the log and just fix the issue or fix the error as simple as that you don’t need to worry about if it’s uh not uh deployed correctly or if you get any error so now we’ll wait to to finish the deployment right now it’s building then it will install all the dependency and then it will deploy our application on the cloud and boom our application is now live and here is the preview if I click to open this application boom we have this now dedicated domain to this one and here you can access our application so guys that’s how easily you can deploy your application on the production mode on the cloud now one more important thing go to the stack.com and here we need to make your application to production mode and it’s quite easy I already Del it so go to the project setting and inside the project setting okay first before that let’s go to the domain because you need to add your domain so click add new domain and you can add overal domain make sure the URL is correct you don’t need to have your own dedicated domain okay I already added so it’s saying domain already exist once you add that one make sure to disable uh this devop setting okay and then you can go to the project setting and here you need to enable this production mode and boom you are good to go okay so that’s how easy you can put this stack o on production mode as well so guys that’s all for this video If you really like this video press like button if you did not subscribe to our Channel please please do subscribe and don’t forget to press notification Bell icon once you press the notification Bell icon you will get all of my update and you will not miss any update from me so guys see you in the next video

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • Express JS Full Course Passport Authentication and MongoDB Integration in Express

    Express JS Full Course Passport Authentication and MongoDB Integration in Express

    The provided text is a comprehensive guide to building a RESTful API using Node.js and the Express framework. It covers fundamental concepts like handling different HTTP request methods (GET, POST, PUT, PATCH, DELETE), setting up routes and middleware, managing request and response objects, and implementing user authentication using Express Session and Passport. The text further explains how to integrate with a MongoDB database using Mongoose for data persistence and introduces unit and integration testing with Jest.

    Express.js Study Guide

    Quiz

    1. Explain the purpose of package.json and describe the significance of the type: “module” property and the start script.
    2. What is the role of the express() function, and how is it used to create an Express application instance? Describe the app.listen() method.
    3. Define what a route is in the context of Express.js. Explain the difference between the base route and other specific routes.
    4. Describe HTTP verbs (methods) and provide at least three examples. How are they used in Express to handle different types of requests?
    5. Explain the purpose and syntax of app.get(). What are the two primary arguments it accepts, and what do they represent?
    6. What are route parameters, and how are they defined and accessed in Express routes? Provide a simple example of a route with a parameter.
    7. Explain the concept of middleware in Express.js. What are the arguments passed to a middleware function, and what is the significance of the next() function?
    8. Describe the two ways middleware can be registered in Express.js. How does the order of middleware registration matter?
    9. What is an Express Router, and why is it useful for organizing routes in a larger application? Briefly explain how to create and register a Router.
    10. Explain the purpose of HTTP cookies. How can you set a cookie in an Express response and access cookies in a request?

    Quiz Answer Key

    1. package.json is a manifest file for Node.js projects that contains metadata about the project, including its name, version, dependencies, and scripts. Setting type: “module” enables the use of ECMAScript Modules (ESM) with import and export statements. The start script defines a command to run the application in a production-like environment using the node command.
    2. The express() function, when called, creates a new instance of the Express application. This instance, typically assigned to the app variable, provides methods for defining routes, middleware, and other application settings. The app.listen() method starts the Express server on a specified port, making it listen for incoming HTTP requests. It takes the port number and an optional callback function that executes once the server has started.
    3. A route in Express.js is a specific path on the server that is associated with a particular handler function. The base route is the root path of the application (e.g., /), while other specific routes are defined by appending segments to the base URL (e.g., /users, /products). Each route is designed to handle requests to that specific path.
    4. HTTP verbs (or methods) indicate the type of action the client wants to perform on the server’s resource. Examples include GET (retrieve data), POST (create new data), PUT (update existing data), PATCH (partially update existing data), and DELETE (remove data). In Express, different methods like app.get(), app.post(), etc., are used to define route handlers for specific HTTP verbs.
    5. app.get() is used to define a route that handles HTTP GET requests to a specific path. The first argument is a string specifying the path (route) to match. The second argument is the request handler, which is a function that takes two arguments: the request object (containing information about the incoming request) and the response object (used to send a response back to the client).
    6. Route parameters are dynamic segments in a route path used to capture values from the URL. They are defined by prefixing a segment with a colon (e.g., /users/:id). These values can be accessed within the route handler function using req.params, which is an object containing the named parameters as properties (e.g., req.params.id).
    7. Middleware in Express.js are functions that have access to the request object (req), the response object (res), and the next middleware function in the application’s request-response cycle. The next() function is a callback that, when invoked, passes control to the next middleware function. If next() is not called, the request-response cycle is halted.
    8. Middleware can be registered globally using app.use() without a specific path, in which case it will be executed for every incoming request. It can also be registered for a specific route by passing the middleware function as an argument (or multiple arguments) to route handling methods like app.get(), app.post(), etc. The order of middleware registration is crucial because middleware functions are executed sequentially in the order they are defined.
    9. An Express Router is an object that acts like a mini Express application, capable of handling routes and middleware. It’s useful for organizing API endpoints based on domains or features, preventing a single file from becoming too large and unmanageable. To create a Router, you use const router = express.Router(). To register the Router with the main application, you use app.use(‘/some/path’, router), where all routes defined on the router will be prefixed with /some/path.
    10. HTTP cookies are small pieces of data that a web server sends to the user’s web browser. The browser may store these cookies and send them back to the server with later requests. You can set a cookie in an Express response using the res.cookie(‘name’, ‘value’, [options]) method. You can access cookies sent by the browser in a request using the req.cookies object, provided you have used the cookie-parser middleware.

    Essay Format Questions

    1. Discuss the request-response lifecycle in Express.js, emphasizing the role and flow of control through middleware functions and route handlers.
    2. Compare and contrast the different HTTP methods (GET, POST, PUT, PATCH, DELETE) and explain how they are typically used in building RESTful APIs with Express.js, providing relevant examples.
    3. Explain the importance of modularity and organization in developing large-scale Express.js applications. Discuss how Express Routers can be effectively utilized to achieve this, providing a hypothetical scenario.
    4. Describe the concept of state management in web applications, particularly focusing on the stateless nature of HTTP. Discuss how cookies and sessions can be used in Express.js to maintain user-specific state across multiple requests.
    5. Explain the significance of input validation in web application development. Describe how middleware, such as those provided by Express Validator, can be implemented in Express.js to ensure data integrity and security.

    Glossary of Key Terms

    • Entry Point: The primary file that is executed to start an application (e.g., index.js or index.mjs).
    • Script (in package.json): A command-line instruction that can be executed using npm run <script-name>.
    • Watch Mode: A development mode (often using tools like Nodemon) that automatically restarts the server when code changes are detected.
    • Production: The environment where the final, deployed version of the application runs.
    • CommonJS: The module system traditionally used in Node.js, utilizing require() for importing and module.exports for exporting.
    • ECMAScript Modules (ESM): The standardized module system in JavaScript, using import and export statements.
    • Module System: A mechanism for organizing and sharing code in JavaScript.
    • File Extension (MJS): The file extension used to explicitly indicate that a JavaScript file should be treated as an ECMAScript Module.
    • Module: A reusable unit of code.
    • Package: A directory containing a package.json file and the associated code and resources.
    • Import: To bring in code or functionality from another module or package.
    • Export: To make code or functionality available for use by other modules or packages.
    • Express: A minimal and flexible Node.js web application framework.
    • Application Instance (app): An object created by calling the express() function, representing the Express application.
    • Method (on app object): A function associated with the Express application instance (e.g., app.get(), app.listen(), app.use()).
    • Property (on app object): A data value associated with the Express application instance.
    • Listen Method (app.listen()): A method that starts the Express server and makes it listen for incoming requests on a specified port.
    • Port: A virtual communication endpoint on a computer’s network interface used by processes to listen for or send data.
    • Callback Function: A function that is passed as an argument to another function and is executed at a later point in time.
    • Global (in Node.js): Objects or variables that are available throughout the Node.js environment without requiring explicit import (e.g., process).
    • Environment Variables (process.env): Dynamic named values that can affect the way running processes will behave on a computer.
    • Logical OR Operator (||): A binary operator that returns the right-hand operand if the left-hand operand is falsy, otherwise it returns the left-hand operand.
    • Start Script: A script defined in package.json that typically runs the main application.
    • Nodemon: A utility that automatically restarts Node.js applications when file changes in the directory are detected.
    • Localhost: The standard hostname for the loopback network interface (IP address 127.0.0.1) of a computer, often used for testing web applications locally.
    • Route: A defined path on the server that is associated with a handler function.
    • Base Route: The root path of a website or application, typically represented by /.
    • Resolver: A function or piece of code that determines how to respond to a request for a specific route.
    • Endpoint: Often used synonymously with “route,” referring to a specific URL on the server that the client can access.
    • Host Name: The label assigned to a device connected to a computer network that is used to identify the device in various forms of electronic communication.
    • HTTP Request: A message sent from a client (e.g., a web browser) to a server to request a resource or trigger an action.
    • HTTP Verbs (Methods): Indicate the type of action the client wants to perform on the server’s resource (e.g., GET, POST, PUT, DELETE).
    • Client: An application (e.g., web browser, mobile app) that makes requests to a server.
    • Backend Server: The part of a web application that runs on the server and handles data storage, logic, and API requests.
    • HTTP Request Methods: See HTTP Verbs.
    • GET Request: An HTTP method used to retrieve data from the server.
    • POST Request: An HTTP method used to send data to the server to create a new resource.
    • PUT Request: An HTTP method used to update an existing resource on the server.
    • PATCH Request: An HTTP method used to partially update an existing resource on the server.
    • DELETE Request: An HTTP method used to remove a resource from the server.
    • Request Handler: A function that is executed when the server receives a request matching a defined route. It receives the request and response objects as arguments.
    • Request Object (req): An object containing information about the incoming HTTP request, such as headers, parameters, body, and cookies.
    • Response Object (res): An object used by the server to send a response back to the client, allowing you to set headers, status codes, and the response body.
    • Send Method (res.send()): A method on the response object used to send the HTTP response back to the client. It can send strings, HTML, JSON objects, etc.
    • JSON Object: A lightweight data-interchange format consisting of key-value pairs.
    • Status Code: A three-digit number in an HTTP response that indicates the outcome of the request (e.g., 200 OK, 404 Not Found).
    • Status Method (res.status()): A method on the response object used to set the HTTP status code for the response.
    • Chaining (Methods): Calling multiple methods on an object in sequence, where each method returns the object itself.
    • API Prefix: A common practice of starting API route paths with /api/ or similar to distinguish them from other application routes.
    • Route Parameters: Dynamic segments in a route path used to capture values from the URL (e.g., /users/:id).
    • Dynamic Data: Data that can vary based on input or conditions.
    • Middleware: Functions that have access to the request object (req), the response object (res), and the next middleware function in the application’s request-response cycle.
    • Request Handler (as Middleware): A middleware function that handles an incoming request.
    • Next Argument (next): A function passed to middleware that, when called, passes control to the next middleware function in the stack.
    • Global Middleware: Middleware registered using app.use() without a specific path, applied to all routes.
    • Endpoint-Specific Middleware: Middleware applied only to specific routes, either by passing them as arguments to route handlers or using app.use() with a specific path.
    • Sequential Order: Middleware functions are executed in the order they are registered in the application.
    • Authorization Token: A credential used to verify the identity and permissions of a client making a request.
    • Status Code 401 (Unauthorized): An HTTP status code indicating that the client is not authenticated and needs to provide valid credentials.
    • Mock Users: Sample or simulated user data used for development and testing purposes.
    • Splice Method (Array): A JavaScript array method that changes the contents of an array by removing or replacing existing elements and/or adding new elements in place.
    • Delete Count (splice): The number of elements to remove from the array when using the splice() method.
    • Thunder Client: A lightweight HTTP client extension for VS Code used to make API requests.
    • Not Found (404): An HTTP status code indicating that the server cannot find the requested resource.
    • Mozilla Docs (MDN): The official web documentation provided by Mozilla.
    • HTTP Request Methods (MDN): Documentation on various HTTP request methods and their purposes.
    • Head Method: An HTTP method that requests the same response as a GET request, but without the response body.
    • Connect Method: An HTTP method that establishes a tunnel to the server identified by the target resource.
    • Options Method: An HTTP method that describes the communication options for the target resource.
    • Trace Method: An HTTP method that performs a message loop-back test along the path to the target resource.
    • Mid Process: An intermediate step or function in a sequence of operations.
    • Logging Middleware: Middleware used to record information about incoming requests, such as the method and URL.
    • app.use(): A method used to register middleware functions with the Express application.
    • Sequential Order (Middleware): Middleware functions are executed in the order they are registered.
    • Route (app.get, app.post, etc.): A specific path and HTTP method combination that is handled by the application.
    • app.post(): A method used to define a route that handles HTTP POST requests.
    • app.put(): A method used to define a route that handles HTTP PUT requests.
    • app.patch(): A method used to define a route that handles HTTP PATCH requests.
    • app.delete(): A method used to define a route that handles HTTP DELETE requests.
    • Domain (API): A logical grouping of API endpoints based on a specific area of functionality (e.g., users, products).
    • Express Router: An object that allows you to create modular, mountable route handlers.
    • Routes Folder: A common directory in Express applications to organize route definitions.
    • users.mjs: A file containing route definitions related to user resources.
    • Import (Router): Bringing the Router class from the express module into a file.
    • Router Instance: An object created by calling express.Router().
    • Method (on Router): Functions associated with a Router instance (e.g., router.get(), router.post()).
    • Register (Router): Making the routes defined in a Router instance available to the main Express application using app.use().
    • Export (default): Making a single value the primary export of a module.
    • Index.mjs (routes): A common file within a routes directory used to aggregate and export all defined routers.
    • Utils Folder: A directory to store utility functions and constants used throughout the application.
    • Constants File: A file (e.g., constants.mjs) to store constant values used in the application.
    • Named Export: Exporting specific variables or functions from a module using their names.
    • Middlewares File: A file (e.g., middlewares.mjs) to store reusable middleware functions.
    • Products Router: A Router instance specifically for handling product-related routes.
    • Barrel File: A module that re-exports other modules, providing a single point of import for a set of modules.
    • Prefix (for Routes): A base path added to all routes defined within a specific Router when it’s mounted using app.use().
    • HTTP Cookies: Small pieces of data that a web server sends to the user’s web browser, which may then be stored by the browser and sent back to the server with subsequent requests.
    • Thunder Client (Cookies Section): A part of the Thunder Client interface that allows you to view and manage cookies associated with a particular domain.
    • Response (Set-Cookie Header): When a server wants to set a cookie in a user’s browser, it includes a Set-Cookie header in its HTTP response.
    • Browser (Cookie Storage): Web browsers have a mechanism to store cookies received from servers, usually associated with the domain that set them.
    • Request (Cookie Header): When a browser makes a request to a server, it automatically includes any cookies associated with that server’s domain in the Cookie header of the HTTP request.
    • Stateless (HTTP): The property of the HTTP protocol where the server does not retain any information about past client requests. Each request is treated as independent.
    • E-commerce Website (Cart System): A common application where cookies are used to maintain a user’s shopping cart even if they close and revisit the website.
    • Authentication: The process of verifying the identity of a user.
    • Sessions: A mechanism to maintain state across multiple requests from the same user, typically using a session ID stored in a cookie.
    • Cookie Method (res.cookie()): An Express response object method used to set a cookie in the Set-Cookie header of the HTTP response. It takes the cookie name, value, and optional options as arguments.
    • Expiration (Cookie): The date and time at which a cookie will no longer be valid and will be discarded by the browser.
    • Max-Age (Cookie Option): A cookie option that specifies the lifespan of the cookie in seconds.
    • Domain (Cookie Option): A cookie option that specifies the domain for which the cookie is valid.
    • HTTPOnly (Cookie Option): A cookie option that, when set to true, prevents client-side scripts from accessing the cookie.
    • Secure (Cookie Option): A cookie option that, when set to true, ensures the cookie is only transmitted over HTTPS.
    • Request Object (req.headers.cookie): The Cookie header in the request object, which contains a string of all cookies sent by the browser for the current domain.
    • Parsing (Cookies): The process of converting the raw Cookie header string into a more usable format, typically an object where each cookie name is a key.
    • Cookie Parser Middleware (cookie-parser): An Express middleware that parses the Cookie header and populates req.cookies with an object containing the cookie names and values.
    • Third-Party Package: A module or library developed by someone other than the core framework developers.
    • npm (Node Package Manager): The default package manager for Node.js.
    • Install (npm install or npm i): The command used to download and install packages from npm.
    • Middleware (cookie-parser): The cookie-parser package provides a middleware function that needs to be registered with the Express application using app.use().
    • req.cookies: An object added to the request object by the cookie-parser middleware, containing the parsed cookies.
    • Conditional Logic: Using if statements or other control flow structures to execute different code based on certain conditions.
    • Status Code 403 (Forbidden): An HTTP status code indicating that the server understands the request but refuses to authorize it.
    • Status Code 401 (Unauthorized): An HTTP status code indicating that the client is not authenticated.
    • Signed Cookies: Cookies that have a digital signature to prevent tampering.
    • Secret (for Signed Cookies): A secret key used to generate and verify the signatures of signed cookies. This needs to be passed to the cookie-parser middleware.
    • res.cookie() (signed option): When the signed option is set to true in res.cookie(), a signed cookie is set.
    • req.signedCookies: An object added to the request object by the cookie-parser middleware (when configured with a secret), containing the parsed and verified signed cookies.
    • Session: A mechanism to maintain state for a user across multiple HTTP requests. It typically involves storing user-specific data on the server and associating it with a unique session ID that is usually stored in a cookie on the client’s browser.
    • express-session: An Express middleware that creates and manages session data.
    • Session ID: A unique identifier generated by the server for each user’s session. This ID is typically stored in a cookie sent to the user’s browser.
    • Session Store: The storage mechanism on the server where session data is persisted. By default, express-session uses an in-memory store, but for production environments, persistent stores like databases are recommended.
    • app.use(session(…)): How the express-session middleware is registered with the Express application.
    • secret (session option): A string used to sign the session ID cookie, preventing client-side tampering. This should be a complex, randomly generated string in a production environment.
    • saveUninitialized (session option): When set to true, a new but unmodified session will be saved to the store. Setting it to false is recommended to avoid storing unnecessary sessions.
    • resave (session option): When set to true, the session will be saved back to the session store on every request, even if it wasn’t modified. Setting it to false is often preferred to avoid unnecessary writes to the store.
    • cookie (session option): An object that allows you to configure the properties of the session ID cookie, such as maxAge, httpOnly, and secure.
    • req.session: An object attached to the request object by the express-session middleware. It is used to store and access session data specific to the current user.
    • Dynamic Property (on req.session): You can add custom properties to the req.session object to store user-specific data.
    • In-Memory Store (Session): The default session store used by express-session, which stores session data in the server’s memory. This is not suitable for production environments with multiple server instances or restarts.
    • Persistent Session Store: A session store that persists data across server restarts and can be shared between multiple server instances (e.g., using databases like Redis, MongoDB, or PostgreSQL).
    • req.session.destroy(): A method to end the current session and remove the associated session data from the store.
    • req.sessionStore: An object representing the underlying session storage mechanism.
    • req.sessionStore.get(sid, callback): A method on the session store to retrieve session data associated with a given session ID (sid).
    • npm install mongodb: The command to install the official MongoDB driver for Node.js.
    • MongoDB: A popular NoSQL database.
    • Database Connection: The process of establishing a link between an application and a database server.
    • Connection URI (MongoDB): A string that specifies how to connect to a MongoDB database, including the protocol, hostname, port, database name, and authentication credentials if required.
    • mongoose: A popular Object Data Modeling (ODM) library for MongoDB and Node.js. It provides a higher-level abstraction for interacting with MongoDB.
    • ODM (Object Data Modeling): A programming technique that maps objects to a database schema.
    • Schema (Mongoose): A blueprint for the structure of documents in a MongoDB collection, defining the data types, validators, and other properties of the fields.
    • Model (Mongoose): A class that represents a MongoDB collection and provides an interface for creating, querying, updating, and deleting documents. It is created from a Mongoose schema.
    • mongoose.Schema({…}): Used to define a new Mongoose schema.
    • Data Type (Mongoose): Specifies the type of data that a field in a Mongoose schema can hold (e.g., String, Number, Boolean).
    • Validator (Mongoose): Functions or objects that define rules for the values that can be saved in a field of a Mongoose schema (e.g., required, unique, minlength, maxlength).
    • required: true (Validator): Ensures that a field must have a value.
    • unique: true (Validator): Ensures that the values in a field are unique across all documents in the collection.
    • minlength and maxlength (Validators): Specify the minimum and maximum length for string fields.
    • mongoose.model(modelName, schema): Used to create a Mongoose model from a defined schema.
    • try…catch Block: A JavaScript construct used for error handling. Code that might throw an error is placed in the try block, and code to handle the error is placed in the catch block.
    • async and await: Keywords in JavaScript used to work with asynchronous operations in a more synchronous-like manner. async marks a function as asynchronous, and await pauses the execution of an async function until a Promise is resolved.
    • Asynchronous Operation: An operation that does not block the execution of the program while it is in progress. It typically relies on callbacks, Promises, or async/await to handle the result.
    • Promise: An object representing the eventual completion (or failure) of an asynchronous operation and its resulting value.
    • new Model({…}): Creating a new document instance of a Mongoose model.
    • Constructor (Class): A special method for creating and initializing an object created with a class.
    • document.save() (Mongoose): An asynchronous method on a Mongoose document instance that saves the document to the MongoDB database.
    • Status Code 201 (Created): An HTTP status code indicating that the request has succeeded and a new resource has been created as a result.
    • Status Code 400 (Bad Request): An HTTP status code indicating that the server could not understand the request due to invalid syntax or other client-side error.
    • Duplicate Key Error (MongoDB): An error thrown by MongoDB when trying to insert a document with a value for a field marked as unique that already exists in the collection.
    • Express Validator: A library for validating and sanitizing user input in Express.js applications.
    • checkSchema(schema): A function from Express Validator that creates a middleware to validate request data against a provided schema.
    • Validation Schema (Express Validator): An object that defines the validation rules for different fields of the request (e.g., body, query, params).
    • validationResult(req): A function from Express Validator that retrieves the validation errors that occurred during the schema check.
    • .isEmpty() (Validation Result): A method on the validation result object that returns true if there are no validation errors, and false otherwise.
    • .array() (Validation Result): A method on the validation result object that returns an array of validation errors.
    • matchedData(req): A function from Express Validator that extracts the validated data from the request, according to the validation schema.
    • bcrypt: A library for password hashing.
    • Password Hashing: The process of transforming a plain-text password into a fixed-size string of characters using a cryptographic hash function. This makes it computationally infeasible to retrieve the original password from the hash.
    • bcrypt.hashSync(password, salt): A synchronous function from bcrypt that hashes a password using a generated salt.
    • salt (bcrypt): A randomly generated string that is added to each password before it is hashed. This makes it more difficult for attackers to use pre-computed tables of hashes (rainbow tables).
    • saltRounds (bcrypt): A parameter that controls the computational cost of the hashing process. Higher rounds provide more security but take longer to compute.
    • bcrypt.compareSync(plainTextPassword, hashedPassword): A synchronous function from bcrypt that compares a plain-text password with a stored hash to see if they match.
    • Unit Testing: A software testing method by which individual units of source code (the smallest testable parts of an application) are tested to determine whether they are fit for use.
    • jest: A popular JavaScript testing framework.
    • Test Suite (describe): A block of code in a test file that groups together related tests, typically for a specific component or functionality.
    • Test Case (it or test): An individual test that focuses on a specific aspect or behavior of the code being tested.
    • Assertion (expect): A statement in a test that verifies a certain condition or outcome. If the assertion fails, the test is considered failed.
    • Mocking: Replacing dependencies of the code being tested with controlled test doubles (mocks) to isolate the unit under test and control its behavior.
    • Mock Request (mockRequest): A simulated request object used in unit tests, containing only the properties and methods relevant to the code being tested.
    • Mock Response (mockResponse): A simulated response object used in unit tests, providing mock implementations of methods like status() and send() to observe how the code under test interacts with the response.
    • jest.fn(): A Jest function that creates a mock function, which can be used to track calls, arguments, and return values.
    • mockResponse.status.mockReturnValue(value): Setting the return value of the mocked status() method.
    • mockResponse.send.mockImplementation(value): Setting the implementation of the mocked send() method, allowing you to observe what data is being sent.
    • expect(mockFunction).toHaveBeenCalled(): A Jest assertion that verifies if a mock function has been called.
    • expect(mockFunction).toHaveBeenCalledWith(…args): A Jest assertion that verifies if a mock function has been called with specific arguments.
    • expect(mockFunction).toHaveBeenCalledTimes(number): A Jest assertion that verifies how many times a mock function has been called.
    • expect(mockFunction).mock.calls: An array containing all the calls that were made to a mock function. Each call is represented by an array of arguments passed to the mock.
    • expect(value).toBe(expected): A Jest matcher that performs a strict equality check.
    • Dependency Injection: A software design pattern in which an object receives other objects that it depends on (dependencies) instead of creating them itself. This makes code more testable and modular.
    • Implementation Detail: A specific way in which a piece of code is implemented, which might not be relevant to the overall behavior being tested.
    • Behavioral Testing: A testing approach that focuses on verifying the observable behavior of the code under test, rather than its internal implementation details.
    • jest.mock(‘moduleName’, factory): A Jest function used to mock an entire module. The factory argument is a function that returns the mock implementation of the module’s exports.
    • clearMocks (Jest Config): A Jest configuration option that, when set to true, automatically resets the state of all mocked functions before each test.
    • beforeEach(() => {…}): A Jest hook that runs a provided function before each test within a describe block. It can be used to set up test data or reset mocks.
    • End-to-End (E2E) Testing: A testing methodology used to test an application’s workflow from start to finish, simulating real user scenarios and verifying that all integrated components work correctly together.
    • SuperTest: A library for testing web applications by making HTTP requests to them and asserting the responses.
    • Test Script (E2E): A script in package.json specifically for running end-to-end tests.
    • request(app) (SuperTest): A function from SuperTest that creates an agent for making requests to a given Express application instance.
    • .get(path) (SuperTest Agent): A method on the SuperTest agent to make an HTTP GET request to a specified path.
    • .expect(status) (SuperTest Response): A method on the SuperTest response object to assert the expected HTTP status code.
    • .expect(body) (SuperTest Response): A method on the SuperTest response object to assert the expected response body.
    • .end((err, res) => {…}) (SuperTest Request): A method to execute the HTTP request and receive the response in a callback function.
    • async and await (with SuperTest): Using async/await with SuperTest allows you to handle the asynchronous nature of HTTP requests in a more straightforward way, making it easier to work with the response.
    • Response Object (SuperTest): The object returned after making a request with SuperTest, containing properties like status, body, and headers.
    • .toStrictEqual(value) (Jest Matcher): A Jest matcher that performs a strict equality check on all levels, including object properties and array elements.
    • .toBeEmptyObject() (Jest Matcher): A Jest matcher that checks if a value is an empty object.
    • Test Environment (Node): Configuring Jest to run tests in a Node.js environment, suitable for server-side JavaScript code.
    • Transform (Jest Config): A Jest configuration option that specifies how to transform source files before running tests, often used to handle non-standard JavaScript syntax (e.g., ESM in a CommonJS environment).
    • @babel/preset-env: A Babel preset that allows you to use the latest JavaScript features without needing to micromanage which syntax transforms (plugins) are needed by your target environment(s).
    • targets: { node: ‘current’ } (Babel Config): A configuration in @babel/preset-env that tells Babel to transpile JavaScript to the version supported by the current Node.js environment where the tests are being run.
    • Babel (@babel/core, @babel/cli, etc.): A JavaScript transpiler that converts ECMAScript 2015+ code into a backwards compatible version of JavaScript that can be run by older JavaScript engines.
    • babel-jest: A Jest preprocessor that uses Babel to transform your test files.
    • Module File Extensions (Jest Config): A Jest configuration option that specifies the file extensions to consider as modules.
    • .babelrc: A configuration file for Babel, where you can specify presets and plugins to use for transpilation.
    • npm init -y: A command to quickly initialize a new Node.js project and create a package.json file with default settings.
    • @jest/globals: A package that provides global Jest functions like describe, it, expect, etc., for environments where they are not automatically available.
    • @types/jest: TypeScript type definitions for the Jest API, providing better type checking and autocompletion in editors.
    • jsconfig.json: A configuration file that specifies the root files and the options for the JavaScript language service provided by VS Code.
    • Type Acquisition (VS Code): A feature in VS Code that automatically downloads and configures type definition files (.d.ts) for JavaScript projects, improving IntelliSense.

    Express.js Web Server Development Fundamentals

    ## Briefing Document: Review of Provided Sources

    This document provides a detailed review of the main themes, important ideas, and facts presented in the provided excerpts from “01.pdf”. The source primarily focuses on setting up a basic web server using Express.js, defining routes, handling HTTP request methods, implementing middleware, organizing routes with Express Router, working with HTTP cookies and sessions, performing input validation, integrating with MongoDB, hashing and comparing passwords using bcrypt, and finally, introducing unit and end-to-end testing with Jest and SuperTest.

    ### Main Themes:

    1. **Express.js Fundamentals:** The initial sections detail the foundational steps for creating an Express.js application, including setting up the entry point, using `package.json` for script management and ES Modules, importing the Express module, creating an application instance, and starting the server with the `listen` method.

    2. **Route Definition and HTTP Methods:** A significant portion of the content explains how to define routes in Express using different HTTP verbs (GET, POST, PUT, PATCH, DELETE) and how to handle requests to these routes using request handler functions with `request` and `response` objects.

    3. **Middleware Implementation:** The concept of middleware in Express.js is introduced, demonstrating how to create and register middleware functions globally or for specific routes. The importance of the `next()` function in the middleware pipeline is emphasized.

    4. **Route Organization with Express Router:** The document illustrates how to use the Express Router to modularize and organize API endpoints based on domains (e.g., users, products), promoting better code structure and maintainability.

    5. **HTTP Cookies and Sessions:** The use of HTTP cookies for maintaining client-side state is explained, along with how to set, retrieve (using `cookie-parser` middleware), and manage cookie properties like expiration. Sessions are introduced as a server-side mechanism for tracking user activity, utilizing the `express-session` middleware.

    6. **Input Validation:** The importance of validating incoming request data is highlighted, demonstrating the use of `express-validator` for defining validation schemas and checking for validation errors within request handlers.

    7. **MongoDB Integration:** The excerpts cover the basic steps of connecting an Express.js application to a MongoDB database using Mongoose, defining schemas, creating models, and performing CRUD operations (specifically creation).

    8. **Password Hashing with Bcrypt:** The document explains the necessity of hashing passwords before storing them in a database for security reasons and demonstrates how to use the `bcrypt` library for generating password hashes and comparing them during login.

    9. **Unit and End-to-End Testing:** The final sections introduce the concepts of unit and end-to-end testing. Jest is presented as a testing framework for writing unit tests, focusing on testing individual functions in isolation by using mocks. SuperTest is introduced as a library for performing end-to-end tests, simulating HTTP requests to the application’s routes.

    ### Most Important Ideas and Facts:

    * **ES Modules:** Setting `”type”: “module”` in `package.json` enables the use of modern `import` and `export` statements, requiring `.mjs` file extensions.

    > “I’m going to go ahead and set this type property and you can see that there’s two values uh commonjs or module I’m going to set it to module and what this will allow me to do is use esm as my module system so that way I can use the modern import export statements instead of having to use require to import modules and module that exports to export stuff.”

    * **Express Application Instance:** The `express()` function returns an instance of an Express application, which is used to define routes and middleware.

    > “now the imported value of this Express name is actually a top level function and we need to call this function in order to create an express application so what I’m going to do is I’m going to first declare a variable […] I’ll call it app and then I’m just simply going to reference Express and then invoke that function by using parentheses and that’s all.”

    * **`app.listen()`:** This method starts the Express server on a specified port, allowing it to listen for incoming HTTP requests.

    > “the method that we need to call is the listen method and this pretty much allows you to listen to a port for incoming requests. This is actually what starts up the express server on a specific port and then you can begin receiving incoming HTTP requests.”

    * **Routes and Request Handlers:** Routes are paths defined on the server, and request handlers are callback functions that execute when a specific route is accessed with a particular HTTP method.

    > “a route in general is think of it like a path in your express application so determining which path you want to take gives you different outputs.”

    > “the request Handler is just a function but in this case it’s a callback function so it would look like this so I’ll pass a simple arrow function and this callback function has two arguments okay it has a request argument which is the request object itself […] now the second argument is the response object the response object is what you can use to modify the response and send it back to the user…”

    * **HTTP Verbs:** Different HTTP methods (GET, POST, PUT, PATCH, DELETE) indicate the desired action to be performed on a resource.

    > “these verbs pretty much are ways on how you can tell the server to perform some operation. So for example you don’t always want to just get data sometimes you might want to create data […] sometimes you want to update data sometimes you want to delete data…”

    * **Middleware:** Middleware functions have access to the `request`, `response`, and `next` function, allowing them to modify requests and responses, execute code, and pass control to the next middleware in the stack.

    > “in the context of expressjs a middleware is just a function that can have logic but the middleware function also is a request Handler as as well so that middleware function has the request response arguments as well and you can actually use the middleware function to return a response if you want to.”

    > “the middleware function or the request Handler function also has access to this next argument which is a function that you call when you are done with the middleware.”

    * **`app.use()`:** Used to register middleware functions globally or for specific routes. Order of registration matters.

    > “Let’s call app.use to register our middleware globally so all I do is I just pass in logging middleware as a function or as an argument like this.”

    > “middleware must be registered before a route if you’re using app.use register it.”

    * **Express Router:** Provides a way to create modular, mountable route handlers, allowing for better organization of API endpoints.

    > “we can use an Express router to do this and what I’ll do is I’ll create a new folder inside the source folder and I’ll call this routes and then I’m going to go ahead and create a new file and call it users. MJS and then inside users. MJS we’re going to import the router from Express…”

    * **HTTP Cookies:** Small pieces of data that the server sends to the client’s browser, which the browser can store and send back to the server with subsequent requests. Useful for maintaining state in a stateless HTTP environment.

    > “cookies or HTTP cookies they’re literally just small pieces of data that your web server sends to the browser…”

    > “remember that HTTP is stateless and using cookies enables the server to send a cookie to the web browser and that cookie typically is going to be some unique value so that way the server when they receive it they can distinguish whose cookie this belongs to and then they can send Dynamic data based on the cookie value.”

    * **`cookie-parser` Middleware:** Parses the `Cookie` header in the incoming request, populating `req.cookies` with an object keyed by the cookie names.

    > “we can actually use a third-party package called cookie parser to parse the cookies for us.”

    * **Signed Cookies:** Cookies that are cryptographically signed to prevent tampering. Require a secret key for signing and parsing.

    > “if you ever need to set sign cookies which like I said earlier it has a signature uh you can go ahead right over here and set signed to True Whenever you set the cookie but in order for you to actually uh parse cookies that are signed you must you must you must provide a secret…”

    * **`express-session` Middleware:** Creates and manages server-side sessions, typically using cookies to store a session identifier on the client.

    > “sessions represent the duration of a user on a website by default HTTP is stateless we don’t know who is making requests to our server so we need to be able to track requests and know where they are coming from. One common usage of sessions is to manage user authentication.”

    > “we’ll get started in implementing sessions using the express session Library…”

    * **Input Validation with `express-validator`:** A library for validating and sanitizing request data based on defined schemas.

    > “I want to show you all how we can use a very popular package called Express validator to make input validation a lot more easier.”

    > “this middleware does not actually throw an error we need to go inside the request Handler and actually check if there are any errors.”

    * **MongoDB and Mongoose:** Mongoose is an Object Data Modeling (ODM) library for MongoDB and Node.js, providing a higher-level abstraction for interacting with the database.

    > “Now I’m going to show you all how we can actually integrate our Express application with a real database in this case we’re going to be using mongodb…”

    > “Mongoose is an object data modeling library that provides a straightforward schema based solution to model your application data.”

    * **Password Hashing with `bcrypt`:** A library for securely hashing passwords using the bcrypt algorithm.

    > “you want to make sure you always hash your passwords before you save it to the database…”

    > “first let’s go ahead and install bcrypt…”

    * **Unit Testing with Jest:** A JavaScript testing framework used to test individual units of code in isolation. Involves mocking dependencies to avoid external interactions.

    > “the next topic that I want to talk about is testing and specifically unit testing so what exactly is unit testing well unit testing is a software testing method by which individual units of source code test for determining whether they are fit for use.”

    > “we’re going to install a couple of dependencies so I’m going to type npmi hyphen capital D CU I’m going to install these as Dev dependencies so the packages are at Babel slore Babel code at Babel slpre EnV so that’s it for Babel we then need to install just as well…”

    * **End-to-End Testing with SuperTest:** A library for testing HTTP endpoints by making actual requests to the application and asserting on the responses.

    > “for our end to end test we’re going to be using a very popular package called super test.”

    > “end to end testing is a methodology used to test an application flow from start to finish.”

    This briefing document summarizes the key concepts and procedures outlined in the provided source, offering a comprehensive overview of building a backend API with Node.js, Express.js, and related technologies, including database integration, security measures, and testing strategies.

    Express.js API Development Fundamentals

    1. What is the purpose of the package.json file configurations shown, specifically the type property and the start script?

    The package.json file is the manifest for the Node.js project. The type property is set to module, which enables the use of ECMAScript Modules (ESM) syntax (i.e., import and export) instead of the CommonJS require and module.exports. To use ESM, the file extension for JavaScript files needs to be .mjs. The scripts section defines executable commands. Here, a start script is created to run the application using the node command, typically used for production deployments where a file watcher (like Nodemon) is not needed.

    2. How is an Express application instance created and configured to listen for incoming requests?

    An Express application instance is created by first importing the express module and then invoking the imported Express function. This returns the application object, which is typically stored in a variable (e.g., app). To configure the application to listen for incoming HTTP requests, the app.listen() method is used. This method takes the port number as its first argument and optionally a callback function as its second argument. The callback function is executed once the server has started listening on the specified port, often used for logging or other post-startup operations. It’s best practice to configure the port using an environment variable (process.env.PORT) with a default value (e.g., 3000) for flexibility.

    3. What are routes in Express, and how are they defined for handling different types of HTTP requests?

    Routes in Express define how the application responds to client requests to specific endpoints (URIs) and HTTP request methods (verbs). A route is associated with a path (e.g., /, /api/users) and one or more handler functions. Routes are defined using methods on the Express application object that correspond to HTTP verbs, such as app.get() for handling GET requests, app.post() for POST requests, app.put() for PUT requests, app.patch() for PATCH requests, and app.delete() for DELETE requests. Each of these methods takes the route path as the first argument and a request handler function (or a series of middleware functions and a handler) as the subsequent argument(s). The request handler function receives request and response objects, allowing you to access request details and send responses back to the client.

    4. Explain the roles of the request and response objects within a route handler function in Express.

    The request object in a route handler function contains all the information about the incoming HTTP request from the client. This includes headers, the request body (if any), query parameters, route parameters, cookies, and metadata about the connection. You can access these details through various properties of the request object (e.g., request.headers, request.body, request.params, request.cookies).

    The response object is used to send data back to the client. It provides methods for controlling the response, such as setting the HTTP status code (response.status()), sending data as the response body (response.send(), response.json()), setting headers (response.set()), and setting cookies (response.cookie()). Route handlers must ultimately use the response object to end the request-response cycle by sending a response back to the client.

    5. What are route parameters in Express, and how are they used to handle dynamic data in URLs?

    Route parameters are named URL segments that are used to capture values specified at their position in the URL. They are defined in the route path by prefixing the parameter name with a colon (e.g., /api/users/:id). When a client makes a request to a URL that matches this pattern, the value in the parameter segment is captured and made available in the request.params object within the route handler function. This allows you to create dynamic routes where different data can be accessed based on the specific value in the URL. For example, /api/users/123 would make the value 123 accessible as request.params.id.

    6. What is middleware in Express, and how can it be used to handle tasks like logging, authentication, or data processing before route handlers?

    Middleware in Express are functions that have access to the request object (req), the response object (res), and the next middleware function in the application’s request-response cycle. Middleware functions can perform various tasks such as logging requests, authenticating users, validating data, and modifying the request or response objects. They can terminate the request-response cycle by sending a response, or they can pass control to the next middleware function in the stack by calling next().

    Middleware can be registered globally for all routes using app.use() or locally for specific routes by passing the middleware function as an argument when defining a route (e.g., app.get(‘/path’, middlewareFunction, routeHandler)). The order in which middleware is registered is crucial, as they are executed in the order they are added to the application.

    7. How can Express Routers be used to organize API endpoints into logical groups and keep the main application file cleaner?

    Express Routers are isolated instances of middleware and routes. They allow you to group related API endpoints together and define their handlers within a separate file or module. To use a Router, you first create an instance using express.Router(). Then, you can define routes on this router instance using the same HTTP method functions (router.get(), router.post(), etc.) as you would on the main application object. Finally, you mount the router to a specific path in your main application using app.use(‘/api/resource’, resourceRouter). This will apply all the routes defined in resourceRouter under the /api/resource path. Using routers helps to modularize your application, making it easier to manage and understand as the number of endpoints grows.

    8. Explain the purpose and basic usage of HTTP cookies in Express for maintaining client-server state.

    HTTP cookies are small pieces of data that a web server sends to a user’s web browser. The browser may store these cookies and send them back to the server with subsequent requests made to the same server. Cookies are often used to remember information about the user, such as session tokens, preferences, or shopping cart contents, thus allowing the server to maintain state for otherwise stateless HTTP connections.

    In Express, you can set cookies on the response object using response.cookie(‘name’, ‘value’, [options]). The options argument can include properties like maxAge (in milliseconds), expires (a Date object), httpOnly, secure, and signed. To access cookies sent by the browser, you typically use the cookie-parser middleware. Once installed and used with app.use(cookieParser()), it populates the request.cookies object with the parsed cookies. For signed cookies (where the value is cryptographically signed), you would use response.signedCookie() to set them and request.signedCookies to access them, after configuring a secret with the cookie-parser middleware. Cookies are essential for implementing features like user sessions and persistent settings.

    Express.js and HTTP Request Methods

    The sources discuss several HTTP request methods used in building web APIs, particularly within the context of the Express.js framework. Here’s a breakdown of these methods based on the provided information:

    • GET:
    • Used to retrieve data from the server in a read-only format without manipulating any data on the server side.
    • Clients make GET requests to fetch resources. For example, an e-commerce website might use a GET request to display a list of products.
    • Data can be sent to the server through the URL using query strings or query parameters. These are key-value pairs appended to the URL after a question mark (?), separated by ampersands (&). Express.js parses the query string into a JSON object accessible via request.query. This can be used for filtering or sorting data on the server before sending it back.
    • In Express.js, GET requests are handled using app.get(). This method takes a route path and a request handler function as arguments. The request handler receives a request object (containing information about the incoming request) and a response object (used to send data back to the client).
    • The response.send() method is used to send back data, which can be plain text, JSON objects, or arrays. The response.status() method can be used to set the HTTP status code of the response (e.g., 200 for success).
    • POST:
    • Used to create new data or resources on the server.
    • When a client (e.g., a web form) wants to send data to the server to be stored (e.g., creating a new user), it makes a POST request.
    • The data to be sent is included in the request body or payload of the HTTP request.
    • Express.js, by default, does not parse request bodies. Middleware like express.json() needs to be used to parse JSON request bodies. This makes the data available in the request.body property of the request object.
    • In Express.js, POST requests are handled using app.post(). It takes a route path and a request handler function.
    • A successful POST request typically returns a 201 status code (Created). The server might also return the newly created resource in the response body.
    • PUT:
    • Used to update an existing resource on the server.
    • A PUT request is intended to replace the entire target resource with the data provided in the request body. If a field is not included in the request body during a PUT request, it might be removed or set to null on the server, depending on the backend implementation.
    • In Express.js, PUT requests are handled using app.put(), taking a route path (often including a route parameter to identify the resource to update, e.g., /api/users/:id) and a request handler.
    • PATCH:
    • Also used to update an existing resource on the server, but unlike PUT, it’s for partial updates.
    • With PATCH, you only need to send the specific fields that you want to modify in the request body, leaving the other fields untouched.
    • In Express.js, PATCH requests are handled using app.patch(), similar to PUT, often with a route parameter to specify the resource.
    • A successful PUT or PATCH request might return a 200 (OK) or 204 (No Content) status code.
    • DELETE:
    • Used to remove a resource from the server.
    • Typically, a DELETE request targets a specific resource identified by its URL, often including a route parameter (e.g., /api/users/:id).
    • While a request body can be sent with a DELETE request if additional data is needed, it’s not as common as with POST, PUT, or PATCH.
    • In Express.js, DELETE requests are handled using app.delete(), with a route path and a request handler.
    • A successful DELETE request might return a 200 (OK) or 204 (No Content) status code.
    • Other HTTP Request Methods:
    • The source briefly mentions other HTTP request methods like HEAD, CONNECT, OPTIONS, and TRACE, noting that they are sometimes used but less frequently than GET, POST, PUT, PATCH, and DELETE.

    In summary, these HTTP request methods define the action that a client wants to perform on the server, forming the foundation of communication in web APIs. Express.js provides methods like app.get(), app.post(), app.put(), app.patch(), and app.delete() to define how the server should handle requests made with these different HTTP verbs for specific routes.

    Express.js Application Routing Fundamentals

    Based on the sources, Express.js application routing is the mechanism that determines how an application responds to client requests to specific endpoints or URLs. It involves defining routes, which consist of a URL path (or pattern) and handler functions that will be executed when a request matches that path and a specific HTTP method.

    Here’s a breakdown of Express app routing:

    • Route Definition: In Express, routes are defined using methods of the app object (an instance of the Express application) that correspond to HTTP request methods. The basic structure for defining a route is:
    • app.METHOD(PATH, HANDLER_FUNCTION);
    • where:
    • app is the Express application instance.
    • METHOD is one of the HTTP request methods (verbs) like get, post, put, patch, delete, etc..
    • PATH is the URL path (or pattern) on the server. It starts with a forward slash (/) and can include static segments, route parameters, and other patterns.
    • HANDLER_FUNCTION is a function that will be executed when the route is matched. It receives two main arguments:
    • request (often abbreviated as req): An object containing information about the incoming HTTP request, such as headers, query parameters, route parameters, and the request body.
    • response (often abbreviated as res): An object used to send a response back to the client. It has methods like send(), status(), json(), etc..
    • Base Route: The simplest route is the base route, accessed by just the hostname and port (e.g., http://localhost:3000/). You can define a handler for the base route using app.get(‘/’), app.post(‘/’), etc.. If no route handler is defined for a requested path, Express will typically respond with a “Cannot GET /” or similar error.
    • Route Paths: Route paths can be simple strings, as seen in examples like /, /api/users, /api/products. They define the specific URL structure that the application will listen for.
    • Request Handlers: The request handler function contains the logic that will be executed when a client makes a request to a defined route. This function can:
    • Access data from the request object (e.g., query parameters using request.query, route parameters using request.params, request body using request.body after appropriate middleware is configured).
    • Perform business logic, such as retrieving data from a database.
    • Modify the response object to send data back to the client, set the status code, and control other aspects of the response. Examples include using response.send() to send text or JSON, response.status() to set the HTTP status code, and chaining methods like response.status(201).send().
    • HTTP Methods and Routing: The HTTP method used in the client’s request (e.g., GET, POST) determines which Express route handler will be invoked for a given path. For instance, app.get(‘/api/users’) will handle GET requests to /api/users to retrieve a list of users, while app.post(‘/api/users’) will handle POST requests to the same path to create a new user. Express allows you to define different handlers for the same route path based on the HTTP method.
    • Route Parameters: Express allows you to define dynamic segments within route paths called route parameters. These are denoted by a colon (:) followed by the parameter name (e.g., /api/users/:id). When a client makes a request to a URL matching this pattern (e.g., /api/users/123), Express captures the dynamic value (123 in this case) and makes it available in the request.params object under the name defined in the route path (request.params.id). This is useful for fetching or manipulating specific resources based on their identifiers.
    • Query Strings/Parameters: Clients can send additional data to the server in the URL after the route path using a query string. The query string starts with a question mark (?) and consists of key-value pairs separated by ampersands (&) (e.g., /api/users?filter=Anson&sort=username). Express.js automatically parses this query string and makes the key-value pairs accessible as properties of the request.query object (e.g., request.query.filter would be “Anson” and request.query.sort would be “username”). Query parameters are commonly used for filtering, sorting, and pagination of data.
    • Organizing Routes with Express Router: As an application grows, it’s good practice to organize routes into separate modules based on their functionality or domain (e.g., users, products). Express provides the Router class for this purpose.
    • You create a router instance using express.Router().
    • You can define routes on the router instance using the same HTTP method functions (router.get(), router.post(), etc.).
    • Once you’ve defined the routes for a specific domain on a router, you can then mount that router onto a specific path in your main Express application using app.use(‘/api/users’, usersRouter). This means that all routes defined in the usersRouter will be prefixed with /api/users in the application.
    • Using Router helps in keeping your main application file (index.mjs or similar) cleaner and makes it easier to manage and maintain routes for different parts of your API. You can even create an index.mjs file within your routes directory to act as a central place to import and register all your individual routers.

    In essence, Express.js routing provides a structured way to map incoming client requests to specific server-side logic, enabling you to build well-organized and scalable web applications and APIs.

    Express.js Request and Response Objects

    In Express.js, the request and response objects are fundamental to handling client interactions with your application. They are passed as arguments to every route handler and middleware function, playing crucial roles in receiving information from the client and sending data back.

    Here’s a breakdown of these objects based on the sources:

    1. The Request Object (request or req):

    • The request object contains all the information about the incoming HTTP request from the client.
    • It serves as a central repository for data sent by the client, allowing your server-side code to access and process it.

    Key properties and methods of the request object mentioned in the sources include:

    • request.headers: This property holds all the HTTP headers sent by the client. This can include information like the user-agent, content type, and importantly, cookies before they are parsed.
    • request.body: This property contains the data sent in the request body of HTTP methods like POST, PUT, and PATCH. By default, Express.js does not parse request bodies, so you need to use middleware like express.json() to parse JSON data into this object.
    • request.params: This object contains route parameters captured from the URL. When you define a route with placeholders (e.g., /api/users/:id), the values of those parameters are available in request.params (e.g., request.params.id).
    • request.query: This object holds the query parameters sent in the URL. These are key-value pairs that appear after the question mark (?) in the URL (e.g., /api/users?filter=name). Express.js automatically parses these into the request.query object (e.g., request.query.filter).
    • request.cookies: After using the cookie-parser middleware, this object will contain the parsed cookies sent by the client. Each cookie is available as a property of this object (e.g., request.cookies.hello).
    • request.signedCookies: If you are using signed cookies with cookie-parser, this object will contain the parsed and verified signed cookies.
    • request.session: After using the express-session middleware, this object represents the session associated with the client. It allows you to store and retrieve user-specific data across multiple requests.
    • request.user: After using Passport middleware for authentication, this property typically holds the authenticated user object.

    2. The Response Object (response or res):

    • The response object is used to send data back to the client and control various aspects of the HTTP response.
    • It provides methods to set headers, status codes, send data, and manage cookies.

    Key methods of the response object mentioned in the sources include:

    • response.send(body): This method sends the HTTP response to the client. The body argument can be a string, an HTML buffer, an object, or an array, and Express.js will automatically set the Content-Type header appropriately (e.g., text/html for strings, application/json for objects/arrays).
    • response.status(code): This method sets the HTTP status code for the response. It accepts a numeric status code as an argument (e.g., 200 for OK, 201 for Created, 404 for Not Found, 400 for Bad Request, 401 for Unauthorized, 403 for Forbidden). This method can be chained with other response methods like send().
    • response.sendStatus(code): This method sets the HTTP status code and sends the corresponding status text as the response body.
    • response.cookie(name, value, [options]): This method is used to set a cookie in the client’s browser. It takes the cookie name, the cookie value, and an optional options object to configure cookie attributes like maxAge, expires, domain, path, secure, httpOnly, and signed.
    • response.clearCookie(name, [options]): This method is used to clear a previously set cookie on the client by setting its value to an empty string and its maxAge to zero.
    • response.json(obj): This method sends a JSON response to the client. It automatically sets the Content-Type header to application/json and converts the JavaScript object or array to a JSON string.

    Interaction in Route Handlers:

    Within a route handler function, you typically use the request object to access data from the client’s request and the response object to send back the desired information or perform actions like setting cookies or redirecting the client.

    Example:

    Consider a GET request to /api/users/:id. The route handler might access the user’s ID using request.params.id, fetch the user data from a database, and then use response.json(user) to send the user data back to the client as a JSON object. If the user is not found, the handler might use response.sendStatus(404).

    Understanding the request and response objects and their properties and methods is crucial for building robust and interactive web applications with Express.js. They enable the server to effectively communicate with clients by receiving their requests and sending back appropriate responses.

    Express.js Middleware: Concepts and Usage

    Based on the sources, middleware functions in Express.js are functions that have access to the request object (req), the response object (res), and the next middleware function in the application’s request-response cycle, commonly denoted as next.

    Here’s a more detailed breakdown of middleware functions:

    • Role and Functionality:
    • Middleware functions act as an intermediary between the server receiving a request and the final route handler processing that request.
    • They can execute any code.
    • They can make changes to the request and the response objects.
    • They can end the request-response cycle by sending a response to the client.
    • They can call the next middleware function in the stack.
    • Arguments: Each middleware function receives three arguments:
    • request (req): Contains information about the incoming HTTP request (as discussed previously).
    • response (res): Used to send a response back to the client (as discussed previously).
    • next: A function that, when invoked, passes control to the next middleware function in the application.
    • The next() Function:
    • Calling next() is crucial for allowing the request to proceed through the middleware stack and eventually reach the route handler (or the next middleware).
    • If next() is not called within a middleware function, the request will be left hanging, and the client will not receive a response.
    • The next() function can optionally take an error object as an argument. If an error is passed to next(err), Express will skip any remaining non-error-handling middleware functions and will proceed to an error-handling middleware (though this is not explicitly detailed in the provided source). If no argument or null is passed, Express assumes everything is successful and moves to the next middleware.
    • Registration of Middleware: Middleware functions can be registered at two levels:
    • Application-level middleware (Global): These are bound to the entire application instance using app.use(). Middleware registered this way will be executed for every request that comes to the application, in the order they are declared.
    • Route-level middleware (Specific Endpoints): These are bound to specific routes. You can pass middleware functions as arguments to route definition methods (app.get(), app.post(), etc.). They will only be executed for requests matching those specific routes, and they are invoked in the order they are listed.
    • Order of Execution: The order in which middleware functions are registered using app.use() and the order in which they are passed as arguments to route handlers matters significantly. Middleware functions are executed sequentially in the order they are added to the middleware stack. If a middleware function sends a response and does not call next(), the subsequent middleware functions for that route will not be executed.
    • Built-in Middleware: Express.js itself provides some built-in middleware functions. The source mentions express.json(), which is used to parse incoming requests with JSON payloads. When registered using app.use(express.json()), it populates the request.body with the parsed JSON data.
    • Third-party Middleware: Many third-party packages provide middleware functions that extend the functionality of your Express application. For example, express-validator provides middleware functions like query() and body() to validate request data. These middleware functions perform validation checks and attach validation results to the request object. You then use the validationResult() function to check for any validation errors within your route handler.
    • Custom Middleware: You can write your own middleware functions to encapsulate reusable logic that you want to execute before your route handlers. The source provides an example of a loggingMiddleware function that logs the request method and URL. Another custom middleware example is resolveIndexByUserID, which was created to find the index of a user in a mock array based on the ID from the route parameters and attach it to the request object for subsequent middleware to use.
    • Reusability: Middleware promotes code reusability. By extracting common logic into middleware functions, you can apply the same functionality to multiple routes without repeating code. For instance, the logic to resolve a user by ID was moved into a middleware function and reused across put, patch, delete, and get requests for user-related endpoints.

    In summary, middleware functions are a powerful feature of Express.js that allow you to intercept and process requests before they reach your main route handlers, enabling you to perform tasks like logging, authentication, data validation, and more in a modular and reusable way. The order of middleware registration and the proper use of the next() function are crucial for ensuring the correct flow of your application’s request-response cycle.

    Express.js User Authentication Methods and Strategies

    Based on the sources, user authentication in Express.js can be implemented using various methods, ranging from basic credential checks to more sophisticated approaches using sessions, cookies, and dedicated authentication libraries like Passport.js.

    Here’s a discussion of user authentication based on the provided material:

    1. Basic Username and Password Checking (Without Sessions):

    • Source demonstrates a simple login endpoint (/api/off) that receives a username and password in the request body.
    • It retrieves a user from a mock users array based on the provided username.
    • It then performs a direct comparison of the provided password with the password associated with the found user.
    • If the user is not found or the passwords do not match, it returns an “unauthenticated” status (401) with a “bad credentials” message.
    • This approach does not involve maintaining any session state, meaning the user would have to authenticate on every request to access protected resources.

    2. Authentication Using Sessions and Cookies:

    • Source expands on the basic check by introducing express-session to manage user sessions.
    • Upon successful username and password verification, it modifies the request.session object by attaching a user property to it, storing the authenticated user’s information.
    • Express session then automatically sets a cookie in the user’s browser containing a session ID.
    • On subsequent requests from the same client, the browser sends this cookie back to the server.
    • express-session middleware uses the session ID from the cookie to retrieve the corresponding session data stored on the server (initially in memory).
    • By checking for the presence of the user property on the request.session object, the server can determine if the user is authenticated for subsequent requests. Source creates a /api/status endpoint that checks request.session.user to determine the authentication status.
    • Source further illustrates this by showing how different clients (Thunder Client and Postman) can have different sessions and be authenticated as different users simultaneously, with the server managing multiple sessions.
    • Source introduces cookie-parser middleware, which parses cookies from the request.headers and makes them available in the request.cookies object. This is necessary for express-session to function correctly.
    • Source also briefly discusses using cookies for basic authentication checks, where the presence or value of a specific cookie determines the server’s response. However, the primary use of cookies in the context of these sources is for maintaining session IDs.
    • Source also touches upon signed cookies for added security, requiring a secret to be provided to cookie-parser.

    3. Authentication with Passport.js:

    • Sources through extensively cover using Passport.js, a popular authentication middleware for Node.js.
    • Passport supports various authentication strategies, including:
    • Local Strategy: Source details how to implement local authentication (username and password stored in the application’s database).
    • It requires installing passport and passport-local.
    • A Local Strategy is defined with a verify callback function. This function receives the username and password from the request and is responsible for:
    • Finding the user (e.g., in a database).
    • Verifying the password (comparing the provided password with the stored password, which should be hashed for security). Source introduces bcrypt for hashing passwords and bcrypt.compareSync for comparing them.
    • Calling the done function with an error if authentication fails, or with the user object if authentication succeeds.
    • Serialization (serializeUser) and Deserialization (deserializeUser): Passport uses these functions to manage the user’s identity within the session.
    • serializeUser determines which data from the user object should be stored in the session. Typically, only a unique identifier (like the user’s ID) is stored.
    • deserializeUser is responsible for retrieving the full user object from the stored identifier in the session on subsequent requests. This user object is then typically attached to the request.user property.
    • Passport Middleware: app.use(passport.initialize()) initializes Passport, and app.use(passport.session()) integrates Passport with express-session.
    • The passport.authenticate(‘local’, …) middleware is used on the login route to trigger the local authentication process.
    • OAuth 2 Strategy (Discord as an Example): Sources explain how to implement authentication using a third-party provider like Discord via OAuth 2.
    • It requires installing the specific Passport strategy (e.g., passport-discord).
    • An OAuth 2 Strategy is configured with details obtained from the third-party provider’s developer portal, such as client ID, client secret, and redirect URL (callback URL).
    • The strategy also defines a verify callback. In the OAuth 2 flow, after the user authorizes the application with the third-party provider, the provider redirects the user back to the application’s redirect URL with an authorization code. The verify callback receives access tokens, refresh tokens, the user’s profile information from the provider, and a done function. It’s responsible for:
    • Checking if the user from the third-party provider exists in the application’s database.
    • If not, creating a new user record (often linking it to the third-party account’s ID).
    • Calling the done function with the user object.
    • Similar to local strategy, serializeUser and deserializeUser are crucial for managing the user’s session after successful OAuth 2 authentication.
    • Specific routes are set up to initiate the OAuth 2 flow (e.g., /api/oth/discord) using passport.authenticate(‘discord’, …) and to handle the callback from the provider (e.g., /api/oth/discord/redirect) also using passport.authenticate(‘discord’, …).
    • Scope: When setting up the OAuth 2 strategy, you can specify the scopes (permissions) your application requests from the third-party provider (e.g., ‘identify’, ‘guilds’, ’email’ for Discord).

    4. Session Stores for Persistence:

    • Source addresses the issue of session data being lost when the server restarts (as it’s stored in memory by default with express-session).
    • It introduces session stores (e.g., using the connect-mongo package for MongoDB) to persist session data in a database.
    • By configuring express-session with a session store, session data is saved to the database, allowing sessions to be restored even after server restarts.

    5. Logging Out:

    • Source shows how to implement a logout endpoint (/api/oth/logout).
    • It uses the request.logout() function (provided by Passport) to clear the user’s session.
    • After logging out, subsequent requests to protected resources will fail authentication.

    In summary, the sources demonstrate a progression of user authentication methods in Express.js, starting from basic checks to utilizing sessions and the comprehensive Passport.js library for both local username/password authentication and integration with third-party OAuth 2 providers. The importance of secure password handling (hashing) and persistent session storage is also highlighted.

    Express JS Full Course

    The Original Text

    hello everyone my name is Anon and in this tutorial I will teach you how to build a web API using the expressjs framework Express is the most popular server sided web framework in the node.js ecosystem it is widely used by many developers it’s in over 20 million projects according to GitHub it has over 27 million weekly downloads according to npm and it is used by a lot of companies ranging from startups all the way to Fortune 500 companies but why is it so popular though well mainly because expressjs is very easy to learn it makes it very easy for you to set up an API in less than 30 seconds it’s unated which means there’s not much if not there’s really not any overhead at all you don’t have to worry about configuring a bunch of different properties in your application before you can actually use it all you have to do is just in install the package instantiate the express app and then listen to a port and then begin listening to requests that’s it there’s no right or wrong answer when it comes to building web apis using a framework that is unopinionated like expressjs and because of that that is why till this day over the past perhaps 10 years now Express is still the dominant framework that many people choose to use whenever they want to build their next project now for those of you who are not really familiar with how web apis interact with other applications I have a simple diagram over here that we’re going to go over right now expressjs remember is a serers sided application so pretend that right over here on the right hand side this server is our is where our express application is going to live and then we have our clients so these are typically just regular users that will use your application either on a mobile device such as a phone or a tablet or they’ll use it on a computer either via the web browser or a desktop client now let’s say for example we have an e-commerce website and that e-commerce website when you visit it it displays a list of products those products needs to come from somewhere they don’t just randomly appear when you click on those products you can see more information about it but where does that information come from where does all the data come from well most of the time it comes from a server comes from a web API but the client doesn’t just automatically receive that data from the server the client needs to make what is called an HTTP request HTTP stands for hyper text transfer protocol it pretty much just means hey this is how I want to exchange data with you okay there are many different types of protocols but HTTP is one of the most popular ones out there so let’s go back to our example of the e-commerce app the moment that you visit the homepage of the e-commerce app what happens is the code on the client side will make an HTTP request to the server side application okay in our case it will be the express API the express API will receive that request and it will say okay I just received receive the request to send back a list of products for the client I don’t care how the client uses it I don’t know what they’re going to do with it but my responsibility is just to get that list of products and send it back to the client so what the server will do is it’ll perform some business logic and then it will produce an output okay in this case the output is retrieving the list of products and the client itself never actually sees this operation going on so think of it like this let’s say you’re at a restaurant and you sit down you’re at a table the waiter comes to you the waiter in this case is the server the waiter asks you what you want you request the waiter hey this is what I want to eat the waiter will send that request back to the kitchen back to where all the chefs are working so you can think of the kitchen like the server you never actually see what’s going on in the kitchen all you know is that after a certain amount of time the waiter will come back with a response in this case that response is going to be your food in our case for our e-commerce application the response that we are getting from the server is going to be a list of products hopefully that makes sense and now we are finally ready to dive into setting up our expressjs project and writing some code so let’s go ahead and get started so right inside my windows Powershell I’m going to go ahead and create a new directory and I’m going to call this expressjs tutorial I’m going to go ahead and CD into that directory and let me just clear up my console I’m currently using using node.js version 2.4.0 as of right now the time of recording this video however there hasn’t really been any major breaking changes with expressjs between different node.js versions so even if you’re using an earlier version or a later version you really won’t run into any issues at all so don’t worry about that so let’s go ahead and type npm init hyphen y to initialize this folder as an npm repository and this will give us a package.json file that’s generated for us and and let’s go ahead and open up visual studio code or whatever text editor you prefer to use and let’s just take a look at this package Json file and there’s nothing in here uh for the dependencies just yet we need to install it so let’s go ahead and install Express so I’m going to type npm I or install I is short for install and then Express and just hit enter and now this will install Express for you and that’s it that’s the only package that we need to install it’s that simple let’s go ahead and install actually one more tool for development I’m going to install nodemon and what nodemon allows you to do is run your application in watch mode so as you’re saving changes to your source code the process will automatically restart based on file changes so you don’t have to manually exit out of the process and restart it again so I’m going to install nodon as a Dev dependency so I’m going to use the hyphen D flag as you can see right down over here let me zoom in a little bit more and I’ll type nodemon okay and what I’m going to do is I’m going to set up uh a script so right inside the scripts object I’m going to set up a start colon Dev script and this will use nodemon to run our our main Javascript file so that file doesn’t exist yet we need to create it but I’m going to go ahead and create a folder called Source in just a bit and the main file will be called index.js so this will be the entry point to our application I’ll create one more script called start and this will just be a simple script to just use a regular node command to run our application so not in watch mode so this will typically be for production when you’re ready to deploy the API now there’s one more thing that I want to do inside this p package.json file I’m going to go ahead and set this type property and you can see that there’s two values uh commonjs or module I’m going to set it to module and what this will allow me to do is use esm as my module system so that way I can use the modern import export statements instead of having to use require to import modules and module that exports to export stuff because I’m using uh esm modules I need to actually change the file extension to MJS in order for this to work so let’s go ahead and do that and don’t worry everything will still work fine it really doesn’t make much of a difference except for you have the latest um modern versions of importing and exporting modules that’s really all it is for let’s go ahead and continue I’m going to go ahead and create a new folder called Source SRC and I’ll create a new file called index. MJS and now what we’re going to do is we’re going to import Express from Express just like that so I’m basically importing the entire Express module from this Express package now the imported value of this Express name is actually a top level function and we need to call this function in order to create an express application so what I’m going to do is I’m going to first declare a variable let me zoom in a little bit more I’ll call it app and then I’m just simply going to reference Express and then invoke that function by using parentheses and that’s all and that’s all you have to do now that we have our Express app I can reference the app variable and whenever I use the dot operator you can see that there are a bunch of different methods and properties that I can reference now it might be a little bit overwhelming at first but don’t worry the method that we need to call is the listen method and this pretty much allows you to listen to a port for incoming requests this is actually what starts up the express server on a specific port and then you can begin receiving incoming HTTP requests so let’s go ahead and set a port Port uh you can pass in really any port you want I’m going to go ahe and pass in Port 3000 but instead of just passing in a hardcoded number for the port for best practice it’s best to assign your port to a variable called port in this case and then you can reference process which is a global in node.js and then process has an object called EnV and from here you can access your environment variables so we would assume that there is going to be an environment variable for ports but if the environment variable for Port is undefined then we can have it assign this leftand value with our logical or operator right over here let’s go ahead and reference app now and call. listen and pass in Port and then I’m going to go ahead and pass in a callback function so you can use this to perform post-processing operations once your server has uh started up so maybe if you want to send an event to some centralized logging system so that way they know that the server was just started up at this time you can do that inside this callback function however I’ll simply write a console log and I’ll use string interpolation um and then I’ll go ahead and write running on Port and then I’ll log the port okay so let’s go ahead and start up our application and make sure that it works so I’ll go into the terminal now and I’m going to run that start Dev script so let’s type npm Run start colon Dev and now you’re going to see that nodemon will start up this application and you can see that now it says running on Port 3000 now if you want to test this out you can simply just go to your web browser and just type Local Host colon and then the port number that you are listening to requests on since I’m listening to requests on Port 3000 I would type Local Host colon Port 3000 right now you can see that it says cannot get and this is because we don’t have anything registered just yet okay we need to actually register what’s called a route in order for us to start requesting something from the server and then receiving a response so hope hopefully this all makes sense so now that you finally know how to set up a simple web server using expressjs I’m going to show you how we can Define routes and access those routes to receive different responses but first of all what exactly is a route well think of it like this currently we were trying to access Local Host Port 3000 okay and this was the base route and we actually don’t have anything set up up to be returned from the base route so whenever we try to access it that’s the reason why it said cannot get slash because we didn’t have any resolver to map a response back to that route but a route in general is think of it like a path in your express application so determining which path you want to take gives you different outputs so for example if you go to let’s say the users route let’s say if I have a users route defined on my server this will give me a list of users if I wanted to get a list of products I would access the products route and all you do is just you just add this forward slash and then the name of the route at the end of the host name and the port in actual real uh applications that are deployed you typically don’t have the port uh exposed like this so it would just be after the host name like something like Local Host test.com products okay so you define these routes on your Express server and then you allow your clients to make requests to those routes now remember how in the introduction I mentioned in order to request data from the client to the backend server you need to make an HTTP request well there are actually different types of HTTP requests and these are known as HTTP verbs so these verbs pretty much are ways on how you can tell the server to perform some operation so for example you don’t always want to just get data sometimes you might want to create data by saving it to the database once it’s reach the server sometimes you want to update data sometimes you want to delete data there are different types of request methods that we use to handle these operations and you’ll learn that later on but first let’s go ahead and set up a simple get request so let’s go ahead and reference the app and we’re going to go ahead and call this get method right over here and and it’s going to take in an argument which is going to be a string as the first argument and right over here is where you can specify what route you want to register in your Express app So currently I don’t have any route handling the base SL route so I’m going to go ahead and configure a route for that so whenever the user visits this route They will receive a response but we actually need another piece in order for this whole thing to work we need what is called a request Handler and that is actually the second argument to app.get so the request Handler is just a function but in this case it’s a callback function so it would look like this so I’ll pass a simple arrow function and this callback function has two arguments okay it has a request argument which is the request object itself this contain contains everything related to the incoming HTTP request so for example if you passed in HTTP headers from the client side to the server side that would be inside the header property in the request object if you were to send data in the request body that would be accessed by grabbing it from the request body property if you wanted to access cookies if you wanted to access the IP address all of this stuff comes from the request object okay now the second argument is the response object the response object is what you can use to modify the response and send it back to the user so you can set the status code as an example you can send back uh data you can send back text you can send send back HTML you can send back text you can send back HTML you can send back a Json object whatever it is that you want so let’s go ahead and reference the response object to to send back a response so I can reference response and call the send method and I’ll just send back a simple hello world string just simple plain text so now if I visit the Local Host Port 3000 and if I go to just the base route you can see it says hello world okay pretty simple I can go ahead and also send back a Json object I’ll say hello I refresh I now see it is parsed in this Json format right over here uh I can also set the status code as well so I can do that very easily by referencing response. status and this is a method so you can just pass in whatever status code you want I’ll set it to just for a demonstration purposes I’ll set it to 2011 2011 is actually used for post requests whenever you create a resource but I just want to show you that this is what the status code is because by default the status code whenever it is successful is a 200 status code okay and after you set the status code you can actually chain these methods together so after I call status I can also just call do send and then just pass in a requ a response body so now if I refresh and let me open up the uh let’s see the network tab right over here you can see that now the status code says 2011 let’s let’s go ahead and Define a few more routes so that way you all get the hang of this so I’ll go ahead and Define a route uh called slash users now whenever you are building apis you typically want to prefix all of your endpoints with a slash API prefix and this is industry standard a lot of companies that have apis do this it’s just good practice so I would highly recommend you all to follow this approach okay so/ API SL users so this is now our route so whenever we access this in our browser we don’t visit SL users we’re visiting SL API users okay so as a second argument we need our request Handler of course so let’s pass in the request and response object and what I’ll do is I’ll simply just send back an array of fake users so I’m just going to pass in an array in the send method as an argument and in my array I’ll just provide some users so I’ll set the ID to one username ansen display name Anson we’ll keep it simple I will just copy and paste this a few more times and just change up the values so let’s do Jack and then Adam now let’s save okay and now whenever I go to the browser and let me just kind of like move this over to the to the side a bit when I go to slash API users this is the route or the endpoint I’m going to use those terms synonymously route and endpoint this is the route that I am going to be making a request to from the browser in this case the browser is our client okay we’re making a request to SL API users and then when I hit enter you can see as a response this is what I get back I get back this array and this array has three users okay and if you were getting this data let’s say on your react code you would render this out to the client so they can actually see all the users okay let’s go ahead and create one more Let’s do app.get let’s do uh SL API SL uh products request and response so now you should get the hang of doing all of this and the whole reason why I’m showing you multiple examples is that way so you are familiar with this so once again we have our endpoint our route name defined right over here/ API products and then we also have our request Handler and I’m going to go ahead and send back a response now so I will reference the response object and I’m going to go ahead and call do send and then what I’ll do is I’ll just send back an OB uh a Json object which is this in this case is going to be an array and I’ll do the same thing ID of let’s do one two 3 username or what am I doing not username uh let’s do name let’s do chicken breast and then price let’s do $12.99 okay and now if I go to the browser and if I visit SL API product I’m making a request to this route it’s going to give me that array of products and I can see this stuff right over here so now what I will do is I’ll show you how we can use route parameters to be able to dynamically pass data to the server in the route and this can actually make it so that we we can receive Dynamic data based on whatever the value of that parameter is so I’ll give you an example right now we are only able to receive all of the users let’s just pretend that this users array comes from a database we are receiving all of the users in an array but what if I wanted to actually receive only one user based on some unique identifier such as the username or the ID how would I do that well this is where route parameters come into play you can use route parameters to pass in a dynamic value in the route path and then the server would receive that request it would check what the route parameter is and then since we know that we’re going to be dealing with users because we would be visiting SL API users and then the route parameter would be placed after that we would go ahead and grab the correct user from our database in this case we’re going to grab it from our array so the way that you define a route parameter is like this so right underneath uh my AP API SL users route I’ll go ahead and set up another one but this time we will be using a route parameter so I’ll call app.get and then SL API SL users and then slash and then here’s where I want to Define my route parameter what I can do is I can use the Colin symbol and then give my route parameter a name I’m going to go ahead and give the name ID and then we’re going to pass in a request Handler so the same that we’ve been doing so far and now whenever I visit SL API SL users and then slash and then the ID whatever I pass in it’s going to go ahead and hit this endpoint so I have one endpoint or one route defined to give me all the users and then I have another route that has a route parameter that gives me a single user record based on the route parameter ID let’s go ahead and do this I’m going to show you first first how I can grab that route parameter and we do that by referencing it from the request object so I can go ahead and console log this right now if I reference request. prams this is an object that gives you all of the route parameters because you can have multiple you don’t need to only necessarily have one you might have more than one you might have an ID maybe you might have a username but typically in our in this situation we we really only need one so what I’ll do is I’ll console log this and I’ll go back to my browser and I’ll show you what happens when I visit SL API users and then slash1 and then let me show you the console you can see that right over here the console logged an object and that object contained that route parameter as a field ID and then it mapped to this value of one so hopefully that makes sense so I again like I said I can pass in literally any value I want I can pass in 500 and then whenever the server receives that request it will log uh this object ID as a field of 500 so what I’ll do is I’m going to go ahead and grab the user from the array by its ID so let me just First Take This array and I’m going to move it up top over here so that way I can reference it all throughout my code const uh mock users and I’ll sign it to this array and then let me just send back that mock users array and then what I’ll do is a couple things one notice how if you looked at the logs the value of ID is actually a string but in our case our users have a numeric ID so we want to convert that into an actual number and this is kind of like a brief little intro to how you can perform valid ation for your incoming get requests okay so what I’ll do is I will create a variable called par ID and I’m going to use the parse in method and I’m just simply going to pass in request. prrams do ID but here’s the other problem though we don’t know if uh the user even provided an ID at all well if they didn’t then it would go to the API users route like for example if I didn’t pass in an ID it would just go to/ API users so in because this is the case we don’t really need to check if ID is defined because we know that it’s going to be there but we do need to make sure that the value is valid in our case we want to make sure it’s a valid numeric value so what I can do is I can parse this uh pam. ID value and if it is a valid numeric string then it’ll convert it over to the actual integer itself if it’s some regular non-numeric string then it will be not a number so if I were to conso log par ID and then if I go to the browser and if I refresh and I just pass in some invalid numeric or some non-numeric ID and the console it will log not a number Nan which stands for not a number for the par ID value so we can use uh an if condition and we can use this is not a number function and then I can just pass in par ID okay and in this case since we’re passing in an invalid ID is Nan would return true so if it is not a number then what I want to do is I want to return perhaps a status code that indicates that this is an invalid response or this is an invalid request so what I’ll I’ll do is I will return response and I’m going to go ahead and call the status method and I’ll pass in for the code the number 400 which means bad request and then I’ll just simply call send and then maybe an error message bad request okay and I can even add additional additional notes invalid ID all right so now if it is in fact a valid number then we can perform some operations we can interact with our mock users array so I’m going to go ahead and now write the logic to find a user so const user or find user equals mock users and I’ll just simply use the find method and I’ll pass my predicate so we’re going to search based on the ID so we’re going to pass in this callback function or predicate function and we we’re going to have access to the user object that is currently in the array and we’ll check to see if user. ID matches so triple equals pars oh whoops did I oh you know I forgot this is actually par ID sorry about this it’s pars ID not parse ID so pars ID okay and now uh if the user does exist well let’s do if the user does not exist then I’ll just return response so we’re going to do the same thing that we did above on line 29 right over here so this is the point where you have different paths that your controllers or that your request handlers can take so in our case we have three different outputs and later on around the end of this tutorial you’ll learn how to unit test these these uh these functions but you can see right over here that currently I have three different outputs whether the ID that I passed was invalid so it sends back a 400 or if the user is not found then we want to send back a 404 because that indicates not found so I’ll return response. status and pass in 404 or you know there’s also the uh I think there’s a send status method so that way I can just send the status and I don’t have to send I don’t have to call do send again at the end um and then if the user is found then we’ll just return response dot send find user just like this so we have three different possibilities for this endpoint okay so hopefully that makes sense now let’s go ahead back into our app if I refresh you can see it says bad request invalid ID if I pass in let’s say an ID of a user that does not exist it says not found and you can see on the console it gives us that 44 if I pass in an ID of one it finds the user and I can see it right over over here and same thing if I pass in two and three I get all of the users that are in that array so hopefully that shows you how to use route parameters so now I’m going to go ahead and talk about query strings and query parameters and how they are used in backend development and now we can actually use them ourselves so many of you may have seen something at the end of the website address so in the browser address URL you might see this question mark and then you might see something like key equals value and then you might see an ENT symbol and you might see another key equals value this is known as a query string so right over here this question mark symbol denotes that we have a query string and they go at the end of our uh defined route over here okay so you have the domain and then the route the path and then the query string at the end and then after the question mark you basically just pass in whatever key value pairs you want so for example I have uh a key called key and I use the equals operator to assign a value to it so it’s kind of like assigning a value to a variable but only we’re doing it in the address bar so key equals value and if I wanted more query parameters in the query string I can just simply use this ersan as a delim so ersan and then the next key value pair so key 2 equals value 2 I can have as many query parameters as I want now there are different ways that you can use Query parameters in web development you can send query parameters from a page to another page on the client side so that way you can send data uh across different pages so let’s say if one page needs data from another page when you’re navigating then you can grab the the values from the query query string if you’re sending it from the client side to the serice side typically you would send a query string to uh add additional data to the request that you normally wouldn’t add in a request body we haven’t gotone to post requests just yet but I’ll stick to a get request as an example so when you make a get request remember that you are performing a request an HTTP request to get data in readon format you’re not manipulating any data at all on the server side so sometimes you might need to retrieve the data but you also want to have that data already um manipulated in a certain way on the server side so for example up top over here I added a couple more user objects so let’s say I have this users array and let’s pretend it’s from the database and let’s say I want all of these users returned back but I wanted it sorted in alphabetical order based on the username or you can also have it sorted based on the display name maybe you might also want it sorted in um from least to greatest based on the ID value since these IDs are integers so you would use a query string to do that let’s say if you also want to filter out some results from the users itself maybe you don’t want to get every single user from the database you only want to get only specific users that match whether their user matches a substring so maybe I only want to get all the users that have an A in their username field so hopefully that makes sense with query parameters and how they can be used so let’s go ahead and see how we can actually send query strings and query parameters to our server so inside my/ API users route inside the request Handler function I’m going to go ahead and consol log this request. query object remember how I said earlier the request object has everything that you can possibly get in regards to the request itself so earlier we referenced request. prams to get the route parameter so to get the query parameters from the query string we just reference request. query so let’s go ahead and send a query string when we are making this request to the SL users end point so I’m going to use the question mark symbol and then provide some key value pairs I can literally pass any key value pair I want so let’s do something like filter and we’ll assume the filter is going to be based on username um so I’ll do filter uh Anson and I’ll go into my console uh let me actually just rerun the request so you see how whenever I send a request a get request to that endpoint in the console it logs that request query object and it has the filter which is the key that I passed in the query parameter filter it is showing up as a field in that object that query object and we have the uh string Anon as the value so the query string gets parsed into a Json object by Express so we can very easily grab the values let’s go ahead and actually do something realistic with the filtering so what I’ll do is this I want to make it so that I can filter based on sub some substring so I want to go ahead and also make it so that I can also set which field in this mock users array in in these objects I want to make sure I can set which field I want to filter on so maybe I want to alternate between filtering by username or display name so for the filter value we can expect it to only be two possible values username or display name and this will tell us what uh key in the user object what field to filter by or yeah what what field to filter and then we will add an additional query parameter can call it whatever you want but I guess we can call it a value just to keep things simple and then this this value will basically be the uh the text the substring that you want to have that username contain so if I want to filter everything where it contains the an substring so a an substring then we would have to search for that okay so I’m going to send these two query parameters to the server okay so now I’m going to go into go back to the request Handler for the users endpoint and what I’ll do is this I’m going to destructure that query object from the request object and then I also want to destructure from the query object the two query parameters filter and value and I can do that all in one go like this so I can use so after query I can additionally destructure properties from query so let’s do filter and value and so what I want to do is I want to make sure that both of these query parameters exist because of course if they don’t exist then we’re not going to do any filtering at all so the easiest case that we can handle is we check to see if both of these values are undefined because if they are then we don’t need to do any filtering we just return mock users as is so we’ll you write an if case if there’s no filter and there’s no value then we will just simply return response. send and then call or not call uh pass and mock users in this do send method call okay that’s the easiest case I’ll write a simple comment when filter and and value are undefined okay and we always want to make sure that both of these query parameters are defined because you need both of them of course you can’t have a value and not know what field in the user object you want to filter by and if you have the filter query parameter defined you need to make sure you have an actual text that you want to filter uh that you want to filter based on so we need to make sure that both of these are defined so we’ll do if filter and value if filter and value we will return and we’ll call response. send and from here I should just be able to write a simple filter function so mock users I can use the filter function on the array and pass in a predicate so what we’re going to do is we’re going to pass in this callback function also known as a predicate function and this will this call function has uh the user as an argument and then what we want to do is we want to filter out all of the we want to filter all the user objects that match that have that value as a substring so it’s pretty easy we can do user. username because remember we’re filtering by by the username or actually it would be user square brackets filter okay and this is assuming that filter would either be display name or username so user filter so this would grab the correct field and then we would want to so this is a this is going to be a string so we would want to make sure we check to see if the string contains that substring so we actually have this um includes and this method returns true if search string appears as a substring of the result of converting this object to a string okay so I can pretty much call do includes and I’ll pass in the value so this will filter all of this will basically grab all of the user objects that pass this predicate so if the user and whether we are filtering by username or display name if let’s say for example let’s stick with username if the username includes the value that we’re trying to filter then it’s going to return that into a new array and then once all of the filtering is done we’re going to send the entire array back so let’s go ahead and test this out so right now if I let’s do this if I don’t have any of the query parameters at all you can see that it will just return the array as is okay it doesn’t uh it doesn’t do anything we have everything sorted we have everything the way it is nothing is sorted nothing is done let’s go ahead and add a filter so filter let’s filter by username and now notice how if I were to only have the filter but no value you’ll see how it doesn’t return anything yet the request is still pending that’s because we need both filter and value okay we’ll handle these cases as well so let’s go ahead and handle a case where we have both filter and value as a query parameter so for the value query parameter I will set this to be a n and now you’ll see this will grab me all of the user objects where the username has a n as a substring and if you look right over here it seems to be filtering correctly uh I can go ahead and do another simple case where let’s filter the username where it includes e as a substring and you can see that seems like the only username that I have that has an e as a substring is Henry okay uh let’s see what else let’s try um let’s try a I have 1 two 3 4 five so it’s missing uh this object Henry so our filtering is working great okay so let’s just finish this out um so let’s make sure we handle all the other cases where if we don’t have both of these um both of these defined then we return the same mock users that is in memory so we don’t do any filtering at all so I think the easy thing to do is actually this instead of uh doing this if check right up here where we check both a filter and where we check if there’s no filter and there’s no value what we’ll do is we’ll check if there’s fil filter and if there’s a value and if this condition fails that means it only has one or the other defined or both are undefined so then we’ll just return response. send mock users so I just realized that I’m going to fix that real quick and now when I go back to the browser if I only have one query parameter it won’t do any filtering at all okay hopefully this makes sense now that you all know how to retrieve data from the express API using get requests I’m going to show you how you can create data using what is called a post request now let’s say for example you want to create a resource on the backend and that backend will save it to a database or save it to a file or save it just somewhere doesn’t matter where it is you want to create let’s say a user so your client your front-end application will have a user form they fill out their username password email and other additional Fields once they are ready they will click that signup button when you click that sign up button it will make an API request to the backend doesn’t have to be necessarily an Express API server it can be really any API server that’s running that handles that post request okay so the front end the client side would make an HTTP request a post request to the server okay okay once the server receives that request the server needs to obviously be able to grab the data that we’re trying to send from the client side to the backend and that data that you’re sending is known as a request body so whenever you make post requests the data that you want to send to the backend server you send it via a payload or a request body you use those terms synonymously so payload request body are interchangeable terms the backend will then take that data and it will perform the necessary operations in need so typically validation if it needs to do additional parsing if it needs to make sure that it has the proper Fields it will do all that stuff before it can proceed with either saving it to a database or saving it to some external API Source whatever it is I needs to do once it’s done saving that record to the database or somewhere it will return a 2011 response which or 2011 status code which typically just means that the resource was created sometimes it might also return the new record that was created so that way if you need to use it on the client side for whatever reason you can do so now before we actually can make any post requests we do need an htgp client to actually uh make those requests and also be able to send a request body to our Express API because on the browser there’s no built-in tool that enables you to send request bodies unless if to write the code in the JavaScript console but we’re not going to do that um so there are different uh clients that you can use to interact with your API So currently we’ve just been using the browser which we limited to just making get requests by simply typing in the address in the address bar we want to be able to make post requests where we can send actual data okay so you can use tools like Postman there’s also Hopscotch which is an alternative to postman for this tutorial I’m going to keep things simple I’m going to keep everything inside vs code and we’re going to install this extension so on the left hand side or um wherever you have this extensions icon just click on extensions and you want to search for an extension called Thunder client and thunder client is a very lightweight rest API tool for VSS code it’s integrated in there you just have to install it and it allows you to make API calls to your Express server so I’ll go ahead and click install Okay and then I’m going to go just close this and then let’s go ahead on the left hand side you should see the Thunder client appear right over here as an icon that’s the Thunder client and I’ll click on it and now what I can do is I can create a new request by clicking on the new request button and you can see now it looks it it looks kind of identical to post man if you’ve used it before or really any other rest client but we have an address bar where we can uh type in the address or the URL that we want to make requests to so I’ll type in Local Host Port 3000 API users I’ll make a get request so I can select this drop down and select get and I’ll click Send and you can see that it gives us back the data just like that okay and we’re going to use this client to switch between different types of HTTP requests that we want to make so we’ll switch from get to post and then in later videos when I show you how to handle put requests or delete requests we will switch to these HTTP requests as well okay so let’s close this out just wanted to show you all how to set up thunder client so now what I’m going to do is set up our post request to be able to create a brand new user so what I’m going to do is right underneath my uh API user users route I’ll go ahead and reference the app variable and since I want to register a post request I’m going to go ahead and call the Post method so this method is very similar to all the other HTTP verb methods such as get put delete uh it takes in a path so over here I’m going to go and pass in/ API users now you’re probably wondering well should we be able to reuse the path and the answer is yes because you have a different HTTP request type being used so this is for post request and the one over here is for get requests okay when your HTP client is making requests the server knows if it’s making a get or a post request so that way there’s no confliction between these two different types of requests despite the route being the same so we’ll also pass in a request and response or we’ll pass in the request Handler function which will have these two arguments request and response and then for now I will just return a response. send I’ll just pass in a 200 status code or I’ll just pass in 200 and I’ll just console log the request body just so that we can see what our data is looking like when we send it from the client so let’s go back to thunder clients I’ll click on the Thunderbolt icon I’ll click on new request and up top where you see gets just click on that drop down and select post and we’re going to change the url and we’re going to type in Local Host Port 3000 API users okay so once again we have uh we have two different types of HTTP uh methods but they both use the same path okay so whenever I call a post request to SL API users I don’t even need to send any data for now it’s just going to give me back a 200 status code now I can go into the body tab in my thunder client and I can select Json if I want to send Json so if I try to send a request body let’s see what happens let’s click Send so in the console log for our in our terminal you can see that right now it’s actually logging undefined when I try to send it again it still logs and you’re probably wondering well what’s going on with this why is it undefined well the reason why it’s undefined is because right now by default Express is not parsing those request bodies that are coming in so whenever I am sending Json to the express server the headers set the content type to application Json Express doesn’t parse those payloads by default so we need to tell Express to do so now this is going to require us to use a middleware so this is kind of like a brief little intro to middlewares but don’t worry so much about it once we actually get into the topic of middlewares you’ll better understand how they work but all middleware is is just a function that is going to be invoked before uh certain API requests are being handled so in my case I want to make sure that right before my post request is being received I want to make sure that that middleware that parses the Json payload accordingly is being invoked so you typically want to register your middleware as early as possible so the best way to do it is doing it up top after you create your Express app instance so I’m going to go ahead and reference app and I’m going to call the use method and this is the method that you use to register middleware and the middleware that we’re going to register is actually already built into Express so I can just reference Express and call this Json method okay so now you can even read over here it looks at requests where the cont type header matches the type option so in this case this is express. Json there’s also other um uh there’s also other things that you can uh parse to like let’s say if you’re trying to send text or if you’re trying to send uh URL encoded or raw data so hopefully that makes sense so in our case we’ll keep it as Json and let’s go ahead and see what happens if I send the request again so let’s go back into our under client I’ll click Send I’ll just click it again and now watch this you can see that in the console it is logging that request that that request body that I am sending to the express server and I can literally add as many fields as I want I can add a display name let’s do Anon the dev click Send again and you can see that it is being logged right over here okay perfect Perfect all right cool now let’s go ahead and actually do something with the data so like I said right now we don’t have an actual database so all I’m going to do is just push this user to the array so uh to do that what we’ll do is we’ll assume that the request body is valid but then in the next section I’m going to show you how we can actually validate the request body so I’m going to go ahead and create a variable called new user equals so we need to actually grab all of the fields from the request body but we also need to attach an ID to the request body and once again since we don’t have a database to manage our uh IDs because typically the database is responsible for generating those IDs all I’m going to do is just take uh the last element the last user in the mock user array uh take the ID of that last user add one to it and assign that to the new user the new new user’s ID okay so what I’ll do is I’ll first do this mock users so I’m just going to reference mock users um and then I’m going to want to get the last element so mock users. length minus one okay so the length of our array is going to be seven and I want to reference the last element so that’s going to be at index six because remember arrays are indexed at arrays are zero indexed and then we’re going to reference ID and just add one I know this is kind of like a hacky way to do it but I just want I’m just doing it just for a very simple example and then what I’ll do is I’m just going to sign uh or I’m going to destructure the request body so I’m going to destructure body from the request object and then I’ll just simply use the spreader operator on the body object to take all the fields from the body object and unpack it into this new object that I am creating that is assigned to new user and then I’m just then going to uh reference mock users. push new user and then I’m going to go and just return the new user and remember we want to send back a status code of 200 or I’m sorry 2011 because if I were to send this right now you you can see that I do get back the user but it sends back sends me back a 200 and for good practice you want to make sure the post request sends a 2011 so I can just set response. status call the status method and pass into a one and then call do send so we did this in an earlier part of the tutorial where we were making get requests right over here okay so let’s go ahead and test this out click Send all right so you can see whenever I click Send it will just keep creating a new user and it’ll send it back to uh the client which is this uh Thunder client as a response and it has the ID Auto incremented so that’s pretty cool all right so aside from get requests and post requests there are also a bunch of other HTTP request methods that you can use to handle in your Express API however you don’t need to know all of them but there are three others that I think is worth knowing about okay because you will be seeing them everywhere in documentation when you’re working with apis and you yourself will need to use as well so let’s talk about it so the other three are the put request patch request and delete request methods okay put and Patch request both are used to update data but they are technically different on how you update data so to better understand put requests let’s first talk about patch request first so let’s say for example you want to update some data on the backend using our users example let’s say I want to update one of my users uh username so maybe I want to change my username from anen to Anon 123 I would do that using a patch request okay a patch request updates a record but it updates it partially and what that means is you’re not updating the entire user itself you’re only updating a partial field you’re only updating a portion of that entire user record so instead of updating everything of that user record you’re only updating username you’re not updating username and display name okay so hopefully that part makes sense now with put request you’re not actually just updating a partial entity of that record you’re updating the entire resource okay so whenever you make a request to update something on the database using a put request you’re including every single field in that request body even if not updating it because if you don’t include that field then those fields will pretty much be removed or if you’re using like a SQL database those fields will be null so the next time you fetch the data those fields will always be null of course if you’re using mongodb they’ll just be updated in the document and they won’t even appear at all so hopefully that makes sense so so think of it like this put is for updating the entire record okay so even if you only care about updating username but you don’t want to update display name then what you need to do is when you update the username to whatever it is that you want you need to make sure that you include the current value of whatever display name is otherwise it will be overridden with patch you can pretty much just update only a portion of that user record so you don’t need to include anything that you’re not trying to update so if you update only the display name you only include the display name in the request body you don’t need to include the username and if you only want to update the username then you don’t include the display name so hopefully that helps you better understand the difference between put and Patch delete is pretty straightforward it’s used to pretty much just delete records from the database okay so you only really use it if you need to delete a resource SCE whether you’re deleting a user or if you’re deleting a product or an order whatever it is okay so hopefully that explanation makes sense so let’s go ahead and set up a put request for updating a user by its ID so we’re going to reference app and call the put method and for the path I’m going to reuse the path that we used earlier for our get users by ID request so I’ll just copy this up top over here and paste this over here and like I said before we can use the same path but as long as we have different request methods it will still work fine okay and we’ll now pass in the request Handler function as a second argument in the put method call so now we also need to make sure we are uh grabbing the route parameter from the request body or from the request object and we also want to make sure we’re grabbing the request body as well from the request object so let’s do some destructuring so I’ll go ahead and from the request object I will go ahead and the structure body so I’m going to get the request body because we need that because that is what is to contain the data that we’re using to update the current user object and I’m also going to destructure the prams object and then um from the primes object right over here I’m going to destructure ID just like like that now let’s go ahead and parse the ID uh convert it into an integer and check to see if is not a number so that way we ensure that we’re only passing in numeric strings and then we can convert them accordingly so const par ID equals parse ins ID just like that and then we’ll use the uh is not a number function to check if par ID is not a number so if this condition is true if par ID is not a number then we want to return response. send status and we’ll just do 400 which just means invalid um bad request okay uh and now we can continue so what we’ll do next is we want to find the user that we’re trying to update but we want to get the user’s index though we don’t actually need to get the user object just the user index and even with the index itself we can use the index to um retrieve the user by referencing it using the square bracket operator on the array itself so I’ll show you what I mean by that so first let’s grab the index uh of where the user is located so I’ll call this const um find user index and then we’ll reference mock user users and I’ll call find index so now we’ll pass in a predicate function and we want to search for the user by its ID so I’m going to reference user which is this argument in the predicate callback function and then we’ll search for the user byes ID so user. ID is equal to par ID okay not ID but par ID because we just converted it from a numeric string into an actual string so now what we’ll do is we do need to check to make sure that the the index is not negative 1 because if we actually don’t find this user if this predicate returns false then that means the return value of find index is actually negative -1 which means that that user is not found by its ID so we’ll check if find user index is equal to1 and we’ll return a stat status code of 404 so response. send status 404 if find user index is equal to1 so if find user index is not negative 1 that means we actually were able to get the index of the user based on the predicate function right over here so that means we can use find user index to access the user that we’re trying to update okay so hopefully that makes sense now let’s go ahead and do this let’s go ahead and reference mock users and then we’ll use the square bracket operator and pass in fine user index in between the square brackets just like this so this allows me to access the element at the mock users array by the by its index and remember we’re updating this entire user object so I can just simply assign this user object to whatever this object is now keep in mind that since we are using a put request remember we are updating the entire um object itself we’re not updating only one or two Fields we’re updating the entire thing okay and we’re updating the entire thing based on whatever the request body is so let’s say for example if the request body is missing certain properties but those properties are currently existing on that user we’re trying to update then that means those properties will no longer be on the user once we update it but there are some properties though that you never will update at all so for example if you’re using a database and once we do get to it you’ll see that we’re never going to actually modify um the ID at all because the ID is autogenerated by the database server so let’s leave the ID alone so I’ll keep the ID as pars ID just like this but everything else all the other fields will come from the request body object which is this body object right over here so I’m going to just destructure body so that will take all of the field all the fields from the body object unpack it and put it into this new object right over here okay and since we are not going to be passing in the ID in the request body that’s also okay as well okay so what we just did was we kept the ID the same and whatever the user passed in the request body is going to be used to update the user okay so if there were values that we did not include in a request body well they are now gone assuming that the user had those values defined so let’s go ahead and finally return a response um let’s send a status code send status of let’s just do 200 you can send 200 or 204 but I’ll just keep it simple and send 200 and now let’s go ahead and click new request let’s select put and let’s change this to Local Host Port 3000 API users and now we’re going to go ahead and update the user using a put request by the ID So currently we only have seven users let’s update uh let’s update Jack so the ID is two so for the route parameter we’re we’re going to pass to and remember make sure you have put request selected we’re going to go ahead and select select the body Tab and let’s pass a request payload or request body so remember this okay we are trying to update Jack this user object that has the ID of two username Jack and display name Jack if I want to only update uh let’s say the username but I don’t want to update display name with a put request then I must include all of the uh current values as well okay so for example let’s update uh username so let’s update it from Jack to Jackie or Jackson and let’s keep the display name as Jack so we’ll assume that we’re using the same value which we are click Send and you can see we get a 200 okay let’s go ahead and make a get request so let’s do new request get the user by ID of two you can see now we updated the username but we also did override the display name because we passed that in as the request object we passed it in the request object as well but now watch this if I omit display name and then I click Send now watch this when I request the user by ID of two you can see that it only gives me uh it gives me the correct user but we only have username now okay that’s because we omitted the display name and so that just pretty much gets uh removed okay it’s pretty much just taking the request body and using that request body to update the entire user object as a whole of course we’re never updating the ID as well now watch this if I remove username and I click Send and if I try to to get the user of id2 it just gives me this object with only the ID field so hopefully you’re starting to understand what exactly the put request is now of course if this is not what you’re trying to do and you only want to update a partial uh the a a partial part of the user object so you only want to update the username field without having to uh worrying about passing in the display name or other fields because your user field can have your user can have a lot of different fields and it can be a nuisance to pass all of those fields in the request body so this is where patch comes in okay so we’ll work on the patch request next but I just wanted to show you this as well if I were to just pass in a invalid ID it’s going to give me a bad request if I pass in a valid numeric value but that ID did not exist in the array or that user cannot be found in the array it’s going to give me four for not found so that is good okay cool yeah so hopefully that makes sense all right so let’s go ahead and set up a Pat request so patch request basically allows us to update an entity or a resource or a record whatever you want to call it partially okay so in the put request example we are updating the entire resource based on whatever we provide in the request body so everything just gets updated as a whole for the pass request we only want to be able to update either one or two or just a partial amount of fields without having to include every single field in the record that we’re trying to update okay because it can become annoying if you have let’s say a user with 10 different fields and you don’t want to include that all the time so let’s go ahead and set up a patch request so app. patch SL API users so we’re going to reuse the same path of course because we can since we’re using a different request method and then let’s go ahead and pass in the request Handler function in the as a second argument for the patch call and since we’re going to do the same thing um with the check for the ID for the route ID sorry the route parameter ID I’m just going to go ahead and copy um actually most of the stuff up over here but I will explain again for those of you who are watching just the segmented part of the entire expressjs tutorial cuz I have this in a one hour about like a 1 hour to one and a half hour long video and also in its own individual videos as well so in case you uh are not watching the entire tutorial Series so what we’re doing here is is we are destructuring the request body object as well as the route parameter object and then from the route parameter object I’m destructuring the ID all from the request object okay then I’m going to parse the ID so I’m basically taking the ID which I’m expecting it to be a numeric value so I use the parse int function to ensure that when I passing the ID the return value of pars int or of par int with that ID gives me a valid numeric value so we use the is Nan function to check to make sure that parse ID was parsed correctly and is not a number because if you were to pass in a string let’s say you know just random name instead of a number then parse ID would resolve into Nan which is not a number so we would return response. send status then what we’re doing over here on this line which is identical to what we did up here in the put request is we’re just simply searching for the user in the mock users array based on the ID and that’s where this whole line comes in we pretty much just check if user. ID is equal to parse ID okay and additionally if uh find user index if its value is negative one that means find index the method call uh was not able to find that user um by the ID so that predicate failed so it was not able to find the user so it returns negative 1 but if it returns anything but negative 1 then that means it was able to find the user so hopefully that makes sense so we do this check right over here if find user index equals -1 then we return a status code of 404 because that means the user was not found so hopefully that makes sense I didn’t want to have to rewrite that whole thing again but I hope it is straightforward so and if it is a little bit confusing just re-watch the previous video on the put request so that that way you understand but that I only did that for people who are watching these segments AP part okay so now the major difference here is the way that we update the user record in the pull request we updated the entire thing you can see the only thing that we did not update of course was the ID but we took the entire request body and we pretty much just uh put it into took all the field values and put it into this new object and took that object and assigned it to well we override we overrided current existing user okay in the patch request we’re not going to override every single field so the body itself the request body might only contain let’s say one field that we’re trying to update so any current field

    values that are in that user record must not be touched at all so they must stay the same so the way we can do that is first let’s reference mock users and pass in the square brackets find user index so that way this is the user that we’re trying to update date and what we’re going to do is this we’re going to go ahead and take we’re going to copy this mock users uh fine user index I’m going to reference it I’m going to use the spreader operator on this mock users reference at fine user index okay so I’m going to take all of the current field value Pairs and put it into this new object so all of the current values will be inside this new object and then I am going to take all of the field value pairs from the request body use the spreader operator on it and put it into this new object so basically what I’m doing is this I’m taking the existing user currently that we’re trying to update taking all of its key value pairs putting it into a new object then I want to take the request body and all of its key value pairs that we are using to update the actual user and unpack it and put it into this new object so that way it will override those current values okay so imagine if you had the current user um let’s see for example right over here the current user is currently ID of have three username atom display name atom I’m taking all of this data right over here putting it in that new object and then the request body would uh have whatever key value pairs that we were send sending over to the server so if we sent username it would override uh it would use the request body’s username field and override it with the current username field so Adam would get overridden with whatever we passed in for the request body okay and if we didn’t pass in a display name that’s okay because display name would not be touched at all and it would stay the same so hopefully that makes sense and let’s go ahead and just return uh let’s do send status of 200 because we can also send either 200 or 204 as a status code for patch as well so let’s actually try to use the patch request so first let’s grab all the users let’s make sure everything is okay so I’ll go ahead and update Jack but this time we’ll use a patch request so I’ll just change it from put to patch uh the ID is going to be number two okay so now watch this when I use the patch request I’m going to update the name the username from Jack to Jackson okay we got a 200 okay status now watch this when I make a get request you’ll see that username is updated and display name stays the same now remember in the put request if I don’t include the display name the display name will be overridden okay with the patch request I can only update what I just want to update I don’t have to include display name and put a value for it I can just update username and then only username gets updated if I only wanted to update display name let’s do display name to Jackson I can just update the display name if I want to update both so let’s update both back to Jack not password uh display name Jack Okay click Send and you can see now both Fields get updated so hopefully this helps you understand the difference between put and Patch requests you use both of them to update data but the way that you update the data is different remember put is used to update the entire resource in our case we would use put to update the entire user object patch is used to update only certain fields on that user object okay so hopefully that makes sense all right so now we will take a look at the delete request method so it’s pretty easy to use delete and it’s pretty straightforward you just use it to delete stuff on the backend server and the backend server typically deletes it from a data source like a SQL server or mongod DB uh any general database so what we’ll do is we’ll reference app and call the delete method and I’m going to reuse the same path because it doesn’t make sense to to not reuse it so now we have/ API users slon ID for the route parameter and we have this path registered with a delete method we’ll pass in the request Handler callback function now with delete requests you actually typically don’t need to pass a request body you can if you need to perhaps you might need to provide extra data in the request body so just wanted to point that out as well but typically if you’re just deleting stuff it’s pretty straightforward so you don’t really need to provide you know like a payload but if there’s other things that you would like to do on the server side and you it requires data in the payload then you can definitely pass a request body so we’ll do the same thing we’ll go ahead and grab the route parameter so I’m going to do the same thing that I did earlier for the patch request and the put request I’ll simply just D structure uh request. prams I’ll destructure the ID from request. prams um actually I’ll do it like this prams ID just like that it looks more cleaner and then what I’ll do is I’ll parse the ID to make sure it is a valid numeric ID so cons parse ID equals parse parse ins ID and then we’ll do the if is Nan check we want to make sure that parse ID is if it is not a number then we want to return a response with a status code of 400 which means invalid which just means bad request which is because of the invalid ID okay so now we want to of course just remove the user from the array itself or if again if you’re using a database once we get to that we would actually remove the user from the database in our case we have to remove the user from the inmemory array so what we can do is this so I’ll go ahead and use the splice method and uh what I need to do is I need to get the index of the user that we’re trying to remove so let’s do that so we want to get the index and then we’ll pass into splice and I’ll just remove the user from from the array so let’s do this const find user index mock users find index and I’m going to go ahead and pass the predicate function which is just going to um find the user by its ID and remember find index will return negative 1 if we’re not able to actually find the user at all in the array so we need to do a check to see if F user index is equal to1 and if it is we’ll do the same that we did in our patch input request we’ll return response. send status and we’ll do 404 because we can’t find the user all right so now that we were able to uh handle this case at this point we know that the user uh we we have the user index of where of where they are located so what I can do is I can call mock users. splice pass in uh starts and I I don’t think we need the leete count because it will just remove the element from the array um so we and I think it’ll just remove only one I think okay uh hopefully that makes sense and now uh what I can do is I’ll just return response. send status 200 and let’s see what happens so let’s go into our Thunder client let’s click new request we’ll make a request we’ll make a delete request so I’m going to select the delete method and let’s do localhost API users um I want to delete user with ID number two so I’m going to use I’m going to pass number two as the route parameter and we’re not going to put any request body we’re not going to send any request body uh let’s see parse is not Define that I messed something up let’s see oh whoops I forgot to change this to I forgot to write the rest out it’s pared ID not parse ID or parse y sorry about that um yeah this is kind of reason this is one of the downsides of JavaScript I do need a linter though I agree with needing a linter to detect these issues but it’s okay we fixed it and let’s go and run our app again so going back to vs code in the Thunder clim I’m going to go ahead and click Send and let’s just see if I can get the user by its ID so it says four for not found let’s make sure the users array is valid um let’s see so it seems like um okay so I know what the problem is so it seems like it’s sliced it spliced everything starting at the index so we actually only need to delete we need to do spec we need to specify the delete count cuz I think it removes everything after that index so let me actually fix that so so we have all of our users let’s try to delete the user so delete okay and let’s try to get all the users again okay so all of our users are here I’m not sure why though it is returning as gray this time that’s kind of weird if you ask me um but if I try to get the user by its ID it’s not found but I but I can grab the other users Okay so so um that works so um that’s pretty cool and you can see that in the browser I don’t have the user by its ID anymore so let’s just delete a couple more let’s delete three if I refresh I don’t have user of ID3 anymore let’s delete user number one okay so now I’m only down to four users left so that is pretty much how you can use the delete method okay so hopefully this makes sense and hopefully you now better understand how to use all five of these HTTP request methods we have went over get requests post requests we went over put requests and Patch requests and then finally we went over delete requests now if you want to see a list of more HTTP request methods you can go over to the Mozilla docs over here you just Google this uh HTTP request methods you can see that there are get requests there’s also a head method as well but um you know you don’t really use these that much but sometimes you will use them there’s also the connect method options Trace I personally have never really used these that much but there might come a case where you do need it but in that case you can just read up about it and you know see what you’re supposed to do with these methods and use it accordingly all right so now I’m going to go ahead and teach you all about how middleware Works in expressjs keep in mind that middleware can be defined differently in different environment but in the general sense it really just means one thing and that means it’s just a mid process between one or two or many different functions or other processes so in the context of expressjs a middleware is just a function that can have logic but the middleware function also is a request Handler as as well so that middleware function has the request response arguments as well and you can actually use the middleware function to return a response if you want to so I’ll show you a simple example of what a middleware function could look like so I’ll create a simple function I’ll call this logging middleware and remember this middleware function will have access to the request and response objects as arguments okay and additionally the middleware function or the request Handler function also has access to this next argument which is a function that you call when you are done with the middleware okay so what I’ll do in this simple example is I’ll console log two things I will consol log the request method and then I’ll conso log the request URL okay and then once I’m done with logging that to the console I’m just going to call next and that’s it in order to now use my middleware there’s two ways I can enable it globally so all of my routes will have this middleware be invoked right before its request Handler is called or I can enable it for each specific endpoint so I’ll show you both examples so let’s call app.use to register our middleware globally so all I do is I just pass in logging middleware as a function or as an argument like this okay now if I were to go into let’s say my browser if I visit the base URL of our application you can see that in the console it now logs the request type so gets what o it logs get and then the URL that we’re trying to visit if I go to SL API users it will go ahead and log that as well if I were to make any request to any endpoint it’s going to log that okay so it is enabled globally if I only want this middleware to occur for only certain endpoints so instead of logging it globally or instead of um registering globally I want to take this middle let’s say I only want to do it for this uh base URL so what I can do is I can pass that middleware function as an argument like this okay so now if I go back to let’s let’s just go to/ API users and you’ll see that nothing is being logged however the moment I go to the base URL and make a request there it logs it to the console so that is good now one more thing to mention is that uh you don’t even need to assign it to a variable and pass it in like this you can just pass it in like this if you really wanted to and then pass in the arguments request response next okay now one thing to mention is that if you don’t have the next function and if you don’t call it it’s not going to go ahead and call the next middleware so in this situation right over here I have two middleware functions uh let’s call this one middleware a okay uh middleware a will be called first and then after middle middleware a is called it has the option notice how I said option to call the next middleware the reason why I say it has the option is because in this middleware you can control the request and send back the response if you need to so this allows you to uh write additional logic that you can reuse for different endpoints that might share that same logic and let’s say for example if the incoming request is missing some kind of authorization token you don’t want to continue to the next middleware or the next request Handler so you want to reject that request by sending back uh maybe like a status code of 401 okay so for example what I’ll do is I’ll just simply log base URL and I’m not going to call the next function now watch what happens if I refresh you’ll see how it is stuck in this pending State and it it does log base URL but the client never receives a response back that’s because we’re not calling the next function so you need to make sure you call the next function in order for it to call the next middleware down the chain okay you can have as many middlewares as you want called in sequential order so I can even add two more like this and then I’ll just call next after each one and if I refresh and if I look at the logs you can see every single middleware was called and let me add one two and three so you can see that it is called in sequential order base URL 1 2 and three all being logged in sequential order hopefully that makes sense another thing that I also want to mention is middleware must be registered before a route if you’re using app.use register it so what I mean by that is if if you want a middleware to be registered for all of your routes you need to make sure that you call app.use right before you call you know app.get app.st app. put Etc okay if you were to register the middleware let’s say after you called those app. poost and app.get methods your middleware is not going to be registered for those routes so order matters in this case so I’ll show you an example let’s say I’m going to go after SL API users I’m going to go ahead and and uh call uh app.use right over here on line 44 and pass the logging middleware so what I’m doing is I’m registering the middleware for all of the endpoints that are registered after I’m calling this app.use so these two endpoints right over here will not have the logging middleware registered so I go into the browser and if I go to the base URL you’ll see that the console does not log anything if I go to SL users or/ API users you’ll see that the console doesn’t lock anything but if I were to go ahead and make a post request or a get request to this endpoint so let’s make a get request to/ API users1 uh you will see that it now logs uh it now logs in the console the request type or the request method and the URL okay so we’re remember order matters and one more thing that I do want to talk about is in the app.use uh method call you can also pass in as many uh middlewares as you want and they will also be called in sequential order as well so just one more quick example I’ll pass another middleware function and I’ll just write a console log and I’ll say uh finished logging and I’ll call next and Let me refresh and you should see that it says uh so it first it logs uh the first thing which comes from the logging middleware and then once that middleware is done it calls the next middleware okay and then the logs finished logging and now once we are done with this next middleware remember we call the next function and then it’ll just go down to the endpoint level so remember the request and response Handler is also a middleware as well so it also takes in the next function and then you can also call next in here as well but if you don’t have any additional middlewares after it then there’s no point to add that argument in the function signature okay so hopefully that makes sense okay so let’s go ahead and take what we just learned and put it into uh work so what I’ll do is since I have a lot of reusable Logic for a lot of my endpoints so notice how in this app dop put uh endpoint I have a lot of the same logic right over here that is written in the app. patch method and the app. delete method okay so what I’m going to do is I’m going to take all of this right over here I’m going to copy it and I’m going to go ahead and create a function up top over here and I’ll call this handle user by ID or maybe I should call it resolve user by ID okay because the goal of this logic is to really get that um index by the user ID so maybe I should call this resolve index by user ID yeah let me call it this instead okay so this will be an arrow function I’m going to paste the logic in here and remember because it is a middleware and the middleware is also a request Handler we have the request response and we need the next argument as well so three arguments Al together and now here’s the thing though what I want to do is I want to use this middleware right before I uh let’s see I want to use this middleware right before I call this uh request Handler because remember this middleware that I’m cre right now the purpose of this is to um grab that user index where it is located in the mock users and we want to be able to um uh have the next middleware that is called use it but in order for the next middleware to actually be able to use that information we need to be able to pass it somehow now there’s no direct way to passing uh data from one middleware to the other but but what you can do is you can attach properties to the request object since we’re using JavaScript we can dynamically attach properties very easily to the object so I can reference request and I’m going to go ahead and reference find user index so this obviously does not exist on the request object but I’m just going to assign it to this just like that okay so now in the next middleware and all of the uh succeeding middlewares that are being called assuming that we don’t ever delete F user index from the request object they will have access to this F user index property which is going to be a numeric value so once we are done we’re just going to call next okay and now one more thing that I also did not mention is that uh next actually does take an argument but it expects an error object or null so if you do pass an error object or an eror an error instance such as like this like new error this will actually throw an error at the express level if you don’t pass in anything then it won’t throw any error at all and it will just assume that everything is successful okay but we are handling errors though with uh these checks and sending back the correct status based on whatever data that we send to the server so we should be fine okay and since we’re not referencing the request body in this middleware at all because we actually referenc the request body at the final request Handler function we’re just going to remove that the structure of the request body right there so let’s actually use this for one of our endpoints first just so you all can see how this works so what I’ll do is I’ll use it for my put request to update the user by ID so we just pretty much take that middleware and we pass it as an argument right before our final request Handler which is this request and response or which is this request and response Handler over here here now since all the logic that we have inside resolve index by user resolve index by user ID um we all this logic that we see over here was moved into that middleware function so I can just delete all of this okay so I’m going to just remove all this I still will need the request body though so I will remove at least the destructuring of the request prams but I’ll leave the the structuring of the request body right over here and remember we never modified the request body at all now we do need a reference to find user index in this request Handler scope so I will need to destructure that and I can now that in the resolve index by user ID middleware function I got the index and I attached it to the request object okay so at this point if we hit this part right over here we can assume that fine user index is in fact defined because if it was not defined um then we actually wouldn’t even be uh in this in this uh final middleware at all okay so now I can access find user index from the request object but now I also need to fix this par ID because that was something from that we had before but we no longer have that but that’s fine because I can still reference mock users use f user index to uh reference the exact element at the position in the mock us array and then just simply reference. ID like this okay let’s go ahead and just test this out before we modify the other end points and see how this works all right so back into our Thunder client let’s make a put request so put and then logo host uh Slash API users so I guess we’ll update user uh with ID3 which will be adom so let’s send the request body so let’s do username let’s change this to Jackie so if I click send everything works fine if I were to get that user again the username was updated and since we didn’t provide a display name that was um pretty much just overrided okay so that is working just fine so let’s just update the other um the other uh end points as well but before let’s just recap of what’s going on so whenever I make a put request to/ API users and then the route parameter we provide which was number three it’s going to go ahead and first call the first middleware well first it will call all of its uh Global middlewares if there are any that are registered before that route in our case we only have express. Json which we need to parse that Json um into that Json into natural Json object so that is invoked first obviously then we don’t have any other Global middlewares invoked so we invoke the resolve index by user ID middleware and then it will go through this logic basically the same thing that we’ve been doing already just moved into a separate function uh the only difference is that we attach this fine user index property or we add this property to the request object and assign it a value which is the index of where the user is in the mock users array and we call next so once next is called it will now call this final request Handler which is also middleware and then from here we just simply uh update the mock users or update the user in the mock us array and then we return a status code of 200 that’s it let’s go ahead and update uh our patch request let me just copy this middleware function name pass that in there uh same thing just remove that prams destructure I don’t need all of this anymore uh and then let’s see let’s the structure find user index and I think that’s it for patch let’s just test that out make sure that patch works so I’m going to go ahead and update user number three so since we restarted the server um the username should be back to Adam and so the display didn’t be there as well I’ll just update the username using the patch request there we go and if I click send you can see the username was updated okay so the patch request is working good and of course if I were to provide an invalid value the middleware will pick that up for us you can see it says bad request invalid ID and that is handled right over let’s see should be handled somewhere over here um oh you know what we haven’t did it for we haven’t done it for the get request it we’ll do that later okay but at least uh let me do this if I make a put request to this you can see that this part gets handled by the middleware for the put request and same thing for the patch request as well we get a bad request if I were to pass in a valid numeric ID but it doesn’t there’s no user with that ID then it’ll just give us a four for and that is all being handled by the middleware that we just created okay cool let’s go ahead and do the same thing for delete uh so let’s pass in resolve index by user ID let me remove all of this stuff right over here yep and for this part we just need to uh grab the fine index user just like that so that way we know where to splice or I’m sorry it’s fine user index okay now let’s go ahead and try to delete a user so I’ll will uh delete user with ID3 if I tried to get that User it’s not there anymore okay see how user of ID3 is not here anymore okay let’s just go ahead and fix up the last one which is the get request um so let’s see uh we need to um so the way that we are actually returning the user in the get request is done different because we’re using the find method and not find index to actually get the user object itself and we’re just returning that as a response but what I could do is I could still use the same middleware resolve index by user ID and I can grab the uh find user index value from the request object and then I can just use that to reference the mock users array to return the correct user so let’s just do that just so that everything is consistent with each other so let me remove all of this and I’ll go ahead and the structure find user index um and I’ll just do this Con find User it’s always good to just double check just to make sure even though we know that find user index does 100% resolve to a user in that array but it’s always good to check just to be safe so mock users find user index and if there’s no user we’ll just return to 404 and if there is we’ll just return find user okay so we’re still using we’re still utilizing our middleware for all of our um endpoints that we’re using the user ID to search or perform operations on so now if I try to uh get the user by ID uh it says mock users oh let me fix that I think it’s mock I uh misspelled that it’s case sensitive let’s try again okay there we go so that is pretty much it with middleware I know it’s a lot but middleware is very powerful and understanding how it works is very worth it when you’re using expressjs because everything in expressjs that you’re going to be using has to do with middleware in some way shape or form so it’s good to learn how middleware Works learn the ins and outs of it and understand how you can use it to your advantage okay so hopefully all of this made sense all right everyone in this part of the tutorial I’m going to teach you all how to use express validator to validate incoming data for our Express API the reason why this is important is because sometimes the data that you expect is not the data that you receive let’s say you want to create a user and save it to a database so you obviously need a post request to to a user’s endpoint to create that user so that post request will expect a request body and we want to make sure that the username is not over 32 characters of length now we are expecting that but that doesn’t mean that the client will send a username that matches our constraints so you want to make sure that you check to see if the username is 32 characters or less now some of you might be wondering well if I’m validating on the client side let’s say if I have a react or angular project and that project has a form and when I click on the form button it will send a post request to my server well if I’m validating that form before I click that button before I submit that API request why do I still need to validate on the server side the reason why is because the API your express application does not know where that data is coming from you can literally go into the web app open up the network Tab and inspect where that post request is being sent to which endpoint it’s being sent to take that URL and throw it in something like Postman or even the Thunder client that we’ve been using to make API calls and send whatever you want and bypass the client side validation so you don’t know where the data is coming from so you always need to make sure you are validating it on the server side in my opinion I think the server side validation is the most important more important than the client side because the server side is where you’re actually going to process that data save it to a database submit it to another external API or do whatever you want with it okay so you must always validate on the server side no matter what so let’s go ahead and install Express validator so I’m going to type npmi Express hyphen validator just like this and then I’ll run my Express server let’s go into our code and we’re going to go ahead and import a function from the Express validator package just like this whoops so import and then pair of curly braces so I’ll I’ll import the query function and this is used for validating query parameters okay so there are a bunch of different middleware functions that you can import from Express validator and in case if I didn’t mention earlier yes these functions that you are importing you are using them as middleware so what that means is that we’re going to be calling them uh by passing it as an argument to our request methods such as app.get for example and then we want to make make sure we’re calling them right before our final request Handler which is also a middleware as well in case if you didn’t see the middleware section of this tutorial definitely check that part out either in the previous video if you’re watching just this Express validation tutorial or if you’re watching the entire thing just go a few minutes back to where we talked about middleware okay but what I want to do is I want to pass this query function call as if it was a middle wear so we’re going to pass as an argument right before I passed this request Handler function so it’s pretty easy we’re just going to go ahead and call query and then comma so we now have three Arguments for this app.get endpoint right over here and now what I want to do is I want to specify the query parameter that I want to validate so I’ll just do a simple one we’ll do filter okay and when you call the these functions okay in this case we’re calling query it creates a validation chain so basically it just basically means that when you call this function it returns an instance of validation chain and from here on you have access to a bunch of methods that you can use to determine what you want to validate so if you want to validate that filter is a string you can call this is string method and this returns an instance of validation chain so you can call literally the same method as many times as you want obviously you don’t want to do that but the whole point is that you can use this validation chain to perform more validations in order or it doesn’t really matter in this point but the point is is that you can use this validation chain to keep on calling more methods to validate on that single filter field so let’s say you want to validate that filter is a string and then you also want to make sure uh let’s see that is not empty okay so this will ensure that it is a string and it is also not empty now I will mention that with query parameters in expressjs they are always parsed as strings so even if you pass in a numeric value in the address bar as the query parameter for our filter or really any query parameter it’s it’s going to be parsed as a string and you’ll see in just a second so what I’ll do right now is um this so I’ll make a request so let me go into my thunder client right over here and let’s make a get request to the users endpoint and for now we’re not going to pass in the query parameter for filter I’ll click Send and you’ll see right over here that nothing happens although we are expecting an error to occur why is that the case well here’s the thing these functions don’t actually throw an error they don’t reject the request you actually have to handle that yourself so how do we handle that well remember middlewares are called in sequential order so this query function that I’m calling this is going to be the first middleware that we’re calling and then it’s going to call the next middleware so it’ll call this request Handler which remember it is also a middleware as well so inside our request Handler in the function body we need to take care of the error handling part because the query function won’t throw any errors for you it will validate the fields but it just won’t throw any errors so you as developer needs to handle that yourself so just very quickly I want to consol log this request object because I want to show you what happens under the hood I know some of you might not be concerned about it but I want you to also get full context with what is going on instead of just telling you to call all these functions so what I’ll do is I’ll make a get request to this endpoint and uh I’m logging that request object but I want to show you that you can see right over here in the request object we have this new property that is attached to that request object and express validator attach that themselves okay and it’s attached when we call this query function middleware and then now we can actually see that it’s right over here okay and I’ll go even further further let me just copy this part over here and access that direct field and show you even further what that looks like so you can see we have this context array uh or this array of context it’s an object and it has a bunch of metadata about uh the validation you can see we have Fields locations um errors okay a bunch of different stuff obviously you don’t have to worry about this but underneath the hood what happens is when we call this query middleware function it’s going to go ahead and validate um the field for you and then it’ll attach the data to this request object okay and from here what you want to do is you want to call this validation result function so let me import that from Express validator so validation result that’s a function and you want to call that function and let’s assign the return value to a variable called result so we’re going to call this validation result function and we want to pass in the request object okay just like that and what this will do is it’ll grab that field and it will extract pretty much the validation errors and you can handle that yourself so instead of having to manually do that yourself you can use this validation result to do it for you that’s why they provide this function so let’s go ahead and send a request again and now you can see that when I log that result object I now have everything in a proper format you can see that we have this errors property which is an array of errors and you can see that we have two errors one we have an invalid value which I guess makes sense because we are trying to validate if it is a string and then we’re also trying to validate if it is not empty so we have two different things we’re trying to validate so we have two errors total so invalid value and an invalid value as well but if I go ahead and pass in that filter query parameter and then let’s just give it a random value let’s just do Anson and now you can see that that errors array is no longer populated with errors because we don’t have any errors anymore because we just pass in that filter value right over here of course if I don’t pass in a value we still will get an error it says invalid value because we have this not empty call right over here and you can also take a look at the documentation or in your vs code if you just uh use the dot operator after this not empty call you can look at all the other methods that you can use to validate your Fe Fields so let’s do a validation on the length of the value for filter so let’s use is length and then this will take in options so let’s do uh Min character length we will go ahead and do three characters and then for Max will do 10 characters so now I’m going to go back to my code or my uh vender client so if I pass in let’s just leave it empty like this let’s see we should get two errors okay um if I remove the entire query parameter we should get three because now we’re calling three functions we’re chaining three functions let’s go ahead and pass in the filter and let’s do do a n so n if I click Send you’ll see that we get this error and now if you actually look at these errors you’re probably starting to feel confused on what is what you know so we can actually use this method after we call is length called with message you can actually pass in a custom error message and you can see over here it says it sets the error message for the previous validator so this with message call is going to uh the the message itself that you pass in here will relate for this validator okay so we’ll do um must be between must be at least 3 to 10 characters uh and let’s add a custom with message call for not empty so must not be empty uh okay let’s try it out so if I click Send and look at the console you can see now we have that custom ER error message okay hopefully that makes sense and if I leave this empty you can see that we have both of our errors must not be empty and must be at least 3 to 10 characters so that is good okay so now if I were to pass in just let’s say five characters now we shouldn’t get that error anymore and we don’t but if I exceed uh 10 characters it now it gives me this error must be at least 3 to 10 characters so hopefully this makes sense so this is how you can validate query parameters now let me go ahead and show you how we can validate request bodies because that’s also very important as well so similar to query parameter uh we have this query function for quate parameters but we also have a function to validate request bodies and that is the body function and you import that from Express validator just like this and it is used the same exact way so if you understand how to validate the query parameter you then can validate very easily the request body so here’s what we’ll do we’ll go down to uh our post request for the API users endpoint and right before our final request Handler we’ll go ahead and call the body function and pass that as an argument into appost so it’s going to go ahead and call this body middleware function first and then perform the validation and then it’s going to go ahead and call that next middleware that final request Handler function right over here and then similar to what we did with the query parameter in that request Handler function we want to actually uh use that validation result function to see if there were any errors at all okay so here’s what we’ll do so now we’ll go ahead and specify what field that we want to validate on the request body so for the request body I want to validate the username and then I also want to verify that is not empty by calling the not empty function and I’ll use with message username cannot be empty and then I want to make sure that the max is let’s do 32 characters so is length we’ll do a Min of five characters and Max of uh 32 and then with message username must be at least five to five characters with a Max of 32 characters and then um let’s see oh let’s also make sure it’s a string username must be a string all right and let’s go ahead and try to make a request a post request to this endpoint uh whoops let me see oh let me go ahead and do this before we do the post request I forgot that we need to go ahead and call that validation result function so let’s do that validation result result okay so cons result equals validation result and then let’s conso log result and see what happens so I’ll send this request uh oh whoops I’m sorry I was supposed to pass in request not result for the validation result sorry about that okay there we go that works okay so let’s see what the problem is okay so now we can see that username cannot be empty uh username must be at least five characters with a Max of 32 two characters so we do have our errors so that’s good okay now here’s the thing though I want to validate not just one field but I want to validate multiple Fields as well I don’t want to just validate the username field okay so what we can do is we can actually pass an array of body function calls so instead of having to pass it in like this and then uh you know pass in another middleware function let’s say if I wanted to just very quickly validate display name and do not empty like this okay let me make a request and you can see now let me zoom out a little bit you can see now I have four errors all like this instead of just passing it uh individually like different arguments we can actually just pass it as array like this so we pass in one array and then it’ll call all of these not that it will matter all that much because in the end it will still validate everything for you so let’s go back to thunder client and we’ll send some requests now with some valid data so let’s go to Local Host Port 2000 API users username Anon display name Anon the dev and if I look at my console you can see that we have no errors the moment that I omit any one of these values I’m going to get an error in that errors array right over there so if I omit username you can see that uh yep we get the errors for username okay that’s good so let’s go ahead and customize our logic now because we obviously don’t want to do anything at all when there are errors in our case we don’t so we want to make sure that we can actually check to see if there are errors or not on this result object and to do that there’s actually this is empty function and this returns true or false and it returns true if there are no errors and if there are errors it will return false so what I can do is I can useing if statement and I’ll just do if there are no errors so if result is not empty then I’m going to go ahead and return response I’m going to set the status to 400 the status code to 400 and I want to send back the errors so I’ll just send an object or yeah an object with the errors property and to actually get the errors you can reference result and then you can just call this array method and this will just give you all the validation errors as an array as it says over here gets the validation errors as an array you can map it if you want if you want to alter what is sent back uh based on that errors array you can do that if you want let’s go ahead and try this out okay so let’s omit the display name and you can see now I get that 400 status code which means bad request and that’s typical whenever you send an invalid payload so in this case we’re sending a payload with no display name and you can see I get the error uh invalid value path display name location body now of course ideally you would want to clean this up because you want to have something that is more um understanding to the client so that they understand it very easily but I’ll let you all take care of that and if I omit the username you can see now all of the errors let me zoom on a little bit whoops you can see now all of the errors appear right over here okay so hopefully that makes sense so we’re not quite done yet because we still need to actually save the valid data to our uh quote unquote database or our array in this case of users right now we’re still using this body object that comes from the request object and this data can be either valid or invalid we don’t know okay but since we are using Express validator we want to make sure that we are using the validated data of course there are different ways that you can handle this since at this point we are throwing an error or returning a status code of 400 we can safely assume that the data is valid by just referencing body Dot and then whatever field name we want but instead what we can do is we can actually use this function called matched data so let me import that up there so match data is imported from Express validator and then I’m going to go back down here and what I can do is I can simply just call let’s do this const data equals matched data okay and just pass in the request object like this and then what this will do is it’ll grab you all of that data that has been validated needed so I’ll console log this so you all can see so let’s get the username and let’s pass in a display name so now I can see that I have username and display name right over here okay and this object that is being logged is the Matched data return value which is pretty much the validated data so I would recommend you to to use this data object instead of the request body so let’s just fix that real quick so let’s remove uh this these two lines and then let’s see we’re going to replace this reference of body with data and I think that’s all we need to do all right and that is pretty much it that is how you can validate request bodies for your post requests and you can do the same thing for put request for patch request and really any request method that takes a request body and since you know how to validate uh validate request bodies and also validate query parameters you should now know how to validate other things too such as headers cookies route parameters it’s all the same thing now very quickly I wanted to show you all how you can use a schema in Express validator to make make your code look a lot more cleaner because right now if I look at this part right over here um I have a bunch of validation going on and this is just for only two fields and you can imagine if you have a lot of different fields that is being sent to uh the the server this can start to look more and more cluttered so we can use a schema to make things look a lot more cleaner and a schema really just is an object that has all of your validators defined so instead of having to have all of this being chained after calling each function all you do is you use this check schema function and you pass in the schema which is just an object and then what that function will do is it’ll create a list of validation chains so that way it can just save you a couple lines of code and make it look a lot more readable so what I’ll do is I’ll create a new folder called utils and I’ll create a new folder inside this folder or not not inside uh I’ll create not a folder I’ll create a new file called validation schemas because I want to keep everything separate and then what I’ll do is I’ll create a variable called create user validation schema I always like to be verose with my variable names but it’s up to you and then now what I want to do is I want to define the field that I want to validate so in this case I want to validate the username field so I’m going to use that as a field inside this object create user validation schema and then for username this will be an object and inside this object is where you will specify what you want to validate so if I wanted to validate the length so what you would do is you would just take the name of this method they’re going to it’s going to be the same exact thing so whatever the name of the method is is going to be the name of the field field that you’re going to configure inside this object so for example is length I’m going to go ahead and type is length just like this and so this is going to be an object and you want to pass in these options so options and then it’s going to be the same exact thing you can pass in Min and Max for options so Min of five so this will be a minimum of five characters Max of 32 characters so this is how you can validate the username and its length let’s do the same thing for uh the not empty validator so again you take the same method name not empty you can even just copy and paste it uh whoops not there right over here now since not empty does not have any options we can just set this to true but of course if we did provide options we could just map this to an object and do the same thing like this options like that same thing for the is string validator we don’t have any options configured for that so I can just take the same exact method name and then set it set its value to true however if you did have an error message like a custom error message like we have over here we can also specify that as well so for is length inside the is length object right over here I can go ahead and specify this error message field like this and I’ll just go ahead and copy this whole string and paste this right over here like that now since uh not empty does have a custom error message instead of setting this true what I’ll do is I will provide an object like this error message and then that okay and then what we’ll also do same thing for is string let’s copy that and do this and of course since you have this object over here it pretty much implies that you are going to obviously check for these two validators so you don’t need to worry about the Boolean value anymore and uh let’s see what else um okay yeah that’s pretty much all we need for this so now to actually use the schema what we’ll do is let’s remove all of this let me just make sure we have everything uh username oh whoops that was only for username uh let’s do display name I forgot about that display name and I think the only validation we had was not empty so let’s do not empty and then let’s just we’ll just do true for now okay let me go ahead and remove this whole array and then now we’re just going to call this check schem of function so let me go up top over here and import check schema just like this and let me go back to the post request so right over here we’re going to go ahead and call check schema and then now you’re going to pass in that schema definition which is just this object that we created so let’s import that so up top over here we’ll import from utils validation schemas create user validation schema just like that and I’ll pass that object in here and let’s actually see what happens so if I go into Thunder client let’s make a new request to Local Host Port 3000 okay so I am getting an error in the console and I think it’s complaining about the import uh I think it’s because I’m missing the extension at the end tojs but I realized that I uh am supposed to use MJS so let me just quickly fix this and add that MJS extension at the end because if I don’t have that extension it’s going to throw this error but if I add that extension at the end the error will be fixed okay so I just wanted to mention that very quickly but now if I were to go back into the Thunder client and let’s try to make a post request now you can see that now I get the errors right over here it’s complaining about the display name the username and all of the different errors are that’s going on with it if I pass in let’s say username and let’s let’s do let’s say if I pass in just two characters for username you can see that it’s going to complain about username must be at least five characters with a Max of 32 characters and the other two validator errors are not there because we actually provided a value and it is not undefined so yeah it’s a string and it’s not empty okay and then you can see that since we don’t have display name that is not uh since we didn’t provide that in the request body the error appears right over here okay so hopefully that makes sense and hopefully you can start to understand how using schemas to validate your request bodies is a lot more easier than just having all of your validators in the same uh in the same uh file and just chaining them after each call okay so I would encourage you to do the same thing for this query validation that we did earlier for this get request I’ll let you all take care of that yourself just for exual practice so hopefully this all made sense so now what I want to do is I want to show you all how we can organize all of our requests using an Express router the problem right now is even though we only have a few routes to find as our application grows we could have 50 routes 100 routes a whole bunch and you obviously don’t want all of it to be in one single file you want to group together your API endpoints based on what is known as a domain so what I mean by that is for example we have a bunch of user endpoints and all of this handles different operations so that is known as the user domain the user domain is everything related to the user itself so when you create a user when you grab all the users from the database when you update a user that is all part of the user domain if you see right over here I have another products endpoint that doesn’t really have any other endpoints to do much with such as creating a product and this would be the products domain so anything related to operating with the product domain would be things such as creating a new product updating a product deleting a product things like that okay that’s what I mean by domain and what I want to do is I want to be able to group together all of my users endpoints separate from the products endpoint because it doesn’t make sense to keep everything all together okay the products endpoint should be grouped with everything related to products users endpoint should be grouped together with everything related to users if you have endpoints that handle Payment Processing maybe you’re talking to let’s say uh the stripe API or some other Payment Processing API then you would have a payments domain and you want to group all of your payments and points together so we can use use an Express router to do this and what I’ll do is I’ll create a new folder inside the source folder and I’ll call this routes and then I’m going to go ahead and create a new file and call it users. MJS and then inside users. MJS we’re going to import the router from Express okay and this is a function that we can call to create an instance of an Express router it’s it’s the same way of how we imported Express like this and then we called the express function the router import is also a function so I’m going to declare a variable and we’ll assign the return value of the router function call to this router variable which is in which has a lowercase R okay so these two are different obviously so now we have our router and the nice thing about this router is it has pretty pretty much almost all the same exact methods and properties that the express app instance has so you can see that I can reference the get method the post method delete all that kind of stuff okay the router itself is pretty much like a mini application in your entire Express app that can group together all of your requests so you can register requests on the router but then you also need to register that router to express okay so hopefully that makes sense so the same way that I am registering let’s say this get request right over here for/ API users I can do it do it on the router so let me go ahead and copy uh let’s say this right over here it takes the same exact method arguments you can see it takes a path so let me paste the path right over there so/ API users and then it takes uh as many handlers as you want to pass or middleware functions so we can literally pass this exact same these exact same arguments right over here like this okay let’s just import that query function from Express validator and this is something that we did in the previous section where we talked about validation in Express okay so next thing we need to do is export this router and then we need to import it into our our main index. MJS file where we have the express app instance because we need to register our router with the main Express app in order for the main Express app to actually have these routes mapped out so users can actually visit it or clients can actually visit it so I’ll export uh I’ll actually export this as a default so export default router just like that and then next thing thing that we’ll do is we’ll go into our index. MJS file and we want to import that router that user router so import user users router from uh and then the folder is routes and then users. MJS let’s make sure we don’t have any errors in the console okay everything’s good with the import so we can register this router now so that way um we can actually access the endpoint defined at the router level over here by simply just using app.use just like this and then you pass the user router like that and since we have the same endpoint defined at the router level we want to make sure we remove this endpoint definition over here so let’s just remove that okay so now let’s go ahead and try to access that endpoint using the Thunder client so we’re going to try and make a get request to/ API users so let’s do that and it says validation result is not defined oh whoops I need to also import validation result as well and let’s try to make a request mock users uh is not defined oh that’s right because um yeah we’re using mocku okay let me quick do this I need to move this mock users array into a separate file so I can export it from that file and import it everywhere else I need it so I’ll just create a new file I’ll call this constants whoops MJS and I’ll export this mock users constant and I’m going to remove this right over here and let me just quickly uh do this this let me import it inside the index. MJS file because we are using it here so up top I’ll import and this is a named export so mock users from utils constant. MJS and we’ll do the same thing inside the users. MJS file so import mock users from and then the pathway over here okay so no more errors so that’s good let’s just try to call this endpoint okay so you can see that it works and that’s good so we know that it is working and if I were to remove this app. use call and passing in the user’s router and save now if I try to make a get request it’s going to say four for not found because we did not register that router so hopefully this makes sense so now what I can do is I can take all of my end points that are relevant into users and place it inside this users. MJS file and then register those endpoints at the router level so let’s do that so let’s go ahead and do the same thing for app. poost API users so I’m going to go down here and I’m going to reference router. poost and I’m going to pass in those same exact arguments that I had passed in to app dopost so you can see right over here we pass in for the first argument the path and then all of our middleware functions let’s just make sure we have all of our Imports so we need to import uh check schema from Express validator we need to import the create user validation schema as well so let me import that create user validation schema okay and then uh let’s also we already have validation result imported we are using the match data function that comes from Express validator so let’s import that and this should work so now let me just go back to the index. MJS file remove this app. poost because it’s redundant and uh let’s go ahead and try to make a post request and you can see that it’s working just fine let me pass in a request body and then let’s see the result and you can see that we get a response back and of course if I were to just remove this it would say four for not found Okay and like I said you could do the same thing for all of our end points for the users domain so uh what I’ll do is I’ll move uh the get user by ID in there so let me just copy all of this and let me just delete this so let’s go up here I’ll put this right underneath here okay and then we do need to resolve index by user ID middleware function and since that is defined inside the index. MJS file we need to uh we need to of course export it or whoops not this one this one right over here let me do this let me create a new file inside utils I’ll call this middle mware middlewares MJS and let me export this and let me make sure I am importing mock users from constants MJS okay this is good so now we can import well first let me remove this and uh I’ll import that middleware first from utils middle wees resolve index user by ID because this index file is still using it and then what I’ll do is I’m going to go ahead and import this inside the users. MJS file so that gets imported right up top over here as you can see resolve index by user ID for this middleware um and I think we are good for uh this end point right over here and I did I did remove it so that’s good so now let me go ahead and just make sure my other endpoints work okay uh let’s do three okay so our end points are working so that’s good uh What else let’s go ahead and move these three end points into users. MJS as well so I’m just going to paste them all over here and just change app to router just like that and we’re using the same resolve index by user ID which like I said we imported up top over here from that new middlewares MJS file that I just created okay and uh there’s nothing else that we need to import because it’s using mock users which we already imported already um and the request and response object comes from this callback function so we’re good to go with the rest of our endpoints so look at our main file now look at all the this now we have cleaned up our index. MJS file and anything relevant to users I can just go into the routes users. MJS file and look for the the corresponding endpoint that I need to look for okay let’s just make sure let’s just make sure our other endpoints work okay that’s good okay and if I take a look at this I have successfully updated the data and Patch should work just fine as well okay patch is working just fine I was able to update my data using put and patch and let’s try delete so I just deleted the user of ID3 so if I try to get that User it’s going to say four for not found and if I call users it’s not going to show that user in the array okay so that’s good so hopefully this all makes sense so now I can easily just clean up my index. MJS code so let me remove all all of the Imports that we’re not using anymore so all of this stuff we’re not using anymore all of this stuff over here um I’m going to delete logging middleware because we’re not using that anymore let me remove these coms down here okay let’s go ahead and create another router for products so I’m going to create a new file and I’ll call this products. MJS and it’s going to follow the same a structure that we did for our users router we’re going to import the router from Express we’re going to go ahead and create the router instance by calling the router function and assigning that return value to the router variable and then we want to also make sure we export the router as a default export and since products only had we only had one endpoint for products I’m just going to go ahead and copy all of this let me remove that and we’ll call router. getet paste this there and since we’re not using any other Imports or we’re not referencing anything else aside from just this response argument in the function we don’t need to worry about importing anything okay and the last thing that we need to do is import the products router like this so import products router from uh and then the path to that products MJS file and then we need to call app.use and pass in products router like this so now if I try to make a request to products I can get the list of products and of course if I were to remove this app.use uh with the products router being passed as an argument we’re not registering that products end point or that products router so we can’t access that products endpoint so hopefully this makes sense now one more thing that I will do and I’m only going to do this because I want to structure this entire project in a way for future videos for future tutorial videos what I’m going to do is I’m going to actually create a new file called index. MJS and what I’m going to do is I’m going to import the router as well and I’m going to create an instance of this and you don’t have to do this if you don’t want to but personally for me I prefer organizing everything like this because it makes it so much easier I’m going to also export this router as a default export and what I’ll do is instead of having all of my routers being imported in the index. MJS file because you might have a lot what I’ll do is inside this index. MJS file in the r folder I will import all of my routers in here so you can kind of think of this like a barrel file if you’ve ever heard of that before so let me import users router from users. MJS and then we’ll do the same thing for products router import that from products MJS and then what you can do here is you can use router and then call do use and in case if I I mention earlier you can also register middlewares the same way that you would register middlewares on the express app on the router itself and that would of course register middleware at the router layer so not for all of your routes but for all of the routes for your router specifically okay so you can register middleware only for your users routes and it won’t have anything to do with the products rout at all okay but I’m going to go ahead and pass in the users router like this and I’ll do the same thing but for products router like that and then I export the router as a default export from this index. MJS file and then I can now go into my index. MJS file in the root Source folder right over here remove these two Imports import um let’s do this import routes from and we’re going to import this from index. MJS so we’re importing this root router that we’re using to register all the other routers okay and then I can go ahead and pass routes into app.use so I only need to do this one time because I already have all of my routers registered with this root router right over here and I’m registering that root router with the main Express app so it’s still going to work the same exact way it doesn’t matter whichever one you prefer to do but I just prefer doing it this way because I think it makes it a lot more cleaner for the index file itself okay and one one more thing that I will do though is you can also set um a prefix for all of your routes because notice how right now I am I need to prefix everything with/ API okay SL API products SL API users Etc so hopefully all of this makes sense and you can now see how or how much more organized your entire application looks so you can you can go ahead and add add more endpoints for products you can add more endpoints for users and you will know where every single thing is without having to scroll through one file try to look for it all right everyone so the next topic that we’re going to talk about are HTTP cookies so cookies are pretty much a simple concept but a lot of people tend to get confused about it they get confused on what it is how to use it how it’s used in realc ations but most importantly they kind of don’t quite understand what’s the purpose of it so I’ll do my best to explain it to you all in a simple way so cookies or HTTP cookies they’re literally just small pieces of data that your web server sends to the browser in our case since we’re using Thunder client you can pretend that this is our web browser so whenever I make a request to this URL it will send me back a cookie but currently our server is not sending any cookies but you can see over here I can whenever I uh make make a request I can go ahead and click on this response section over here and then select cookies and see if there were any cookies sent back from the server so the server sends a cookie to the user’s web browser or the client or whatever and then the web browser or in this case our Thunder client can store the cookie if you actually go into your browser right now and if you were to open up the dev tools so let me actually do this let me go to Local Host Port 3000 and let me Zoom a little bit and let me open up my Dev tool so right over here and if you actually were to go to uh this Chevron this this double Chevron arrow and click on application you can see this section where it says cookies now currently I don’t have any cookie stored on this domain but we can change that we can make our web server send the cookie back to the web browser the web browser can store that cookie and then what happens next is the web browser can actually send that cookie back to the server on any request you need to make now you’re probably wondering well why is this important well it’s important because by default h HTTP is stateless and what that means is that whenever you make a request the server doesn’t know who that request is coming from it doesn’t know who the user is and knows nothing so if you wanted to build let’s say an e-commerce website and you wanted to implement some kind of cart system where you can add items to a cart and delete them from a cart and you want it to make it functional where when the user adds items to the cart and they close a website and go back on the website that those items are still in the cart after they leave and come back you need to use something like cookies because the server doesn’t know who the user is it doesn’t know what items they added but when you use cookies you can send the cookie back to the server and the server will then know who that user is and so the next time the user comes back the user can have all of their items on the cart displayed so they don’t have to re everything all over again now most of the time in realistic large applications where you have authentication you use cookies alongside with sessions but we’re not going to

    get into sessions just yet we’re primarily only going to focus on cookies right now okay but hopefully that explanation makes sense just remember that HTTP is stateless and using cookies enables the server to send a cookie to the web browser and that cookie typically is going to be some unique value so that way the server when they receive it they can distinguish whose cookie this belongs to and then they can send Dynamic data based on the cookie value so I’ll show you an example so let’s go into our code and what I’ll do is inside the base URL I’m going to go ahead and set the cookie whenever the user visits this endpoint to do that we have to modify the response object by calling this cookie method on the response object and this takes in uh a total of three arguments options is optional but you can pass in a name for the cookie so I’m going to call this hello and and then I’m going to set the value of this cookie to be world and then you can pass in options so let’s say if you want to have the cookie expire after a minute then you have to specify that in milliseconds so 60,000 M milliseconds is 1 minute and let’s go ahead and test this out so I’m going to go into the browser and if I refresh you can see that I now have this cookie and I can see that every time I refresh you can see the number just jumps up to 49 50 well now 51 53 54 so it’s going to expire after 1 minute okay I can have it expire after an hour so let’s do 1 minute time 60 so that’s 1 hour right there so notice have I refresh you’re going to see that let me kind of zoom in a little bit right over here so you’ll notice if I refresh it goes from uh I guess the 14th hour to the 15th hour this is in uh 24hour time clock and uh I think it’s in UTC time currently it’s 7:24 so I think plus 7 hours gets you um I think 15 is what 3:00 I think so plus 7 hours yeah yep that’s right plus 7 hours yep okay and if I were to multiply this by two so expires in 2 hours if I refresh you’ll see now it expires at the 16th hour which is 4:00 p.m. 400 p.m. so hopefully this makes sense okay and let me just also go into my thunder client and if I click Send uh let’s see uh oh I’m visiting I’m visiting the wrong endpoint let me visit the slash endpoint and see how now I can see that I have a cookie right over here and you can see that it shows you the domain the cookie name the value all the stuff okay so hopefully this shows you how the browser and how your clients can store cookies but now let’s actually see how it’s being used like how do we actually make sure that we are sending the cookie back to the server because right now we’re only receiving the cookie that is stored in the browser but we’re not really doing anything to actually reuse that cookie so the next thing that we’re going to do is this what I’m going to do is I will go into um any endpoint so let’s just use the products endpoint because we haven’t really done much with this and what I’ll do is I want to go ahead and grab the cookie from the request object okay so I’ll console log this right now and I’m going to visit SL API products so let’s go to the browser and since our cookie uh expires in 2 hours we’re going to be fine so we’ll still have the cookie if it expires though and your browser doesn’t have the cookie then of course that cookie is not going to be sent but let me go ahead and close this and let’s go to whoops didn’t mean to open that let’s go to SL API products and let’s look at the console and you can see right now uh whenever I visit that endpoint it says undefined now you’re probably wondering well why is that the case are there really no cookies well let me show you this okay if I were to log it from the headers and if I refresh that page you can see now we actually have the cookies and this is access through the headers but the problem here is that it’s not pars okay we have it in this string format so we have two options we would have to parse it ourselves manually or we can actually use a third-party package called cookie parser to parse the cookies for us so just to confirm with you all the cookies are in fact being sent to the server it’s just that they are not being parsed the way that we expected it to so let’s go into let’s see our terminal we’re going to install cookie parser so cookie hyphen parser and you can see that it has literally like almost 3 million downloads so it is a very popular package in the node.js ecosystem and let’s install cookie hyphen parser and then what we’ll do is we’ll run our server again and now we need to actually enable cookie parer remember that a lot of things that you’re going to be installing as third party packages in Express is going to be middleware okay so in this case cookie parer is also middleware as well so we’ll import that middleware so import cookie parser from cookie parser and then this is a default export so what we’ll do next is we’ll simply just enable it but we want to make sure we enable it before all of our routes are being registered so you see how over here where I have app.use and then I pass in uh that router that router from this file over here and this is what registers all of our routes we want to make sure that we register it before otherwise it won’t parse the cookies for those routes and then we won’t be able to use it so right before um we’ll do app.use and then cookie parser it’s a function and you can also pass in additional arguments into the cookie parser function call if you need them so for example let’s say if you needed to uh parse a signed cookie which is really just a cookie that has a signature then you can pass in a secret and this secret is used to actually parse the signed cookie so that would just be like a regular string like this or whatever the secret is but we’ll leave it alone for now cuz we don’t have any signed cookies okay so now that we’ve enabled the middleware let’s go back to products. MJS inside our routes folder and I’ll go ahead and console log both request. headers do cookies and request. cookies like this and you can see there’s also a sign cookies property as well for sign cookies so let’s go into Postman or not Postman what I’m talking about thunder client and let’s go to API products so we still have that cookie because it has not expired I wonder if there’s a way to actually see the expiration date of these cookies on the Thunder client perhaps not I don’t know but it’s okay we know that it is not expired though so I’m going to go ahead and do this I’m going to send the request okay and let’s look at the server and or let’s look at the console and you can see that we log both the header cookies and the parsed cookies right over here and you can see that it was correctly parsed hello is the field name and then world is the value so that is how we can use cookie parsers to parse the cookie let’s say for example I wanted to check the value I wanted to check the field and the value of a cookie and based on that field and the value of that field I can determine the response that I want to give back to the user so let’s just very quickly pretend like this hello world Cookie is required in order to actually retrieve all the products so what you would do is something like this you would check to see if request. cookies Dot and then the field name which would be hello and then you so you want to make sure this is defined and then you would want to make sure that hello is equal to some certain value in in our case since we set the cookie on the server side and the value that we set was world we can have it check to see if it’s equal to world and if it is then we’ll send back the response of all the cook of all the products and if it’s not then what we’ll do let me actually use the return keyword and if it’s not I’ll just return a response that says message sorry you need the correct cookie and this is just to show you how you can use cookies okay or how you can use cookies to determine the output of your server response so if I click Send right now okay nothing special but now watch this I’m going to go ahead and uh let’s see I’m going to remove this cookie right over here and I’m going to go ahead and click Send and watch what happens you see how now since I don’t have that cookie it says sorry you need the correct cookie now if I go back to the browser the browser is a different client okay so right now we’re using two different clients we’re using the web browser and we’re using our Thunder client so since the browser still has a valid cookie I can still get this data but let me go back into my browsers Dev tools and let me clear the Cookie by simply just deleting it and watch this if I refresh the page you see how now it says sorry you need the correct cookie so this is how you can start to understand how authentication begins to work the server sends a cookie back to the client so that’s basically saying hey when I send this cookie back to you you need to send this back to me in order for you to make future requests to access any data or any endpoint at all the browser stores that cookie and then any future request that you want to make from the browser or the client from Thunder client you need to pass the cookies from the browser or the client or wherever when you send the cookies the server will check for the cookies if you have the cookies and it’s a valid value then you will send the data back to the user if the request does not have the cookie or if they do but it’s not a valid value then you’re going to send them a different response so hopefully you can start to see how cookies can change the output of your application and how you can use it for you know authentication and authorization so one more thing that I will show you is this I’m going to go ahead and set the max age of the cookie to 10 seconds and so what I’ll do is this so since this route is the route that actually sets the cookie itself you can pretend like this is the route that you must visit first in order for you to kind of like authenticate have the cookies set on the server side and sent back to the browser and then be able to access the quote unquote protected route hopefully that makes sense okay so right now if I try to go to API products I cannot access uh the resource over here and you know what let me do one one more thing I’ll also send a 403 which means unauthorized or you can send a 401 back so you see 403 Forbidden okay so now let’s do this let’s go back to the base route and kind of like quote unquote authenticate because this is what gives us the cookie we can we we can see the cookie sent back and now watch this if I try to go to slash API products I can get this I can get this response back but notice how after that 10 seconds pass it says sorry you need the correct cookie so the cookie expires after 10 seconds and you can see that we don’t even have any cookies anymore CU it automatically clears it for us so I can go back to the base route reauthenticate call the API products route and I can make as many requests as I want to this endpoint until once the cookie has expired and once it expires it gives me the alternate response okay so hopefully this makes sense now since we are already talking about cookie parser and using cookies I might as well just talk about this as well if you ever need to set sign cookies which like I said earlier it has a signature uh you can go ahead right over here and set signed to True Whenever you set the cookie but in order for you to actually uh parse cookies that are signed you must you must you must provide a secret like right now if I try to refresh or if I try to go to the base URL you’ll see that it says cookie parser secret required for signed cookies so let’s go ahead and pass a secret right over here let’s just do Hello World literally it can just be any string value you want that is just going to be used for signing cookies okay so now watch this okay before we added this signed property in the options when we set the cookie we were just able to see the Value World so let me just show you this real quick let me just kind of delete this and delete that and just show you very quickly see how the value is just World okay now let me go back and set sign to true and put in that secret so now watch this let me just delete this and if I refresh the page you see how now the value isn’t just world you can actually see the value is here but because now it’s signed it has the signature and in order for you to actually use the sign cookie well because we already are enabling the middle already it will just parse the cookies for us but remember how earlier we took a look at the request object and there were two properties related to cookies there was cookies and then sign cookies right over here so we want to reference sign cookies so watch this let me just Refresh on this page let me change the max age of the cookie to 30 seconds so three so 30,000 milliseconds and let me go back here so now let me go to/ API products you see how now it says sorry you need the correct cookie this is because we are checking just the cookies and not sign cookies if I look at the console right now you’ll see that this is the raw cookie over here that comes from the headers that is not parsed into an object so you see you have the key and then the value right over here exactly what you saw in the browser then you have this object an empty object which is the request. cookies property so an unsigned cookie but because now we have signed cookies all of those parsed sign cookies will go into um that sign cookies object in the request object so you have this object right over here okay so you can actually just reference hello on the sign cookie like that so if I refresh this page uh well we don’t have a cookie so we need to go back to the base URL quote unquote reauthenticate get the cookie set and then now let’s go back to the API products route and if you look at the logs you can see that whenever I reference the sign cookies object and reference hello it gives me this value of world so we can just very easily modify um this part over here if request. cookies instead of that we can just do if request. sign cookies. hello and of course you would need to keep track of what cookies are signed and what cookies are not signed so that will indicate which property whether cookies or signed cookies that you would that you would reference so if request. sign cookies. hello and request. sign cookies. hello is equal to world then we’ll send back this response so let’s save and now our cookie likely likely expired by now so let’s go back to the base URL get that cookie again go back to API products and now we have access to the resource so hopefully this all makes sense in this part of our tutorial we are going to talk about sessions and Implement them in our Express server sessions represent the duration of a user on a website by default HTTP is stateless we don’t know who is making requests to our server so we need to be able to track requests and know where they are coming from one common usage of sessions is to manage user authentication sessions are created on the server by generating an object with a session ID when an HTTP request is sent to the server from the web browser the response can return with instructions to set a cookie with the session ID so that it can be saved in the browser this allows the browser to send the cookie on subsequent requests to the server the the server can then parse the cookies from text to Json then verify the session ID was sent from the client and determine who the request was sent from whenever the browser sends the cookies on each request the server can look up which user pertains to the session as the server maintains a mapping of each session ID to the user we’ll get started in implementing sessions using the express session Library so the first thing that we’re going to do is install the express session package so in my project terminal I’m going to type npmi Express hyphen session and then we need to go into our index. MJS file or whatever root file you have where you create the app instance or the express instance and then you’re going to import session and then from Express pyph session like that so this session import is a middleware function and we can register it by simply just using app.use so app.use and then session just like this and you want to make sure that you are calling app.use right before you are registering any endpoints in your application so remember that I using this router that is imported from uh routes right over here and this file over here has all of my individual routers for products and users okay so what I’m making sure is I’m making sure I’m calling the session middle work function before my routes are being registered so now the next thing that we want to do is configure some options for Express session so the first thing that we will do is set a secret so I’m going to pass in an object and so for the secret this is going to be a string now ideally you would want this to be something that is sophisticated because it is used to actually sign the cookie and if you have it something guessable someone can easily use that value to decode signed cookies for now just for development purposes I’m just going to use anev but just keep in mind you would want this to be something more complicated and not guessable kind of like a password I’m going to set this property called save uninitialized now this property alongside with the next property I’m going to set called resave both of these have to do with session stores we currently don’t have any session stores configured by default Express session does use an inmemory store but you want save uninitialized sets of false when you don’t want to save unmodified session data to the session store so what that means is by default if you have every single user visiting your website and they’re not doing anything they’re just visiting it it will if you have save initialized set to true it will actually save a session object to the store even if the session object has nothing at all and that can actually take up memory and you probably won’t want to have a bunch of random session object objects living in your session store so ideally you would want this set to be set to false and it’s recommended if you’re building something like uh user authentication managing user sessions things like that the other property that we want to set is resave okay and this really has to do with um forcing a session to be saved back to the session store even if the session itself was never modified at all you’ll better understand what I mean by modifying the session once I show you how to actually do it and what it affects how it how it affects the actual session itself but for now don’t worry about these two properties just set to false the other property that I want to set is this cookie property and this is where we can actually configure how long we want the cookie to live because in case if you didn’t know cookies can actually expire so this is good if you have a user login system where let’s say you want the user to be logged in to your website a Max of 24 hours so you can set the this Max H property and uh the value is a number and it’s measured in milliseconds um so for example 60,000 milliseconds that is 60 seconds uh times let’s see 60 so that’s 1 hour so let’s say if I only wanted the user to be logged in for exactly 1 hour then the cookie will expire after 1 hour and that cookie will no longer be valid and so whenever they send it back to the server the server will see that the cookie is not a valid one at all and remember that the cookie that is sent from the browser to the server is what is being used by the server to identify who the user is so I’ll keep everything simple and use my base URL endpoint and what I want to do is inside the request Handler and you can use any endpoint you want I’m just going to go ahead and console log request. session and I want to conso log the session ID as well so you can either reference session ID or you can reference session. ID and I’m going to go and make one API request to this endpoint and you’ll see that when I make a request I can see the session object as well as the session ID being logged and you can see the session object has this cookie property which is an object and you can see that the expiration date is over here so it’s in UTC time currently it’s 2:44 a.m. so uh I think I’m 7 hours behind that time zone so that would be 9:44 and then expires in 1 hour so the date the expiration date time is correct but let’s focus on this session ID right over here okay so I’m going to make another request and notice how when I make another request you can actually see that not only does the expiration date update but also this session ID is regenerated I can create another one one and another one so every single time I click Send it’s going to pretty much like create a new cookie and also create a new session and this is actually not necessarily good because we never can actually track who the user is that’s using our application so this is where you need to modify the session data object when you modify the session data object Express session will create a cook or it will set the cookie and then that cookie will be sent to the browser or the client side the client side will store that cookie and then on subsequent requests or future requests that cookie will be sent to the server assuming it has not been expired okay the server of course will go through the express session middleware because remember Express session is a middleware so it’ll go through this whole session middleware and then it’ll validate that cookie make sure it’s not an invalid cookie so if the cookie is not expired or if it’s not invalid then Express session actually won’t generate a new session or session ID at all okay so hopefully that part makes sense because by modifying the session data object we can begin tracking users that are using our website our API if we don’t then we’ll just always have generated sessions all the time brand new sessions all the time okay and remember if you had save uninitialized set to true it would save all of these sessions even if it’s not modified to the session store so that would use up a lot of memory for no no good reason whatsoever so what I’ll do right now is I’m going to modify the session object by just simply referencing request. session and I can attach Dynamic properties onto this session object so let’s do a simple one I’m going to go ahead and reference visited and I’ll set this to true and I’m just going to remove uh I’m just gonna remove the session oh I’ll leave I’ll leave everything alone for now and now watch this okay let me go into my thunder client and I want you to take a look at what happens now when I make my first request so the server just restarted because we’re using node modon so whenever I make changes it’ll restart the server but I just made one request and you can see this is my cookie and this is my session ID notice how now when I make a new request every single time you see how now the session ID is the same every single time okay every single time I make a request session ID is the same and the reason why this is good is because now I can actually track the user you can see that we have this visited property on the session object and since the ID is not going to be generated every every single time the server itself knows what the session ID is they can look up the session ID and attach the correct session data to the incoming request object so we’ll know who which which user is so let me show you an example okay so what I’ll do is I’m going to go ahead into any endpoint right now I can go into any endpoint and what I want to show you is if I go into let’s it’s let’s do SL API users so this endpoint gets a list of all the users and I’ll just console log request. session and request. session ID and I’m going to go back into my thunder client so remember the server just restarted so because we are not using a persistent data store for our sessions everything gets wiped out because everything is currently in memory so I’m going to go ahead and click Send for our base URL I’m going to make a request to the base URL first because that is the endpoint that will actually set the cookie for us okay it’ll it’ll modify the session data which will set the cookie and then send it back to the client so if I click Send okay you can see that I have my cookie generator right over here and also if I click on cookies on Thunder client and if if you’re using the browser or if you’re using Postman you can also look at the cookies yourself but you see how I have this cookie right over here and you’ll notice how uh everything after these let me see if I can zoom in a little bit you’ll see that everything after these first four characters all the way up until this dot so this whole thing right over here is actually our session ID you can see that they match if I put them side by side you can see that they match right over here and then and of course everything over here is the signature of the cookie because it’s signed All right so now that we have our cookie from the server now I want to show you what happens when I visit a completely different endpoint so let’s go to API users because that’s where we’re also logging the session data as well okay so right now we have a cookie we’re sending that cookie to the server the server is going to make sure that cookie is a valid cookie and if there’s any data for that session ID that was retrieved from the cookie that was sent to the server if there’s any any data in the session store it’s going to map it to that incoming request object okay so basically this session object comes from the session store essentially it get it kind of gets restored but let me make a request so I just made a request just now and notice how when I made that request okay I get the same exact cookie right over here okay you see how I have the same session ID same session ID in a completely different endpoint you see how this object now logs visited true whereas before the previous one didn’t obviously because we didn’t have a cookie set properly when we visited this base URL okay but when I visit this base URL we modify the session object so then that will set the cookie and send it to the browser we make another request to the user’s API so so when we do make that request request. session now has that visited true property set and it has the same exact session ID so it’s important to understand this because now we can actually build out some kind of authentication system and know who each user is one more thing that I do want to show you is I want to show you the session store currently so remember that by default the session store is in memory so it saves everything in some data structure and it lives on the server and of course this is not good because when it’s volatile so if the server goes down and you may have seen this already we have to visit the website again and have a new session created for us so I just want to show you this real quick so let me reference console.log request. session store and I’m going to call this get method and I can pass in uh any session ID okay and then uh let’s see we have to pass in a callback function so that’s okay let me actually do this instead so I’m going to pass in request. session. ID and a callback function so let’s see error and session data and I’ll just do if error throw error and and then I want to console log the session data just so you all can see what this looks like all right so now let me do this in my browser okay so I have these cookies set which are not going to be valid anymore because we just cleared we just uh restarted database so now if I go to the base URL first we have have the cookie set and let me just kind of go to my console and scroll down okay so this is our session ID now if I’ll go to the user Point okay same cookies but notice how this is coming from this part right over here line 29 so notice how when I called request. session store.get I can pass in any session ID and of course if it exists then it’ll give it to us which I’m logging it right over here on line 29 so that’s where it’s coming from okay so that is how the session store stores these session object data so I hope that makes sense because I really want you all to see this visually because just by saying it it kind of doesn’t really help you understand how things are being saved underneath the hood but at least it helps you better understand that now we can see that this session data is stored in some data structure on the server in memory but in later parts of this tutorial I’m going to show you how to use an actual database to store the session data so that way when your server goes down the session data gets restored so I did want to provide another example with how to use sessions and express so what I’m going to do is show you all how to set up this fake authentication system it’s not like a real authentication mechanism but the goal of this is to help you understand how we can map a single session ID to a realistic user in our application so I’m going to go into my main index file and I’ll just set up the route inside here instead of having to create like a new router and such because I want to keep this simple so I’m going to reference app and whoops sorry about that I’m going to reference app and I’m going to call the Post method to set a post request and the endpoint for this will be/ AP SLO and then we will need a request Handler I’m not going to do any validation on the request body um just because like I said I want to keep it simple we’ll just assume that the payload that we’re sending the request body that we’re sending to this endpoint is correct all right so let’s go ahead and grab the request body and then what we we want to do next is uh let’s go into our constants MJS file if you don’t have uh a list of mock users then you could just simply create one or like I said you can just pull the code from GitHub but I did actually do this earlier I provided a bunch of passwords for each user object so that way we can actually use this example so go ahead and make sure you have a username and a password these two are important okay so what I’m going to do is whenever we we make a request to this endpoint we’re going to go ahead and look up the user by the username and we can assume that the username will be unique which is pretty standard in applications so I’m going to go ahead and destructure from the request body and I’ll do this all on this one single line I’ll D structure username and password and of course we are assuming that these fields do exist okay again I I would recommend you yourself uh validate your actual uh request bodies and if you don’t know how to do that check out the section where we talked about validating post requests or validation in general and you’ll learn about that so what I’m going to do is now I’m going to reference mock users but I do need to import that into this index. MJS file so let me go up top here and import mock users from utils consents JS and then I’ll simply just do a search on the user so const find user equals mock users find and then we’re going to pass in the predicate so we want to search for the user by username so I’m going to pass in this predicate function and that the argument for that function is going to be the user object so I’m going to reference user. username and compare it to the username that we’re sending to this post request so this will search for the user by the username and if it does not return a user fine user will be undefined so from here let’s set this up so what we’ll do is we’ll check to see if find user is undefined so if if not find user okay then what will happen is we’ll return a 401 return response that’s status 41 which just stands for uh unauthenticated so let’s just do send message you can also just send the message as bad credentials like that so of course if the user is found then this whole if statement would not be executed but if it is not found then it would return a 401 next check that we want to perform is checking the passwords making sure that they match and like I said we are checking raw passwords that’s okay for now later on you’ll learn how to actually hash the passwords and save it to the database and then also be able to compare hash passwords so I’m going to go ahead and write another if so if find user do username oops sorry not using password I’m going to do if it’s not equal to password then I’m going to return the same exact response right over here um okay let’s see okay that’s fine and then I could probably also just you know what I could probably just combine this into one single statement so if there’s no user or if the passwords don’t match then we’ll just send this back I guess that can work fine now remember the main purpose of this endpoint is to modify the session object because we want to stop generating new session IDs every single time we want to be able to allow Express session to generate that session ID once set the cookie and then send that cookie back to the browser or the client so that way when the client sends another request we can use that session ID and look up the session data and from the session data we can see which user actually belongs to this session ID so what I’ll do here is whoops what I’ll do here is I’m going to reference request. session and then I’m going to attach this Dynamic Property called user and I’m going to attach the fine user value to this user property so remember we can attach Dynamic properties to objects in JavaScript so I’m going to do that right over here and then this should modify the session object and that will have Express session set a cookie and send it back to the browser or the client as a response okay and then the browser will have that cookie and now they can use that cookie to send it to the server and the server will know who that user is so watch this uh let me go ahead and return response. status I guess 200 would be fine for logging in and then send let’s send back the user that was authenticated okay so this endpoint should work let’s just test it out so let me go ahead and make a new request post request Local Host port th/ / o and we’ll pass in a username so let’s actually uh let me go into my mock users array so I’ll do Anson and then the password for Anson is hello 123 so Anson and then password okay so now you can see that right over here I have logged in okay obviously you wouldn’t want to return the password back but like I said just a simple example if I look at the cookies I can see that I have my cookie right over here okay this is my session ID right over here so now that I have logged in and I have a cookie set on this client side right over here I can now make requests to the server and the server will receive that cookie it’s going to parse it and it’s going to take that session ID that I got from the cookie and then map the session data object to that session ID itself so what I’m what I’m going to do now is this I’m going to go ahead and set up one more endpoint app.get API status and this is just going to show the authenticated status of the user so whether the user is authenticated or not in in this context we can tell if the user is authenticated by checking to see if request. session. users defined because remember this right over here is what actually indicates that the user is quote unquote logged in the moment that we modify the session and we’re only doing it when we find the user and the passwords match okay so what I can do is I can just Che simply check uh let’s do this I can use a turn operator so return request. session if user is defined at all then what I’ll do is I’ll returnal response status code of 200 and I’ll just send back request. session. user and then if the user is not defined on the session object then I’ll just send back a 401 so I’m just going to copy what I have up here but I’ll just simply say un uh not authenticated okay hopefully this get request that I’m setting up makes sense so we have one endpoint that actually does the core authentication the other endpoint gets the authentication status hence why I call this endpoint uh SL API status so our server just restarted so again everything is in memory so it gets cleared so we do need to reauthenticate again so I’ll just show you real quick let me delete all the cookies okay me just okay so let’s click send to the same endpoint for/ API we’re going to send this username and password payload okay so I just got back a cookie right over here and now watch this if I were to now visit the status endpoint API status endpoint and make a get request to it you’re going to see that the response is going to be the actual off user okay the response is the actual off user watch what happens if I clear my cookie okay so if I clear my cookie right now and if I try to access this endpoint you see how it gives me a 401 unauthorized error see not authenticated right over here and remember that I cleared the cookie from my client so the server received the request and received this get request without any valid cookie okay and since there was no valid cookie there was no mapping between that session ID from the cookie to a user that’s in the session store so hopefully that makes sense and additionally what I’ll do is let me just quickly reference request. session store get and let me call the get method and let me pass in that session ID session ID and then error session I’m just going to log the session just to show you all how everything again is stored in memory so let’s go ahead and do this let’s make a post request to SL API of course if I pass an invalid password it’ll say bad credentials if the user is not found same thing so let’s log in okay I have my cookie right over here and now let’s visit the status endpoint for SL API status okay we’re good to go with that and if we look at the console I want to show you that right over here we are logging the user in the session store okay right over here so if I go back and click Send you’ll see that it’s logged every single time we’re grabbing the session data from the session store and the session data object that we retrieve by that session ID has this cookie property that gives us information about the cookie and then it has this user property which is the user object itself so that is how the session ID maps to a user on the server side so I hope I really hope this makes sense because if you understand this then you can understand really anything with sessions and I really hope that all of this makes sense because I can understand sessions are kind of a little bit difficult to understand but by seeing how the data is saved on the server side and how we can actually retrieve it so easily like this and map it to the session ID that can help you understand sessions a lot better now what I’ll do is I will authenticate on Thunder client with this set of credentials and then I’m also going to authenticate on Postman with a different set of credentials just so that you can see how with different clients we can authenticate with different credentials and we can see the status of our authentication and then you’ll actually see how the server manages multiple different sessions so let’s just very quickly uh let’s see okay so we’re not authenticated so let’s make a post request to SL API with uh username Anson and the password hello 123 okay so we’re authenticated here uh let me grab another set of credentials so Jack and hello 124 so let me go into post man make a post request HTTP Local Host Port 3000 API off let’s click on body Tab and then select raw and then make sure it’s set to Json whoops and then so now set username to Jack and the password was hello 12 4 okay and remember we’re in a completely different client right now Postman is its own environment obviously and just to show you this we don’t have any cookies set right now so the moment that I click uh send right over here so I just made a request and you can see it’s right over here if I click cookies now you’ll notice how on my Postman client I now have this cookie and of course this cookie is different than the cookie that we have on Thunder client because we’re two different users now that’s the thing that I’m trying to show you we’re two different users you can see that the cookies are different okay so if I were to visit this API status endpoint with a get request you can see that uh it tells me um let me see here we go I don’t know why that was formatted like that okay so you can see that in on Postman I am logged in as Jack and then on the Thunder client I am logged in as Anson see uh whoops right over here look at the response I’m logged in as Anson so now we have two users that are quote unquote logged in and you can see that the session store contains both users they contain Jack and and Anson so hopefully this also helps you understand how the server can manage not only one but many sessions and map each session to different users now I’ll show you even one more example where we can set up a virtual cart system for authenticated users so to keep things simple I’ll set up a simple post request and then the end point will be SL API SLC cart pass in our request Handler and then we only want the user to be able to add items to a cart if they are authenticated so if let’s say request if there’s no request. session. user return response I’ll just send status of 401 okay however the user is authenticated the next thing that we want to do is of course check to see if the cart already exists on the session object because if it doesn’t we need to add it if it does we can just simply add the item to the session cart now of course the request body itself will just pretty much be data relating to an item that we’re adding to the cart so just to keep things simple the request body for this endpoint will just have a name for the item and the price for the item that’s it so let me just destructure the request body from the request object and I’m going to rename this to item and we’re going to assume that the field and all the the values for our request body are valid but I encourage you to practice and actually validate your request bodies so first thing we need to do is check to see if the cart exists on the session object and that’s pretty easy to do I’m going to go ahead and destructure the cart property from the session object so cons cart and then inside these curly braces where the cart variable goes equals request. session so if C is already defined I could just simply do cart. push item and this should be able to just modify the cart and then if the cart doesn’t exist then what I can do is I can reference request. session. cart equals an array and then pass in that item as the first element in this card array just like that and once we’re done we can just return a response status of 2011 and I’ll just send back the original request body so let’s test out this logic let me go into Postman so I’m currently not authenticated that’s okay if I try to make a post request to API slart it’s going to give me unauthorized that’s perfectly fine so let’s first authorize so make a post request with our credentials to SL API off so we are authenticated and now let’s go ahead and add items to our cart so name orange and then price let’s do oops that should be a number let’s do 199 click Send okay so that’s our cart okay so now I can see that this was the item that was returned so that’s good so what I want to do now is I want to actually see the cart so what we can do is make a get request to off SL status and this should return I guess only the user but we want to get the cart so let me do this uh let me set up a quick app.get route for the cart itself so I’m just simply setting up a get request for/ apsc cart and then I’m going to do the same thing up top over here if there’s no user defined in the session object then they are unauthorized so we’re going to return a 401 and then I’m just simply going to return response. send request. session. cart and if cart is undefined we’ll just return an empty array like this using this double double question mark operator okay so if cart is undefined will return empty array so let’s test this out again so we need to reauthenticate so let me do do this okay so make a post request to the Au end point so now we are logged in and now I can verify I am logged in so that’s good so if I try to get my cart you can see that I have this empty array but if I try to add items to the cart and if I make a get request you can see that I actually have items in the cart so pretend like this is the API that your front is calling and then as you want to add items to the cart for the user you would just pretty much add it to the session data and then whenever you want to get all the users items in the cart you can just grab it from the back end like this and I can add more items let’s do uh Gatorade and 299 and let’s make a get request and you can see now I have two items in my cart and let’s go back to postman and authenticate as Jack So currently on Postman we are unauthenticated I’m going to make a post request to the/ API SL off endpoint and pass my credentials so now we are authenticated so that’s good and if I try to get my cart for Jack you can see it’s just an empty array because we don’t have any items in our cart so let’s fix that let’s add some items to the cart so let’s do name broccoli and then $4.99 okay so now I added broccoli to my cart as Jack when I make a get request this is my virtual cart that comes from the back end and then on Thunder client where I am authenticated as anen this is my own virtual card so each user each session has their own data okay each session maps to its own user and then it maps to its own virtual cart for that user and whatever other session data that we need to add we can just very easily attach it to the session object itself so I hope all this makes sense and like I said I wanted to give you all multiple examples because I understand sessions can be a little bit tricky to understand sometimes but what we’re going to do is move on to actually learning how to set up authentication with a library such as passportjs in this part of our tutorial I’m going to teach you how to use passportjs to integrate authentication for your express application we’re going to be using a local strategy for passport which just means that instead of using a thirdparty provider like Google Facebook Twitter we’re actually going to be using credentials that are saved on the actual applications database in our case we don’t have a database so it’ll be saved in an array but the idea is for local authentication the application saves that information compared to using just a third party provider to log into their application I’ll show you how to use local authentication and then in later parts of the tutorial I’ll show you how to use OA 2 so that you can learn how to integrate thirdparty providers to log into your application using something like Discord or GitHub or Twitter so let’s go ahead and get started the first thing that we’re going to do is install passport so I’ll type npmi passport and since we’re using a local strategy we need to make sure we install the correct strategy package so aside from passport we need to also install passport hyphen local again if you were using using let’s say Facebook as the way to authenticate users to your platform then you would have to install passport hyphen Facebook as the strategy and all it is is just a package that you install with passport so let’s go ahead and hit enter and this will install the packages for us and let me just go ahead and run my server and now we’ll go ahead and configure everything in our application so what I need to do is I first need to import passport so import passport from passport now passport integrates really well with Express session and many times you will actually use express session with passport or vice versa passport with Express session you don’t need Express session with passport but it is highly recommended and many people do in fact use both of them together because passport will take care of mapping that user that was just logging in with the session ID if you need to recap on sessions check out the previous section of the tutorial where I actually showed you multiple examples of how to use express session so what I’m going to do after importing passport is I’m going to enable it so where I am registering the session middleware which is right over here I want to make sure I’m registering passport after I enable the session middleware because that needs to be done before and then we also need to make sure we enable password before we register our routes so in between the session middleware being registered and where we are registering our routes I’m going to go ahead and call app.use and I’m going to reference passport and call the initialize method just like that okay and then since we are using sessions I’m going to call app values again and pass passport. session primarily this will take care of actually attaching a dynamic user property to the request object called user and then you can actually access that user object by simply just referencing it from the user or from the from the request object and then you can know who the actual user is that is making the request I’ll show you how that works later on so that’s all we need to do inside our index. MJS file so next thing I will do is I’m going to go into my source folder I’ll create a new folder and I’ll call it strategies so this is where I will have all of my strategies so right now we currently will only have a local strategy so I’ll create a file called local strategy. MJS and what I’m going to do is import passport let me zoom in a little bit so import passport from passport and then we want to import this strategy class and it comes from the passport local package now all of the strategies will have this strategy class so if you installed the passport Facebook package it would have its own strategy class just wanted to mention that and then what I’m going to do is I’m going to call passport. use and this is where we tell passport to actually use our strategy okay so we need to pass in an instance of this local strategy right over here of this strategy class so I just need to Simply create a new instance so new strategy like this now the strategy Constructor can take in uh actually two arguments I don’t know if you saw right over here you can pass in options or you can pass in this verify function for now I’m going to just ignore the options cuz you won’t really need this and later on on in the video I’ll explain when you’ll actually need this options but I’m just going to specify this verify function so that’s just going to be this callback function right over here and this callback function takes in three arguments it takes in the username password and it takes in this done function now since my application takes in a username and a password this works perfectly the way that these arguments get passed to this callback function is whenever you make a post request to your endpoint that takes care of of handling authentication the passport will look for the username and the password inside the request body that was sent to that post request endpoint and then they will it will pass it in as arguments to this callback function so this is assuming that we do in fact use a username to authenticate now sometimes you might not use a username you might use something like an email or maybe the username might be named differently so that is where you actually need to pass in this options right over here because you need to tell passport that we’re actually not using a username field but we’re using let’s let’s say the email address field so what you would do is you would specify this username field and then you’ll tell passport okay the actual username field is the email field like that then passport will look for the email field in the request body and then send that as the argument for username so I just wanted to mention that I’m going to leave this out for now and then once we finish implementing this strategy I’ll show you how it actually works so what we’ll do is inside here this verify function think of it like this this is the function that is responsible for doing a couple things but the main thing is to validate the user so you need to make sure that the user actually exists and then you need to check to see if the passwords are the same the password that we sent to the server and then the password that was attached to the user object itself from the database or in our case an array so those are the two main checks of course there might be additional checks that you would want to perform but generally those are the two major ones so again the first thing that we need to do is search for the actual user right now I don’t have a database set up set up but if for some reason you might have one already configured then what you need to do is just use whatever database module you’re using to to interact with the database search for the user by the username in this case find the user and then once you find the user check the passwords so let’s do that so I’ll go ahead and declare a variable called find user and I’m going to import that mock users array so this array just has a bunch of users right over here with a user Name ID display name and password and I’m going to use the find method to search for the user by the username so user. username is equal to username okay so this will search for the user by the username if the user is not found then we actually want to throw an error but before we throw any errors let me actually wrap all this inside a TR catch just like this so so that way now when I throw my error right over here and I’ll say for the message user not found that error will be caught inside this catch right over here okay now let me go ahead and do this if the user is not found we’ll throw an error I’ll handle the error case in just a bit but I want to move on so let’s say if the user is found we want to check the password so if find user. password is not equal to the password that was sent to the server then we’re going to throw another error we’ll just say user or password I’ll say invalid credentials okay okay so now let’s handle the errors that that could be thrown so we’re going to catch those errors inside this catch block right over here and what we want to do is we want to go ahead and call this done function when we handle the error so notice how this done function it takes in two arguments it takes in an error and it also takes in a user which could be a falsy value so of course when an error happens that means the user itself uh was not validated correctly okay so that could be either the user was not found or the passwords did not match so in this case we want to make sure we do pass in that error object and for the user we can just pass in null like that and then this will just pretty much move on from this verify function into the next step which we will get into okay so that’s what we have to do for the catch of course when we are done validating the user if both of these uh cases are false so if the user actually is found and the passwords are actually correct they do actually match then we want to make sure we also call the done function but this time there are no errors so we’ll pass in null and then for the user we’ll pass in the US user that we found like this and that’s it for the verify function okay so like I said for the database you would query the database find the user check the password if the user exists of course and then any errors that are that could be thrown would be caught inside this catch block right over here hence why we’re using try and catch and then if everything is good you’ll call the done function passing null for the error cuz there were no errors and then passing that user instance any errors would be caught with this catch block and then you would call done passing that error instance and then uh passport would take care of handling that error for us okay so the next thing that we need to do is we need to actually register our middleware our passport middleware because right now all this does is it validates the user but there’s still a whole bunch of things that we have to do especially since we are using passport with Express session okay so we need to import this uh local strategy file into our index file but first let’s actually export this password. use call so I’m going to do export default password. use and I’ll import it right over here like this so import and then the path to the file so this will literally import this whole thing right over here into our index file okay and then now we need to set up an endpoint that we can actually use as our authentication endpoint where users will make a request to or the HTT client will make a request to it’ll pass in the user and password in the request body and then that endpoint will take care of invoking our passport middleware so it’ll actually invoke this verifi function let me just quickly log out the username and password let me just do this username and let me do the same thing for password so that you all can actually see what’s happening underneath the hood okay so let’s go ahead and set up our endpoint I’ll just do this inside the index. MJS file um just to keep it everything simple if you’ve been following along the entire series I recommend you put everything in its own router but let’s go inside our index file and let’s set up let’s do this app. poost so the path will be SL API sloth and then we need to pass in passport. authenticate like this and we’re going to call the function like that and then we want to also pass in our final request Handler so let’s do that request and response and then uh let’s go ahead inside this authenticate function call we need to specify what strategy we want to use and it’s literally just going to be the name of our strategy in our case the strategy for Loc local is just local so we’re just going to pass in local like this okay that’s literally all we have to do of course if you’re using Discord strategy you would pass in Discord for GitHub you would pass in GitHub for Google you would pass on Google like that and vice versa so hopefully that makes sense okay so now what I’m going to do is I’m going to go ahead and make a request to uh SL API o making a post request to it and you’ll see how it’s going to go ahead and invoke this passport. authenticate middleware function and then it will call this verify function so let’s do that let me go to Thunder client Let’s do let’s do this okay so post request to our API off endpoint that we just set up click Send okay so ignore this error for now I’ll address that in just a bit but let’s take a look at the console and let’s see what’s going on you can see right over here username and password are being logged so that verifies that we are actually inside this callback function so passport actually called this callback function right over here and then all of this logic is being performed okay so it’s going to go ahead and search for the user if the user not found it’ll throw a user not found error so let me type in a username that doesn’t exist in our array so when I pass in this username an nansen you see how it says user not found that’s the error that I manually throw the that L thrown over here and then it gets caught right over here and it calls the done function okay notice how if I actually don’t even pass in if I pass in a null value for error we actually won’t even get an error this is a completely different error I’m not sure why it says 41 unauthorized but um yeah see it doesn’t throw that error but it gives us that instead okay but of course let me pass the error back click Send and pass in invalid username it will say user not found let’s say if the user is found but the credentials are invalid and so I’m going to pass in the wrong password it’ll say invalid credentials so before I move on let me just show you real quick about the username field that I mentioned earlier so let’s say for example you are expecting the user to provide the email address as their username so let’s say the we have email let’s just do an@ gmail.com as an example so watch this what we need to do is we need to pass in that options right over here and then we need to pass in this username field and just specify the field that’s going to be our username which in this case it’s going to be email and if I click Send you’ll see now I can actually use the email field as my username and if you look at the logs let’s show you right over here okay right over here username an@ gmail.com okay you can of course change in you can change up the arguments change the email like that if you want to so hopefully that makes sense and that shows you how you can use the username field if let’s say the username field was something else let’s say if it was something like user uncore name for whatever reason then you can just specify that okay and of course if I try to send this this one no longer work if I try to use username like this that will not work I have to explicitly say user uncore name so that way passport knows which field to look for so I hope that part makes sense okay let me just remove this part part okay so now the other thing that I wanted to talk about was this error that I just that I just encountered so you see how it says fail to serialize user intercession so here’s the thing we actually successfully were able to authenticate by checking all these credentials and verifying that it was correct but because passport needs to actually serialize the user into the session we need to actually Implement two functions okay because right now we don’t have have those functions implemented that is why we are getting this error so what we need to do is inside our strategy file I’m going to go ahead and reference passport and I’m going to go ahead and look for this serialized user function so I’m going to call that and this function takes in an argument which is a callback function like this and this callback function takes in two arguments this first argument is going to be the actual whoops the actual user that we are trying to see iiz okay so first of all what exactly does this function do well this function is responsible for actually taking that user object that we just validated and then storing it in the session okay and that’s the reason why I mentioned earlier that passport integrates very well with Express session so it takes that user that we just found from this verify function and it’ll take care of storing it in the session data okay the second argument is going to be the this done function so inside this serialized user function you don’t really need to do anything but just call this done function and it takes in two arguments it takes in an error in this case we’re not really doing anything so we just pass a null for the error and you’ll notice that right over here the suggested uh name for the field it says ID you can actually pass in whatever you want for this second argument that relates to the user so for example I can just pass in user like this okay now

    depending on what you pass in to this second argument actually ends up being the argument that will be passed into a call function for this the serialized user function don’t worry about that right now I’m going to implement it in just a second but what what I want to do instead of passing just the user object I want to pass in the ID of the user like this you want to pass in something that is unique okay so either the ID or a username something that is unique that can be used to search for the user either in our array or a database okay so now let’s move on to the next function that we need to implement so deserialized user is the next function and this also takes in a callback function and this C function takes in two arguments it takes in whatever it was that you passed in to the done function for serialized user so notice how I pass in the ID so this actually gets passed into this callback function for deserialized user okay and let me actually show you this stack Overflow post because I think this post is very helpful for a lot of people so I want to show it to you all so right over here they kind of give you like an explanation to how all this stuff works but I want you to pay attention over here they have they were able to provide the user was able to provide a visual flow so you can see over here we have both our serialized and deserialized user functions so whatever they pass into that done function for serialized user that pretty much gets saved to the session okay and I’ll show you later how that looks like um in as an object but it gets saved and it gets passed right over here okay well it doesn’t really get passed per se it’s just it’s just that we the deserialized user will use the ID to actually search for the user inside that function that we’re going to implement okay if we were to pass in the username then it would look up the username in the session data and it would use that to search for the user in the database okay but I just wanted to show you this very quickly because I think this is extremely helpful for a lot of people instead of just not mentioning it at all so the second argument for the call back function for deserialized user will be the done function as well but this time inside der serialized user we actually need to search for the user itself now again serialized user is to tell passport how to serialize that user data into the session so in other words it’s going to store that user ID into the session data okay and that’s really all you need deserialized user is how we can take that ID and kind of like unpack reveal who the actual user is and then what happens is it takes that user object that we were able to retrieve via the ID and it stores that user object into the request object itself okay so later on you’ll see how we can reference request. user when we make requests but what we need to do inside der serialized user is search for the user either in our database or in our array so what I’ll do is let me use a TR catch and first I’ll search for the user so cons find user equals mock users and I’m going to search by the ID this time so user ID is equal to ID if the user is not found I’ll throw an error and we’ll catch the error inside this catch block right over here and then we’ll call the done function and we’ll pass in an error we’ll pass in the error that we caught and then we’ll pass in null for the user because the user was not found and then if the user is found we will call done passing null for the error and then passing the user instance like this okay so again we’re searching for the user if it’s found then we will call done and then password will take care of taking this user object and attaching it to the request object itself if the user is not found then it will just call the done function inside this catch block with the error and then password will handle the error for us okay so now let me go ahead and write some logs real quick because I I really want to show you all how this all works and I want to show you the order of operations okay because it’s very important it’s it’s one thing to actually write the code but it’s another thing to actually understand how this all works CU When I first was trying to understand all this I never I didn’t know anything about this at all until I really dug deep into researching how all this stuff works okay so let me write some logs okay um okay so let’s go ahead and do this let’s make a post request to SL API off so notice how right now it’s it’s still processing the request it’s not going to send a response back don’t worry about that yet but let me just show you what happens right over here let me going me go down over here restart oops let me just restart my server you kind of saw the logs up there but let me just resend the request okay so you can see right over here uh first we’re inside the verify function because that’s where we are logging the username and password and then after everything is successful okay cuz we did pass in the correct credentials you can see how we’re inside serialized user and it logs that user object right over here okay so then you’ll notice that nothing else happens don’t worry the reason why nothing happens currently is because after we call serialized user what happens is it’s going to go ahead and call this next middleware fun function which is going to be our request Handler function so we aren’t doing anything inside here so why don’t we actually just send a response back okay and let’s try this again okay so we’re good and everything is good whoops let me do send status sorry about that send status okay okay so everything is good uh what’s going on here user is not defined uh seems like we got okay don’t worry about that I will have to address that oh whoops I’m sorry let me fix this real quick I passed in user instead of fine user let me fix that I apologize hopefully you all caught the error yourself very quickly okay so let me do this again so first I’m I’m going to click Send good and that error just happened earlier because when I made a second request it actually tried to call the deserialized user function so I’ll explain that so the first thing that happens is when we first log in we call serialized user once that’s all we need to do is call it once this function this call function needs to be called when we log in and we’re only going to log in one time obviously until we log out and then we log back in okay once we have logged in any request that we make later on what happens is passport will then call the Callback function for deserialized user so this callback function is going to get called if I make another request okay so let’s see what happens I’m going to click click Send see how now uh let’s see okay yeah right over here see how right now it’s going to go ahead and call deserialize user inside deserializer and it says deserializing user ID of one okay and uh again we’re it’s calling uh serialized user because we’re actually trying to call the login endpoint but you’ll notice that if I try to call another endpoint it’s not going to call serialized user okay but you can see the order of how things are working let me go ahead and Implement another endpoint let me do this let me Implement app.get API let’s Implement a status endpoint and this endpoint is responsible for checking to see if the user is authenticated or not okay so remember how earlier I said that the user object will be attached to the request object so if I were to console log request. user and let me just go ahead and write inside because we have a bunch of logs everywhere so I want to label everything and then what I’ll do is this so I’m not going to send the response back I’ll just log this right now okay so let’s redo everything let’s log in so let’s go ahead and call this endpoint so it goes ahead and we log in it calls serialize user and then inside serialize user we log the user that’s fine now let’s make a get request so let’s let me hit new request okay I’m going to make a get request to that new endpoint sl/ status and now inside this status endpoint uh we want to make sure that we are only sending a response back the user response back if the user object actually exists on the request object and that’s a good indicator to let you know if the user is authenticated or not so if request. user I’ll return a response with the user object U and of course if the user is not defined if this property is not defined and it’s there’s no value then we’ll just simply return response uh let’s do send status 401 and let me actually just quickly use I’m going to use a turn operator instead return request. user so let me just copy that and then response then status 41 so now I can remove this okay hopefully that makes sense uh oh whoops sorry about that okay should have been colon so this is a turning operator over here all right so let’s go ahead and do this let’s log in right now so I’m going to make a post request to my authentication endpoint click Send okay we’re good now let’s go ahead and make a get request to the status endpoint uh let’s see user is not the find I might have an error somewhere else [Music] um what’s going on over here oh whoops I forgot it’s not User it’s request. user okay um let’s re log in so you’ll see that when I log in we are inside serialized user so that gets called that’s fine so now we don’t need to log in anymore because we’ve already logged in one time so we should be logged in so if I click this right over here you can see that I can access my user reference because I’m logged in as ansen and notice how when I make a request to this endpoint it’s going to go ahead and call the deserialized user function you can see the logs are right over here and again what happens is the deserialized user function will use that ID from the session store okay CU that’s where the data is really being saved inside the session store and also the session object itself and then it will use that to search for the user in this case we’re only saving the ID let me also show you one more thing that was also mentioned in that stack Overflow post as well let me console log rec. session and let me just do this oh whoops it’s whoops sorry about that it’s request. session yep okay all right so let me do this again and let me go down here okay you notice how right over here and the reason why I’m showing this because again I want you to understand how all this works notice how now the session object has this passport property and if you saw the part where we talked about Express sessions you’ll remember that as soon as you modify the session object it sets the cookie and sends it to the front end or the client so if you see right over here if I look at cookies I actually have this cookie right over here and this is my session ID on the server okay so as soon as it as soon as we modify that session which passport is modifying the session for us so it attaches this passport object to it and then it notice how it takes this ID and then Maps it to the user like that and that’s assigned to the passport object and now watch this if I were to go back to serialize user and if I were to change this to let’s say username so let me do that real quick so let me change it to username I’ll just remove this log right over here so let’s search by the username okay and now I want you to see what happens so I’m going to log in right now okay so I’ve just logged in and I’m going to make a request to that off/ status endpoint and now if you look at the logs you can see that we are we serialized the user by using that username field now some of you might wonder well why can’t we just pass in the whole user object so let’s say for example instead of just passing in the ID or just the username I pass in the entire user object right over here so since we have the user object I probably don’t even need to search for it so you know what let me just comment all this out and I’ll pass in I’ll just replace all this for now I wouldn’t recommend this but I’ll just show you what happens so let’s reog in and you can see how now passport. user has the entire user record populated okay so let me explain to you why you probably don’t want to do this because your session data you don’t wanted to have a bunch of information that could possibly go stale okay because think of it like this right something like the ID is never going to change okay the username might change every once in a while but the ID is never going to change if let’s say the display name changes and then you deserialize the user by simply grabbing that user from the session data and then you grab everything including that stale display name that’s going to be returned back to the client if they request it okay so if you make changes to the database it’s not going to be synced up with your session data you’ll have to manually update that yourself and that is going to be an additional uh you know scope of work that you’ll have to take care of and you also don’t want to just store a bunch of properties inside the session data that you don’t really need because it’s just going to take up a lot of memory and you’re going to you know clog up your entire database with all of the stuff that you don’t need all you really need is just some unique identifier such as the ID or the username and then you’re good you don’t need anything else aside from that okay the Der serialized user function is responsible for finding that user and then attaching it to that request. user object that’s all it is okay so again you could do it but should you probably not all right so I’m just going to change everything back to using the ID and then let’s go ahead and take a look at this so I’m going to log in I’m good here I can log in as any other user I want so watch this uh oh and one more thing I’m going to show you notice how if I delete my cookies and if I try to call this endon again is going to give me a 401 unauthorized cuz I don’t have that cookie anymore okay which of course makes sense but let’s try to log in as a different user so let’s log in as Adam so the password is hello hello so I am logged in as Adam okay so now if I make a get request to the status endpoint my credentials will be Adam adom so now you’ll see in the log that this is what we have okay so I hope all this makes sense and I hope you better understand how to use passport now um and what I’ll do in the next part of our tutorial is we’re going to go ahead and actually set up a database and then you’re going to learn how to use the database to create the user and also save the user to the database and then we have a fullon login logout mechanism before I end this part of the tutorial though I do want to show you one more thing on how to log the user out in other words just destroy the session okay so what I’ll do is WR over here so I’m going to set up an endpoint it’ll be a post request so app. poost apith logout let’s pass our callback function and then first let’s just check to see if there is uh no user defined which means the user is not actually logged in then I’ll return a response and I’ll send a status of 401 which means not authenticated and then if they are logged in we’ll just reference the request object and then we can just call this logout function and then we do need to pass in a callback function for this okay and then all I’ll do is this if there’s any error I’ll just return response send status 400 I guess and uh I think there that’s really all we need to do but if there’s no errors I’ll just send a response back of 200 okay let’s test this out now so let’s log in and then let’s see our status so we are logged in let me go ahead and make a new request so it’s a post request so SL API SL SL logout and you can see now we are logged out and uh okay so our cookies are still going to be present on our client but if I try to make a request to the status endpoint it’s going to say 401 unauthorized because even though we are sending cookies to the server the server knows that that cookie is not valid okay so even if I try to uh well now if I actually try to send a post request to here you can see that it gives a 41 unauthorized because we are not logged in okay so it doesn’t matter if we have the cookie this cookie is no longer valid so it’s going to give us a 401 okay so hopefully uh this makes sense and in the next part of this whole tutorial series I’m going to actually set up a database and then we’ll actually convert everything over and then you’ll learn how to actually encrypt the password as well instead of just comparing raw passwords right now which is what you don’t want to do so I’ll see you in the the next part of this tutorial all right so now in this part of our tutorial I’m going to show you how we can actually connect to a mongodb database using uh mongodb as well as so what we’re going to do is first obviously make sure you have mongodb installed on your local system I do already and I’m going to go ahead and install mongus which is is a node module so let me go into my terminal and let’s do npmi whoops Mongoose like this okay so we’re good with that so now what we want to do is let’s just go ahead into our code and we want to actually connect to our database so it’s pretty easy so all we have to do is first import so let’s do import from and I’m inside my index file right over here okay and then what I’ll do is write down over I guess write over here I’ll go ahead and do doc connect and I’m going to pass in the URI so mongodb is the protocol and then the host name so Local Host and then Port 27017 you don’t have to provide the port if this is the port that you use because by default it will use port 27017 but let’s say if your mongod DB is running on a different port then you must specify that Port because the package uses this port by default okay so I’m going to Omit that but then I’m going to specify the database name so I’ll just call this Express uh tutorial and then what I’ll do is disconnect function actually returns a promise so I’ll just use then and I’ll conso log connected to database and then I’ll also use a catch if there are any errors I’ll just simply whoops write a log error and then I’ll log the error so let’s start up our server let’s make sure everything is working fine okay so you can see right over here it says connected to database all right cool so let me go ahead and open up my mongodb GUI my graphical user interface let me just zoom in a little bit so this is mongodb compass you can use whatever you want I’m just going to use this for now so I’m going to connect to my mongodb database I’ll click connect okay so we are successfully connected to to the database so that’s great so now let’s go ahead and set up our very first schema now some people might wonder well why are we using Mongoose and not using like the regular mongodb package for example let me just show you this one over here some people might wonder why we’re not using this node.js driver to interact with our mongodb database the reason why is because realistically in projects you’re not actually going to be uh writing actual query like they do over here you’re going to be using an OM for many realistic projects because they are very safe to use for your codebase it’s the same reason why many people use orms for SQL because it just takes care of a lot of things for you and it also takes care of structuring your data it makes it a lot more easier okay so I just wanted to mention that in case some of you might wonder why we’re not using the regular mongod DB driver but instead we’re using mongus okay and Mongoose is very popular many people use Mongoose if you look at the node module on the website you see there’s 2 million downloads so it’s not going anywhere anytime soon okay anyways let’s go ahead and create our schema so we’re going to create a new folder and I’ll call this I guess mongus and really what a schema is is it’s just a way for you to Define your database uh collection you want to you want to actually sh sh how your data is going to look like and we do that using a schema so I’m going to create a folder called and I have my folder called schemas and inside that schemas folder I’m going to create a new file and I’m going to call this user.js okay and this is where I’m going to create my user schema because what I’m going to do is I’m going to replace uh my endpoint where I create a user so right over here I’m going to replace this so instead of actually saving it to the array we’re going to to just fix this to actually save it to the database okay and then I’m going to show you how we can replace how we can actually use our database to perform the uh authentication validation instead of using the array so the first thing that we need to do is we need to go ahead and of course create our schema so I’m going to go ahead and import schema from like this and then I’m going to go ahead and create a variable I’ll call this us user schema equals new schema just like that and over here we can Define our Fields so what does our user look like so we have a username a display name and a password so let’s set up the username field and we need to specify the data type okay now obviously we’re using JavaScript so there’s no data types in JavaScript or there’s no explicit typings in JavaScript is what I meant to say not data types there’s no explicit typing that we can set to this username field so there’s actually there’s one thing that we can use so let me actually do this import uh let me actually do this instead let me import mongus and do mongus do schema instead and then to set the field for username to basically tell mongus what data type this is we’re going to use mongus do schema. types and here we can reference which data type we want to Define our username as so your our username is going to be a string so I’m going to Define as a string like this and then we’re going to set the display name same exact thing oh whoops this should be comma sorry about that and then the last thing was uh password okay let’s do that password okay great now additionally let’s say some of your Fields might be required ired so what you can do is instead of assigning this type to your field you can actually assign an object to that field and then you can specify type the field type on that object and set it to that mango. schema. types. string and then you can set this uh field called required like this and set it true true like that so I’ll do the same thing for our password as well uh let me just go ahead and I’ll just copy and paste this okay another thing that we can do is for our username we can mark this field as unique by simply just using this unique field and set this a true so that way if there is already an existing user document in the user collection that has this username let’s say ansen and if we try to save another document to the user collection with username set to Anon it’s going to throw an error okay so that’s hopefully that makes sense okay so we’re pretty much done with our schema this is a pretty simple schema so now what we need to actually do after we create this schema instance is we need to actually uh compile it into a model and that’s actually pretty easy so what I can do is I can uh create a variable I’ll call this user and then we just need to reference mongus and then we just call model and then we need to give a name so I’m just call this user and you pass in the schema so user schema like this okay and you use this model to actually perform operations for that user collection for the database so if you want to search for a user you would reference this user model and you would call this find one method like that okay but let’s go ahead and just export this model so we’re pretty much done with our schema and our model all right so now we can go ahead and save data to a database save a user to a database and we’ll go ahead into our user endpoint so I already have one set up right over here already and you can see I’m inside my user router uh right over here so I’m going to just use reuse this endpoint but I would encourage you if you don’t if you are not using routers I would encourage you to do so but if you don’t have it set up just create your own uh / API us endpoint or whatever endpoint you want to create the user I’m going to remove all this stuff out over here and I’m also going to just remove this validation check because I don’t want to combine too much stuff because some I know some of you may have not watched the previous parts of this tutorial and I want to make sure you at least understand the purpose of what we’re trying to do instead of just adding all of these dependencies on top of it but if you have been following along then I encourage you to perform the validation check yourself so that way it’s better practice for you okay but we’re going to pretty much start as if we’re doing it from scratch so don’t worry so what we want to do is we’re going to send the post request to this endpoint and we’re going to send the username password and um the display name okay so const body we’re going to destructure the request body from the request object and since we’re not doing validation right now I’m just going to assume that the validation uh has happened so that means that I’m going to assume that the request body is correct but of course like I said you want to always make sure you are validating everything okay but we we’ll assume just for tutorial purposes we’ll assume that the request body is valid and then what I’ll do is I’ll just go ahead and do this I need to First import that let me remove that I need to First import that user model so import user uh import user from schemas user okay so I just imported the user model and then what I need to do is I need to create an instance of that user model it’s very easy all we do is first declare variable I’ll call this new user equals new user like this and then this Constructor the user Constructor I can pass in the object the body object which contains all the fields that we want to save to the database for the user so once I do that I need to then actually save that user to the database so what I’ll do is I will do this declare variable called saved user now to save the user to the database we just simply call the save method on this new user variable because that’s the user instance but this method is asynchronous so we need to make sure we are using a weight behind this new user. save call but of course to do to do that we need to add the Asing keyword in front of our callback function okay and then let’s also make sure we are handling errors accordingly so what I’ll do is this I’m going to go ahead and since this function can likely throw an error I’m going to wrap it inside the try catch like this because this is just creating the instance it’s not going to throw an error I don’t think the Constructor the Constructor will actually error out it’s only when you try to save then mongodb could failed to save the user maybe because uh the username that we’re trying to save for that new user already exists in the entire user collection so it could error out so first if there are no errors at all and we’re good then I’ll just return a response so let’s set the status code to be 2011 whoops it’s response. status 2011 and then send back the new user like this and if an error does happen uh I’ll just log the error and I’ll just send back a status code of 400 which just means bad request oh whoops should be return misspelled that okay let’s test this out let’s go into Thunder client let’s make a post request to our users endpoint okay and let’s pass in the username anen password let’s do hello one 123 and then display name click Send uh is our server up oh well I forgot to name this user. MJS not user.js so let me rename that um um and I guess I will click yes to update the import so inside my routes file yep yeah so the problem was that I needed to actually add user do MJS here as well okay um all right so now our server should be up and running click Send okay and now you can see the data was saved to the database let’s go into mongodb let’s refresh see how the express tutorial database appears over here and we have our users collection and I can now see my user in the users collection so that’s wonderful and watch what happens if I try to click Send again it’s going to say bad request and the reason why is because uh you can see over here it complains about a duplicate key error and that’s because I marked the username as a unique field okay so if we try to save that same username to the database again it’s going to throw an error so hopefully that makes sense now additionally what I’m going to do and this is really just for the people who are in fact wanting to validate their schemas I will add the schema check right now so what I’ll do is right before we call this request Handler function I’m going to call that check schema function and I’m going to pass in the create user validation schema and like I said all the code is going to be in the description so if you do want to do some of the things that you may have missed from earlier just go to the GI up link and grab the code and you can see everything from there but I’m just using this validation schema and I have this password uh that I didn’t have this before but I just added this just now so I have this password field right over here and then I am making sure that password is not empty and you can see that I’m making sure that the username has all these validators that are applied to that username field same thing for the display name okay so by calling this this will make sure it checks the request body and performs the necessary validation on it this middleware does not actually throw an error we need to go inside the request Handler and actually check if there are any errors so the way we do that is we just simply declare a variable called result and we call this validation result function I think that is imported yep it’s imported right up top over here from Express validator and we pass in the request object into validation result and what this will do is it’ll actually grab that um this Dynamic Property that was attached to the request object that Express validator does for us and it’ll give us the information about what the statuses of the request body it’ll tell us if there are any errors it’ll tell us if everything is good if there are no errors so what we can do is I can just simply say if result uh dot let’s see is empty so this just basically means if there are no errors then we can proceed but I’ll make sure I do this if there are errors so if the result is not empty that means there are errors I’ll return a response and I’ll just simply do this return response. send and I’m going to go ahead and send results. array and this actually gives me all the errors so it will tell us okay what fields are missing or what fields are invalid okay so just very quickly I’ll show you how this works so notice how if I omit display name it’s going to complain about display name not being there if I omit password it’s going to complain about the password and if I omit username username will not it’ll complain about the username over here so hopefully that makes sense with how this works so now of course if there are no errors at all then we can proceed with the rest of our um our logic but ideally you don’t want to use the actual request body object from the request object itself like we’re doing over here you want to actually use this function so let me first declare a variable I’ll call this data equals and then we’re going to call this matched data function which is imported up top over here from Express validator and then I’m going to pass in the request object and so what this match data function will do is it’ll grab all the validated fields for you so it’ll grab username password and display name for us okay so let me remove this and let me place this with data instead and I’ll also just console log data as well and let’s try this again so this time let’s make a post request uh for the username I’ll do Anon one and that was created and if you look at the console you can see that that object is being logged right over there and of course if we did omit any data at all then it would just return that response right over here let me set the status to uh 400 okay there we go perfect so like I said I just wanted to show you how to perform validation if that was something that you also additionally wanted to do but I also wanted to show you a very easy way just to save records to the database okay and everything is going to be similar to how we just did this okay so we have one user schema if you wanted to save products to your database cuz we have endpoint for product s then you would have to make sure you create a product schema compile that schema into a model by using this model function right over here or this model method on the Mongoose import and then now you can just easily create products in your database that’s literally all you have to do all right so now in the previous parts of the tutorial where we covered authentication with passport I was actually using users that were in an array and what I want to do is I want to go back to the authentication part and I want to show you how we can replace all this stuff with using the actual database itself CU I know many of you want to actually see an example of how to do that and that’s what I’m going to do and then after we finish this I’m going to show you how we can encrypt or hash out our passwords because you obviously never want to save raw passwords raw text passwords like this in your database because if someone hacks into your database they can see everything they can see the username the password and that’s not good you want to actually hash it so I’ll show you that after we just replace all this stuff over here okay so first let’s go ahead and do this I’m going to go ahead and go into my verify function right here so this is where we are searching for the user in a database and then we’re going to compare the passwords okay so I’m going to pretty much just remove this Mock usind and let me just remove this whole let me just remove all this okay move all this so we need to First import the user model from our user MJS file inside the schemas folder and then we need to search for the user so I’ll show you how to do that so conine user equals so first we need to make sure we reference the user model and we’re going to call this find one method and this is where we need to actually specify a filter so you’re going to pass in an object and you’re going to specify what you want to search the user by so in this case we’re searching the user by the username so I’m going to set username like this okay since the username argument is the same as the username field I don’t have to do this like username callon username I can just do username like that now this fin one method is asynchronous so we do need to make sure that we await this call and then we also need to make sure we add the acing keyword in front of our verify function okay and of course if there are any errors at all it will just be it will be thrown by let’s say the fine one method and then we’re catching it so that will be handled accordingly so that’s already set up just fine so now let’s first check to see if fine user is actually defined because this fine one method could return null which means that the user was not found so if there’s no fine user then I’ll throw a new error and I’ll just call I’ll just say uh user not found and then the error will be caught right down over here in this catch block which we’ll call the done function with the error instance now the user is found and we can verify that the user is defined so now we want to check to see if the passwords are valid so if find user. password so I can reference the property directly on this instance that I just searched for if it’s not equal to password then we’re going to throw an error as well and we’ll just say bad credentials literally the same exact thing only difference is that we are replacing the array um with referencing the actual user model and calling the f one method okay same exact thing let me just remove these two console logs and we need to go into our deserialized user method and then we need to make sure we remove this mock us that fine and uh instead let me remove all this instead we’re going to go ahead and call user. find one but this time we’re going to actually search by the ID but the nice thing is though there’s actually this method called find by ID and I think this should return just one user record let me just double check yep finds a single document so it doesn’t return an array just wanted to double check so this is good because remember our mongodb database it autog generates these object IDs right over here so we can use that to search in a database okay so I I’ll just pass in ID like that and let’s just make sure we add the Asing keyword in front of our callback function for der serialized user and the rest of the logic stays the same if the user is not found throw an error if the user is found then it’s going to ignore this part and then we’re going to call the done function okay and I think that should be it um let me just make sure that everything else is good uh we can ignore the other parts of our application that are still using the mock users that’s fine okay so let’s test out our login and log out feature using the actual database to search for the user and see what happens so we have two users we have Anson and we have we have our password set to one 12 hello 123 for that so let’s go into let me see okay let’s go into Postman uh so I’m going to pass in Anson and then I’m going to pass in the password hello 123 um oh whoops I made the post request to the wrong endpoint okay so it’s still processing I wonder what’s going on uh let’s see let me try let me restart my server let’s try again uh okay so for some reason it’s still processing I think I may have forgot may have forgotten something let’s see find by ID uh oh yeah that’s right I forgot to call the done function down here silly me so let’s just pass in null for the error and pass in the user my apology click Send okay so we are logged in let’s verify that we’re logged in by making a call to the status endpoint so we’re making a get request so I am logged in you can see now my actual ID that’s in the database is right there okay and I have my username my display name my password all that stuff that’s from the database okay so we are a ble to log in using records that are in the database so hopefully that makes sense okay so now I’m going to show you how to Hash passwords for your users when you’re creating them before you actually save it to the database because right now if you were to look right over here in the database you can see all of the users and their passwords and that’s obviously not good and that’s obviously a huge red flag for any application that that saves the passwords raw like this because if a hacker gets access to your database they can literally see all your users and all of their passwords and that’s not good so you want to make sure you always hash your passwords before you save it to the database and then once we hash the passwords I’ll show you how when we log in how we can actually compare the hash passwords so that way we can validate that the user is actually passing in the correct password so first let’s go ahead and install bcrypt so let me go into my terminal npmi so I’m going to type npmi bcrypt like this and once we’re done let’s just rerun our server again and now what I’m going to do is let’s go into our utils folder I’ll create a new file called uh because we want to keep this logic separate from the rest of our codebase so inside here I’m going to go ahead and import bcrypt from bcrypt like this and what I want to do is I simply just want to create a function that will take care of hashing the password so I’ll create a function and I’ll export it I’ll call this function hash password and this function is going to take in the actual password itself so password and the way that we actually begin hashing the password in bcrypt is very simple the first thing that we need is obviously the plain text password and then the other thing that we need is a what it’s called a salt round okay and basically the salt round just pretty much means uh you know how much time is needed to calculate the hash for for bcrypt so of course the more rounds you you want that it’s going to increase complexity uh the documentation recommends 10 so I’ll create a variable I’ll call this salt rounds equals 10 like that and then uh what we can do is we first want to actually generate a salt so this is the rounds but we want to still generate the salt so I’m going to go ahead and call bcrypt and then I’m going to go ahead and call this gen salt method like this and then you can just simply pass in the rounds so salt rounds like that and then this is asynchronous but there’s also a gen salt sync function that is synchronous so if you don’t want to use async A8 then you could just use this function so it it really doesn’t matter all that much because we’re going to do we’re going to be doing everything in order anyways so first we want to generate the salt so let me store this in a variable so bcrypt do gen salt sync and then pass inst rounds next what you’re going to do is you’re going to go ahead and call bcrypt and then you’re going to call Hash so again this is asynchronous as well so this will return a promise with the data in this case our password hashed now there’s also hash sync which is the same function it just does it synchronously so it doesn’t return a promise but it will call this function and then it return the string so I’ll just use hash sync since I’m using gen salt sync as well so you call this function and you pass in the text password that you want to hash and then you want to pass in the salt okay so I’ll just pass in this salt right over here just like that and then I’m done and then I can just return this so whenever I call Hash password this will hash the password for me so let me actually console log salt as well cuz I want to actually show you what this value looks like so now what we want to do is before we actually create our user we want to make sure we hash the password so I’m going to go into my users. MJS file in the routes folder so I’m going to go back to my users endpoint where I’m creating an actual user so this one right over here and you can see uh right over here on line 61 I’m creating a new instance of my user and then I’m saving it right inside this Tri catch or inside this Tri block so before I actually pass the data into the user Constructor what I want to do is I want to reference data. password because remember this data is the request body that is being sent to this endpoint and we expect there to be a password field and since we are doing validation after this point the password field will be there so I want to basically reassign a new value or assign new value to the password field to the data object itself okay so when I pass the data object to the Constructor of user it will contain the hashed password not the raw password so what I’m going to do is I’m going to call Hash password and that’s going to be imported up top over here from our helpers file that we just created from the utils folder uh where am I okay right over here now remember the hash password function is synchronous because we’re not using any async A8 in here and we’re not returning any promises we’re just returning the string so we don’t need to use async A8 but if you did use the asynchronous methods like gen Sal and then hash then of course you would need to First await this and then you would need to add async like that and then you would need to add async in front of this hash password call so I just wanted to mention that for those of you who choose to use the asynchronous versions of the functions so I’m going to call hash password and I’ll pass in data. password so this will take the raw password hash it and then store it back to the password field for data so I’ll console log I’m already conso logging data up here but I’ll console log it after we assigned the new value for password so let’s go ahead and see how this all works so let’s go into Thunder client let’s make a post request to API users and we need to send a username password and display name let’s change it let’s do uh John and username will be John because we already have Anson as username already in the database going to click Send uh is our server up and running oh whoops I forgot one more thing I think I yep I forgot to name helpers JS to MJS let me rename that and then inside the users. MJS file we need to make sure we are adding that MJS extension that was the main problem over there I keep forgetting so I apologize for that but let’s test this out again so our server is up and running I go back to thunder client click Send uh let’s see password oh username must be at least five characters let’s do Johnny Okay click Send okay and now you can see that the password is hashed let’s go into my database and you can see Johnny is saved in the database and it has the hash password okay wonderful we now know how to Hash passwords and save it to the database now the next problem that we have since we have authentication is we need to be able to actually compare the hashed password with a value that we’re sending to the server because right now let’s say if I try to log in as Johnny let’s do this with our current logic right now if I try to log in as Johnny and I and I provide my password like this it’s going to throw an error it’s going to say bad credentials okay that’s because we’re trying to compare uh this password hello 123 with the hashed text and obviously hello 123 is not equal to this entire thing so here’s what we need to do we need to go back into our strategy file right over here inside our verify function okay right over here what we need to do right before we compare the password instead of uh just comparing the raw password that is sent from the client side with the hash password now we need to actually hash that password that was sent from the client so what I’m saying is when I send hello123 as a password to the server I need to Hash hello 123 and then we’re going to compare that hash to the hash value that’s in the database hopefully that makes sense okay and actually there’s a built-in function that we can use to compare hash passwords and I’ll show you what that field is so let me go back into helpers MJS so there’s this function called uh bcrypt do compare or compare sync I’ll use compare sync and what you do is you pass in the plain text password and then you pass in the encrypted which is the hash password so this will be the actual hash password that is saved to the user in the database so first let me just actually create a helper function so I’ll do compare password equals password uh let me do this plane hashed like this okay and then uh this bcrypt compare sync function will return a booing so I’ll just return that Boolean only pass in plane and then the second argument for compare sync will be encrypted which is just going to be the hashed password and so this will return a Boolean value so if it if these two values are equal to each other then it will return true if it’s not then it will return false so we don’t actually need to rehash anything because this compare sync function will take care of it for us okay so let’s go over to here and then all I need to do is just simply instead of doing this check like this I can just call compare sync or I’m sorry not compare sync compare password and then just pass in the plain password so that’s password right over here so this is the value sent from the client the raw text password and then we’re going to pass in the hashed password so find user. password like that okay and then of course if this returns uh we want to negate the value because if it returns true that means the passwords do match but if the password uh don’t does not match it would return false so if not false then we’ll throw a new error so let’s go ahead and try and reauthenticate and now you see we’re good to go and notice how if I try to log in as ansen because currently ansen has the raw text password save in the database it should actually error out because now we’re trying to compare uh the plain text to a hashed value which obviously is not going to work so yeah that is how you can save the hashed password instead of the text based password to the database and then you can and that’s how you can compare them as well so I hope this part of hashing passwords and how you can save the hash password to the database and compare it makes sense so in the next section of the tutorial we’re going to go ahead and talk about session stores something that will help us tremendously because right now whenever we keep on restarting our server our sessions keep getting dropped from the memory store because it’s volatile so I’ll show you how we can actually use session stores to save the session data to the database so that way when we drop the server and then restart it our session will be restored and you’ll see that we remain logged in okay so now let’s go ahead and move on to session stores so this is something that you very likely will need especially when you want to persist session data for the user because sometimes your server may go down for unknown reasons and they might restart and when that happens all of your session data will be gone because by default Express session stores it in memory so what you want to do is you want to store this in a database so that way it can be persisted whenever your server Goes Down And if it goes back up the session store will have that session data there and express session will look in that session store in the database to grab the session data and restore it for the user so earlier I actually did show you how the inmemory session store looks like and how it stores data I’ll show you again so inside my API users endpoint is where I have this being uh logged so what this does is it looks for the session ID and uh if there are an errors so just throw in error but then we pretty much just log the session data right over here so right now I’m not logged into the application at all I’m not authenticated so I don’t have a cookie or anything but if I make a request to API users and if I show the logs you can see that right over here uh inside session store get that’s where I’m logging this right over here you can see that the session data is undefined okay that’s fine let me go ahead and log in first cuz we haven’t actually U modified the session data at all we haven’t actually logged in yet so let me go ahead and log in so let’s do this API SLO log in oh whoops did I forget yep sorry about that uh bad credentials uh oh wait you know what it is it’s because I’m still comparing the old the raw based the raw text password in database let me use uh Johnny instead and then the password is I think it was hello 1 123 as well okay so I just successfully logged in let’s verify let’s go to the status endpoint and you can see that I’m logged in obviously you don’t want to return the password but that’s something for a separate part of this tutorial but now watch this when I go to/ API users you can see see that in the console so we’re inside session store get so we’re logging it right over here and then you can see that this is the session data and you see how the session data I have the cookie and then I have the passport and then I have the user okay so every single time we make a request to the server um Express session will take care of looking for the session data in the inmemory store and then it will know who the user is okay and then right over here we have the user ID uh inside passport okay and then passport will take care of calling the serialized user with the ID and then it’ll search for the user in the database and then that’s how it’ll grab that user from the database and attach it to the request object okay so if the server goes down so let’s say right now if I restart the server and if I try to visit uh let’s say if I visit the previous endpoint let’s do au/ status you see how it says unauthorized so we’re not even logged in anymore okay all of our session data is gone if I were to go back to SL API users you can see that now the session store does not have our data it says undefined so obviously that’s a problem so what we can do is we can use a session store to save the session data and it’s actually not that difficult to use because all we really need to do is just have a database connection which we already do already so in earlier parts of the tutorial I showed you how to connect to a mongodb database using so that’s this right over here and then what we can do is we can reuse that connection to connect our session store to that database so we’re going to use this package called connect and pretty much this is just a mongod DB session store for Express now let’s say for example if you’re using some other database there are a bunch of different session stores right over here so this is the express session documentation if you just scroll all the way down and you scroll down to compatible session stores you can see that let’s see there is one for couchbase DB there’s one for uh mcash yep connect right over here there’s one for SQL this is the Microsoft SQL Server neo4j redis Firebase there are a bunch okay so you just have to look for this look in this list and find the one that you want to use we’re just going to use connect mango for now so let’s just first install connect so inside my terminal I’ll type npmi connect and of course you must make sure you have already a database connection so in this case since we’re using I can actually just reuse this database connection so now that we’ve installed connect we can import that and into our index file so I’ll import store from connect just like that and then we need to go down into our session middleware and we need to set this store property so where you’re pretty much calling this session function and then you want to reference store. create and since we are using we can actually reuse that connection so there’s this property called client in the connect options like this and then you can reference which which we have imported up top over here and then you can reference connection and then you can call this gets client method just like that okay and this says Returns the mongodb driver client instance that this connection uses to talk to mongod DB okay so let’s go ahead and start up the server again and let’s just make sure everything is good okay so we’re connected to the database and let’s actually try to authenticate now because that’s what actually modifies the session so let’s go ahead and make an API request to API let’s send the username Johnny and then password l123 so we are logged in successfully no errors in the console okay that’s good now let’s go into our database and let’s see what happens okay so I’m going to refresh and you notice how now there is this sessions collection okay notice how now there’s a sessions collection let me expand this real quick and you can kind of see how we have uh let me see if I can kind of do this so you can see it better okay so you see how we have this sessions collection right of here so now we’re actually storing the session data in mongod DB in our database so then what happens is now I’m logged in okay I just logged in I’m going to make a get request to the o/ status endpoint to verify that I am logged in which I am okay so we’re good now watch this the problem that I mentioned earlier was that if I were to close the server so I’m going to exit the server and if I restart it it would log us out because all of the session data was saved in memory but because now that we actually have a session store that is a database it will use the database to restore the session data so watch this okay so I have my session data stored in the database and notice how if I make a get request to the off/ status endpoint notice how I am still logged in okay if I remove this store completely it’s going to use the memory store by default okay and let’s go ahead and restart the server click send notice how now I am unauthorized because my session data is not found in memory because it’s using the inmemory stored by default so I I really hope this makes sense and I I hope this showcases how important a session store is because now instead of having your session data stored on stored in memory it stores it in a database which is great for persistence okay so you can restart your server how many times as you want want the session data will always be restored so notice how now if I just call this endpoint again after just uncommenting out this part the store options now we see our data so what happens underneath the hood is by configuring that session store it will basically look inside the sessions document or inside the sessions collection and it’ll search for uh this session ID right over here so if you look right over here wrg K if I kind of show you the cookies right over here let me see if I can find it you see how this is my session ID right over here and I can even log it too I think I may be logging already nope let me log it right over let’s see let me go into let me go back to to the status endpoint and let me just log request session ID okay and if I make a request again you’re going see that we have that that’s our session ID right there and notice how that session ID is the same ID that’s in the our document right over here so what happens underneath the hood is when we send the request to the server remember we’re sending the cookie back to the server right our cookie is right over here so that gets pars on the server and then what happens is instead of looking for the session data in the memory store it’ll look in our mongodb database which is persistent and that’s how it will take care of looking for the session data sorry about clicking all this stuff let me click over here and show you the the mongodb compass client so it’ll look for the ID okay and then it looks for the session property and it will basically take this whole string of ified object parse into Json and then attach this object to that request. session object which is what you see right over here okay and notice how we have the password data right over here that’s right over here and those how this is right over here as well the user ID so everything is in the database now which is great so now since we’re on the topic of session stores I want to revisit these two properties save uninitialized and resave for uh the session configuration because I mentioned this and I told you all not to worry about it so much until we got to session stores so right now we have the sets of false okay so what this means is uh only when you modify that session data object then it will actually save this to the session store okay so in our case right now when we authenticate using passport passport will modify the session data object for us which means that it will also save it to the session store which is actually what you see happening right over here okay so when you set save an initialize true it’s going to save every single session object to your session store even if you didn’t modify the session at all so I’ll show you I’ll show you an example okay so right now what I’ll do let me just delete this session from the database so that means I’m no longer authenticated you can see right now if I try to make the get request it’s going to say I’m unauthorized okay CU I don’t have that session data stored on the service side now but what I’m going to do is I’m going to go ahead and set save uninitialized the true and I’ll just visit any random endpoint so I can visit uh let’s see I’ll visit SL API off/ status and let me also clear my cookies as well before I do this just so that we are at a clean state so I’m going to make a request to API status okay and notice how it gives us back a cookie and notice how now in the session store you see how it’s saving this session data to the database to the session store even though we never modified the session data at all and you can tell because uh let me show you the logs okay you can see that we have the session data and we have this cookie so it’s going to send us that cookie back but we don’t have anything related to the user at all so if I try to revisit this endpoint again if I refresh I’m still going to use this but notice how if I clear the cookies now if I click if I send a request again it’s going to create another session uh data in the database and then I can go ahead and just clear the cookie again and it’s going to create one again so even though I’m not doing anything but just trying to visit an endpoint it creates a session record for us okay and this really depends on how you want to implement your application sometimes this might be useful but you can start to see that this is not necessarily a good thing because um it’s it’s just going to save a bunch of unmodified session data to your database and that could use up a lot of storage so it’s better to only save the session data when it’s been modified so in cases where the user logs in passport will actually modify that session data and then it will save the session data to the database so let’s take a look at the resave option now so currently it sets a false uh so I’m going to set it to true and currently I have dropped all of my sessions in the database but what I’ll do is I’ll make a request a get request to this status endpoint okay that’s fine we do get back a cookie though which is which is fine as well if I refresh I can see that my session data is over here so what save really does is it pretty much just forces this cookie to be resaved every single time so you notice how right now let’s pay attention to this date right over here this date string okay notice how every time I make a request it’s going to go ahead and update this time right over here okay so if I keep refreshing it’s basically just going to keep updating that expiration date okay so it Reaves it every single time if I set it back to false and let’s go ahead and let me just refresh real quick so pay attention to this time so 14 43 39 so you’ll notice how if I click Send again and I if I refresh notice how the date does not actually get modified because we’re not forcing that cookie to be updated to be resaved every single time even though there’s no changes happening at all now if I actually try to log in so watch this I’m going to go ahead and try to log in now so I am logged in and I think I am using the same cookie as well uh let’s see maybe not let me refresh oh okay so here’s what happened okay so it actually replaced that session ID that we previously had with this one so notice how when I refreshed we have this session ID and you’ll notice that now everything got updated and it modified the session so typically when you do modify the session it will actually update the cookie as well which is what you see over here you can see that I don’t have the same cookie anymore as before okay um let me see yep that’s fine so yeah hopefully the resave part makes sense now typically ideally you would want this set to false and you would also want save an initialized set to false as well but it also could depend on when it’s useful like for example if you have it set to true that could mean that someone just visited your website they’re performing some kind of uh operations maybe they’re adding products to a cart but then once they log in you want to persist that session data as well so that way it’s not gone so once they log in they have their cart all set up already even though they did that when they were a guest on the application so hopefully that makes sense all right so in this part of the expressjs tutorial I’m going to show you how to set up ooth 2 using passportjs so this will allow you to use third-party providers such as Discord or Facebook to log into your application rather than logging in using just local username and password so I will be using Discord as my third party provider to allow myself to log into my application using Discord but as long as you understand what I am doing throughout this tutorial and I will be explaining everything that is going on you should have no problem following along using whatever third party provider you want so even though I’m using Discord you can use literally any other provider such as GitHub or Facebook the only difference is that you just need to make sure you figure out where to create the actual ooth application and you can easily find that out by just going to the developer documentation they typically provide links where you can read up on how to create an actual oo app but like I said as long as you understand what is going on with setting up our Discord oath application and grabbing the required values then everything should be fine and you should be able to integrate this with any third party provider so the first thing that I am going to do is go to my thirdparty providers website so discord.com so and I’m going to go ahead and scroll down to the developer documentation section so if you’re using Twitter for example you would go to twitter.com and search for the developer section okay I’m going to click on get started now and so now I want to look for the section where it says application so right over here applications you want to make sure you create a new application so I’m going to go ahead and call this let’s do ooth to Discord oh whoops o I guess let’s do Anon oo 2 so I’ve just created my application and whatever provider you’re using will prompt you to do the same so now what I’ll do is I’m going to go to the oath 2 section and there’s a couple of fields that we need to get we need the client ID and then we also need the client secret and let me just enter my tofa code real quick and get back to you all all right so I was just able to get my client secret you want to make sure that you keep this client secret private you do not want anyone to know what this secret is so I’m going to copy that and just for now I’m going to just paste this right over here now just for tutorial purposes it’s okay that you are seeing this client secret cuz I’m going to reset it anyways and let me just go ahead and copy the client ID now this client ID is not something that you need to worry about anyone can have it doesn’t really do anything other than just identify the actual applications ID so it’s okay if someone else sees the client ID now the other thing that we need is we need to add a redirect so this redirect is important because the way that the flow is going to work is we need to make a request to an endpoint that’s going to take care of uh redirecting us to the third party provider that we’re trying to authenticate with in our case we need to set up an endpoint later on that will take care of calling passport to redirect us to the Discord platform and then once the Discord platform shows up that authorization page and it shows us all the different permissions and the Scopes that we want to allow we click authorize and then Discord needs to redirect us to this redirect URL so hopefully that makes sense so that’s why we need this redirect URL cuz we need to tell Discord hey once we’re done authorizing send us back to this URL so I’m going to go ahead and just pass in Local Host 43000 because that’s what my server is running on SL API sloth let’s do Discord and then redirect now keep in mind this endpoint has not been implemented yet but we will implement it later on now you can add another redirect URL if you want this is useful if you want to use the same app in different environments such as let’s say uh right now we’re currently in development mode but let’s say you want to use this for production as well then you can add your production URL which is your domain name and then same endpoint I’m going to go ahead and just click save changes and let me also copy this redirect URL cuz we will need this as well so we just finished setting up up the ooff 2 app for Discord so the next thing that we can do is install our strategy package so since I’m using Discord I want to make sure that I install the correct strategy module for my project so remember that there are plenty of strategies to choose from depending on which third party provider you want to use so if you’re using Facebook there’s a passport Facebook library that you can install if you want to use Twitter there’s passport Twitter there’s a bunch you just have to go on this website passport js. org and just search for these strategies so obviously I’m using Discord so I’m going to install passport Discord so I’m going to go into my windows Powershell and I’ll type npmi passport hyphen Discord now make sure that if you don’t have passport the base passport package you install passport because you need passport itself as well I already have it already because I did a tutorial earlier with this passport itself with the local strategy so I’m not going to reinstall it I’m going to go ahead and hit enter and install passport Discord okay we’re good to go with that now let me just run my server again okay there we go so now what we’re going to do is this so in earlier parts of the tutorial I did set a passport with a local strategy however I don’t want to I don’t want to make this tutorial super complex so what I’m going to do is just temporarily I’m going to kind of like disable the local strategy cuz we really don’t want to have these two conflict

    with each other and that’s kind of like something that is for a different video to solve and I don’t want to make this whole section super complicated I’m just going to go ahead and comment out the local strategy the local strategy file import up top here and I’m going to leave the rest of these routes alone for now now so what I mentioned earlier is if you didn’t see the part where we set a passport you need to make sure you first import passport like this from the passport package and then right down over here you want to make sure you initialize passport by calling app.use and then passing in passport. initialize like this and then you also want want to configure passport to work with Express session so we just call app.use and pass and passport. session and that’s literally all you need to do the rest of the things that we’ll do for our Discord strategy will be pretty straightforward and doesn’t depend on anything else okay so now that we got that out of the way let’s go ahead and create our Discord strategy much similar to how we created our local strategy so I’m going to go ahead and create a new file and I’ll call this Discord hyen strategy. MJS and I’m going to import inside this file passport from passport and I’m going to import this strategy class and the strategy class actually comes from passport Discord now of course if you’re using a different passport strategy all the passport strategies have this strategy class so if you’re using passport Facebook you can still import this strategy class it’s going to be in every single strategy module it’s standard so now what we need to do we need to go ahead and call passport. use and pass in an instance of this strategy class like this and now we need to pass in options for strategy and we also need to pass in the verify function so I’ll handle the strategy options first so since we are using oo 2 we need to make sure we configure the oo 2 to have it point to our Discord application that we just created so remember how earlier I grabbed the client Seeker the client ID and the redirect URL well all that is going to be passed into this object right over here for the strategy options so first we’ll set up the client ID so you can see there’s this property that I can assign a value and I’m going to go ahead and assign it the value of my client ID and of course like I said if you’re using Facebook or Twitter or whatever the oath app that you create on those platforms will have a client ID it’s standard across any platform that implements o 2 okay and then it’ll also have the client secret so I’m going to grab my client secret and paste it over here keep in mind that just for tutorial purposes I am hardcoding all this ideally you would want to place these values in an environment variable so I’ll recommend doing that but just for tutorial purposes it’s okay I’m going to go ahead and now copy the redirect URL cuz we will need that and the field name is actually callback URL so when I say callback URL or redirect URL I use those terms synonymously okay so we’re going to paste that URL this is the Callback URL that Discord or whatever provider will make a request too upon success upon authorization success now there’s one more field that we need to configure and that’s the scope field and this is important because we need to actually State what permissions that we want to have what Fields what type of information that we want to access and that’s defined all in the scope so by default if you don’t leave the scope at all then you won’t have really any access at all to the user’s information but if you wanted the users’s let’s say username or their Discord ID then you would need to use this identify scope now the Scopes are defined differently on each platform so for example Discord has this identify scope let me see if I can kind of show you all through the documentation let me see right over here okay you see how over here at o off two Scopes and you can see that we have this identity scope and it tells you that what it allows you to access is allows you to make a request to this uh let me zoom in a little bit it allows you to access this users at me end point so if I click on that it pretty much gives you the user itself okay the user that authenticated so we need the authentify scope to get at least the basic stuff like the username the ID of the user stuff like that now it also does mention that it does not give you the email so in order to grab the email you need to use the email scope so notice how over here there is this me scroll up here there’s an email scope and it tells you right over here in the description it enables the same endpoint at users at me to return an email so if you want an email then you would provide that in the scope over here if you wanted to grab all the users servers all their guilds that they are in then you can use the guild scope okay so I’ll just do identify and I’ll do guilds for now so we’re done with our configuration for the strategy options this verif function is responsible for performing validation on the user that’s trying to to authenticate now since we are using oo 2 and there’s no need to worry about a password because they’re using a third party platform they’re not going to be logging in with a password what you would need to do is actually check to see if the user exists in the database and if they don’t you can save that record to the database okay so the reason why you would want to save a third party uh user account to your database is sometimes you might have certain types of data that you want to relate to that user so sometimes you might have uh like a one: one or one to many relationship that you need to associate with the user on your platform so it’s definitely a good idea to save that user to a database so that way the next time they log in they can see all of their relations with other types of data for example the user can see all of your posts all of their messages all of their um current activity things like that okay so it’s always a good idea to save the user now this verif function takes in four arguments the first two arguments are both tokens so access token and refresh token the third argument is the profile so the profile itself is going to be pretty much the user object and it’s going to also have the email if you have the email scope enabled and it’s also going to have all the guilds the servers that the user in so that’s what the profile is and like I said if you’re using Google or Twitter then the profile would contain Google details of the user same thing with Twitter and that would contain stuff like the username email address ID stuff like that and the last argument is the done function which we’re going to go ahead and call when we’re done performing the logic that we need so that way passport can then move on and then take care of the seriation part serialization part which I will explain how that works so the access token and the refresh token these are just uh tokens that you’re going to be using primarily for making uh requests to the API on behalf of the user so the access token is what you would actually use to make API calls so for example for Discord in order for you to actually even call these endpoints such as uh users at me uh users me guilds you need a an an authentication token so that’s kind of like some type of think of it like an API key but it’s not an API key it’s an access token and you use that access token to be able to access the data that you want to retrieve on behalf of the authenticated user so for example if let’s say you want wanted to fetch I don’t know all of the guilds then you would need that access token in our case passport actually takes care of that for us the passport Discord strategy so we would need to manually do it ourselves but if there comes up time where you do need to do it you need that access token the refresh token is just used for literally refreshing the access token so your access token is actually short-lived usually it lasts for about I think I don’t remember the exact time but it is a lot shorter than the refresh token and the refresh token is usually a lot it lasts a lot longer I think usually about 6 months it really depends but what you would do is you would store these tokens in your database somewhere and then you would pretty much use the access token to make requests on behalf of the user and then when it’s time to get a new token you would use the refresh token to kind of like refresh the access token so that way you would not need to require the user to re log in you just use the refresh token to get a new access token and then that new access token can be used to retrieve data from the API on behalf of the user so hopefully that makes sense we’re not going to be using these two tokens though but I just wanted to mention it just so that if you’re using a whatever third party provider you are and then you need to actually make API calls then you know what value you need to be using which is primarily the access token I’m just going to go ahead right now and console log the profile object because I want you to see what this looks like after we actually get redirected to Discord and click authorize but let’s go ahead and actually export our passport. use call like this export default and I’m going to go ahead into my index. MJS file and I’m going to go ahead and import that strategy like this so import strategies Discord strategy. MJS okay so that will load up the strategy into our entire application and now we need to set up an endpoint that the user is going to be visiting in order for them to get redirected to the Discord platform so they can authorize themselves with our application using Discord so ignore all of this stuff right now don’t worry about any of this we’re just going to go down over here and I’m going to set up a simple app.get request and then we’re going to name this NPO API SL o Discord and then we need to pass in that passport. authenticate call and then we need to specify the strategy name which in this case we’re using Discord so I’m going to pass in Discord like that okay now let me show you what’s going to happen once I go to this endpoint so let me go to my browser move this over here okay so let me go to SL API Discord notice how now when I visit that URL it redirects us to the Discord platform and we can see right over here it tells us okay this is the external application wants to access your Discord account and this is what the application wants to access and again all this is based on the scope so if I go into my strategy you can see that I currently have identify in Guilds and it says okay identify relates to the username Avatar and banner and guilds is know what servers you’re in if I were to add email and let’s kind of like go back and go back here I guess I have to revisit the actual endpoint notice how now it says access your email address okay so hopefully that makes sense for now I’ll just do identify which will just give me the basics but like I said if you wanted to get the guilds or email address just add those in the scope and then you’ll be good so let me go back and let’s go ahead and make a call to the endpoint and now it only asks for the username Avatar and banner and then we’ll click on authorize and now we get this cannot gets and notice how the endpoint is our redirect URL so we don’t have this endpoint set up yet so we need to set that up so I’m going to go back to the index. MJS file and I’ll set it up right here so it’ll also be a get request as well so it’ll be SL API othis Discord redirect SL redirect and then you’re going to call passport. authenticate and and pass in Discord strategy like this and then you can pass in the request Handler at the end so after passport is finished logging the user in it’s going to go ahead and call this next middle function which is the request Handler and then we can just send back a response of a status code of 200 okay now I actually forgot to show you the console real quick so that way you can see what happened when we try to authenticate so let me just reauth Kate again and show you what happens okay so let’s go to the endpoint click authorize and now watch this okay so now you can see that when I make a request so what happened is this okay I made an API request to SL API Discord we invoked the passport to authenticate function the first time when that happens it redirects us to the Discord platform okay when you click on the authorized button on the Discord platform what happens is it actually redirects you back to this redirect URL that we set up just now and you’ll notice how uh I don’t know if you can see this now but before when it tried to redirect us there was actually this query parameter up there let me comment this out and show you again okay so you see right over here how we have this query parameter called code okay and then it has this code over here so we actually use that code to exchange it with the Discord API to get the access token and the refresh token okay that’s what the code is used for in order to actually grab the access token refresh token we must implement this redirect URL so the flow works like this it goes to the first endpoint soapi Discord and then we use password to authenticate pass in that Discord strategy name that’ll redirect us to the third party platform once we click click on authorized it’s going to redirect us back to the Callback URL which which is this redirect or over here when you do this when you call passport. authenticate the second time so it’s calling this passport. authenticate middleware the second time it’s going to take that code query parameter and it’s going to exchange it for an access token and a refresh token and then what happens in the end is it goes ahead and calls verify function after it calls this passport. authenticate function the second time now the reason why I didn’t return a response back was simply because we need to continue implementing the rest of this verify function so here’s what we’re going to do I’m going to go ahead and create a Discord user schema for our mongodb database and we’re going to go ahead and save the user to our database so I’ll create a new file inside the schemas folder and I’ll call this file Discord user. MJS and I’m pretty much just going to do the same thing that I’m doing here I’ll just copy this and paste it here here and I’m just going to rename this to Discord user schema and we’re going to have of course we’re going to have a username we don’t need display name we don’t need password uh I’ll also just store the Discord ID I guess so that’ll be a string and then we want it to be required and also unique and then what I’ll do is I’ll take this Discord user schema I’ll pass into this mango. model call as a second argument and I’ll change this from user to Discord user and same thing for this model name right here so this is my Discord user schema and this is my Discord user model and now I’m going to go ahead and inside the verifi function in our Discord strategy this is where I am going to search for the user in the database so we want to search by a unique value that will never change the Discord ID will never change at all so we can use the Discord ID to search for the user safely because of course if you search by the username that could potentially change so not a good idea but better to search with the those ID so let’s go ahead and create a variable let’s call this find user and then we need to use async and A8 so I’m going to add async in front of this callback function inside this or in front of this verify function and inside the verify function I’m going to use the awake keyword and then I’m going to import the Discord user model let me do that real quick I’m going to import that from mongus schemas Discord user like that MJS so we’re going to go ahead and do await Discord user find find one and then for the filter I’m just going to pass in the field that I want to search by so I want to search by the Discord ID like that and then I need to pass in the actual Discord ID as a value so to grab the Discord ID from the profile object you just reference profile. ID like this that’ll give you the Discord ID or if you’re using a different platform like Twitter or Google it’ll give you their respective IDs okay so what we’ll do is if the user is not found we’ll create it so if no find user we’ll create the user and save it to the database so this is a two-step process we first need to create an instance of the new user so cons new user and all we need to do is use the new keyword to create an instance of Discord user like this and you just want to pass in an object that contains the fields that you want to set for this new user that’s going to be saved to database so we only have two fields to worry about that’s username and the Discord ID so I’ll do this username profile. username Discord ID profile so this is the first step with creating the actual user instance and then we have to save it to the database so I’m going to go ahead and call this variable new saved user equals await and then new user so reference that instance and call the save method and the save method is asynchronous it returns to promise so we need to await it and once we are done with this we’re going to go ahead and call the done function and pass a null for the error and then pass in the new saved user so once you call this done function it’s then going to need to call the serialize user function for passport which I’ll show you how to do that as well so don’t worry so I definitely want to add some error handling inside this logic because our fine one method could throw an error and so can this do save method and we want to make sure we’re also handling these method calls and their errors separate because if I just wrap everything inside a TR catch block like this and then I catch the arrow down here it would kind of be like difficult to figure out which method CES the problem is it to find one or to save so here’s what I recommend is first we can declare a variable called Fine user like this and then let me just remove this const find user declaration let me copy this whole line over here where we’re calling a wait Discord user. find1 and I’ll try catch and wrap this method called the find one method called inside the try and then I’m going to sign the return value to find user and if this F web method called errors out for whatever reason then we’ll catch that error down inside this catch block and so here what I’ll do is I’ll return done passing the error and then null for the user however if there is no error then it’ll just go down to here and then I’ll have another try catch so try catch and then right down over here we are still checking to see if user find user is under so if it’s not undefined then we will go ahead and create an instance of the user and then we’re going to go ahead and call this save method which could throw an error and we want to make sure we’re handling it so that error will be caught inside this will be caught by this catch block right here and then now we have handled errors for both possible methods that could throw an error okay so I wanted to just mention that real quick because it’s not good to just write code that doesn’t have any error handling so let me go ahead and return done if there is an error we’ll pass error and then null for the user okay and if everything is successful then we will just call done right over here so we’re not done yet we s it to handle the case where fine user is defined so that means the user already exists in the database so that means they’ve already logged in at least once first let me just add this return keyword in front of this done function call and then right outside over here if the user if F user is in fact defined then we’ll just return done and then pass a n for the error and then pass in that find user object as a second argument so let’s go ahead and try to hit the API so let me just go into my database right now you can see I have this Discord users collection there’s no data in here currently when I go to this Discord endpoint it’s going to go ahead and prompt me to click authorize don’t worry about this error the reason why this error is out right now is because we don’t have the serialized user and deserialized user methods implemented yet but what I want to do is I want to show you in the database if I refresh you can see that my Discord user was created right over here in the database and you can see I have the username and the Discord ID right over here all right so now let’s go ahead and fix this fail to serialize user intercession issue so as I mentioned earlier already uh we went over a lot of these basic stuff such as serialized user and deserialized user with the local strategy I highly recommend you rewatch that section or watch it if you missed that part but what I’ll do is I’ll copy all this stuff from the local strategy file and don’t worry I’ll explain what I’m doing and I’ll explain everything that’s going on so I’m going to copy all of this and I’m going to paste this inside my Discord strategy file so let me explain one by one what’s going on and you know what let me remove this Des serialized user and let’s just focus on serialized user first so inside this verify function whenever we call the done function and assume that there’s no errors so we pass in null for the error and then we pass in this user object okay so what really happen happens when we call this done function is we’re passing in this user object and we’re telling passport that we want to serialize this user object into the session data okay remember passport works well with Express session so this user object right over here is going to be passed into this callback function as an argument right here so whenever we first log in and once that done function is called in the verif function it will call this callback function that is passed to serialize user so whatever you pass in right over here as the second argument to the done function while error is set to null will be passed over to this user argument over here okay so watch this I’m going to leave the console logs alone and I’m going to reauthenticate and you’re going to see what’s going to happen Okay so let’s go ahead and click authorize okay now you see how the error goes away the fail to serialize user inter session error goes away that’s because we were able to successfully serialize user into to the session object because we implemented this function right over here and all you really need to do is just call the done function that is the second argument to this call back when you call the done function you pass in null as the error and then you pass in some unique ID that can be used to identify the user so you can use either an ID or if you want to use the username though even though that is unique it can be changed so you would have to just be responsible for updating the session data cuz the session data could go stale but what we’re doing is we are saying okay I want want to serialize this ID of the user into the session object now remember when we went over sessions I explained how all that stuff works so I’ll show you right now what will happen if right over uh let’s see right over here inside the redirect endpoint I’m going to go inside this request handle and I will log console.log request. session and then you’ll also see that we now have this request. user object so let me go ahead and show you what happens okay so let’s reauthenticate uh whoops okay this is this is the reason why we’re having this errors because we are already logged in and it’s trying to deserialize user because we already have a cookie so what I can do is very quickly I’ll go ahead and just clear the cookie and Let me refresh click authorize now I want to show you the logs you see how now the session object so this session object is being logged right over here inside the request Handler for our redirect endpoint so when Discord redirects us to the endpoint it’s going to go ahead and eventually call this request Handler function and you can see now the session object has that passport property which is an object and notice how we have this user property inside this password object and that is the users’s ID okay and then we also have the request. user object being logged and then you can see that this is the actual user object ID okay that’s the object ID of the user document we have the username and then we have the Discord ID this is the user object itself so that’s the responsibility of the serialize user function it pretty much allows us to say okay how do we want to serialize our user data into the session if I pass in something else let’s just say if I pass the in just the entire user object then what you’ll see is this user property will map to the entire user object okay so let me just go ahead and clear my cookies once again because it’ll throw an error because we are passing a valid cookie but when we do that we actually need the Der serialize user function and I’ll explain a little bit a little bit about that in just a second but let me try to reauthenticate now and now if you look at the logs you’ll see how that user object is is now in the session data like I said all this stuff I’ve went over in early parts of the tutorial when we over passport and session so if you need a recap with a full in-depth coverage of everything of how it works I definitely recommend you to revisit that section okay and it’ll clear up a lot of confusion but let’s go ahead and change this back to passing the user ID and this is the uh the actual document object ID not the Discord ID okay so now let’s go ahead and implement the Der serialized user method so we’re going to go ahead and call passport. deserialize user pass in a callback function as well now this function is important because when we first log in we call serialized user because we’re basically taking the user object we are storing it in the session store and then we’re setting a cookie and sending it to the browser when the browser has that cookie stored it’s then going to send the cookie upon subsequent requests now that cookie is sent to the server and our middle Wares such as Express session passport will take care of everything for us so what it does underne the hood is it’ll grab that session ID from the cookie and it’ll look inside the session store for that session ID and the data that it maps to okay so I actually already have the session store implemented so if I go into sessions you can see that we have a bunch of session data right over here so what happens is it goes inside the session store looks for the session ID so for example these are session IDs and then it references this session property right over here and currently this is a string but what it does is it parses this into a Json object and then it attaches it to the request. session property okay hence why when I showed you when I logged request. session you saw how we had that cookie property and then you also saw that we had that password property and we had the user property all that kind of stuff what these serial user takes care of is it pretty much takes that serialized data so in our case it’s just the session data that’s all uh pars into a string and then it kind of like un undoes it it converts it back from a string to ajason object and restores it by attaching it to the request object so we can access it very easily so we know who the user is and we can get the user session data okay so the first argument for deserialized user is going to be the ID which is really whatever it is that you passed in right over here so if it’s user ID right over here then this argument is going to be that user ID if you passed in user. username like this then this argument is going to be the username if you passed in the user object itself then this argument would be the user itself okay let’s keep it as user ID and the second argument for this callback function is done similar to serialized users call function now inside the serialized user we actually need to to search for the user by the ID so the first thing that we’re going to do is I’m going to use a TR catch always handle your errors and what I’ll do is I’ll search for the user so const find user equals and since we’re searching for the Discord user I’m going to import the Discord user model I think I already had that up top over yep I had it up top over here so Discord user. find one and we’re going to actually search not by the Discord ID but by the object ID so the object ID the object ID are the this is this ID right over here not the Discord ID it’s the autogenerated ID that mongodb generates for each document in the collection so I can actually just use this find one or is finded by ID method and pass in that object ID so this will search for that user by the ID and I need to make sure I await this call because it is a synchronous so let me add the Asing keyword in front of our call call function okay so now if the user is found so I’m I’m going to use a turn operator so if the user is found I’m going to call done pass null for the error and pass find user however if the user is whoops sorry about this find user Mark okay so if find user is defined it’s going to go ahead and call done and then if find user is undefined we’ll call done but pass in uh null for the error and null for the user okay so there’s no error but there’s also no user so now inside the catch we will just simply call done passing the error and null for the user okay so now you’ll see that the Der serialized user function error will go away now to test everything out we’re going to go ahead and make that request to the o/ Discord endpoint which will eventually redirect us back to this endpoint over here and then what I’ll do is I’ll I’ll visit this API off/ status endpoint that I had implemented already from previous parts of the tutorial but it still works just fine because the responsibility of this endpoint is just return the user object that’s on the request object itself and we already configured passport to do that for us okay specifically for the Discord user so let’s go ahead and go back to the browser let’s go ahead and try to let me clear my cookies first because we’re still technically logged in so I want to do a completely new login so let’s do that okay so I’m going to click authorize so I’ve have successfully logged in and now notice how if I go to the console you can see that all of my session data is right over here and then if I go to API status you see how now it returns to me the Discord user that I am logged in as if I were logging in as a different Discord user it would go through that verifi fun function logic and then it would end up ser realizing that other user into the session and then when we visit this endpoint we can see our record that’s saved in the database so I hope all this makes sense all right everyone so in this part of our expressjs tutorial I’m going to show you how to set up just and use just to write unit tests and run them for your express application so just is a testing framework for JavaScript it’s very popular it’s made by Facebook or now known as meta and it’s been around for a very long time and you can use just to write tests and run them for really any JavaScript application many people use it to test no JS server side apps you can use it also to test react apps or angular apps it’s very versatile so let’s go ahead and get started so inside my project one thing that I do want to mention is that remember that we are using ES modules so if you recall inside our package.json file you can see that I have the type set to module and all of my my file extensions are ending with MJS now there’s nothing wrong with using ES modules and it is the way to go in the future with developing surver side with no. JS however as of right now just they currently do support es modules however it requires experimental Flags so you need to enable an environment variable and while that might work out of the box there are some things that don’t necessarily work and after doing some research on stack Overflow and some of the GitHub issues I’ve came to the conclusion that some of the things that I was trying to get to work just wasn’t simply working to say the least so the options that we have are we can either revert our entire project to Common JS so what that means is we remove this type let’s everything back to commonjs because that’s what the default system is and then we would have to remove all of our import statements and replace them with require statements so instead of import Express from Express we would have to do const Express equals require Express like this and then we would have to change all of our export stat stat as well so instead of export cons mock users I would have to do module. export and then pass and mock users like this and obviously that’s not something that is possible for many projects because you might have already written so much code and you can’t just go through every single file and change all those lines just doesn’t really make sense so I figured out a solution where we can actually configure Babble which is a transpiler and we can use Babel to actually take all of our MJS files and kind of like transform them from es modules into commonjs so that we just can actually execute them correctly so we’re going to leave our type set to module we’re going to leave all of our code the way it is we’re not going to change anything at all we’re not going to modify the import statements nothing and I’m going to show you how this is going to work now if you’re someone that is just trying to learn how to write unit tests and you might already have Babble or typescript set up then just actually has documentation on how to configure just with the right environment if you go to the their docs they actually show you right over here if you’re using Babel webpack typescript all this stuff so for example if you’re using typescript you can use tsj right over here even mentions over here and it’s basically just a pre-processor so you can actually use just to test your project right in the typescript so to get started we need to install a couple of dependencies so I’m going to type npmi hyphen capital D CU I’m going to install these as Dev dependencies so the packages are at Babel slore Babel code at Babel slpre EnV so that’s it for Babel we then need to install just as well and then let’s go ahead and hit enter so while this is happening I’m going to go ahead and go into my project folder and I’m going to go ahead and just set up the Babel RC configuration file so you’re going to go ahead and create a new file I’m going to call it Babble RC like this and then I’m going to go ahead and pass an object like that and then we need this presets field and this is going to be an array and inside this array we’re actually going to pass an array and then inside this inner array we’re going to pass a string and we’re going to type at Babel SL preset hyphen EnV and then we’re going to pass a second argument or second element inside this inner array so we have this object right over here and this object is going to have this targets proper property which is going to map to an object and in that object we’re going to have node set to current okay so we’re just configuring the preset EnV for Babel okay so that’s pretty much it for the Babel stuff now let’s go ahead and close that so our packages have finish installing and let’s go ahead and type npm init just at latest so we want to configure just and what this will do is set up a just config file for us so I’m going to hit enter and then it’s going to ask ask us some questions so it’s going to say would you like to use just when running test so this will just create a test script for us so I’m going to hit yes would you like to use typescript if you’re using typescript then press yes but I’m going to press no uh choose the test environment so we are testing a server sided noj application so we’re going to hit enter for node but if you’re testing like a frontend application for react and You’ want to hit jsom do you want just add coverage reports we’ll hit no for that we’ll just select it as V8 and then for this one you want to hit yes automatically clear mock calls instances context and result before every test this will ensure that whenever you run your next test there won’t be any leftover uh mock calls or mock data from the previous test and it’s actually very important so you can see that it modifi the package Json file and then we create this just. config.js file okay so we’re not done yet because there’s one more thing that we need to do inside our just .c config.js file so right over here we need to go to this transform property currently it is commented out but we want to uncomment this part and we want to set this to be an object and now what this transform property will take care of is it will look for those source files that match a regular expression and transform the source code into something that Jess can actually run which is pretty much plain JavaScript so what I’m going to do inside this object is I’m going to use this regular expression right over here I’m going to copy it and you all can just copy this as well so this will just look for our MJS files inside our directory and what I’m going to do is map this value to babble justest so this is going to be the tool that it’s going to use to deal with a transformation and now we actually didn’t install Babel justest but when you install just it actually does install Babble justest for you as of right now if you look at your node modules you can see that there should be this dable just package right over here so that’s how we can verify that that package was installed for us okay so we’re done with this part and let’s just also go into uh right [Music] over let me go over here uh module file extensions so we’ll just uncomment that and we’ll just you can remove the ones that you don’t need so I’m not going to be using TSX or jsx or TS uh so I’m just going to move all that and I’m just going to close this out so we should be done with our setup uh we do need to actually go into our package Json file and for some reason uh when we ran the just configuration it did not override this test script so let’s go ahead and do that real quick whoops let’s go ahead and do that so all we have to do is just have this test script and then have execute this just binary so this will look inside your node modules inside this bin folder and it will look for this just binary right over here and it’ll just run that command and that’s what will actually run your test for you when you are ready so let’s go ahead and write a very very simple test and kind of like explore the just API so what we’re going to do inside our source folder we’re going to create a new folder and I’m going to name it uncore testscore and this is industry standard and this is where you’re going to place all of your tests so you need to create a file and then you want to name the file of your test ideally something that resembles the actual file name so for example if I were testing let’s say something inside my users. MJS file inside the routes folder then I would want to name the test file something like users Dot and then the extension here is where you want to name it either dopc or test and then end it with JS like this so if you were using typescript it would be dope. TS or test.ts since we’re just using JavaScript I’m going to name it dope. JS or. test.js doesn’t matter which extension either test or spec that you want to use I personally like to use spec so I’m just going to go ahead and do that and now it’s going to go ahead and create this file for me okay let’s just explore the just API very quickly and then I’ll get to actually testing some of our express route handlers so we have this described function and now you’ll notice that right now it isn’t going to be imported from anywhere by default just actually so the very first function that you’re going to be using that comes from the just API is this describe function right over here now one thing that I do want to mention is that you could actually import this describe function from @jg globals like this and then you can just use it accordingly like this the thing is though just typically is configured globally but you can see right now for some reason it is not configured globally so I’ll show you very quickly how we can actually configure just to have this describe function and other functions like it test before all for each which are hooks these two are hook functions I’m going to show you how to configure this so that it it’s actually Global so we don’t have to manually import it in our files so what you need to do is you need to First create a new file inside your root directory called JSC config.js and then you’re going to set this object and have this type acquisition property which is an object and then you’re going to add this include property which is an array and then you’re going to want to add just okay now we don’t actually have any any types installed I believe let me just double check yep we don’t have types for just installed is what I meant to say so we need to actually we need to actually install those types in order for us to get it to work so what I’ll do and you can kind of see that now it actually recognizes uh just. describe globally but just to be safe make sure you install the at types slj package like that okay even though we’re not using typescript you can still use this package to have types set up globally like this okay so now you can see that the whoops right over here we have the just types over here and it should recognize them globally without any issues so going back to our users. spc. JS file I’m going to call this just describe function like this and again no no need to import it and this describe function is used used to create test Suites and basically all that means is it allows you to group together your tests into collections so you can better organize and understand what’s going on so typically you want to give your test Suite a generic name that represents what you’re trying to actually test for so for example if I want to let’s see if I wanted to test for a basic I’m trying to look for something that we can actually test uh let’s try let’s do this endpoint so let’s say for example if I wanted to test this endpoint where I wanted to get a user by ID then I would just first name the test Suite something like uh get users and then pass in this callback function so inside this callback function is where you will actually create your test closures and those are basically just going to be what’s actually going to run your test and you’re going to implement the test logic in there so to create a test closure you can use either the it function or the test function they both work the exact same way so I’m just going to use it and then you want to give the test name so I’ll just say something like should get user by ID and then you want to pass in a callback function and inside the Callback function of your test closure so the second argument for this it function this is where you’re actually going to to invoke the function that you want to test and then you want to actually write assertions and verify that certain things occurred okay so here’s the next part though we need to actually write a test for some of our functions so for example let’s say I wanted to test this router. getet API users ID endpoint so this is getting a user by ID and this is actually one common confusion that many developers begin to have when it comes to running tests they look at this and they’re like well how do I actually test this whole endpoint because there’s so many things that are going on do I need to actually make an HTTP post request or get request to the actual endpoint that I’m trying to test so first of all when it comes to unit testing you want to actually test only a single piece of your code look for individual functions that might be calling other functions maybe they are calling a database maybe they are calling an external API whatever it is you want to test that single function and you want to make sure that the function does what it’s supposed to do so ideally you want to verify that the function is hitting the right IFL statements the conditions correctly and then based on those conditions that are being executed you want to make sure that it is returning the correct response so to give you a very simple example let’s take a look at uh this function right of here okay so you can see that this function is our request Handler and it first takes this F user index property from from request and this comes from our resolve index by user ID middleware so don’t worry so much about that right now but we grab this property from the request object and then we try to reference mock us array and Index this user so we can grab the user with its index so if the user is not found in this mock users array it’s going to go ahead and return a response and send a status of 404 if the user is in fact found then it’s going to go ahead and call response. send find user so what you need to understand is this function is pretty simple it doesn’t really do too much stuff but the point is is that we want to make sure that we understand what are the possible outcomes of our function in this situation there are two possible outcomes only only two either the user is not found and we return a status of 404 or the user is found and then we just send back the user that was found there’s only two outcomes sometimes your functions might have many different outcomes it might output many different types of results based on the condition and there are some general principles when it comes to writing your code in a way that makes it easily testable because writing tests also depends on the code quality as well if you have a bunch of spaghetti code you’re making it really difficult to actually write tests okay the purpose is not to actually write the most complex code but to separate concerns and make sure that you have each function doing the main responsibility and anything else you turn it into a dependency function is what we like to call it and that basically just means that you’re invoking another function and letting that function take care of the work and then once that function is done it’ll return back the result and then you can proceed so we’ll start off with a very easy example we’ll use this call function over here but now here’s the other problem though okay when we actually want to write tests we want to be able to import the function or class or whatever it is that we’re try trying to test into our test file so how do we import this Anonymous function there’s no way so what we need to do is we need to copy this function and we need to move it into uh we we need to turn it into a named function so what I’ll do is I’m going I’m going to actually create a new folder called handlers and then I’m going to create a new file and I’m going to call this users. MJS and then what I’m going to do is I’m going to paste this function right here and then right before the parenthesis I’m going to do export con and since this request handler was trying to get the user by ID I’m going to go ahead and call the function get user by ID Handler and let’s make sure that we are importing the correct value so we need mock users so I’m going to import that up here and and I think that’s all we need so let’s go ahead and copy this function and we want to make sure that we pass it as an argument to our router. getet method call so at the end like this and then we’re going to make sure we import that up top over there as well and then now we have our function being passed as an argument it’s still going to work the same exact way the only difference now is that we can actually import it wherever we want so I’m going to go into my users. spc. Js and what I’m going to do is first I’m going to import that function so get user by ID Handler and so this is going to be our system under test or function under test and now we want to actually call this function okay but we need to also remember that this function does take in two arguments it takes in a request and a response so this is where you start to learn how to actually create fake data or mocks so that way you can use them for your test subjects in this case are get user by ID handle function so when it comes to creating mocks there are ways to be smart with it so what we’ll do is we’ll create two simple objects let’s call this mock request and then mock response and remember this the request that response object resembles the actual request type in expressjs okay so if you were to actually look at let me go over to here because we’re using JavaScript okay so if I were to actually rightclick the type definition of this request you can see that we have this interface and you can see that there are a lot of properties on the request object itself okay you can see that we have uh host cookies method prams these were similar methods or properties that we looked at earlier signed cookies as well now you’re probably wondering well when I create my mock object like my mock my mock request do I need to also include all of those fields and the answer to that question is actually no so what you can do is you can only Define the fields that you need okay and again this works because we’re using JavaScript if you’re using typescript then you can use uh casting for example you can type annotate the request and force it to be an actual request type even though it is missing all of its Fields but since we’re using JavaScript we can do literally whatever we want so for our mock request we want to include the necessary properties that our code is actually referencing on the request object so this is where you need to actually look at your code look look at the function that’s being tested and you need to see okay what is actually being referenced on the request object so I can see right over here one property is being destructured from the request object so we need to make sure that this whatever this fine user index is we know that it’s a number but whatever it is we need to make sure we Define that in the mock request object um and it seems like that’s the only property that we are referencing so I know that this is a number because in case of you didn’t watch the early parts of the tutorial this resolve index by user ID middleware function what it does is it will go ahead and grab the ID from the route parameter and it’ll take care of parsing it to an actual integer and then it’ll attach it to the request object so what I’ll do is inside my mock request I’m going to go ahead and Define find or what was it called again uh find user index yep find user index and then you can give it literally any number you want you can give it 1 2 3 100 literally anything you want but here’s the thing though we want to give it an actual meaningful value that is going to correlate with our code so if you look at the rest of your code you can see that fine user index is being used to retrieve an element from this mock users array and this is our mock users array right over here here and if I were so for example if I were to just give like just some bizarre number like 100 it’s pretty obvious that that number would not actually give us back anything inside mock users because there is no element at subscript 100 that would give us back a user okay so let’s just do something simple for now let’s just do one so that way I know that it’ll give me back the user Jack okay all right so we’re done with the mock request object now let’s go into the mock response so this is going to be our response object and now we have again we have to do the same thing we have to look at our code and look at what response uh is and we have to also see what is being referenced on response so right over here I can see that response is being referenced right over here and the send status this is a method on the response object is being called okay so I know that send status is method so that means that inside the mock response object we should set this send status property and have it mapped to a function so you might think that it would look something like this right well no so it is going to be a function but it’s not going to be a regular function it’s going to be a mock function so what we can do in just is we can use this just namespace and I can reference just. FN like this and what this will do is it’ll create a mock function for me so this is where we actually want to call a mocked function of send status on the response object and not the actual send status method itself okay so we use just. FN to apply this mock function to S status and then we’ll do the same thing for the send method as well so let’s do send and then this will be just. FN okay all right so now what we want to do is we want to actually take both of our objects mock request and mock response and pass them as arguments to get user by ID Handler so let’s do that so mock request and mock response okay so now if I run my test right now the test actually should just pass because we’re not actually testing for anything so in our terminal we’ll run npm run test and this will execute that just binary and you can see that our test runs and it passes and just very quickly I want to show you what would happen if I were to go over here and just kind of like remove this part entirely and you’ll see that it’s going to go ahead and complain about all the stuff so that’s the reason why we needed this transform part okay and again we can also run our application completely separate from our tests like this and it still would work just fine okay so hopefully the setup with Babel and everything else wasn’t too complex and we can still proceed to use es modules and write tests okay you can see it’s currently running without any issues well awesome so let’s go ahead and go back to our test and let’s actually write our first assertion so again let’s look at our code again okay and what we can see is there’s two outputs there or two things that could happen either we send a status of 404 or we send the user back so this is where we need to understand okay well what should happen inside this test is whatever it is that we wanted to happen Okay so we have to figure out what it is that we’re trying to test for so in my situation let’s say I want to test to ensure that a user was actually sent back okay and and so we already set up our mock request to have F user index to be a value of one so when the function is called it’s going to use one as the index and search for that mock users so let’s actually write our first assertion so again we need to understand what it is that we’re trying to test in my situation right now I want to test to make sure that the user was actually found and sent back with the response if I look at the code okay how can I verify that the user was sent back well what I can do is I can write an assertion that verifies that this response. send method was called and it was passed it passed this find user object as an argument and I can also write another assertion to verify that send status was not called because send status would only be called if fine user is undefined and since we are setting fine user index to be one it’s going to use that as the index to reference the user at that position and mock users is just this constant array that we have over here so we can just reuse this data because it’s not like it’s coming from a database or some external API so we can use this as mock data so let’s go back into our test and here’s what we’ll do we’re going to use this expect function like this and we use the expect function to actually test a value so for example I want to test that mock response. send like this I want to test this specific function and then at the end of expect at the end of the uh parenthesis we can use these just matchers and the one that I want to use is to have been called so what this means is we are expecting mock response. send we’re expecting this function to have been called okay so that asserts that the function was called when we called this get user by ID Handler so let’s actually test this out and see what happens so let’s run npm run test okay and you see that it passes okay so again this it takes some time to really you know get used to some of these matchers and knowing how to use uh expect but as long as you just keep practicing it’s going to come in it’s going to come in handy and you’re going to develop an intuition behind it so you can see that we definitely wrote an assertion on this send function and we asserted that this function was called and you’ll notice that right now if I were to try to negate this matcher so if I actually use doot do to have been called that basically just asserts the opposite so it’s going to assert that mock response.end was not called so if I run the test it should fail because the function itself was actually called okay hopefully that makes sense and then it’s sometimes good to do that because it it helps you assure that you’re not having your test pass falsely if that makes sense so you don’t have any false positives cuz sometimes your tests may pass when they actually shouldn’t so let’s actually be more specific with our test so what I’ll do is I’ll duplicate this line and I’m going to use the matcher to have whoops to have been called with and this is what what I want to use whenever I want to verify that a function was called with specific parameters so the send function is called with only one argument and this argument is a user itself now again since we are using a mock array I can very easily just reference the array at the subscript of whatever fine user index is which is one so I can just go ahead and import this mock users right over here so let’s import that and that gets import up top here and then I’m just going to access it like this okay or if you wanted to you just literally copy this whole thing and paste it in like this either one will work the same way cuz they’re both going to be the same object and the contents are the same let’s go ahead and run our test now and you can see that it still passes and you’ll notice that if I tried to let’s say if I tried to pass in this direct object and let’s just say say if I tried to change some property values right of here let’s change it let’s change the username you’re going to see that the test actually fails because the value that was actually passed as an argument to the send function is not the same as what we were asserting it to be so you can see that the expected value we expected uh username of Jack without the K so jaac but then the actual received value was username of Jack so again this is good to make sure that your tests are actually passing correctly okay so let’s run the test again and it should just pass just like that all right so hopefully this makes sense and there’s also one more assertion that I want to show you so we can also check to see the amount of times this send function was called so I can do to have been called times and I can specify the expected amount so if I want to verify that this send function was called once then I can just pass one and it should only be called once especially in Express because if you try to call it twice that will actually throw an error so let’s run the test again and of course if I try to pass in like two it’ll throw an error or the test will fail you can see over here the actual received number of calls was one okay so hopefully that makes sense and one more thing as well that I forgot to mention is that with this two have been called with matcher you can actually pass in the number of arguments that the function is called with so we only have one over here but if you had a function that was called with like multiple arguments you can pass in the exact amount okay so let’s go ahead and move on let’s write another test to handle the second scenario of our function so the other scenario would be where fine user is not found and it sends back a status code of 404 so I’m going to write another test using the it function and I’m going to goe and say it should uh call send status with 44 when user not found okay you want to keep your test names short and simple and we’re going to go ahead and write our test so now here’s the thing though okay if I were to call get user by ID Handler again and then if I were to pass in the same mock objects it’s going to actually give us this same response that we have up over here but the problem is now we want to actually get it so that we can set up our code to ensure that the send status function is called instead of the send function okay if I were to just leave mock request alone you can see that it’s still using the same value for fine user index and in the code it’ll actually look for a user and return that user so it would never hit this part at all line six so we need to actually modify the mock request object so what we need to do is there there are a couple ways that you can do this if you prefer to not modify the object directly like this and set it to a value like this you can always just create like a copy of it so you can do something like const and then you can do mock request or let’s just do copy mock request equals and then you can do something like find user index is equal to 100 and then of course you can also destructure mock request because there might be some properties that you want to uh copy over to the copy of the mock request so you can do something like this and then passing copy mock request to here for mock response we don’t really have anything that we need to change because we still have the same functions so it doesn’t really matter so we can leave that alone okay so we’re going to call get user by ID Handler with a new request object but we’re going to set the find user index property to a value that I know that will not give us back a user in this case we’ll set it to 100 okay so when we call this function we now want to write some assertions so what I can do is I can write an assertion to verify that this send status function was called so let’s do expect mock response send status to have been called and then let’s run the test and you can see our second test passes without any issues let’s write a few more assertions so let’s do expect mock response send status to have been called with 404 let’s run the test again pass passes and I can just throw in a value that I know is actually not going to pass you can see that it fails so that’s good because it shouldn’t be sending a 400 it should be sending a 404 and I can also do to let’s do to have been called times let’s do one let’s TR the test again and let’s also write an assertion where we verify that mock response not send was not called so expect mock response send not to have been called let’s run the test wonderful so all of our assertions are good now one more thing that I do want to do though is if you go inside your just config file and if you look for Clear mock you want to make sure this is set true early ear when we were configuring just we had pressed yes when it asked us if we wanted to configure um our test to clear all mock calls instances and context and results before every test because what happens is if this is false the next test will actually carry over data from the previous test so if I actually try to run my test now you’re going to see now our second test actually fails and it’s actually failing because right over here on line 32 where I have this assertion expect mock response. send not to have been called you can see that it’s failing because it says receive number of calls one so it in fact was called but if you think about it your code itself says otherwise because I know for a fact that in my code response. send should not be called because we are returning response. send status so this code doesn’t get executed when F user is uh not defined Okay the reason why it’s failing this test right over here and it’s treating it as if sen was actually called is because in the previous test the sen function was called and it was called one time okay so since it was called one time and we didn’t clear the mock it carried over to the next test right over here inside this second test over here so there’s several ways they can do this the first thing that you can do is obviously what we already had was having clear MOX set to true instead of false the other thing that you can do is you can use this before each hook and this takes in a callback function and basically you can execute some logic that happens before each one of your tests so you can initialize a variable you can connect to a database whatever is that you want so you can actually use this just. clear all MOX function call and now if I run my test it passes okay so this is manually clearing all the mod before each test sometimes you might not want to clear all the mocks because you might want to depend on previous function calls from the previous test so you might want to turn off clear Mock and set it to false sometimes you just want to manually clear the mock so you can use this before each it’s up to you but I just wanted to mention that as well so I’m just going to remove this before each and I’m going to set clear MOX back to true so hopefully these two tests that we wrote makes sense now I have one more example where we can write a unit test for another one of our endpoints but this one’s this one’s going to be a little bit longer so I just wanted to warn you all but I’ll try my best to keep it as concise as possible and I want to do this one because there’s a lot of stuff going on inside this function and I think it would be really great for you all to learn how to test different scenarios okay so what I’m going to do is for my post endpoint for API users this request Handler creates the user and saves it to a database so you’re going to learn how to mock functions that come from modules you’re going to learn how to to mock uh classes es6 classes you’re going to learn how to mock the database call so that way we don’t actually hit the actual database because when it comes to unit tests you don’t want to actually invoke your database or call an external API so you’re going to learn how to do a lot of stuff with this next test so we need to make sure we get this function um out of this uh out of this format we don’t want it to be an anonymous function so I’m going to just copy that and I’m going to go inside uh let’s see not here but inside my handlers file or the users. MJS file inside handlers and I’m going to go ahead and paste this here and I’ll name this function create user Handler like this and uh before I import all of the necessary functions into this file let me just take this and let me just paste it here and import it up top over here okay and now let’s go ahead and go back to our users. MJS file inside the handlist folder and we need to make sure we import all of the necessary functions that we imported that were in the other files so validation result comes from Express validator that’s a validation library that can validate post requests um request bodies query parameters all that kind of stuff we need to also import match data that’s also a function from Express validator hash password is a function that we wrote Our elves let’s import that right over here uh user is the model so this is what actually allows us to interact with our database but we’re not actually going to call the database we’re going to mock out this as well um and I think that should be it okay so now let’s go ahead and go into our users. spc. JS file and then now I’m going to create a new test Suite so outside of this describe get users I’m going to go ahead and create another describe and I’m going to call this create users so you can think of these individual it functions these individual tests as your scenarios okay so inside the create users test Suite I’m going to go ahead and create a simple test and I’ll just say it should let’s see let’s go back into our function okay so this is a pretty big function it does a lot so I take this step by step so that way you all don’t get confused first let me just remove these console logs cuz we’re not going to need them whoops so we want to take this step by step because there are a lot of things that are going on so let’s hand let’s take a look at our code and understand what’s going on so when we call this create user Handler um when Express calls this function to handle the uh create user endpoint it’s going to go ahead and call validation result so when you’re looking at the code the important part is not to really worry about what your what these functions these external functions cuz we don’t know what these functions let’s just pretend we don’t know what it does you don’t have to care about what this function does you have to care about what it returns because we’re going to mock the function anyways we’re going to mock the implementation we’re going to mock the return value of the function so in the end it doesn’t really matter okay what I care about is what it returns so result you might not know what it is you might think it’s an object it’s a number it’s a string you might not know but you can very easily tell if you just look at the rest of the code and look at where result is being referenced so you can see right over here that result has this is empty method that’s being called on it and I immediately know that this is an object okay uh there’s also this array method on result as well so what I can do is I can go ahead and actually mock out validation result because this is known as a dependency it’s a function that that can perform some kind of side effect and we don’t want to actually have any side effects in our unit test we want to make sure that we mock them all out and we only want to test the function itself we only care about the possible paths our function that we’re trying to test and take so again you can see right over here this is our first if condition if result uh dot is empty if it is uh let’s say if this results to false and then we negate that value so if it is not empty then we’re going to return this response status of 400 and then send back whatever this value is again I know it’s an array cuz we wrote this out ourselves but we’re just pretending that we don’t know okay so this is the first thing that it could do the second thing that could happen is right down over here so you can see that we have this new user. saave being called and then it sends back a status of 2011 and it sends the user okay so this is the second scenario the third scenario is that an error could be thrown inside this Tri block so then the save method could have been could have thrown an error and then we catch it down over here and then we send back a status of 400 okay now there actually should be another scenario where the hashing password uh failed and we actually should have added this inside the try catch but we’re just going to leave it the way it is right now okay so hopefully all of this makes sense so now if I were to go back up top over here again the validation result is one dependency Okay so what we want to do right now is we want to test our function to handle this first scenario first because instead of just having to do everything all at once we’re going to take it step by step okay so what I’m going to do is I’m going to write a test that is going to mock out this validation result function call we’re going to have it return uh literally whatever object we want but that object specifically needs to have this is empty method as well as this result uh as well as this array method on the result object cuz they are both going to be call okay so we need to make sure that whatever is empty is going to return it returns false for this case because I can see that we negate the value of result. is empty so for example if there are no errors that’s what this isempty method means if there are no errors you can see right of here it returns true if there are no errors so if this is true the negation of this would uh not execute this line and it would just go down over here which means that there are no errors however is however if is empty is false then result that is empty would return false which means that we negate that which means it would return this part over here so for our first scenario we want is empty to return false just so that we can Target this line over here so what I’m going to do inside my users. spc. Js file is this so I actually already have some mock data defined up there um just to keep things simple I’m actually just going to Define it inside test Suite so const mock request and then const mock response and then it’ll be within the closure of this callback function so we don’t have to really worry about the ones defined up there so what I’ll do is for the test scenario I will say it should return a status of 400 when there are errors and we’ll pass on our callback function okay so now we need to go ahead and set up our mocks our our mock request and mock response to actually get this to work so again we have to look at our request object and we want to see Within These two lines where is our request object being referenced you can see that it’s being passed as an argument to validation result however it’s not going to really matter because we’re going to mock validation result so we actually aren’t really going to need to do anything with the mock request for this specific scenario okay so let’s look at response I can see that response is referencing this status method right over here so right over here we’re going to go ahead and do status just. FN and you know what I actually could just reuse mock response up top over here because we’re going to be using some of these similar methods anyways so you know what what I’ll do is I’m just going to remove this and I’ll just reuse the mock response up here and it shouldn’t matter because we are clearing all of the mocks uh anyways before every test so we won’t have any leftover data from the previous test okay so let’s go ahead and implement the status method and this is also going to be a mock function so we’ll use just. FN okay now one more thing that I do want to point out is that after we call the status method we actually are calling the send method as well because when you call this status method it actually Returns the instance of the response itself and you can actually call the stat status method on it as many times you want because it just Returns the response instance itself so in order for us to actually detect calls on the send function inside uh status over here inside just. FN for status we actually want to pass a callback function and we want to actually return mock response so basically returning itself so that way by returning itself mock response would then have access to all these other methods as well and if we don’t do this we wouldn’t be able to actually test to see if send was called after status and I’ll show you that when we actually write the test okay so we’re not done yet we’re done with setting up our mock request and our mock response we need to now mock this validation result function and you’re probably wondering well how do I do that this is a function that comes from a thirdparty module Express validator well I’ll show you so you can mock modules and what that basically means is you can override the implementation and the functionality that that module that module’s API provides so for example inside the express validator module we have a bunch of functions we have a bunch of different things that we can import that we can use in our application however we want now for our case we only are using validation result currently so we want to mock validation results specifically so all the way up top over here what I can do is I can reference jmck and then I want to specify the name of the module so I’m going to go ahead and say Express validator

    like this so This Will Mock that mpm module you can also mock your own modules that you create as well so for example uh later on when we need to mock uh the hash password function we’re also going to mock this helpers module as well okay and that’s our local module so as a second argument after we pass Express validator for the first one the second argument whoops the second argument is going to be a factory so this is where you’re going to return an object because if you think about it your modules are kind of like objects and those objects have um the named exports okay if it assuming it does so what we want to do is we want to return this object like this so notice how I have the parenthesis wrapped around the curly brace so that just allows me to do it shorthand instead of having to do something like this okay so what I’ll do is inside the object I want to mock the validation result function so I’m going to type validation result like that and I’m going to do just. FN like that so now I have successfully mocked the validation result function for the express validator module and now this mock function we want it to actually return something so that way we can actually uh have this result value be something that is defined with the correct is empty and array methods so we can do that inside our Justa FN function we can pass in a call back that also returns an object as well and I can go ahead and Define the is empty method so is empty is going to be a mock function as well but this mock function remember we’re going to have it return uh false okay so passing that call back return false like this and then we also want to implement this array method on the return value of validation result so this is a method and uh it does return an array so we will have it return an array like this and then what you can do is you can add some random object with random Fields so you can just say message invalid username just like an example you can literally put whatever you want like invalid field whatever it is okay because we can always actually modify uh we can always override the return value of validation result and I’ll show you how to do that as well okay so I think we’re good to go let’s actually go ahead and test everything out okay so what I’m going to do is I’m going to go ahead and call create user Handler so let’s go ahead and import that up top over here oh whoops I can just import that from right over here wonderful cuz we’re in it’s from it’s coming from the same file okay so let’s go ahead and call create user Handler let’s pass in the mock request and notice how we’re referencing this local mock request cuz this is the closure we’re inside this closure over here and then we’re going to reference the mock response which is all the way up there so we are reusing that same mock resp responds object from earlier okay and remember that this function is asynchronous so we should also await the call and we need to make sure we add the Asing keyword in front of this callback function for the it function okay all right so let’s just make sure everything is okay so if I run npm run test the test does pass but we aren’t writing any assertion so that’s okay and you’ll notice how now if I actually try to kind of like remove all this all the mocks that we just did you’ll start to notice that a lot of stuff uh starts to error out and you can see that um it’s actually trying to go to line seems like like line8 over here inside the helpers MJS so it’s actually without mocking anything it actually tries to call the actual uh Express validator uh Library so it’s actually calling the functions okay and then it’s going to try to execute everything the way it is but you can see over here it tries to throw this error right over here because we don’t have a value for password but we’ll get to that because right now our request body has uh nothing okay and we also aren’t mocking match data yet so don’t worry step by step just wanted to show you what would happen if we removed the mock stuff okay so let’s add that back in and you can see that everything will work the same way all right so now let’s actually write an assertion so the first thing that I want to do is this so when it comes to testing there are different ways that you can approach testing there is there’s implementation testing and that’s where you’re actually testing the actual implementation so you’re trying to verify that certain functions are called certain functions are called with certain parameters that’s known as implementation testing there’s also behavioral testing where you just give it some input you don’t care what it does as long as it gives you an output so there’s different ways on how you can test this with backend you can’t really go wrong with either either one usually on the front end like if you’re testing apps and react you would want to use behavioral driven testing because you want to test based on output and you don’t care about what actually happens underneath the hood with all of the state and all of the uh you know form fields and whatever is being called to the API stuff like that so I just wanted to point that out okay but since we’re just getting started I’m just going to show you very basic how to write assertions so what I want to do is I want to verify that validation result was called with the request object okay so the question is how do I actually write the assertion for validation result because in my whole test file I don’t have any access to validation result well I’ll show you so the first thing that we can do and I’ll import this over here on line one is I’m going to import the entire Express validated library but I’m going to import it as like a default import like this so import validator from Express validator like this and then now down over here in our test after I call the create user Handler function I can write an assertion and I can reference validator do validation result to have been called times one and let’s run our test and you can see that it passes and if I were to set this to zero to see if it actually fails and it should fail you can see that it was actually called once so that verifies that it was actually called and if I were to actually remove uh if I were to actually just kind of like remove this whole thing right over here you can see that our test begins to fail and it’s not recognizing validation result as a function if I remove this whole just. Mock and if I try to run the test again you’re going to see that other stuff starts to fail as well okay so hopefully this helps you understand the importance of mocking out your modules and hopefully this helps understand how to how to mock out uh these functions that come from the Express validator package or just any package in general okay let’s go ahead and continue so I’ll do validator dot validation results so I’m going to write an assertion to say that to have been called with mock request because if you look right over here we are passing whatever request object this is to validation result so we’ll write the assertion there it passes and let me just change this to two have been called instead of two I’ve been called times one okay that’s a lot more better because this basically implies it’s going to be called once or two have been called at least once okay so now uh we want to also write an assertion that response. status was called with a status code of 400 so let’s do that so expect response dot I think it was status and it’s mock response to have been called with a 400 mock response okay let’s run our test okay it passes good and let’s go ahead and write a search to verify that the do send method was was called so we can do expect mock response and this will be mock response. send not mock response. status. send because remember that when we call the send method we’re still calling it on the instance of the response method so we would have to reference mock response so to have been called with and then we want to verify that it was called with this array and that’s whatever we had mocked over here so I’m just going to take that copy and paste it down over here let’s run the test again and it passes and again I can go ahead and just change everything up and make sure that our test is passing correctly and you can see it throws an error when I pass in the invalid expected argument okay so that’s pretty good let’s go ahead and move on now because we’ve covered this whole part over here so now we have to cover the next few lines over here everything up until down over here so we are calling this match data function but we aren’t mocking it okay so it’s going to actually call the actual match data function which comes from Express validator so we want to mock it because what I want to do is I want to mock this function to return uh some object which is going to be the actual user data so again to give you context uh what this function does is it takes the request body and it gets you it gives you the validation result okay so if there are no errors then what happens over here with match data is match data will extract all of the valid fields in the request body and store inside this data object so all we really need to do is just mock match data to return a user a valid user object so let’s do this okay so going back up over here I’m going to do match data just. FN and we’re going to have it return an object and keep in mind that whatever the return value of matched data is is actually just going to be an object so there’s no methods on it that we would need to worry about because we’re not referencing anything except for just the password field so let’s just do uh let’s see username let’s do test password uh password and then I think the other field was uh I think it was display name if I remember correctly let me check if I go inside my validation schema so we have username display name and password yep so display name just do test name now some of you might be asking well what’s the point of doing all this mocking because doesn’t that kind of defeat the whole purpose of test testing well no not for unit testing because remember our goal is not to actually test to make sure that you know Express validat Works our goal is to test create user handle Works our own function this is a unit test okay when you want to actually test the entire application that is where you want to actually set up an integration test or an end to end test which you will learn about it later okay so hopefully that kind of clarifies the confusion between uh mocking and actually testing the entire thing with without mocking it okay all right so now that we’ve mocked match data this function to return a mocked result so we can safely uh run the rest of our code and then we want to make sure that this match data function is going to be called but we also want to make sure that we don’t hit this if condition and make this true so we need to actually make is empty return true this time which means that there are no errors but the thing is though I mocked it up top over here to return false so what if I changed it to true but then that would break my first test over here so we can’t do that so I’ll show you what we can do to actually change the return value for our specific tests okay because we want this is empty function to return uh true for whenever we call it validation result so that way this if condition results to false and then it’ll go down over here and call match data okay so let me just make sure that we have our match data function mocked properly okay this is good let’s go down over here and let’s rate our next test and I’m going to go ahead and call this test uh let’s see so I guess the overall thing that we are trying to test for is making sure that the response. status is sending back a 2011 and it’s sending back the user that was created so essentially we’re we’re testing for success for creating user so I’ll just say it should return status of to1 and the user created okay and let me actually go up here and let me fix this should return status of 400 okay so let’s add the Asing keyword in front of our callback function for this test and now we’re going to go ahead and call create user Handler so after we call our function we want to actually mock out the is empty method to return true so that way goes to the match data function call so inside our test here’s what we’re going to do we’re going to use just. spyon and I’m going to go and reference um this import up here validator so that’s the entire Express validator package and then we’re going to spy on on uh this function right over here it’s validation result like this okay and then what I can do is I can use this mock implementation once and then in here this is where I can actually mock the actual implementation of the function and I can have a return an object so the same result object but this time that object will have this is empty function so this is also going to be a mock function and it will return true like that okay so hopefully that makes sense so this is how I can override the mocked value of validation result into something else so now what will happen is create user Handler will be called it’s going to go ahead and call validation result and then result that is empty will be called and we can see that’s going to a result to true and then negating that will cause this whole if condition to be false and then it’ll go down over here so what I can do is I can write an assertion to verify that matched data is called so let’s do expect so remember match data is a function that comes from the Express validator package so I’m going to reference validator do matched data to have been called and let’s save and let’s run our test and let’s make sure that it passes okay so it actually is um let’s see okay yeah don’t worry about this so it is actually supposed to pass but the reason why it’s failing is because right now it’s actually trying to uh call the next few functions it’s trying to call Hash password and then it’s also trying to call the database by Saving this new user to the database so don’t worry uh it is working it’s just that um we’re it’s trying to connect to the database and you can see that it actually timed out because we don’t actually have a database connection so don’t worry we actually did the right thing we just need to mock the rest of our function okay so we know that match data is being called and you know what let me just comment all this out and run the test again because I just want to show you all that it passes great so now let’s go ahead and mock hash password because again we don’t want to actually call these functions because remember these functions these dependencies produce side effects okay so we’re going to go up top over here and now I want to mock this hash password function that comes from my helpers module so what I’m going to do is I’m going to call just. Mock and I want to pass the path to that module so we’re in the test folder so we need to go out one folder into utils helpers MJS like this okay and what I want to do is I want to have hash password um I want to I want to mock the implementation so let me pass in the factory and return an object and just overwrite hash password and so this will be a mock function but I I actually want to have it return some custom logic and all I want to make it do is takeing an argument so I’ll just do password so inside this callback function I can pass in this argument password and all I’m going to do is just concatenate um hashed with password like this I’m just going to literally prefix the password with hash so that way it at least does something okay all right so we just mocked hash password or hash password so now let’s go ahead and import up top over here we’re going to import helpers from utils helpers okay and this would allow me to reference helpers like an object and I should be able to reference hash password or maybe I need to do import as helpers yeah there we go okay I think I may have need to do that as well for validator I’m not too sure let me just run everything and make sure it’s good let me go over here and just come this out real quick okay there we go perfect okay just wanted to make sure that didn’t break okay so now we’re going to go down over here and we have wrote an assertion for for the Matched data function okay to have been called uh let me also change this to have been called with mock request to be more specific and then we’re going to go ahead and write an assertion for hash password so what I’m going to do is I’m going to expect helpers do password to have been called and I want to verify that it was called with data. password so data. password password is going to be whatever matched data returned so up top over here matched data returned password so I’m going to say to have been called with password like that you know what for the rest of this test let me just comment out all this stuff over here because I do want to actually see our assertions passing okay good so to have been called with password and then I also want to make sure that hash password so helpers hash password returns with the correct value so to return to have returned returned with hashed password and I know I’m just hardcoding these values but ideally for you you would probably not want to hardcode these values so that way you can make it more Dynamic but I’m just doing this for testing purposes okay just to show you an example so if I run the test you can see that it will in fact return hashed password and that’s just our mock implementation right over here nothing special but at least it is returning with something so we can verify that data. password is uh storing the correct return value okay so now the next part we want to um test this part over here you see how we are creating a new user so this is where we are invoking the Constructor of class so now you’re probably wondering well how do we test that so what we can do is we can actually mock these es6 classes it’s actually not that difficult and I’ll show you how to do it so what we can do is right over in our test file up top over here I can go here just. Mock and I can just pass the path to our our user right over here this this user. MJS file inside schemas so I need to go out One Directory to schemas user. MJS okay and then up top over here you know let me remove this mock users import let me import user from the uh mongu schemas user. MJS file okay so I just mocked that whole module right over here and now what we can do is is so I uncommented this line over here where we call the new user Constructor and I can write an assertion and I can say expect user so I’m referencing the entire model which is a class and that’s coming from this input right over here okay this is our model right over here and then what I’m going to do is I’m going to use the two have been called assertion and I’m going to run the test and it’s going to pass so this verifies that the Constructor was actually invoked if I comment this out you’re going to see that it’s going to fail because it it actually was called or it actually wasn’t called but we wrote the assertion to see that it was called so let me uncomment that and let’s just change this to to have been called with the correct arguments so we want to make sure that it was called with the correct username display name and the hashed password okay so in our test let’s go back up over here so notice how this is the return value of matched data because we are passing uh matched data whatever this return value is into the user Constructor only with the password being hashed so what I can do is I can pass in that object and just change this to Hash Hash password and remember this value comes from our mock function over here we just prefixed hashed uncore with whatever the password is so let’s go ahead and run the test and you can see that now it passes so that’s good and now one more thing that I also want to show you is if you wanted to access the instance that was created so the user instance you can do that by referencing user and it’s going to attach this mock property onto that user and then you can reference instances at subscript zero because we only created one instance and then let’s run the test again and you can see right over here we have the instance and this instance has this save method as well and you could of course also reference the properties on it so let’s go ahead and continue testing the rest of our code so I’m going to comment this out and since we’ve already mocked out the user model or mongus model I can actually just run my test and we shouldn’t get the same errors that we had before because all that is mocked out already okay this save method is mocked everything so what I want to do is I want to verify that the save method was called on the instance this new user instance so what I can do is this I can actually create another spy on this save method so I can keep track of its calls because there’s no way for me to directly ask this unless if I get the instance so for example if I wanted to I could do user. mo. instances zero do saave to have been called like that and this should work without any problem yep and then if I try to negate this call to verify that it’s it’s not passing incorrectly you can see that it actually was called so this is one way that you can do this the other way that you can do this is you can use a spy and I’ll show you how to do that so I’ll create a variable I’ll call this save method equals just. spy on and I can reference user. prototype like that and then what I can do is I can specify the actual method itself on the instance so save is one of the methods and then leave it like that and what I can do is I can go ahead and replace this part to be expect save method to have been called okay and if I run test again the test will pass and if I try to add the not operator in front of it you can see that by adding not operator the test fails because it actually was called so what I want to do specifically is I want to actually mock the return value of save so what I’m going to do is at the end of just. spyon I’m going to call mock resolved value once and I want save to just return the user that should be saved to the database but I’m just going to attach an ID you don’t have to do this but I’m just going to do it anyways and then I’m going to copy that so that way like the reason why I’m attaching the ID is that way it makes it feel like it’s being saved to the database even though it’s not because mongodb generates an ID for us so now what I’ll do is I’m going to go down over here and what I’m going to do is I’m going to let’s see so we are asserting that save was called so now let’s write an assertion on response. status we’ll verify that it was called with the status code of 2011 and then we’ll verify that the response object was called with the send method or called it called the send method with the saved user which means that it includes that user over here that we are mocking the resolved value so let’s do expect mock response. status to have been called with 2011 and then let me just go down here let me change this to mock resp response. send and let me just copy this object paste it here and we should be good so let’s test this out let me run my test and you can see that our test passes so that’s good all right so we’ve covered two cases so far for our crate user Handler let’s go ahead and cover the last case this one’s going to be pretty easy we just need to get it to actually throw this error so here’s what we’re going to do we’re going to go ahead and create a new test so I’ll go ahead and call this test let’s see um it should throw error when save or let’s see it should send a status code of 400 when save uh errors out okay so everything else is good except for when uh the save method is called maybe something failed the database and then it throws us th throws this error and it sends a status of 400 so let’s do should send status of 400 when database fails to save user so I think that’s good enough and let’s make this an async method so we’re going to uh let’s see we’re going to copy this create user Handler right here so everything is going to be roughly the same as the previous test so I do also want to copy this just spyon because we do want to make sure that we are going past this part we’re going all the way down but then it we just want it to fail when it calls the save method okay so the thing is though we don’t need to rewrite all of these uh assertions because we already did before so let me do this um con save method yep so let me copy this save method equals just. spyon let me copy this part and now what we are going to do is we’re going to go ahead and for the save method for this spy we’re going to mock the implementation one time and remember this save method throws it it could throw an error but we’re just going to mock the implementation so when it does throw an error then it’s going to handle this catch block over here but since this save method uh is asynchronous it returns a promise so we have to do promise do reject and we’ll just say failed to save user okay so now we’re basically overriding the save method to actually error out return um return an error so everything in our code should be good and then once it gets to this save method it’s going to go ahead and error out and then we’re going to go ahead and write an assertion on response and Status okay so let’s go ahead and do this let’s do expect save method to have been called and then what we’ll do is we’ll do expect mock response that’s send or I’m sorry send status right over here to have been called with 400 and let’s go ahead and run our test let’s make sure that it works and there we go we have covered all three cases if you want you can go ahead and write some assertions for some of these functions to verify that they were called but you don’t really have to is it would just kind of be redundant with what we have up here CU at this point in this test we know that all these functions are being called it’s just that we’re trying to get to the point right down over here to make sure that we are testing for uh this send status being called with a status code of 400 and if I were to pass 401 that test would fail because it is supposed to be 400 and there you go so hopefully all this makes sense I know this this part of the tutorial was pretty long but that’s because there’s a lot of stuff that I wanted to cover and I felt like with this specific test you learn so much with how to mock modules how to mock classes how to mock your own modules that you create yourself on your uh on your in in your source code so your local modules um and just a lot of stuff about unit testing so hopefully this tutorial made sense and I would highly encourage you to practice writing more tests more unit tests for your other functions as well so for example one thing that I can encourage you to do is maybe for the local strategy if this is something that you have you can go ahead and take let’s see you can probably take this part out you can take this Anonymous function out put it in a separate file and import it in here and then that way you can actually import that function into a test file and test the logic in here and using the logic that I showed you with how to Mock and how to override values of functions by mocking them out you can write those unit tests so hopefully all of this makes sense in this part of the expressjs tutorial I’m going to teach you how to write integration and end2end tests for your Express server so integration tests and unit tests basically involve testing your entire application at least with integration tests you typically are testing certain scenarios and flows in your application like for example create a user and then expect that user to uh return as a response and then try logging in as that user after you’ve created that’s an example of writing an into and test okay you have different scenarios it’s a lot different that unit tests where unit tests you are only testing one piece of your entire code base like one single function and many of you who have seen the previous section where I showed you how to write unit tests may actually find writing integration tests to be a lot more easier because you don’t have to worry about setting up a bunch of mocks okay some people do get confused with how to Mock and what to actually mock but with integration and ENT test you just call your API and then you write assertions so the first thing that I’m going to do is I’m going to actually disable the OA 2 configuration with the Discord strategy right over here I’m going to comment it out and I’m going to uncomment out the local strategy because I want to actually use local authentication we’re not going to be testing oath 2 we’re going to be testing actual local authentication where we create a user and then we can log in with that user and then we will verify that the user was created and that we’ve logged in so let me just do that so just uncomment this file everything else is set up the way that it should be and then we should have our both serialized these serialized user functions okay so we’re done with this part just want to do that very quickly now let’s go ahead and install super test so you’re going to type npmi hyphen D super test and we’re going to use super test with just they both work very well with each other and we already have just set up already so if you missed a previous section of this tutorial where we configure just and wrote some unit test check out at least at least the first 10 minutes of the video where or maybe like the first 5 to 6 minutes where we set up just okay then come back to this video but all the code is going to be in a GitHub Link in the description so check that out so you don’t have to like you know watch the whole thing you just copy the code and get the setup and then come back to this video so I installed super test now let’s go ahead and go back to our code what we’re going to do is we’re going to create a folder inside the source folder and I’m going to call it e2e like this cuz I want to keep all of my unit tests separate from my end to end tests because it’s good practice to do that and it’s also industry standard as well and I’m going to create a new file and I’m going to call this index. spc. JS or you can call it index. test.ts if you prefer okay and I’m not going to I’m going to leave this blank for now I’m not going to write anything just yet inside this new file what we need to do is we’re going to go into our package.json file and we’re going to add a a new test script but I’m going to call it test colon e2e so that way I can run either only unit tests or only endtoend tests for the test E2 script the way it’s going to look like is we’re still going to be using the just binary so again make sure you have just installed and configured and then we’re going to use this test path pattern flag and I have it point to the source The Source SL folder so that way when I run test colon e2e it’s going to go ahead and only run the tests inside this folder over here okay so we can run just the end to end tests and not the unit tests with it okay so we’re done with this now we’re going to go ahead into our index. spc. JS file and what I’m going to do is I’m going to import Super Test from Super Test like this and then I’m just going to show you a very very easy example right now I’m going to import Express and I’ll set up a very simple Express server with literally nothing no middleware nothing okay whoops didn’t mean to do that so I’m going to call the Express function and I’m going to register a simple test routes so I’ll call that route hello and we’re just going to send back a status code of 200 okay and then now to actually use super test the first thing that I’m going to do is I’m going to use the describe function again this comes from just so make sure you have just configured and I’m going to go ahead and call this hello endpoint just something simple and then I’m going to passing that callback function and inside the Callback function for describe this is where we’re going to have all of our tests so I’m going to use the it function that’s part of just to write my actual test so I’m going to go ahe and just say get hello end point well actually let me do get hello and expect 200 okay so I have one test inside my describe callback function over here and I can add more test if I want to so this is where we’re going to actually call our API so we’re going to use this function actually actually I’m sorry it’s not super test from super test it’s import request from Super test or that’s how you should name it import request from Super test because this is actually a function so let me just I just fix that real quick sorry about that so let me just invoke this request function which is this super test module over here again this is the top level function that we’re importing and then we’re just going to pass our app instance like that and then what we’re going to do is we’re going to go ahead and call the get method so whatever endpoint point that we want to make a request to and whatever method type you would use that one so for a get request I would use get for post I would do post so I’ll do get and then the URL so hello and then you want to pass in a callback function if you need one but I don’t need one right now so after the do getet I can go ahead and use uh this expect method at the end so I’m chaining this expect expect method on the return value of get and then what I can do is I can expect a status code like this I can do expect 200 and now let’s go ahead and run the test so we’re going to run the test by using this test e2e command that I just set up earlier so npm run test colon e2e like that and our test should pass there we go okay perfect awesome not sure why it took forever it might be because we did not end the request but I can do at the end of the expect call I can do end and then error res and and do if error throw error like this and that should fix that error in in the last part yep there we go perfect so you can see that the test passes and of course if I were to change the status code inside this app.get inside this request Handler I change the 2011 to kind of like throw off this test over here and show you what happens so let’s do npm run test e so the test should fail you’ll see that the error actually uh is thrown right over here the problem here though is that even though we are expecting 200 over here and keep in mind this is the expect method that is on Super Test not from just okay you can see that right now over here it still treats the test as passing even though the test shouldn’t pass and um even if I were to write an assertion inside this call back function for the end method call so we to do expect and then we have this res argument which is the response so res. status code to be 200 and if I run the test again the test actually will still be considered passing let me remove this expect as well okay you can see that the test actually is still considered passing right over here even though it actually is supposed to fail now to fix this instead of having to do uh do end like right over here I’m going to go ahead and remove that and so instead of that we’re going to go ahead and actually await this doget call because this actually returns a promise if you look at the end over here you can use then or catch like that so I’m going to add the ASN keyword in front of the call function for the it function or test and I’m going to go ahead and do const res equals await so this is the response object right over here you can see that the return value the resolved value is a response let me name it response okay and now what I can do is I can write an assertion on the response the status code and I’ll say response. status let go 2 B 200 so this should fail because the end point actually returns a 2011 and now the test actually fails so this is exactly what we want of course if you wanted to write an assertion on the response body there is this body property on the response object and then you can use assertions such as to b or to equal or to strict equal or to contain whichever mat you feel like you need so for example I can do Tob an empty object and let’s see what happens uh let me first fix this back to 200 and of course you can see the test fails because we’re not returning a response body so let’s fix that let me go ahead and set the status to 200 and also send some Json and empty response body and let’s run the test again and let’s see uh I think let’s do two equal since it’s an object okay there we go now it passes okay it does suggest to use two strict equal as well right up top over here that’s why it was erroring out okay and if I tried to pass in the wrong object like this let’s run the test and you can see that the assertion fails so hopefully this makes sense now I just want to show you this quick example we’re now going to go ahead and actually set up our end to end tests for our application so this will actually require us to grab our app instance right over here because what we need to do is similar to um what we’re doing in here we need to pass that app instance into the request function as an argument as you can see over here okay so inside our application right over here inside index. MJS this is where we actually have our Express app created and we have all of our middleware set up so the thing is though we need to make sure that we can export our app and import it into our test files our endtoend test files so that way all of the routes and all of the uh middlewares and anything else is actually going to be registered the other issue is that because in our file we’re not only just registering middleware but you can see right over here I am trying to also invoke the database as well so there are actually a few things that we need to do just to get this to work and so the good thing is it’s not going to be a big deal to do this so what I’ll do is I’ll create a new file and I’ll call this uh let’s see create app. MJS and all I’m going to do is just export this function create app like that and I’m just going to literally take let’s see I’m going to take all this stuff right over here and I’m going to paste that in here and then what I’m going to do is this I’m going to go ahead and pass an instance of app like that so then I can reference app right over here and I also need to make sure I’m registering all of my middleware which I am and I also need to import all of the middleware as well all the Imports right over here as well as right here okay and um let me see uh Additionally you know what actually I’m going to create the app inside the function instead and let me import Express up over here so let me delete all of these Imports in the index files because we won’t need them anymore okay so what I can do now is I can call create app and I want to actually return the app instance so when I call create app it’ll run through all of these it it’ll call all of these functions it’s going to register all of the middlewares right over here all of the routes and it’s going to uh return app so once all of the middlewares and all the rout or registered it’s going to return this app instance to wherever we called it so now what I can do is inside the index. MJS file I can go ahead and first let me import create app like that and then I’m going to go ahead and do const app equals create app and we don’t have any asynchronous a logic going on here so that’s good so we can just call create app and now the next thing is is we need to also make it so that when we run our end to end tests or integration tests that we’re also able to connect to the database as well so this alone is just fine for our development application like if I were to just run my code right now for just development everything would still work the same way you can see that still going to uh reference the app and then call app. listen to actually start up the server is not defined I think oh I think let me see where where was that over here um did I reference that in here oh yeah let me import Mongoose in here as well inside the create app MJS method because we do reference it down over here forgot about that and then cannot in a client please provide correct options okay so the other problem here is that it does require the connection so what I can do is I can move the connection top over here and now it works okay so it’s just an it’s just a matter of ordering things so first I’m connecting to the mongodb database I’m calling mango. connect then I am initializing the app because the application does require the connection to exist first so now what I can do is let me remove uh this app.get let me remove all of this for now and instead of just calling Express I’m going to remove that let me remove this import of Express I’m going to go ahead and import the create app like this okay so now we actually have our Express app in this variable like our actual app not the fake one that we just created just now but we still need a connection to the database and that’s okay because what I can do is I can actually just copy all this stuff over here and I can just paste it right in here and I can just import mongus from mongus and I can change the database that it is connecting to so I can change it from Express tutorial to express tutorial test like that and I can say connected to test database and now let’s go ahead and try to test a very simple endpoint so I have let’s see do I have any simple end points that I can set up um let’s do this one let’s do the API off/ status endpoint let me remove all these logs so what this should do is we’re going to write an assertion to return a 401 because we’re not authenticated currently so inside our test file let’s go ahead and do describe API off and then what I’ll do is say it should return 401 when not logged in and let me add the Asing keyword in front of the call function for our test and I’m going to do const response equals await so I’m going to call the request function that’s super test right over here we going to pass in our app and then we need to go ahead and call get and then go ahead and pass in the URL that we want to visit so/ API SL status just like that and then now I can write an assertion on the response do status code to be 401 so let’s actually run our test and see what happens so npm run test or I’m sorry npm run test e2e okay and you can see uh let’s see right over here you can see that it is logging in the console right over here it says connected to test database and our tests are passing so that’s good so it is actually calling the endpoint um and it passes because we are expecting the status code of 401 which it is actually giving it to us and of course we get this issue where um the test did not exit after the test completed so I think it’s likely because of our database connection right over here mongus doc connect let me actually do this I’m going to copy this and I’m going to go inside the describe block and then right before the test I’m going to go ahead and use this before all function this is a life cycle hook so basically this function takes on callback function and before all of your tests that’s why it’s called before all it will run whatever is inside this logic over here you can see before all of our test it’s going to connect to the database so there’s before all there’s also before each before each will run before every test and we don’t want that because we only want to connect to the database one time and then let me just make sure this still works as expected uh let’s see um okay so I think the problem is oh wait whoops let me do this uh it does require a little bit of tinkering but what I need to do is because we’re trying to create the app first before the database connection so let me actually do this let me declare variable up here called app like that using the let keyword and I’m going to reassign uh the value of what whatever create app returns to app and so that way I can reference it inside here okay there’s a bunch of different ways you can set this up so this is not only one way this is not the only way to do it there are different ways of how you can configure this but this should work okay perfect and now to fix this part we’re going to go at the end of our test I’m going to go ahead and use this after all hook okay so it’s pretty much the opposite of before all so after all your tests what we want to do and this is the part where I mentioned earlier or maybe in the previous section of this tutorial where you want to actually drop the database as well as close the connection to the database so you can do that by referencing doc connection drop database um and then you can see it says helper for drop database deletes the given database including all collections documents and indexes so that will drop the database that we are connected to which is the test database and this returns a promise so we will need to await that so let’s add the Asing keyword and await this and after we drop the database let’s go ahead and close the connection yeah I think it’s yep drop not drop sorry close and then this will close the connection right over here and then this should fix that uh warning that we have over here okay there you go you see how now the tests actually gracefully exit and this is important because if you have your end to endend test or really any test running in a pipeline it’s going to block your pipeline from proceeding to the next job so it’s very important that you resolve these situations okay but we have a pretty good setup right now so let’s go ahead and actually continue so what I’m going to do is I’m going to go ahead and write an end to end test I’m going to I’m going to write a scenario okay so what I’m going to do is I’m going to go ahead and create a user first verify that the user is created and then we’re going to try to log in and then verify that we’re logged in I know it’s a lot but don’t worry we’ll take it step by step ideally you always want to make sure you are separating your tests you don’t want to like have them all together so what I can do is I will go ahead and create a new file I’ll call this user dope. JS or really whatever ever it is that you want to describe it as and we can just literally copy this whole thing and paste it here so I’ll just call this uh create user and login and just have the same exact setup like this um let’s see yep everything else is good and then let’s just delete that because we’re our test is going to be different okay so the first thing that I want to do is I want to actually create the user so let me go ahead and do this it should create the user and keep in mind that we’re not going to be testing everything in one single test block we’re going to be doing everything in sequential order so first thing is we’re going to test that the user is created so it should create the user and we’re going to go ahead and make a request so let’s call the request function pass in our app instance and then we’re going to go ahead and call a post request this time and the endpoint is going to be/ API SLO SL user and let me just verify that route right over here yep router. poost API users or I’m sorry it’s I don’t know why off it’s API users with an S and then it’s going to go ahead and call this middle word function this is the express validator so this is where we can actually also make sure that the validation is working working as well uh we have create user Handler is called which is our request Handler and it’s going to basically run through all this logic so again in the previous section of this tutorial where we went over unit testing I showed you how to unit test this whole function this time we don’t have to worry about mocking anything it’s going to call this function and it’s going to run the actual logic it’s going to call the actual functions from Express validator it’s going to call our own hash password function it’s going to create the user and going to actually save it to the database using okay so let’s go ahead and go back to our test file oops sorry about that all right so we’re going to make a post request and let’s go ahead and send a request body so uh to send the request body you can use this send method like that whoops not sure why that is send yep and then you can pass in an object so so we need to send the username so for the username I’ll do Adam 123 password let’s do password and then display name just do Adam the developer okay so when we send this request it’s going to handle it on the server side we don’t obviously care about what’s going on on the server side with this because we’re trying to just care about what the response is okay so what I’m going to do is after this whole thing is done we also want to await this call because remember this do send method also returns a promise as well so let’s await that and now let’s write an assertion let’s do response. status code to be 2011 okay so let’s run our test so let’s do npm run test e2e so this should run all of our tests for us and you can see both tests pass and you can see in the cont conso that that’s I think that’s the salt from the hash password function that’s being logged if I am correct yep it’s the salt let me remove this console log but you can see that both tests are passing so that’s good and you can see that they don’t conflict with each other and one more thing that I also want to show you is if I open up my mongodb compass tool okay and if I were to actually let me see not this one but it shouldn’t be connecting yeah it should not connect to this Express tutorial database it should connect to the test database so you know what let me remove this line over here and show you what happens when I run the test okay so now watch this if I refresh the page or refresh this application uh what is this new version available let me click X you can see that now this Express tutorial test comes up and you can see that our collection our users collection is inside the express tutorial test database and so is our sessions okay so hopefully this makes sense but the reason why we didn’t see it before is because we dropped the database and the reason why we dropped the database is because we don’t want the test data from previous test Suites to conflict with other tests okay I’ll explain more about that later on because right now you might wonder okay well we do need the data with this user in the next test but yes that’s within the same test Suite in other test sues like in other scenarios you don’t want to have leftover data in the database conflicting with that scenario because you might have a scenario where you’re only expecting one user but there might be three users because you didn’t clear the database okay all of those tests that you ran kept creating a new user and because you didn’t drop the database the users kept adding on into the database collection and your assertions are going to fail so let’s go ahead and continue Contin so after we create the user let’s actually log in so what we’ll do is this I’m going to first manually drop my database let me just do that because it will error out if it creates a duplicate okay so we dropped the database good let’s go ahead and go back to our code so now we’ll do this it should log the user in and we’re going to make a request a post request this time to SL API SLO yep I think it’s just slpi SLO and then we’re going to send our whoops I don’t know why it keeps doing set encoding send username so the same username that we configured up top over here so Adam 123 and then the same password and then let’s go ahead and get the response in a variable okay so let’s just go back to our off I think I put that right over here yep so it should send back a status of 200 on success okay uh I think with passport let me just double check everything yep I think everything here is good so let’s continue so expect response status code to be 200 now let’s go ahead and run our test make sure that it passes okay so now it says uh let’s see now it failed and let’s see what’s going on over here it says received 500 so it seems like the backend uh there might be something wrong with the back end for it to send back a 500 so I’ll actually just console log the response body and see what that message says because it sent back a status code of 500 so that’s obviously not good let’s see okay so it says um maybe not response. body but maybe let’s just do response okay so it says right over here that unknown authentication strategy okay so I know what the problem is the problem is that it doesn’t recognize our local strategy and I think it’s likely because of the way that we moved everything into here so I’m trying to think what would be the easiest way to do this because if I were to actually remove this create app and then move everything back into the index file I would need to export the app and that would require me to import the index file which would also call this mongus doc connect code and I don’t want that to happen so the only other option is I would have to essentially move this to a separate file and then it would also call this app I listen which I don’t want so we don’t want to import this index file at all so I think the other thing that I might need to do is I might need to import this strategy into the create app probably maybe like right over here and I think maybe that might fix that so let’s try to run the test again and see if that same issue occurs okay so you can see that the error goes away now so it it seemed like this import did fix that I guess because we had it over here uh was what was causing the problem let me move this as well over over to here okay um I guess it has to be inside the scope since I guess this is where we are creating the app and we are initializing passport here so maybe that’s the reason why I’m not too sure but at least we fixed that part so now we can go back over here and let me remove this console log and let me just rerun the test we know that it’s passing though okay and you can even see in the console log from the actual source code right over here it is logging the user over here and if we go to where is the local strategy right here yep you can see that it should be logged I think yeah it’s being logged right over here inside the serialized user function and it says inside serialized user and it logs the user itself and then after successful authentication the endpoint right over here sends back a status code of 200 okay so we verified that we were able to successfully log in now additionally what you can do is you can write some more assertions on the response object they have this property called I think it’s headers yep headers and what you can do is you can check to see if the headers actually has the cookie that you expect because this response that headers object is actually just an object that has the cookies property so let me show you real quick what that looks like right over here yep you can see that we have this set cookie property which seems to be an array so I guess what you could do is you can look to see if the array contains this uh cookie name right over here so that’s one thing that you could do but I’ll let you all take care of that so now inside this second test we are trying to log the user in so now once we’ve logged the user in then we should have a session and we should be able to visit the o/ status endpoint and get a response back with our user record cuz that’s who we are logged in as so let’s go ahead and try that out so I’ll sa for the test it’s should visit API status and return logged in user let me just call this authenticate authenticated user and I want to show you what happens when we try to do this so we’re going to make a get request this time to / API o status and we’re going to assert that the status code returned is 200 and let’s see if this passes and you’ll notice now that it actually fails okay it gives gives us back a 41 and so I think the reason why this happens I don’t know the exact reason but I will tell you what I think because I ran into this issue myself so when we run our test they are running in order okay they are running this one first this one first and this one first but when we run this test right over here it doesn’t actually uh persist the cookies for the next request so for example we do receive cookies inside this inside this API call right over here okay we do have cookies inside this second test and those cookies are being sent from the server however in this third test when I when we try to make a get request to this protected endpoint we need to obviously send the cookies but in the context right over here we don’t have the cookies sent so I think because of that reason uh it is giving us back that 401 because it’s treating us as if we never logged in so the way around this is to actually implement this logic inside just one test so I’ll go into this second test over here and I’ll say for the for the title should log the user in and visit API status and return off user okay and so what we’ll do is after we call this send method I can actually use the then method and then I’ll get the response of the post request because remember I’m using the then method to resolve the promise for this request. post method and then that would resolve the value of whatever that post was going to return okay whatever the promise was going to resolve so inside this then I’m going to pass in a callback function which gives me access to that response for that post request to the API off endpoint so inside here what I can do is I can actually return request. apppp so I can make another request right after this post request is finished and I can make a get request and I’m going to paste that URL over here and then what I can do is I can also set the cookies so I can use this set function and then I want to set the cookie and then we need to just pass in this array of cookies which we can easily grab if we reference res. headers and I think the property was called set hyphen cookie I think or set cookies let me actually just double check real quick let me do this let me console lock this okay but then what will happen is we send the cookies along with this request and so this response so after we await this whole thing this response up top over here is the response respon for the actual get request okay so then right over here we can write assertions on the status code on the response body so let me go ahead and remove this third test because we won’t need that anymore and let me go ahead and run the test again and let’s see invalid value and defined um let’s see headers it may have been set cookie instead of set cookies maybe that’s why it’s giving us back undefined yep it’s set cookie okay yep that’s fine so let’s go ahead and change this to set cookie so this will pass all the cookies send it to the server and let’s go ahead and run the test again and now you can see that our tests pass and specifically this second test pass with all of our API calls and you can even see on the server side it goes through the serialized user function and then it goes through the Der serialize user function so this is invoked whenever we make a next request after we first log in okay so everything is working as expected and if I want I can write some more assertions on the response body so I can do response. body. username to be atom 123 for the display name let’s do that as well to be adam. developer and let’s run our tests and see what happens and you can see all of our tests pass so I hope that this shows you how to write integration tests as well as endtoend tests I hope that you better understand how to do it and how to set it up in a way that makes it effective and and this will be the last tutorial for the entire expressjs series I’m still going to make more expressjs tutorials it’s just not going to be part of this specific uh long series that I designed so I hope that you all enjoyed watching this series if you watch the whole entire thing like I said before the code will be on GitHub I’m going to leave a link in the description as well so you all can access it you’re more than welcome to ask questions Down Below in the comment section I check my comments every single day and I spond whenever I get a chance to if you need additional help visit the Discord server the link is in the description as well you can go onto the Discord server and get help with your programming issues uh talk to other developers um just you know just just hang out and whatever so yeah like I said I hope you all enjoyed this whole Express Chas tutorial and that is going to be it for this one so I will see you all in my next episode peace out

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • Mastering Excel: Data Management, Formulas, and Finance

    Mastering Excel: Data Management, Formulas, and Finance

    The provided text from “01.pdf” serves as a comprehensive guide to using Microsoft Excel efficiently. It begins by explaining various keyboard shortcuts and mouse actions for navigating within worksheets and workbooks, along with methods for data entry and cell editing. The text then covers essential formatting techniques, including adjusting cell dimensions, aligning content, and basic visual styling, emphasizing the difference between data and formatting. Furthermore, it introduces concepts of inserting and deleting rows, columns, and cells. The guide also explains number formatting options, allowing users to customize how numerical data is displayed. Conditional formatting is discussed as a way to visually highlight data based on specific criteria. The text details the “Go To Special” feature for advanced cell selection based on various attributes like blanks, constants, formulas, and more. It thoroughly explains “Paste Special” functionalities for selective data transfer, including formulas, values, formats, and operations. Finally, the document covers the “Find and Replace” tool and demonstrates using random data generation formulas and lookup functions like IFS, FILTER, and a basic INDEX/MATCH.

    Excel Fundamentals Study Guide

    Quiz

    1. Explain the concept of a cell reference in Excel and provide an example of a relative cell reference.
    2. What are the three fundamental types of data that can be entered into a cell in Excel?
    3. Describe the order of operations that Excel follows when evaluating a formula containing multiple operators.
    4. What is the purpose of the SUM function in Excel, and how would you use it to add a range of cells?
    5. Differentiate between using direct numbers and cell references within an Excel formula, and explain why using cell references is generally preferred.
    6. Explain the difference between the “Fill Series” options for “Linear” and “Growth” trends, providing a scenario where each would be useful.
    7. Describe how the “Text Join” function works and provide an example of how you might use it to combine text from multiple cells.
    8. What is the purpose of the LEFT, RIGHT, and MID functions in Excel, and how do their functionalities differ?
    9. Explain the function of the IF formula in Excel and describe its three main arguments.
    10. How does the RANK.EQ function in Excel determine the rank of a number within a list of numbers, and what is the significance of the “ref” argument?

    Answer Key for Quiz

    1. A cell reference is a pointer to a specific cell or range of cells in a worksheet. It allows formulas to refer to the values in those cells. A relative cell reference changes when the formula containing it is copied to another cell. For example, if cell G3 contains the formula =C3+D3+E3+F3, and this formula is copied to cell G4, it will automatically update to =C4+D4+E4+F4.
    2. The three fundamental types of data are numbers (numerical values used for calculations), text (alphanumeric characters, including words and labels), and formulas (equations that perform calculations on data).
    3. Excel follows the standard mathematical order of operations, often remembered by the acronym PEMDAS/BODMAS: Parentheses/Brackets, Exponents/Orders, Multiplication and Division (from left to right), and Addition and Subtraction (from left to right).
    4. The SUM function adds all the numbers in a range of cells. To use it to add cells A1 through A5, you would enter the formula =SUM(A1:A5) in the desired cell and press Enter.
    5. Using direct numbers in a formula means manually typing the values. Using cell references means pointing to cells containing the values. Cell references are preferred because if the data in the referenced cells changes, the formula result automatically updates. Using direct numbers requires manually editing the formula every time the underlying data changes.
    6. The “Linear” trend in “Fill Series” adds a constant step value to the previous value in the series, creating an arithmetic progression (e.g., 2, 4, 6, 8…). This is useful for creating sequences with a consistent difference. The “Growth” trend multiplies the previous value by a constant step value, creating a geometric progression (e.g., 2, 4, 8, 16…). This is useful for creating sequences with a consistent percentage increase or decrease.
    7. The “Text Join” function concatenates (joins) text strings from multiple ranges and/or strings with a specified delimiter between each text string. For example, =TEXTJOIN(“, “, TRUE, A1:C1) would join the text in cells A1, B1, and C1, separated by a comma and a space, ignoring any empty cells.
    8. The LEFT function extracts a specified number of characters from the beginning (left side) of a text string. The RIGHT function extracts a specified number of characters from the end (right side) of a text string. The MID function extracts a specified number of characters from a text string, starting at a specified position.
    9. The IF formula checks whether a condition is met, and returns one value if true and another value if false. Its three main arguments are: Logical_test (the condition to evaluate), Value_if_true (the value to return if the condition is true), and Value_if_false (the value to return if the condition is false).
    10. The RANK.EQ function returns the rank of a number within a list of numbers. The “ref” argument specifies the array or range of numbers to rank against. Excel compares the “number” argument to all the numbers in the “ref” range to determine its rank.

    Essay Format Questions

    1. Discuss the importance of using formulas and functions in Excel for data analysis and manipulation. Provide specific examples of how different types of formulas (e.g., mathematical, text, logical) can be applied to solve common data-related tasks.
    2. Explain the concept of cell referencing in detail, including the differences between relative, absolute, and mixed references. Illustrate with scenarios how each type of reference can be effectively used in creating and copying formulas.
    3. Describe the various “Fill Series” options available in Excel and analyze their utility in generating different types of data sequences. Discuss specific situations where the “Date” series options can streamline data entry and analysis.
    4. Compare and contrast the functionalities of several key text manipulation functions in Excel (e.g., LEFT, RIGHT, MID, TEXTJOIN, LEN, TRIM). Explain how these functions can be used individually and in combination to clean, format, and extract information from text data.
    5. Analyze the role of logical functions, particularly the IF, AND, and OR functions, in creating dynamic and decision-making spreadsheets. Provide detailed examples of how these functions can be nested and combined to handle complex conditions and automate outcomes based on data values.

    Glossary of Key Terms

    • Cell: The intersection of a row and a column in a worksheet, identified by a unique address (e.g., A1).
    • Cell Reference: A way to identify a specific cell or range of cells in a worksheet, used in formulas to refer to their values.
    • Relative Cell Reference: A cell reference that automatically adjusts when the formula containing it is copied to another cell.
    • Absolute Cell Reference: A cell reference that remains constant regardless of where the formula is copied, indicated by dollar signs before the column letter and row number (e.g., $A$1).
    • Mixed Cell Reference: A cell reference where either the column or the row is absolute, but not both (e.g., $A1 or A$1).
    • Formula: An expression that calculates the value to display in a cell. Formulas can contain numbers, operators, cell references, and functions.
    • Function: A predefined formula in Excel that performs specific calculations or operations on data.
    • Argument: A value or cell reference passed to a function, providing the data it needs to perform its calculation.
    • Operator: Symbols used in formulas to specify the type of calculation to perform (e.g., +, -, *, /).
    • Order of Operations: The sequence in which Excel performs calculations in a formula (PEMDAS/BODMAS).
    • Range: A contiguous group of two or more cells specified by the cell addresses of the top-left and bottom-right cells, separated by a colon (e.g., A1:B5).
    • Concatenate: To join two or more text strings together into a single string.
    • Delimiter: A character or sequence of characters used to separate data elements.
    • String: A sequence of characters, treated as text in Excel.
    • Logical Test: An expression in a formula that evaluates to either TRUE or FALSE.
    • Criteria: Specific conditions or rules used to filter or analyze data.
    • Array: A range of cells containing values that are used in a formula.
    • Rank: The position of a number within a sorted list of numbers.
    • Round Off: To approximate a number to a specified number of decimal places or to the nearest whole number.
    • Data Validation: A feature in Excel used to control the type of data or values that can be entered into a cell.
    • Filter: A way to display only the rows in a list that meet certain criteria, hiding the other rows.
    • Sort: To arrange data in a specific order, either alphabetically or numerically.

    Briefing Document: Analysis of Provided Sources

    This briefing document reviews the main themes and important ideas presented in the provided excerpts. The sources primarily focus on basic Microsoft Excel functionalities and formulas, explained in a conversational and tutorial-like manner.

    Source: “01.pdf”

    This source is a transcript of an Excel tutorial, covering fundamental operations and formulas. The main themes and important ideas are:

    1. Basic Formula Construction and Cell Referencing:

    • Summation using direct cell references: The tutorial begins by explaining how to calculate the total of marks across different subjects (Hindi, English, Maths, Science) for a student. It emphasizes using the “=” sign to start a formula and then adding individual cell references (e.g., =c3+d3+e3+f3).
    • “You know g3 = c3 + d3 + e3 + f3 ok”
    • Understanding cell relationships: The tutorial highlights the relative nature of cell references. As a formula is dragged down, the row numbers in the cell references automatically adjust (e.g., g3 referencing c3:f3 becomes g4 referencing c4:f4, and so on).
    • “so you understand one thing as this is your g4 this will be g5 this will be g6 this will be g7 in the same way this will also be c4 this will be c5 c6 will be c7, d4 will be d5, d6 will be d7, so it will keep increasing in this manner, okay, you have understood one thing, we are talking about cells here…”
    • Difference between cell references and direct numbers/text in formulas: The tutorial explains that cell references update when a formula is dragged, while direct numbers and text within a formula remain constant. Text must be enclosed in double quotes.
    • “Numbers: If you are writing a direct number, if you are writing a number then it is always fixed, it will never change and in the same way, if you are writing any text, it is always fixed. The second thing is that the number is written directly, the text is written inside the double ted comma, okay now these things are now.”
    • Summation using the SUM function: The tutorial introduces the SUM function as a more efficient way to add a range of cells. It emphasizes the syntax: =SUM(number1, number2, number3, …) or =SUM(range).
    • “If we say equals to sum then we will put equals to sum and tab and always remember one thing, never listen to any person in the formula, you always have to listen to the formula, you have to do what the formula is saying, what is the formula saying number one comma number two comma number three comma number four comma and so on it has come then we will do number one comma number two comma number three comma number four and turn off the parentheses and hit enter.”
    • Using ranges with the colon operator: The colon (:) is explained as a way to define a range of consecutive cells (e.g., c3:f3 means all cells from c3 to f3 inclusive).
    • “if I say now what does it mean, add a1 to a2, then plus th, then plus four, plus fv, I can also write it like this, from a1 to a5, when you have consecutive numbers, there is this colon in between. What does this colon say? What does this colon say? It says from to means this is a range…”
    • Quick Sum using Alt+=: The tutorial introduces a keyboard shortcut for quickly summing a contiguous range of numerical cells above or to the left.
    • “The easiest way is that wherever you want the sum, you go to the cell and keep a condition along with it that there should not be any gap in between and then After that, if you press Alt Equal Two together then the formula appears to be the same.”
    • Basic Formatting: Simple formatting adjustments like using the format painter and adjusting column widths are briefly mentioned.

    2. Filling Patterns with Series:

    • Linear Series (Addition/Subtraction): This section explains how to use the “Series” option (under the “Fill” dropdown in the “Home” tab) to create sequences with a constant step value (addition or subtraction). It demonstrates creating sequences like 2, 4, 6… and 100, 95, 90…
    • “Whenever you have to do plus or minus, if you keep it in linear, then you have to do plus or minus. You have to do plus. Well, how much plus has to be done. Step value means, how much has to be done, then you have to do two and when to stop, what answer should come, stop when you reach 100, stop where the last 100 comes, then stop .”
    • Growth Series (Multiplication/Division): This section explains how to create sequences with a constant multiplicative or divisive step value. Examples include 2, 4, 8, 16… and 100, 50, 25…
    • “Second, the one that comes to you, comes to you, growth and growth deals in what , deals in both of these, in multiply and divide… when you use growth, it will be 2 * 2, then it will be 4, but 4 * 2 will be 8, 8 * 2 will be 16, 16 * 2 will be 32, 32 2 * 2 will be 64, that is this.”
    • Date Series: This section details how to create sequences of dates, with options to increment by day, weekday (skipping weekends), month, or year, and with a specified step value.
    • “Within the date, I have already told you in number format but still let me tell you what does date date mean today? … one way can be that I keep increasing every day from today, one way can be, I can show month wise and one way can be, I can show year wise…”
    • Using the SEQUENCE function (briefly mentioned): The tutorial briefly introduces the SEQUENCE function as an alternative for generating number sequences, available in later versions of Excel. It advises against using it for now due to potential issues with references if rows/columns are deleted.

    3. Understanding Constants and Formulas:

    • Defining Constants and Formulas: This section clarifies the difference between entering a value directly into a cell (constant) and entering a formula that calculates a value (formula). The formula is visible in the formula bar, while the calculated value is displayed in the cell.
    • “side I wrote I give, this cell is mine and here I write 100 and on one side here is the cell of mine, I write the sum a1 a10 then the answer is this is my formula will be visible in the bar but the answer is mine what will be visible is 100 so here which is only value there is no formula so what has become constant and here the value is there but is this value constant is it just value no check the formula b what? There is some formula attached to it.”
    • Types of Constants and Formulas: The tutorial distinguishes between number constants, text constants, logical constants (TRUE/FALSE entered directly), and error constants (errors entered directly). Similarly, it discusses number formulas, text formulas, logical formulas (resulting in TRUE/FALSE), and error formulas (resulting in errors).
    • Using “Go To Special”: The “Go To Special” feature (Ctrl+G, then “Special…”) is introduced as a way to select cells based on their content type (constants or formulas) and subtype (numbers, text, logicals, errors, blanks). This allows for targeted actions like formatting or editing specific types of cells.

    4. Filtering Data:

    • Introduction to Filtering: The tutorial briefly introduces filtering as a crucial Excel feature for analyzing data by showing only rows that meet specific criteria. It highlights its importance for reporting and understanding data.
    • “Filtering is very important. Filter and Sorting is one of the most important topics of Excel. The best feature is the single which helps us in many things, which also helps us in a lot of reporting, it helps us a lot in understanding something after seeing it, especially with the data…”
    • Conceptual Explanation of a Filter: A simple analogy of a water filter is used to explain that filtering removes unwanted elements (impurities) to show the desired outcome.

    Important Quotes Highlighting Key Concepts:

    • (On relative cell references): “so it will keep increasing in this manner, okay, you have understood one thing, we are talking about cells here…”
    • (On the SUM function): “always remember one thing, never listen to any person in the formula, you always have to listen to the formula, you have to do what the formula is saying…”
    • (On the colon operator for ranges): “What does this colon say? It says from to means this is a range…”
    • (On the difference between constants and formulas): “here which is only value there is no formula so what has become constant and here the value is there but is this value constant is it just value no check the formula b what? There is some formula attached to it.”
    • (On the purpose of filtering): “The best feature is the single which helps us in many things, which also helps us in a lot of reporting, it helps us a lot in understanding something after seeing it, especially with the data…”

    Overall, “01.pdf” provides a beginner-friendly introduction to essential Excel concepts, focusing on formula creation, cell referencing, efficient summation techniques, generating sequences, understanding data types within cells, and the basic concept of filtering. The explanations are conversational and emphasize practical application.

    The analysis of the remaining sources will follow in a similar structured manner to provide a comprehensive briefing document. Please provide the text from the subsequent files (“02.pdf”, “03.pdf”, etc.) for a complete analysis.

    Excel Basics & Formulas FAQ

    1. What are cells in Excel, and how do they relate to formulas?

    Cells in Excel are the individual rectangular boxes where you enter data. Each cell is identified by a column letter and a row number (e.g., A1, B3). Formulas in Excel are expressions that perform calculations on the data in these cells. When you write a formula, you often refer to cell addresses to use the values contained within those cells in your calculations. For example, =C3+D3+E3+F3 in cell G3 adds the values in cells C3, D3, E3, and F3, and the result is displayed in G3.

    2. What are the three basic components of an Excel formula, and how do they behave when dragging the formula to other cells?

    The three basic components of an Excel formula are: * Cell references: These refer to specific cells (e.g., A1, $B$2, C$3). When a formula with relative cell references (like C3) is dragged, the cell references automatically adjust relative to the new row or column. Absolute references (like $C$3) remain fixed regardless of where the formula is dragged. Mixed references (like C$3 or $C3) have one part fixed and the other relative. * Numbers: These are constant numerical values entered directly into the formula (e.g., 90, 27). Numbers remain constant and do not change when the formula is dragged. * Text: These are constant text values entered directly into the formula and must be enclosed in double quotes (e.g., “Pass”). Text also remains constant when the formula is dragged.

    Dragging a formula applies the same underlying calculation to adjacent cells, automatically adjusting relative cell references based on the new position, while keeping numbers and text constants.

    3. What is the SUM function in Excel, and what are the different ways to use it to add numbers?

    The SUM function in Excel is used to add numbers together. You can use it in several ways: * Adding individual cells: You can list individual cells separated by commas, like =SUM(C3, D3, E3, F3). * Adding a range of cells: For consecutive cells, you can specify a range using a colon, like =SUM(C3:F3). This adds all the numbers in the range from C3 to F3 (inclusive). * Adding non-adjacent cells and ranges: You can combine individual cells and ranges, like =SUM(A1:A5, C3, F1:F10).

    A quick way to use the SUM function for a contiguous range is to select the cell where you want the total and press Alt + =. Excel will often automatically detect the adjacent range of numbers and insert the SUM formula.

    4. How can you fill a series of numbers or dates automatically in Excel using the “Fill Series” option?

    The “Fill Series” option in Excel allows you to automatically populate a range of cells with a sequence of numbers, dates, or text based on a defined pattern. To use it: 1. Enter the starting value in a cell. 2. Select the cell (or a range of cells establishing a pattern). 3. Go to the Home tab, in the Editing group, click on Fill, and then select Series. 4. In the Series dialog box: * Choose whether you want the series to fill in Rows or Columns. * Select the Type of series: * Linear: For sequences with a constant increment (e.g., 2, 4, 6…). Set the Step value. * Growth: For sequences with a constant multiplier (e.g., 2, 4, 8…). Set the Step value. * Date: For date sequences. Choose the Date unit (Day, Weekday, Month, Year) and set the Step value. Weekday will skip Saturdays and Sundays. * Autofill: Extends existing patterns. * In the Step value box, enter the increment or multiplier. For dates, it’s the number of days, weeks, months, or years to add. Use a negative value to decrement. * In the Stop value box (optional), enter the value at which the series should end. 5. Click OK.

    You can also often drag the fill handle (the small square at the bottom-right of a selected cell) to automatically fill a series based on an initial value or pattern.

    5. What is the difference between “Constants” and “Formulas” when using “Go To Special” in Excel?

    The “Go To Special” feature in Excel allows you to select cells based on specific characteristics. When you choose either “Constants” or “Formulas,” you are selecting cells based on how their values are derived: * Constants: This option selects cells that contain values entered directly into them. These values can be numbers, text, logical values (TRUE/FALSE), or errors that were directly typed in (not resulting from a formula). If you further refine the selection within “Constants” by checking specific data types (Numbers, Text, Logicals, Errors), only constants of those types will be selected. For example, selecting “Constants” and then only “Numbers” will select all cells containing manually entered numbers, including dates (as Excel stores dates as numbers). * Formulas: This option selects cells that contain formulas. Similar to “Constants,” you can further refine the selection by checking the “Numbers,” “Text,” “Logicals,” or “Errors” checkboxes. This will select formulas that result in those specific types of output. For instance, selecting “Formulas” and then “Numbers” will select all cells containing formulas that calculate and display numerical results.

    The key difference is whether the value in the cell is the result of a calculation (Formula) or directly input by the user (Constant).

    6. How do relative, absolute, and mixed cell references work in Excel formulas, and when would you use each type?

    Cell references in Excel tell formulas which cells to use in calculations. There are three types: * Relative References (e.g., A1): By default, cell references are relative. When you copy or drag a formula containing relative references to another cell, the row and column parts of the references automatically adjust relative to the new position. Use relative references when you want the formula to apply to a range of similar data, and the referenced cells should change accordingly for each row or column. * Absolute References (e.g., $A$1): An absolute reference is specified by adding a dollar sign ($) before both the column letter and the row number. When a formula with an absolute reference is copied or dragged, the cell reference remains unchanged. Use absolute references when you want a formula to always refer to a specific cell, regardless of where the formula is copied. This is useful for referencing constants, tax rates, or other fixed values. * Mixed References (e.g., $A1 or A$1): A mixed reference has either the row or the column part absolute and the other part relative. $A1 keeps the column fixed but allows the row to change when the formula is copied down. A$1 keeps the row fixed but allows the column to change when the formula is copied across. Use mixed references when you want either the row or the column reference to remain constant while the other adjusts. For example, when calculating percentages of a total where the total is in a single row but you want to apply the formula to multiple rows of individual values.

    To quickly toggle between relative, absolute, and mixed references for a selected cell reference in the formula bar, you can press the F4 key.

    7. What are some common text functions in Excel, such as LEFT, RIGHT, MID, LEN, TRIM, LOWER, UPPER, and PROPER, and how are they used?

    Excel provides several functions for manipulating text strings: * LEFT(text, num_chars): Extracts a specified number of characters from the beginning (left side) of a text string. * RIGHT(text, num_chars): Extracts a specified number of characters from the end (right side) of a text string. * MID(text, start_num, num_chars): Extracts a specified number of characters from the middle of a text string, starting at a given position. * LEN(text): Returns the number of characters in a text string. * TRIM(text): Removes extra spaces from a text string, including leading, trailing, and multiple spaces between words. It leaves a single space between words. * LOWER(text): Converts all uppercase letters in a text string to lowercase. * UPPER(text): Converts all lowercase letters in a text string to uppercase. * PROPER(text): Capitalizes the first letter of each word in a text string and converts all other letters to lowercase (also known as sentence case or title case). * TEXTJOIN(delimiter, ignore_empty, text1, [text2], …): Joins two or more text strings into one text string with a specified delimiter between each text string. ignore_empty is a TRUE/FALSE value to specify whether to ignore empty cells.

    These functions are used to clean, format, extract, and combine text data within your spreadsheets.

    8. Explain the IF, AND, and OR logical functions in Excel, and provide examples of their use.

    Logical functions in Excel allow you to perform conditional tests and return different values depending on whether the conditions are true or false: * IF(logical_test, value_if_true, value_if_false): Checks if a condition (logical_test) is TRUE or FALSE. If it’s TRUE, it returns value_if_true; otherwise, it returns value_if_false. * Example: =IF(B2>45, “Pass”, “Fail”) in cell C2 checks if the value in B2 is greater than 45. If it is, “Pass” is displayed; otherwise, “Fail” is displayed. * Example with empty cell check: =IF(A2=””, “Pending”, “Payment Done”) checks if cell A2 is empty. If it is, “Pending” is displayed; otherwise, “Payment Done” is displayed. * AND(logical1, [logical2], …): Returns TRUE if all of its arguments are TRUE; otherwise, it returns FALSE. * Example: =AND(B2>5, C2>4) checks if both the value in B2 is greater than 5 AND the value in C2 is greater than 4. It returns TRUE only if both conditions are met. This can be used within an IF function: =IF(AND(B2>5, C2>4), “Bonus Eligible”, “Not Eligible”). * OR(logical1, [logical2], …): Returns TRUE if any of its arguments are TRUE; it returns FALSE only if all of its arguments are FALSE. * Example: =OR(B2>5, C2>4) checks if either the value in B2 is greater than 5 OR the value in C2 is greater than 4. It returns TRUE if at least one of the conditions is met. This can also be used within an IF function: =IF(OR(B2>5, C2>4), “Meets Criteria”, “Does Not Meet Criteria”).

    These logical functions are fundamental for creating dynamic and decision-making spreadsheets.

    Excel Navigation Keyboard Shortcuts

    Based on the sources, there are several keyboard shortcuts for page navigation within Excel.

    • To move to another sheet within the same workbook, you can use the following shortcuts:
    • Control Page Down: This will move you one sheet to the right (or downwards in the sheet list).
    • Control Page Up: This will move you one sheet to the left (or upwards in the sheet list).
    • To move between different workbooks that are open, you can use the following shortcut:
    • Control Tab: This will jump from one open workbook to the next. You can repeatedly press Tab while holding Control to cycle through the open workbooks.

    Additionally, you can use the mouse to navigate between sheets by clicking on the sheet tabs at the bottom of the Excel window. You can also go to another workbook by clicking on it if it’s visible, or by selecting it from the Window menu (which can be accessed without clicking, though the exact keyboard shortcut for this menu is not specified in the sources).

    For fast movement within a single sheet (not between sheets), the sources mention:

    • Page Up: To quickly scroll upwards.
    • Page Down: To quickly scroll downwards.

    These shortcuts help you navigate large datasets within a single worksheet.

    The name box can also be used to jump to a specific cell within a sheet by typing the cell address (e.g., A1, Z100) and pressing Enter. While not directly page navigation, it’s a method for quick movement to a specific location within a potentially long sheet.

    The sources emphasize using these shortcuts for efficient work within Excel, especially for repetitive tasks.

    Managing Multiple Excel Workbooks

    Based on the sources and our conversation history, here’s a discussion on workbook movement in Excel.

    Our previous conversation established that you can move between different open workbooks using the keyboard shortcut Control Tab [our conversation history]. This allows you to cycle through all the Excel workbooks you currently have open.

    The new source provides further context related to working with multiple workbooks:

    • You can open new workbooks by going to the “File” tab, then “New”, and selecting “Blank workbook” or choosing from various templates. Templates offer pre-designed layouts for different tasks, saving you from starting from scratch.
    • You can also open existing workbooks by going to “File” and then “Open”. This will allow you to browse your file system to select the workbook you want to open. Alternatively, you can use the search functionality within Excel to find and open workbooks.
    • The source also mentions the concept of a “workbook” as the entire file you are working in. When you save your work, you are saving the entire workbook. Multiple worksheets can exist within a single workbook.
    • Interestingly, the source details how you can move or copy entire sheets between different workbooks. To do this:
    • Right-click on the sheet tab you want to move or copy.
    • Select “Move or Copy…” from the context menu.
    • In the “Move or Copy” dialog box, under “To book:”, you can choose a currently open workbook or select “(new book)” to create a new workbook for the sheet.
    • If you want to create a copy and keep the original sheet in the current workbook, make sure to check the “Create a copy” box. Otherwise, the sheet will be moved to the destination workbook.
    • The “View” tab in Excel also offers options for managing multiple workbook windows:
    • “New Window” allows you to open another window displaying the same active workbook. This can be useful for viewing different parts of a large workbook simultaneously.
    • “Arrange All” lets you tile or cascade all open workbook windows on your screen. You can choose from options like “Tiled”, “Horizontal”, “Vertical”, or “Cascade” to arrange them in a way that suits your workflow.
    • “View Side by Side” helps you compare two workbooks (or two windows of the same workbook) next to each other.
    • “Switch Windows” provides a dropdown list of all open workbooks, allowing you to easily select and switch to the desired one.

    These features, along with the Control Tab shortcut, provide comprehensive ways to navigate and manage multiple workbooks in Excel. You can open new and existing workbooks, move content (sheets) between them, and arrange their windows for efficient multitasking.

    Excel Cell Data Entry Methods and Techniques

    Based on the sources, there are several methods for entering data into cells in Excel. These methods cater to different user preferences and situations:

    • Direct Cell Entry: The most straightforward method is to simply select a cell and begin typing. Once you have entered your data, you can press Enter to move to the cell below or press Tab to move to the cell to the right. This is the initial way to input new information into a blank cell.
    • In-Cell Editing (Double-Click): If you need to modify existing data within a cell, you can double-click inside the cell. This action places the cursor directly within the cell’s content, allowing you to make changes at the desired position.
    • Formula Bar Editing: Another way to edit cell content is by using the formula bar located above the worksheet. When you select a cell, its content is displayed in the formula bar. You can then click in the formula bar and edit the data directly. This can be particularly useful when the cell contains a long formula or a significant amount of text that might be easier to view and edit in the expanded space of the formula bar. Pressing Enter after editing in the formula bar will save the changes to the selected cell.
    • Using the F2 Key: A keyboard shortcut for entering edit mode in a cell is by selecting the cell and pressing the F2 key. This action places the cursor at the end of the cell’s content, ready for modification. The source also notes that on some laptops, like HP models, you might need to press the Function (Fn) key along with F2 to achieve the same result.

    Beyond basic entry, the source also touches upon efficient data entry techniques:

    • Fill Handle for Series: For entering sequential data like numbers or dates, you can use the fill handle. After entering the initial value (or a pattern of values) in a cell, a small square appears at the bottom-right corner of the selected cell. You can click and drag this fill handle down or across adjacent cells. For numbers, if you only enter ‘1’ and drag, it will copy the ‘1’. To create a series (1, 2, 3…), you need to either enter the first few values to establish a pattern or click on the drop-down arrow that appears after dragging and select “Fill Series“.
    • Auto Update Settings: The source briefly mentions a setting in Excel that can automatically extend data ranges and formats based on patterns. This setting can be found under File > Options > Advanced. Turning this setting on allows Excel to automatically recognize patterns and apply them when you enter new data adjacent to existing data. Turning it off will prevent this automatic updating.

    These methods provide flexibility for entering and modifying data in Excel cells, whether you are starting fresh or editing existing content. The choice of method often depends on personal preference and the specific task at hand.

    Excel Data Entry Shortcuts: Efficiency Tips

    Based on the sources, there are several useful shortcuts to enhance data entry efficiency in Excel.

    • Moving Between Cells After Entry:
    • Pressing Enter after entering data in a cell will automatically move the cursor to the cell directly below. This is useful for entering lists of data in a column.
    • Pressing Tab after entering data will move the cursor to the cell immediately to the right. This is helpful when entering data across rows.
    • Editing Existing Cell Content: When you need to modify data that is already in a cell, you can use the following shortcuts to enter edit mode:
    • Double-clicking directly inside the cell will place the cursor within the cell’s content, allowing you to make changes.
    • Alternatively, you can select the cell and then make your edits in the formula bar located above the worksheet.
    • Selecting a cell and pressing the F2 key will also put you into edit mode, with the cursor typically positioned at the end of the cell’s content. On some HP laptops, you might need to press Fn + F2 to achieve this.
    • Filling Data in Adjacent Cells: Excel offers shortcuts for quickly populating adjacent cells with similar or sequential data:
    • The fill handle, the small square at the bottom-right of a selected cell, can be clicked and dragged to copy the cell’s content or extend a series into neighboring cells. For a numerical series, you might need to establish a pattern (e.g., by entering ‘1’ and ‘2’ in consecutive cells and then dragging) or use the “Fill Series” option from the AutoFill Options menu that appears after dragging.
    • To quickly fill down the content and formatting of the cell directly above the currently selected cell(s), use the shortcut Control D.
    • Similarly, to fill right the content and formatting of the cell immediately to the left of the selected cell(s), use Control R.
    • Entering Multiple Lines in a Cell: If you need to enter text on multiple lines within a single Excel cell, you can use the shortcut Alt Enter to insert a line break at your desired point.

    These data entry shortcuts can significantly speed up your work in Excel by reducing the need to constantly use the mouse for navigation and repetitive actions. Understanding and utilizing these shortcuts can lead to a more efficient data entry process.

    Excel Basic Formatting Guide

    Based on the sources, basic formatting in Excel involves modifying the appearance of your data to make it more readable, understandable, and presentable. It encompasses various aspects, from the fundamental structure of workbooks and worksheets to the visual styling of cells and their contents.

    Workbook vs. Worksheet

    Before discussing formatting, it’s important to understand the distinction between a workbook and a worksheet. A workbook is the entire Excel file you save. Think of it like a notebook. Inside this workbook, you can have multiple worksheets, which are like the individual pages in a notebook where you do your work. Your manager might ask for a specific worksheet (a single page with certain data) or the entire workbook (the whole file containing all your work). You can add more worksheets by clicking on the plus (+) sign.

    Saving Your Work

    To preserve your formatting and data, you need to save your work. Excel provides two primary options: Save and Save As.

    • Save As is used when you save a file for the first time. It prompts you to choose the file name, location on your computer, and the file format (e.g., Excel Workbook, PDF).
    • Save is used for subsequent saves after the initial “Save As”. It saves the changes to the same file name and location without prompting you again.
    • The shortcut key for both Save and Save As (after the initial save) is Control S. If you press Control S on a file that hasn’t been saved before, it will act like “Save As”.

    Basic Formatting Steps

    The process of basic formatting typically involves these steps:

    1. Selecting Data: Before applying any formatting, you need to select the cell(s) or range of cells you want to modify. You can select the entire current region of data by clicking anywhere within it and pressing Control A.
    2. Adjusting Cell Dimensions: You can adjust the width of columns and the height of rows to better display your data.
    • You can double-click the right border of a column header to automatically adjust the column width to fit the widest content.
    • Keyboard shortcuts for adjusting column width include Alt H O I and Alt O C A.
    • To adjust the row height automatically, you can use the shortcut Alt H O A.
    1. Understanding Data vs. Formatting: In Excel, there’s a distinction between the raw data you enter and the formatting you apply to it to make it presentable. Formatting includes things like colors, borders, font styles, and alignment.

    Common Formatting Options

    The “Home” tab in Excel contains the primary tools for basic formatting.

    • Alignment: You can change the horizontal alignment of text within a cell (left, center, right) and the vertical alignment (top, middle, bottom). Left alignment generally looks natural for text, while center alignment can be suitable for headings.
    • Font: You can modify the appearance of text by applying styles like bold (Control B), italics (Control I), and underline (Control U). You can also change the font type (e.g., Calibri, Arial) and font size. Additionally, you can change the color of the font.
    • Cell Styles (Fill Color): You can change the background color of cells using the “Fill Color” option (the paint bucket icon). This can help to visually highlight specific data.
    • Borders: You can add borders around cells or ranges of cells to define them visually.
    • You can apply all borders (thin lines around each cell).
    • You can apply a thick outside border to emphasize the edges of a selected range.
    • The “Borders” dropdown offers various border styles.
    • To access more border options, you can go to “More Borders…”.
    • To remove borders, you can select the range and choose “No Border” from the borders dropdown.
    • Shortcut Keys for Formatting: Excel offers several shortcut keys for common formatting actions:
    • Accessing the “Home” tab functions starts with pressing Alt H. After pressing Alt H, letters will appear over the various groups and commands within the “Home” tab.
    • For All Borders: Alt H B A.
    • For Thick Outside Border: Alt H B T.
    • For More Borders: Alt H B M (likely based on the pattern).
    • For No Border: Alt H B N (likely based on the pattern).
    • Bold: Control B.
    • Italic: Control I.
    • Underline: Control U (source says Control Ya – likely a typo and should be Control U).
    • Merge & Center: To combine multiple adjacent cells into a single larger cell and center the content within it, you can use the Merge & Center option in the “Alignment” group of the “Home” tab. Select the cells you want to merge and then click “Merge & Center”.
    • Turning Off Gridlines: The faint lines that appear around cells (gridlines) can be turned off for a cleaner visual presentation by going to the “View” tab and unchecking the “Gridlines” option in the “Show” group.

    Number Formatting

    Excel allows you to display numbers in various formats. You can access these options in the “Number” group of the “Home” tab.

    • General: The default format.
    • Number: Displays numbers with decimal places.
    • Currency: Adds a currency symbol (e.g., $) and decimal places.
    • Accounting: Similar to currency, but aligns the currency symbol and decimal points in a specific way.
    • Percentage: Multiplies the value by 100 and adds a percent (%) sign.
    • Comma Style: Adds a thousand separator (comma).
    • Increase/Decrease Decimal: Allows you to control the number of decimal places displayed.

    You can also access more number format options by clicking the arrow in the bottom-right corner of the “Number” group. This opens the “Format Cells” dialog box, where you have more granular control over number formatting, including date, time, fractions, scientific notation, text, and custom formats. The Text format can be useful for displaying numbers with more than 15 digits, as Excel might otherwise convert them to scientific notation or round them.

    Date Formatting

    Excel recognizes and formats dates in various ways. You can choose from predefined short date and long date formats in the “Number” group or access more options in the “Format Cells” dialog box. Custom date formatting allows you to specify the exact way you want dates to be displayed using codes like d (day), m (month), and y (year).

    Conditional Formatting

    Conditional formatting allows you to automatically apply formatting to cells based on specific rules or conditions. This is found in the “Conditional Formatting” group on the “Home” tab.

    • Highlight Cell Rules: Allows you to format cells based on criteria like greater than, less than, between, equal to, text that contains, a date occurring, or duplicate values.
    • Top/Bottom Rules: Allows you to format cells based on their ranking, such as the top 10 items, bottom 10%, above average, or below average.
    • Data Bars: Fills cells with colored bars that represent the value in relation to other cells in the selected range.
    • Color Scales: Applies a gradient of colors to cells based on their values.
    • Icon Sets: Adds icons to cells that visually represent their values relative to other values.

    You can clear conditional formatting from selected cells or the entire sheet. You can also manage conditional formatting rules to edit, delete, or reorder them.

    Table and Cell Styles

    Excel also offers predefined Table Styles and Cell Styles that apply a consistent set of formatting to tables and individual cells, respectively. These can be found in the “Styles” group on the “Home” tab and provide a quick way to format your data with a professional look.

    In summary, basic formatting in Excel is crucial for organizing and presenting your data effectively. By understanding and utilizing the various tools and shortcuts available, you can create clear and professional-looking spreadsheets.

    ZERO to HERO in Excel! 📈 Full Step-by-Step Course with AI

    The Original Text

    Hey, have you brought a resume? There is neither AI nor chat, GPT. There is no need to bring a resume like this. The formula does not solve it. Everyone says drink tea, drink tea, the problem will be solved. Drinking tea does not solve the problem. Got my sister married. Did 99 workshops. Did thousands of interviews. Neither did I get a job nor did Excel come. So what happened ? What happened? What happened? Forget it. Now let’s talk a little about the real thing. Single compress features and The formulas range from basic to advanced and now there is a twist of AI in it, so in this video I have covered all the important features and formulas which are important for you if you want to survive in the corporate world. Here we have created such creative dashboards. If we talk about data, we have worked on huge data here, so whether you are a beginner or advanced, we have covered all these things here. What else will be the benefit? If you complete this video, then you get free certification and access to it. You can get data for practice on our app. Yes, you will also get the data which I have used in this video and apart from that, you will get extra data. You can check it under the free content inside our app. Mam, how to know what all I have covered in the video, for that you can check the description where pay time. If stumps are given, then you can go there and jump to your topic in a single click. So, if you want to do live training with us, that too on many accounting software’s, data analytics and finance, then you can join us. You will get all the information in the description, so check it quickly, like it, comment and don’t forget to subscribe because a lot of courses are coming, be it Excel. Pabi I have SQL, SAP, Telemark busy, so many courses, don’t wait too long, let’s start this video right here, let’s get started, now stop wasting, watch it, let’s start from the very beginning. If you want to read about Excel, then first of all you have to open Excel, then go to your search engine and type excel from here, after that you can open it from here, it will hardly take 5 seconds and your Excel will be open with you. There may be different versions, the version we are using here is 2021, it will take a little time and will open, see that it has opened and here we will maximize it so that the entire screen is visible to you, now it is possible that if you are opening it for the first time, then all these files will not be visible to you, whatever options you are seeing, all these will not be visible to you and if you are already working. Your files will be visible here, after that you can see Home New Open here , we will read about them later, here you can see that there is a blank workbook in which we work and apart from this, many templates are also made, here you will get more templates, so basically what are templates, see, it is simple, when suppose you are doing some work from scratch, then you will go to the blank workbook, but what are templates? Let me explain with an example, suppose you have 10 pictures and now you have to make a video of them. So what do you do? You go to some app, put those 10 pictures and choose a template and put it. There are many effects inside that template, there are a lot of stickers, there are a lot of text, there are a lot of frames, it automatically gets applied on your pictures and a video is prepared for you very quickly. So that which is ready in a second, what is it, that is your template, so in the same way, if you do not want to do any work from scratch, then here you have many templates available, you can use these templates, all you have to do inside it is your data, you can save it in it, you can do whatever you have to work in it, like this is a bill page checklist, you have to do some work in it, you open it and do the work inside it. You have to do something else, this is some weekly attendance report. If you want to work in it, you can do it in it. It has already created many templates in this way, if you want, you can use them. Here you also get to know how Ekal works, like Get Started with the formula, the formula is explained in detail, Power Query, Pivot Table, Pie Chart, if you want to see then you can see these also. Above you have it saying that suggested search, if you want to do any search, search from here, if there is any template related to it, then it will appear in front of you, here you get lots of templates, okay, let’s go, now we will read further, because we are studying from scratch, so what will we take, we will take a blank workbook because we have to learn to create all the things ourselves, so what you are seeing right now is Excel as is. You open Excel, you get this type of interface. Now the first thing we are going to do is to do an interface overview. What are we going to do? So let’s do that. To do that, I have found a way to do that, just because you have understood everything, so I have already taken a screenshot of this entire screen. From that screenshot, now I will be able to draw, I will be able to explain each and every feature to you very well, so I did one, now as soon as I move it down a little bit. And let’s zoom it from here so that it becomes easier for you to understand and from here we take the draw, see if there is a different feature visible on the top or any feature is visible somewhere else, then you do not need to worry, these features can be added to you too, how will it happen, we will add it now, okay, after that, now we start reading, you will see the Excel logo at the top most, this will let you know that you have opened Excel, after that You have the option of auto save, for now it is off, you can also keep it on so that the work you are doing gets saved automatically. In any case, you were doing some work, you were working on a big data and suddenly the light went off, your system is not charging and it is switched off, then in such a case, even if all your data is lost, it will continue to be saved. You can save it from here , at any place like let’s say this is the option you are seeing. Let’s say Quick Access Tool Bar, what is Quick Access Tool Bar ? There is an option of Redo and Undo, so you can do it directly here only. If you want to keep something else here, then you click on it. Whatever you want to keep here, you can keep it here, like Touch Touch Mouse Mode, Sort Ascending Descending, Spelling Check, Quick Point of Email, Open key, New key, whatever option you want to keep, you can keep it here. I find these options to be the most useful like there is an option to save or undo and so on. There is an option of Redo, I find these the most useful, so I have kept them here, you think something else, don’t do anything, see where my cursor is going, click on this dot drop down and add any option from here, OK, now let’s move forward, when you open Excel for the first time, then by default the name that comes here is Book One, so this is your file name, this is the name of your file, basically this is the current name of your file. The name given is Book One. Can we change it? Yes, of course we can. Is it mandatory to do so now? It is not at all mandatory. You can change it even when you are saving it. You can give whatever name you want to give. Yes, of course you can give it as per your wish to save it. You can do it by default. What comes is Book One, Book Two, Book Three. Now I open another file just because three files are already open, so by default that is it. What name will come, book four will come, you can change the name if you want, you can do it, after that you get this search engine inside which you can search, earlier if there is any file created, if anything is created, then you can search it here, after that look above, you will see all the same options, because we have taken the same screenshot of this, so that you can understand easily, here you can see my picture here. It is coming and here you will write ‘TS’, see, ‘ Not for now’ it is writing ‘Coming’, the picture is visible. Otherwise, the initials of your name are also visible here, so here I can tell you that this is just because I have logged in, this is my licensed version, so your picture will be visible here or the initials of your name will be visible. These three things will help you to minimize and maximize. You can save your screen by using this cross. You can also close it directly. After closing it, as soon as you cross it, it asks you whether to save it or not. It’s totally up to you. If you want to save it, you can do it. Look, these are the options here. Okay, I was talking about these options. Let’s go here right now, we are not going to get any other option in the left most left. That’s it. There were options which we have explored. Now let’s move towards this side a little bit. See, always remember this thing, whether it is single or any software, it is full of features and Excel has a lot of features but do we have to learn all the features. Do we have all the features visible on the screen here? So the answer is no. Okay, we do limited things which are useful to us, we do those things. Now as you can see, here I use a different color like you can see here. It is File Home New Tab Insert Draw Page Layout Formula Data Review View Help Acro, you may not have some options in the middle like it is not a new tab, whether it is a draw or not , then this is the one of Acrobat, it is okay, we can add it, I will tell you how to add it later, but what do we call these, what do we call these, what do we call tabs, what do we call tabs, file tab is home tab, new tab is insert tab, draw tab is page layout. If there are tabs, then these are your tabs. Now you will see a color difference. Here you are seeing a color difference, which is charcoal yellow and sorry, charcoal gray and this one above is black, right, meaning there is a box inside this black, what do we call this box, what do we call this box, what do we call ribbon, what do we call this ribbon, what is ribbon, so basically there is a tab at the top, there is a box below the tab, inside which all the features are given now about it. We will read in what is that box called ribbon, that is, there are things given inside the ribbon, okay after that you can see that there is Clipboard, then there is a line, there is Alignment, there is font, then there is a line, there are numbers, then there is a line, there is style, then there is a line, look, the same thing is there in other tabs too, there is insert, then there is tables, then there is a line, there is illustration, then there is a line, there is charts, then there is a line, there is spark line, then there is a line. What is this basically that you are seeing, what is this, so let us read it, these are our groups, if I talk about what is alignment, what is font, what is clipboard, what is number, what is style, what is cell, what is all this, what are your groups, what are groups, basically if suppose I have to do some work related to font, then the whole Excel has been put in this group, then inside it you will get all the options scattered like this. No, if it is in a very organized way, then this is your group, this is a group of fonts and inside the group, like this is visible to you for the font, this is the BiU border color and all these things which are there in the paint, so these are what are inside and what are the features, these are the features but the group that has been formed which means within which these features are, each one that is visible written below is your group. If I talk about insert, then the table is a group. Illustration is a group, Chart is a group, Spark line is a group, Filter is a group, but if I talk about page layout, then theme is a group, page setup is a group, scale to fit is a group, sheet option is a group, arrange is a group, so in this way it is a group and all the things that come inside it are its features. Got it, no one understands anything, there is no doubt anywhere, please let me know in the comment section, this is the whole thing . The session is going to be quite long, so there may be n number of doubts in it, so you keep writing down the entire doubt, wherever it is, you can tell it in one go, you can tell it separately, no issue, but you must tell it so that it can be replied to and you can get clarity about it. Okay, so you keep writing the note down and after that you will tell it because you are going to read it completely, right, so let’s go a little more. Let’s move ahead. After moving ahead, we leave these two options. This or 28 and this is visible. We will understand later. Now we will go down. What we see is this sheet one. So we call it sheet. What do we call sheet and with this plus sign, we can insert more. Add, insert is the same thing, we can insert. Now suppose I have created many sheets here, I want one more sheet, I come to this sheet, once the last sheet is here, I did plus, then look, another sheet has been created, I have this sheet inside it, it is by the name of sheet 14, it is fine, I have to delete it, I right clicked on it, I have deleted it, I come to the first sheet, look, by following these three dots, these three dots will appear in your sheet only when this one of yours. The portion will be filled on the screen. This portion will be filled only when there is nothing to do further. Otherwise, the option to do further will not appear. Okay, from here you can increase more sheets. After this, the options that you see are these options. Here on one side there is this and on the other side there is this, both of them do the same work, do the work of movement, do the work of which one do the work of movement and The movement it is doing is basically the one which is taking you left to right, left to right and the one above is taking you up and down. What is it taking you up and down? Okay and what are these two called scroll bars? What are scroll bars called? Okay, we call them scroll bars because it is helping us in scrolling. Now I am also showing this to you by zooming. If I am telling you, what I am doing is going left and right here and there like this again and again. If I want to go up and down then I use this, so these are our scroll bars, after that the options you will see are these three types of views. Okay, there are three types of views, so what do they mean? Look at what they do. Understand that, which is the first view. I take it for a second, which is the first view, what is the first view, what is your first view called? The first view is called normal view because it is the normal screen and you will see it in normal view, so what will we call it? Normal view which is the second view and is your page layout view. Well, if you go near it, it will automatically tell you the name. Like, if I moved the cursor here, this name came automatically. What is page layout? What is page layout? What does page layout do? Suppose you have to check this because you have created the data and then after that. Obviously, if you take a print out of it, then you have to know that later on, if I take a print out of it, then my data is not getting cut in the print. If I do this, in any case, if you want to check this thing, then you can do it like I suppose, now I click on the page layout, then it is showing me that if at today’s time I go to print it, then my data will be cut in this manner. You can see in different pages, it will be cut in this manner, so now. I can adjust my data accordingly and on clicking on the normal view, the normal work that we do is good, after this comes the page break view preview, so you can also see directly how the page break is happening, so it is showing me the page, in this way, this line is visible, this will become one page, this will become the second page and the rest will go in the third page. These four pages of yours are being created because you have written below also, in this way. This gives us the view, for now we have taken this normal view, so from here you understand the three types of views. Okay, after that see what is the option you are seeing here. I take it for once. Yes, after that what is this option you are seeing? Just give me a minute, look, this is what you have, to zoom in and zoom out, you zoom in and zoom out to zoom in and zoom out. From here, look at the zoom of your screen. If it is zoomed then it is at 175. Now if we zoom in then it will reduce. If we have to do more then it will become more. So if you want to zoom in and zoom out then you can do it directly from here. So here you have learned most of the things about the interface. Now let us move a little further that inside the interface you will see this in the middle. Just because when we started Excel, it was looking like this, so here they are coming in the form of boxes. So, what do these boxes mean? What are these boxes, what are they called, why are they called, why are they there, now we are going to understand the meaning of all these. Okay, now you have understood what we are going to understand, as much as you have understood is enough, now we are going to read about these boxes, so let’s just give me a minute, we have come here, look, you know that we are going to read about pay boxes here and the boxes that you had read till now, in what way were they coming, a line was coming like this. One line was coming like this and then one line was going like this And one line was going in this way and after that it was coming in the middle as a box, it is coming in the same way, look at the side, see this, a line is coming from here, a line is coming from here, a line is going from here, and a line is going from here, by doing this this box is getting formatted and what do we call this box, I am talking about it, so what do we call this box, we call this box, okay, what is this? Let’s say cell, let’s say OK, I understood that all the boxes in our Excel, we call them cells, so from now on, whenever I say something, I will not say box, I will say, is this work to be done in this cell, is this work to be done in this cell, okay, let’s go next. We see that you are looking at the top A B CD, so I can say that this line is a, this line is b and you are seeing numbers written on the side. So I can do one thing, I can write this as one, I can write this as two, so that means this cell is made up of a and b and one and two, so what do we call a and b, what do we call a and b a column, what do we call a column, this is a, not a b, from now on we will not say that a is b or b is a line or c is a line, there is a column, we call a column, so from now on, what will we call a, column a, what will be the meaning of column, then this a As far as this is, the entire line of b means the entire line of b means the entire column of c means the entire column of c. The entire column of n. The entire column of What is completely there is called row, we do not call it line, we call it row. Okay, so now I can say that look, to make a cell, I need columns and if I need rows, then I can say what is needed to make a cell, column is needed, row is needed in plus. What are your columns? What are your alphabets, which you can see on the top and what are your daily lives, they are numbers. Okay, together with them, your cell is formed. Now suppose we will understand which cell is which cell? They understand that suppose I am on this cell, look, now not only the grid lines are off, that means the lines themselves are off, the cells are still being formed, so let’s do one thing. I ask here, here I explain to you how we understand the cell. Now this is a cell. You look above, the color of all the others is of the same type, one has become a little darker, that means this is the income column, this is the eye column, also look here, which one is this 90, so this 90, so what does it mean? This cell is made up of what is it made up of? Aa is made up of columns and 90 rows. Because now you have not understood that a cell is made up of what? It is made up of a column and a row. So what is this cell made up of? I is a column and a row is 990 so what is its name? The name of the cell itself is called aa 90 and look here i 90 that is why we call this box the name box. If you go to this , this is our name box, that’s why we call it name box because it tells us the name of the cell, so that’s your name box. Okay, why is the name box telling us because it is telling us the name of the cell? How will the name of the cell come? Now we will find the name of the cell. Look, we have come to this cell, quickly tell me which cell is this. Look, what is this cell? Look, what is darker from here is j and from here 67 That means j column consisting of 67 rows. This cell has been created and what is the name of the cell j 67 So here is your g67 Suppose I have to do the same thing here now so tell me what is its name its name is q So we will see our column from here 66 Your cry So what is the name of this cell q6 66 So you can see here it is coming by writing q66 Got it understood one or two more let’s see here Suppose I clicked here So what is the darkness here Look at the dark color here What is darker is v and from here darker is 65 that means v column 65th row and what is the name of our cell become v65 ok this is how we do our interface this is how we name our cell this is your name box now you have learned three to four things what have you learned look at all the alphabets written here all the alphabets written what are your columns and see all the numbers you have seen here You can see the numbers here , you can see the numbers, I am just telling you this, okay, these are your daily occurrences, okay, and here, this is a box which is made, we call it a cell, now you have Learned Name Box. Now suppose you write something inside a cell. Now I am telling you to write inside the cell and after that I am explaining the difference in it. This cell is yours and inside it you start writing anything, so if I am writing anything then it is visible above here. So, whatever you write inside a cell is written here also, that is why it is said that if suppose it comes outside the cell and I have to make some changes in it, then to make the changes, if I If I directly change from here and write the taan here then see it has taken the taan here also. If I have written the taan here then it has taken the taan here too. If you have not written anything in this cell then look above it is empty. If it has been written in this cell then see your writing has come in it. You have written something in some cell. Look and it is being written here and the other way around. If this cell is empty then this cell is empty. So in this way, whatever you write inside any cell is written here also. This is why we call it the formula bar. Later , when you will put the formula and write it inside the cell, you can edit it by looking here instead of looking inside the cell. So this is your formula bar where your formula will be shown because the value is shown inside the cell, so this is the formula bar. Gradually, I will explain it better. I will explain it better where we will learn to do data entry. Now I will be able to explain it well. I zoom it out and make you revise the whole thing for once. As you saw, you get exactly the initiative cross, after that you get this file, home new tab and all these, what are yours, these are your tabs, if I go to home, then if I ask you, clipboard, font, alignment , number, what are all these, these are your groups, inside the groups, what are all these available to you, these are your features available, this is yours, this is your name box, this is your formula bar. Your A B C D E F G H What are all these, your columns, all the numbers you have written, these are your days, all these things are made below, this is your sheet, with Plus, you can create more sheets from these, with which we go left, right or up and down, what are these called scroll bars, what are your views, the first one is the normal view, the second one is your page layout view and the third one is page break view and from here you can see it. If you can zoom, here we have completed our interface. Now let us read about our next topic, which is workbook and worksheet. Now we will understand workbook and worksheet, what is workbook, what is worksheet, let’s understand with an example. Okay, Raju is a student. Raju is a student. Okay, and he goes to school, he goes to school, he has four He studies subjects basically Hindi, English, Maths and Science. Okay, he studies four subjects. So now you tell me that if he makes a joint notebook of all four subjects in which he writes the homework of all and does all the work inside it, then will it be okay? Can he do all the work in one notebook? Tell me, can he do all the work in one notebook? The answer is no. He cannot do all this work in one notebook. What will he do? That Means will make one notebook for one subject, that means there are four subjects, so there it will make four notebooks for each subject, inside each notebook it will do its work, Hindi inside this, English inside this, Maths inside this and Science inside this, oh ok, in the same way Raju makes each notebook for each of his work, That Means makes a separate notebook for each of his different subjects, in the same way, when we work, we are different. They create files, what did they create, notebooks, what did they create, notebooks for their different works, but what do we create to do different works, what will we create, we will create notebooks, we are not studying in school right now, we will create workbooks, basically, inside Excel, when you create different files, we call them workbooks, you have seen so many of these things files here in the file tab, these are different files, right, that means these are my different workbooks, that is why. Here it is written Recover Unsaved Workbook More Workbook What is the meaning of workbook this blank workbook is ok so what is the meaning of workbook this is this file this is this file and there suppose now Raju has to work Raju has to work now let’s take another example he is making a Hindi notebook he is making a Hindi notebook and there are 10 chapters inside it how many chapters are there in 10 chapters okay so what will he do what will he do one Will take only one page and will write 10 chapters inside it. Isn’t it possible? And anyway, if a page ends at the top line, you still go to the next page because I have to start chapter two from a separate page, chapter three has to be started from a separate page, chapter four has to be started from a separate page, so we call it that we make separate pages, that is yours, what is called here. Now as if I have to explain it to you, I only know the basics of Excel but here I have created an interface for you in the first sheet, I have created a workbook for you in the second sheet, I have saved the file for you in the third sheet. In this way, whatever topic I will be teaching you, I have created it here so that it becomes easy for me, so in the same way, the pages in the notebooks are pre-defined. What does pre-defined mean that the notebook you buy? It depends on whether you have bought 200 pages, whether you have bought 300 pages or bought 500 pages. This happens in the sheets. You can insert as many sheets as you want here. You just keep clicking on the plus plus sign and you will get that many sheets. We here, the pages are already available, they are already given, we do not already have the sheets. If we have to do any other work, do a plus and create another sheet, so here are our pages, basically the pages inside the file where we will work, that is your worksheet, so now you understand, workbook is the whole file, workbook is the whole file, and inside the workbook there is a worksheet, inside the workbook there are worksheets, so now if your manager is telling you that Tarun, I have taken a random name like this, Taran, you send your worksheet. If you give, then you do not have to send the entire file, you have to send the sheet where the particular work has been done, they want the sheet and if they say send the entire file, that means if you have done let’s say five-seven tasks in it, then they have to see all the work of yours, so that is the main difference of workbook and worksheet, its use will be that now you will understand when there is a conversation, there is a conversation about Excel, now you know. What is workbook and what is worksheet and this example was just taken from me so that you can relate it to it. Now your topic has been completed here. If we talk about the interface, we have covered the maximum things, we have completed the interface. Now I am going to teach you the next thing. See the save file. When you work, it is obvious that you would like to save that work. Suppose my This is the file on which I am explaining different things to you. Obviously, I would like to provide you this file, so to provide this file, I have to save it, so we save it by going to the file here. After going to the file, you get the option of Save and Save As. So now let’s understand it a little bit. What is Save S and what is Save. Let me just zoom it on my screen first, so I have this here. I have zoomed in and here I have taken the pen, see there is an option save as and add a save. Save as means in which way do you want to save it. When you save for the first time, it gives you the option of save as, that is, it asks you at the initial level, in which way do you want to save it, do you want to save it in Excel file or want to save it in some other form, where do you want to save it, where in your laptop. Do you want to save it, under what name do you want to save it, he asks all these things at the initial level. Now suppose we will take today’s date, that is, today you have saved it on any date, now tomorrow you will open that file again, if you work beyond that, then you will not have to give it name and location again and again, you have done it on the first day, after that you have to save what you say in the subsequent subsequent times, now after that for the first time. After this, every time you save, you will save the same thing. If you have to change something, then you will do the save as again. You will go and save in the other wise. The shortcut key for both of them is Control A. If you are pressing Control A, then if it is a file for the first time, then automatic save as will come and if that file is already created, then it will automatically get saved. By saving this, you will get the idea that OK, fine now, save as. There is no option, it means that this file is already running and already saved. Okay, so in this way we would have two options. The first one is save as, the other one is save. For the first time, when you save, the save as comes. By pressing control s, we are able to save it. Now I have to press control s, control s, then this pass option comes. If suppose I do not press control s, then what kind of option would I have, it comes in this way. If I do save as, then basically I have to browse here. I have to tell me where I can save it. If you want to find a place in your laptop where you can save it, then you take the option of browse, you click on it, here you can check any location, where do I have to do it, I have to do it in my volume D, I have to do it in Accounts Expert and from here in Advanced Excel course, going to Sheets, what we are doing right now is that we are doing the basics of Excel, inside this we have to save it here and that too in what name to save it Part One Over Part One Interface Overview I want to search by its name, so I saved it here. If suppose you want to change any format, then here you get many formats, you can save it in that format, you can even save it in PDF, you can save it in CSA, you can do it in whatever you want, but now in which we will do it, we will do it in Excel workbook, so we clicked on it and here we saved it. After saving, now we have saved it, right? Now suppose I cross it out, I have crossed it out, okay, we have crossed it out, now we go to that folder of ours, go to the new volume D, go to Accounts Expert, go to Classes, sorry, no classes, this is your file youtube0, you click on it and it will open and you will get all the work that was yours as it is. Okay, now whenever I have to do some more work, I will not save it. Now suppose I write something else here that this is how we Save the files, then I write something else here, here I write what is the shortcut key or what is this, I write this is the shortcut key, I have written this, now suppose I want to write the shortcut key in my new file because earlier I had not saved it, now I have not saved it, I pressed control S, then see this is what happened back then, now I cross it out and after that go back to the folder and open it by double clicking from here. After opening, see this is automatic in my Now suppose I have written the shortcut key here, let me tell you here, suppose I have written the shortcut key , okay now I am not saving it directly, I am crossing it out and why am I asking this again because it is saying that you have not made any changes in it, have you made any changes in the previously saved one, now do you want to save it or not, now if I want to do it, I will have to tell him. Save because I was going to cross directly, if I wanted to do control s, then it would have been saved as it is. Now after this, whatever I keep doing any work, that is why if you are working in a big data, then you can do control less again and again so that it keeps getting saved. Okay, so here we learned how we save our file. Let us move a little further. How can we do movement inside Excel. What is movement, let’s say this. This is my cell and after that I have to go left, I have to go right, so whenever we learn anything here, where we have to learn shortcut keys and other things too, we will always work in two expectations. What are those two expectations going to be? The first expectation will be yours. Here, if we have to do any thing directly with the mouse, then how can we do it? The next one is the keyboard that I am telling you how to do anything with the keyboard. When we talk about the keyboard, then obviously our short tricks come to us that how can we use the short tricks and make it work directly. There are many such short tricks for many things, but I will tell you the main things, which if you think, this is my repetitive work, remember its shortcut keys, there is no need to remember them all, because if you remember so many, you will get loaded. End After that, you will not be able to remember everything, you cannot even remember everything, it is not practically possible to remember everything, that is why whatever repetitive work you do, those things are your shortcut keys. You can remember all that in that, so see, now we are going to start now the shortcut keys that we will do or the things that we will do that we will learn about what are we learning about the movement means to move here and there in Excel, so how can we go, if I talk about moving here and there in this cell, then wherever you click with the mouse, you can go there, second thing, if I want to go to other sheets, I can go to other sheets by clicking anywhere. The third thing is, if I want to go to another workbook, then suppose I open another workbook and this is I have opened one workbook and I have opened another workbook, this is one workbook, so in such a situation, if I want to go to another workbook, then I go here, I do not click, it will come automatically. In this way, I can go to each one, so it was like going with the mouse, but if it comes to the keyboard, then what do you have in the keyboard, first of all, your The only thing you need to go anywhere are your arrows. What are the arrows? What do you get in the arrows? You get to go to the right side, you get to go to the left side, you get to go up, you get to go down. You can go in any direction here through the arrows. Look, I am moving through the arrows, okay, this is what we are moving through the arrows, I understand, okay after that. The thing that you get, the arrows are also for now, what do you do later, as soon as you start working, you start practicing, your work starts increasing, then there you have more keys also, if I talk about going to the right side, where to go to the right side, then you can go to the right side, you can go to the right side by pressing tab, by pressing what, by pressing tab, now my cursor is near D, which means it is in the cell, now we are pressing tab, so we are going to the right side, if I have to go to the left side right there. If we have to go down then I will tell you what to do. For now we will understand what we will do if we have to go down and after that if we have to go up then what will we do. Basically when we have to go down then we press enter, then see it is taking us down by entering, then press enter. See, you have learned about right side and learned about down. As soon as we start doing its opposite, meaning the opposite of right is left and opposite of down is up, then our keys remain the same. Tab is just put shift in front of them then it will come shift shift tab and it comes shift enter what comes shift enter ok now suppose I want to go right side then obviously I will press tab ok now I want to go left side then I will hold shift and go while pressing tab then it will come here automatically. If suppose I want to go down then I will keep pressing enter and if I want to go up then I will keep holding shift and If I keep pressing enter, it will go up, so this was your move from one place to another cell within the sheet, then you can use it in this way. Now it comes to the point that suppose I have to go from one sheet to another. See, no matter when we read, in which direction do we read? In which direction do we move? In this direction means in the direction from left to right, we go right, so whatever we will read now. You read it in the same way, if you have to do movement inside the sheet, if you have to do movement inside the sheet, that means you have to go left to right, if you want to go left to right, that means you want to go in the forward direction, then what will you press: Control Page Up, Page Up, Page Up, Sorry, Page Down, that means you are going downwards, no, you are going downwards, so what will you press here, Control Page Down, down and right there, you are coming right to left, that means going upward. Well, it starts from here, I am going towards this side, so I am going page down. The beginning is here, so I have to go upwards. Basically, I have to go here. From left right, I am moving towards left left. So what we will do here is control the page up. Okay, this was the point when in the sheet, if I have to move within the workbook, that means I have to move from one workbook to another. If I want to move from one workbook to another workbook, then I press the control tab and automatically jump from one workbook to another. What did I do? You hold the control tab control, it is okay and go while pressing the tab, then you see, I have gone to another sheet also, so it is fine here like this. I understood that if anyone does not understand anything, then I keep saying this again and again that you You can tell in the comment section, I will reply to it directly and whatever doubts you have, keep writing along with them. Either keep telling together or make a note together. Lastly, you can tell it in the comment section. So here we have learned our movement. This is what I am doing with the scroll bar with the mouse. If you want to go up, which one can you go? Either you can use the arrows or you can press shift and enter. You can go up by Shift Enter, you will go down by Enter, you will go down by Shift, Tab, you will go left, Tab, you will go right. Okay, from Control Page Up, you will go to the interface overview workbook, from Down, you will come back here, so this is the way you work. Now suppose you have a very big data and you have to scroll down and go down, then it will take a lot of time to scroll down, so in such a situation, if we page up, then of course you will reach the top, just page up and page down. If we do this, then we can do fast movement down below. For fast movement, within the sheet, you can use page up and page down, so I write here. If you want to do fast movement within the sheet, you have to do fast movement with in the sheet, just because you are going to get this sheet, that is why I am giving you everything hand written, so that whenever you open it later and see, if you do not get everything, then write it for fast movement. So what have we done, when we have to go up, what do we use? Page Up, just press Page Up, OK, don’t press anything else, and if we have to go down, what do we press, Page Down, let’s go for a second, okay, till now we have done all the keys for our movement. Now what we are going to do next is to do data entry. So far, we have learned all the things, that is, how to move, what is anything, what can we say, now the work that has to be done has to be started. So now we will start our data entry shortcuts. Initially we will learn the shortcuts that how to write things inside a cell. Now see the data entry shortcuts that we are learning. Suppose you go to a cell and you obviously have to enter data. So either you go to the cell and start writing anything directly. Like I wrote my name, I started writing directly and pressed enter and what comes from enter comes down, so this came down if I was in the cell. And after writing, if you press tab, it goes to the right, hence these keys are used. Okay, you were here, you started writing anything directly, you wrote it. Now I understood that oh my God, what did I have to do, I had to make T of Tanu bigger and S of Single, now I have to make some changes inside it, so understand how the entry inside the cell is done. Now if I have to enter inside the cell, then either I will double tap, in which position I go. Here I am, I want t, I went here and double tapped, then my cursor came here, after that I put control t here, which means A from here, I will write it in capital, okay fine, one way was this, the other way, what is this, the second way is that suppose now I had to do it in small, I have written it wrong. The second way is, I can go to the formula bar and fix things directly, whatever I want to do, that is why the formula bar is there because of the cell. The same thing is written there, you press enter, then this is yours, okay, the third method and I will tell you because if you do not want to double tap, you do not need the help of mouse, if you want to go directly, then you can go inside the cell directly, you go inside your cell. Now suppose I had to do it in capital only, then you press the function f2 or press f2 directly, then your cursor will come at the very last, now you wanted a single or from the side arrow. You come to the side and make it S and you come to the side with the side arrow and you make it T and after that you enter, then your name will appear in this way, so what are the ways you have to enter any cell, basically what we were talking about here was about entering the cell, how to enter the cell, how to enter the cell, so if I talk with the mouse, then you can enter directly, there is no problem. If I talk about the keyboard, then what all you got in the keyboard, you can do it directly with the mouse and also for the formula bar, you will need a mouse, so I do the formula bar in the keyboard, you can either go to it and double tap or double tap and your cursor is there. It has gone inside or you can press f2 or in some laptops like HP laptops, this thing is also seen that you have to press f2 with the function, then go and enter f, then you will get a key on the side of the control, press f2 with the function, you will go inside that cell, in this way we enter inside the cell, in this way we write our data, now we will enter the complete data in actual. Now we will learn that if we have to write inside a cell, then how to write that also. Now let us move towards our entry. See, now what we are going to do is we are going to do data entry and for data entry, first of all we went to the first cell. Now whatever I want to write, I can start writing directly just because there is nothing inside that cell. So now I wrote the serial number. After that I wrote the party name. After that I came to the side and after that what I wrote here is cells. For now, we are directly creating a small data, so we have created a very small data, after that I wrote one here, here in the party, sorry, party name, I have given the name of some party, I have written my name, after that I come here, I have written any amount here, after that I will write two here and here I will write any other name. Now see how tiring it will be. I write any amount here. It is so tiring that again and again I have to be serialized. If you have to write numbers then what will you do to avoid having to write serial numbers like this again and again, then delete the second one, first write whatever you have written there and then look inside it, look here, now your cursor is like this plus and as soon as you go to it, another plus is formed. A small square is visible, so as soon as you go to it, click on it, hold it and just drag it down, so for now, what it did is it copied it. The same data which is written above has been written below because we had written one, so one has been written, so now click on this drop down on this box and choose fill series from here and after that it will fill the series and give you it, so you could drag as much as you wanted, you could drag it directly. Now if you want, you can write all the names here, you can write any name here, okay, you will keep writing any name and whatever is your data will be created here, I will quickly do something else. I write the name here, you can take the help of your shortcut keys, movement and all these and can use them only. Okay, so we did this and we will write some more names here like and here we write some amounts. Okay, so here you have created your data. Okay, in this way you write your data. Whatever you write in it, inside your sheet, in this way we enter our data. If you want to edit something, then you can double tap that cell. You can go in or you can go with f2 or you can correct it with the formula bar, so this was the way of entering your data, the way you have done it now, let us move ahead towards our selection, see how the selection is done, for this I have already taken a data, here now let me tell you a little bit why I am doing the selection, what is the need, what are you going to read, selection means that suppose you select something or something. If you want to apply for Pay then you will have to select it first. Let’s understand from an example. Suppose you are using your phone, okay, you are using your phone, you are using your phone, okay inside the phone, you will go to WhatsApp2 inbox and go there and paste it and whatever you had to copy there and after pasting it there, you will send it. Correct, you do the same thing, if suppose you are directly forwarding a message, there will be a forward arrow like this. If you are using this too, then this is also selected first, then you understand that no matter what the software is, when will you be able to apply any work, when will you be able to select that work first, the thing you select and the thing you apply will be applied only on the thing which has been selected, the message you select is forwarded, the same message is forwarded, the rest do not get done, to do the rest, you will have to select the rest as well, so here what is We are going to learn that selection, we are going to learn that when we work inside the data, we should know the selection , how can we do the selection, so look at the first expectation, so like I always tell that we study in two aspects, the first one is mouse and the other one is Keyboard, you can select the whole thing with the mouse. In this way, you click once and then hold it, do not leave it and take the selection till the selection you want to make. What can you do apart from this, apart from this you can learn with the help of the keyboard. Now with the help of the keyboard, the thing we are going to learn is the first thing we are going to learn, we will learn complete selection. What will we learn complete selection? Suppose, let me give you my data. If I want to select the data up to where the complete data is written, then I press Control A because I have made complete selection means all data selection, all data selection now all starts with All starts with A, so we have put Control A. Okay, now let’s do this selection, first of all we selected it and then came here and selected it. Click anywhere in the cell. Okay, press Control A there till the data is written. Selection will be done, OK, you click anywhere, after that you will use control A, then as far as the data is written, selection will be done, that is done, if we want to do complete selection, then how can we do it, after that comes single click selection, you can write this, these are some terms, we create them to understand ourselves, it is not that things will work on the basis of these terms, so what will we do now, single click selection, but there is one thing in it, you will be able to go till that point. Selection has to be done as far as the data is written. I give here as far as the data is written. The data is there or is there. Okay, so if you have to make a selection till then, what do you have to do? You have to hold the control shift and then use the arrow. Now the usage of the arrows is up to you whether you have to go up, go to the right, go to the left. It’s all up to you, so right now the data you have, suppose I tell you that you are on the reference number and you have to go till 10. If you want to select up to 15, then if you press control A then the entire data will be selected, but we do not have to select the entire data. We are here and we have to select up to 15, so we will hold the control shift, after that press the down arrow, then the entire selection will be done. In this way, we have to select till the data is written. Suppose I am on this entry and till this data is written . If I want to make a selection, then if I press control A, then the entire data will be selected. I hold the control shift and after that press the right side arrow, it will come till the data is written, suppose I write any values ​​here also, write anything here, dozen matter, we have written this here, okay, after that I come here to five, hold the control shift and press the side arrow, so as far as the data is written, the selection is done, understand. Hey everyone, I hope you all have understood, but if you don’t understand, if you have any doubt for a second, then you can ask me in the comment section. So here we have understood that how we can select a single cell with a single click, how we can select till the data is written. Now comes the third thing. The third thing comes to you is that suppose you have to select a single cell, that means you have selected the entire cell in one go, right? If you want to select a single cell, then till now you were doing it by holding both control and shift. Now you have to hold only shift and then use arrows. Okay, then use arrows. So let’s do this and see what I am telling you. Look at the reference number. Suppose you are on the reference number and you have to select up to 10. Now if you assume that if you hold control and shift, the entire data will be selected, then this is also not required. After that, if you assume that you are on the reference number. If you go and use control shift down arrow then selection will be done up to 15. If you don’t want this then what will you do. Don’t even touch the control. You have to hold the shift and just tap it tap tap tap tap tap. You keep doing it. Down arrow will come to you and you will select one cell. What did you do by selecting one cell each? Okay, it is all up to you as to how you want to make the selection, so it was your selection that if you want to select a single cell. So you press shift and after that all your selection will be done. So the thing you learned here was that whenever we have to do any work in the data, how do we do the selection? You must remember that if you want to select the complete data, then control A will be used single. If you want to click selection then these controls will be used shift and arrows and single cell selection sorry in single click selection and if there is single self selection then we will use arrows by holding shift. Now let’s do our basic formatting just because we have data entry. Selection has come so let’s understand a few more things. Now let me explain to you. For adjustment adjustment, let ‘s take another sheet for once. We are on the selection, after the selection, we tapped and after that see rename it here. If the sheets do not have a name then we will not be able to do so, so we will right click and rename it. What will we do with the adjustment? So let’s move on to the next thing that we will learn. We will learn what to do with adjustment. Now let’s see what adjustment is to be done. Suppose I write my name here Tanu Singhal. Now you see what I have done here. The name is written, it is written in b2, but the name I can see is also visible inside c2. You are able to see, I can see it inside this cell too, so have I written something inside this cell c2 also? Look inside b2, Tanu Singer has been written. Nothing is written inside c2. Your formula bar can tell you this, so what is happening here, what is happening here is that all the cells of ours have a particular width. If you You write some data inside it which is bigger and we will have to do its width adjustment ourselves. Now its width will remain the same but now we can adjust it. Now how is the adjustment done. You pay attention to my cursor. For now, which way is the plus? This is the plus of this way. As soon as you know where you have to make the adjustment, where is the extra coming inside C? Is it coming inside C, right? If the space between B and C increases then your work will be done. You will go to the middle of C and see your plus has changed. You are seeing that your plus is changing. Correct, your cursor is changing. Cursor is changing. What does it mean? Now you can make a selection. You click on it, hold it and just drag it as much as you want to drag. You can do this much, you have to do this much, you have to do this much, you have to do this much or you have to do this much, it is your choice, I have dragged this much, so look at your cell. The width must have been increased. It is in between these two that you will have to select the complete column. You can do it in this way. Similarly, if you have to increase the height also, as you are going to this, your plus is getting changed. You can do it like this. Okay, you can do it in this way, but I was just telling you about the width, but what happens is that if we assume that I have done this with the mouse, we will not do everything with the mouse, we will also learn from the keyboard. For now, for the time being, you can do this directly with the mouse, but the thing is that right now Tanu single could have come in so many cells but I have done so much by dragging, so look, it is possible that I could have done this much by dragging by mistake or it would have remained like this again and again, doing it like this, like this, this looks right, this looks right, this seems right, doing this can be very tiring, so what would you do in such a situation, suppose you have selected the cell like this. So you will go between B and C, this plus has come, right, after this plus comes, you do not have to hold anything, do nothing, just double tap, this will automatically adjust it. Yes, yes, if suppose your cell was like this, it was not like this, nor was yours, you go between B and C, go here, just double tap it, so it has corrected it here, so this is the way you make this adjustment, so I have explained to you in a single cell, here in which way you have done it. You have made an adjustment by double tapping. Let’s take a data from here. Just give me a minute. Control A did control C did. I went to the cell with my adjustment and did the control here and after that we saw this data. Now look at this data, you are able to see this party name. This party name has been reduced because what I have brought is to keep the width of everyone’s cell correct. Now in the process of keeping the width of everyone’s cell equal, the rest of the things are not coming properly. Now what will we do? We will fix it, but first of all, let us tell you about what we learned from the mouse. What we learned from the mouse. From the mouse, we learned that either you take the cursor there, hold and drag, learned this one method, learned the second method, take the cursor there and just double tap it, we learned these two methods. Now we will come to the keyboard related things, that if we have to fix something from the keyboard, that is, with the help of shortcut keys, then see how to do it. So here

    you have it, if you want, you can go here and fix it one by one, but do you have to do it like this, is it a very time consuming process, you don’t know how much to fix, how much to do, if not, then what will we do, we will use shortcut keys, we have to use it on the whole, it is not so, if we have to fix one thing, then how do we select the entire data in one go, you click anywhere and use Control A, if you press Control A, then you have pressed Control A. After this, you have to use shortcut keys which is Alt AO I, then by pressing Alt AO I, it automatically got whatever width it should have had. Now suppose your data was in this manner, at some places its length would also have been going on. In this manner, the data would have been there. Now you have learned how to correct the width. You have selected the data. You have selected the data, by pressing Alt AO A, its length will also be corrected. Correct, this length will also be correct, so you have two. Just learned the thing from me here, if I have to correct the width, there are two keys to correct the width, if I want to correct the width, then there is Alt H O, Alt H O I and one more is Alt O C A, this will work in some people, OK, what is it for height or what will be Alt AO A for length, so basically this is the difference between I and A. Last, the rest is the same, now you do not remember the keys, now you just listen to the keys. How to remember, I will teach you the whole memory technique so that you will say oh my God, it was so easy and I was so nervous, okay so don’t memorize the keys right now, you just learned the adjustment, the main adjustment was that we will double tap from here and adjust things, okay now we have entered the data, made the selection, made the adjustment, now we will move into our basic formatting that when we enter the data. If we do this, the data is created. What we are going to do is do our basic formatting, but before doing this, we should know a little theory. Whenever we talk about Excel at the initial level, we talk about two things, one is data and one is formatting. Now what is data, what is formatting, let us understand a little bit what is the meaning of data. Look at what you will be working on, that is, if you are working in Excel, then what is Excel for? You can do calculations, you can present it in a good way, you can make reports from it, you can make dashboards from it, then you can take decisions for yourself from it, you can take decisions for your business, so basically whatever work we do, we do it on data, but data means when you have seen the data, you have seen the data even in the past, there are many things like this inside that data, there are colors, there are borders, your figures may be different, their size may be different. Basically, when you present it, you do it in a slightly different way, don’t do it like this, see what I have written above, this is the entire data written, you will see the data in this way, what will you see in it, what will you not understand, you will not be able to understand, right, you will not understand in this, why will it not come because it is given in this format because only data is written here, there is no formatting done, if I speak in these lemon language. Decorating is basically when you decorate your data, you make it presentable. I have presented my data in such a way that now the person in front can understand it, that is your formatting. So the thing we had learned till now was that data entry was just taking a data and going into the cell and entering it, but now we have learned to make that data beautiful and also to make it presentable, now we have learned it inside it. You are going to learn to make a presentation. Like see, in this also I will make you remember many shortcut keys. Cut keys will be remembered by you. Trust. Now I will make you remember all the shortcut keys. It is clear that we will use only what we have learned till now. Now initially we know that we have to correct something or apply something, so first of all we have to select it and if we have to do this within the entire data, then what do we have to press to select the entire data? Just tell. I will have to click anywhere and press control e. We will have to press control e. By doing this, our entire data will be selected because whatever work we have to do, we have to do it on the entire page. Now we have to fix its width because you can see that some are bigger and some are smaller, so to fix the width we can press Alt OCA. Otherwise, if you press Alt AO, it will also be done. Now it looks a little better to me. Does it look worth seeing? Does it look worth seeing or not? It looks absolutely fine. Now let us correct our data. The first thing we have to correct inside the data is to correct the alignment. Now we will carefully see that all the text written here is written on the right side of the cell. Look, this is also written on the right side, this is also right. They are written on the side and only there you will notice the text, all of them are written on the left side, so suppose I select the entire data and look at the options here, either I do everything on the right side, it will look a bit strange in reading but it still looks better than the first one, but if I turn it to the left, then it looks right on the left, why is it looking right? Psychologically, you can apply a small logic in this, that is, we If I am reading Tanu Single, then I am going like this. Tanu Single Right, then we read anything like this. So to our eyes, if something is in left alignment, then it looks fine. It does not look a bit strange to our eyes, it does not look strange, that is why the left still looks fine to us, but which one is best for us? Which one is the best in the middle? Which one is this in the middle? Is this one in the middle okay? So, we have done the middle. Are you understanding everything right now? Is the text right? What is all the things? So this is what happens in our Alignment. What is Alignment? That means whatever we select, we can move it to the left or right or in the middle. Now I have made it in the middle. Now, what are these top three portions? You will see carefully, this is at the very top, this is in the middle and this is at the bottom. You will not understand the difference now, but now you will understand. Suppose right now it is celled in this manner, now I have selected it, or I can put it at the bottom. Do you want to keep it at the top or want to keep it at the top? See, for now, when your data is absolutely accurate, when the width of your data is absolutely accurate, then there is no difference between the top and bottom. It seems that you select the entire data and look at it from top to bottom. Not much difference will be visible. When does this difference become visible? Suppose at that time your data is shifted here and there, if your alignment is down or up, then it will be visible in this way. So, since you have done this in the middle of your data. If yes, then make it in the middle from here also. Now suppose even if your length increases, it will still remain in the middle. Okay, now you fix it by double tapping from here. You have fixed it, so you always have to keep the align ment, what is the align ment to keep, if you want to keep the center center, then what is the align ment to keep, if you want to keep the center, then I keep writing the points below that what have we done, so that we can remember that later, okay, this will be fine, we write the pay points here. What are we going to do? So first of all, what we are going to do is that we have done the right alignment. And what we have done right in the alignment is that we have done it in the center. Okay, we have done it in the center. Basically, we have done middle middle, so we can say that we have definitely brought it to the center. Even if I talk like this, I talk like this in the center. If I talk like this in the center, then also in the center, we have brought him to the center. Second thing, let us try and see. Second thing, what will we do? We have gone to our data now. Now what we will talk about is the heading, what can we do on the heading, so in general our heading which is the heading you will see, now we are seeing in the adjustment one, you are seeing that there is a color on the heading, it is slightly raised, then the data is looking good because it is emerging, it is understood that what is written above is the heading, the data below is written as normal data, so in the same way we will have to create this heading, now I will have to create my data from here till here. If we have to select from reference number to amount, then what do we have to select, what shortcut do we have to press ? As soon as we press control shift side arrow, control shift side arrow, we will have all this data selected and that too within a single click. Now it has been selected. Now if we want, look, go inside the home tab and here you will see the rest of the things which you have to do, so do them one by one. Let’s say you want to make it appear a little raised, you want to make it appear a little thick. Yes, right now the words are written thinly, so you can bold from here, so see it has come in this way, I will close it, see if you can see the difference, then you can see the difference that you have bolded. Given italic, it becomes a little tight. We do not want italics. Underline brings the underline below them. We do not want underline. If you want to change their font, you can do that too. Generally, we professionally use Caliber and Arial. Okay, so you can use them also. You have to use this, you have to use this, you have to use this, you have to use Arial black, whatever you want to use, you can do it normally. Used this and it looks very thin, so we use the normal caliber. Okay, after that you get the cell color and that means first we see the size. For once, here you get the size. You can write the size yourself and can also select from here. As you keep increasing the size, its size is increasing. As you keep decreasing, its size will decrease. 12 I think okay, what will we do after that? Just because you are seeing, now because of this heading again, it is not coming complete, so we will do control A, we will do control A anywhere in the data, we will do Alt OCA, then it has adjusted itself, now we have to color in it, so we will select it, now understand one thing, which is this, what you are seeing is this box, let me just take the pain fast, what you are seeing is this box, which means what we call a cell, inside the cell, if I have this If I filled it like this, then what color is there inside the cell? Red and on top of that, if I write something with white color, then what will we call that white colored thing or what is written as font? So what we write inside is our font and this is our cell, so the color shown here, this bucket, this bucket colors that cell, so suppose I color it yellow, then what to do, yellow bucket means I have colored the inside of every cell and there is a font inside it. Meaning, for now, suppose I make it red, then look, it has become red, but I don’t like red, I make it white, so it has become white, now I take this one, I color it green or I color it blue, this one is blue, then look, it has become of this color, so basically this bucket colors your cell and this is what is written, it colors your box, whatever you write and keep something inside the cell, it colors it, okay , I understood. Now we write everything here, what other things have we done, what things have we done? Pay attention, we will write some things here, we have bolded it, after that we have italicized it here, then what else we have done here, we have underlined it. Okay , after that, what have we done right now, we have not done anything else, just colored the colors and the font, no problem, now you will see that the data is visible fine but there is no error anywhere inside it. Oops oops, there is no border anywhere inside it, so now we will put a border on it, what will we do, we have to put a border on the entire data, we will select the entire data, after that we will go to the home tab, inside the font group in the home tab, here you see an option which we call border, if you go to this, then look, after writing here, thick outside border will also appear, you click on this drop down, after clicking on the drop down, you will have so many options. Are there options, ma’am, do you have to remember so many options? The answer is no, all these are for drawing a single line, you do not need to remember this, you have All Borders, so you take all these borders, if you click on All Borders, then a thin border will appear on everything. Now with All Borders, you have seen it in this way, but do you remember in your school, when you used to make drawings, you used to make sketches, You have made a sketch, filled the color inside, after that you are busy in darkening it, brother, we will make an outline on the outside, we will make all the thick outlines so that the sketch of yours can emerge, in the same way, we have to make our data beautiful, so what will happen by making it beautiful, you selected the entire data, after that you selected it and after that you used thick outside border, then you see, it has become thick on the outside, it has become normal on the inside, do you want it or not, ma’am? I have to put different types of borders, so don’t look anything else, I will tell you three to four, you see exactly that, after that you look straight and don’t look for anything in between. Come here, Thick More Borders, More Borders, Here you get the option, suppose you want to apply this thick, right now it is this thick, it would have been this thick or suppose you want to apply dotted, then I took this one. After you see where you have to put it, there is no need to put it one by one, here you can put it whether you want to put it on the outline or you want to put it on the inside or if you want to put it on both sides, then turn on both, here you can see the preview. I only wanted to put it on the outside, not on the inside, so I did nun here and then took the outline and did OK. So now see, it is on the outside and the rest have been removed. Okay, so in this way we put our borders, so what did we learn today? Meaning, for now what we learned is, look at what we put inside the borders, first of all we put all the borders, okay, all the borders, then what we put thick outside border, so we put thick outside border, we are writing this because later we are going to remember the shortcut keys of all of them, ma’am, so many shortcut keys, yes exactly so many shortcut keys, more borders and after that what we are going to do is what we are going to do, tell me one thing about all the ways. You have put a border but what can you say in English to remove the border, no border, we don’t need any border, so you have no border. Now, if I ask you to do all the work that you have done, but if I say this, you will have to do all this work with shortcut keys , then will you be able to do it? Let’s make this data exactly the same as before. See, what is the first thing you have to do. If you want to remember any key, then in your laptop, in your computer, press Alt. Press Alt. After doing this, look upwards, H is visible everywhere, all this is visible, no, whatever work we are doing, what kind of work we are doing, for once, I go here, now I press Alt, the work we are doing, what are we working in, in which tab we are working, we are working in home tab, no, home tab starts with what does it start with, read the spelling of home, H O M E, home starts with H, so here. Your H will appear. Look, H is written here, what does it mean? If I press H, then a key will appear on top of all the functions inside the home. Now we are going to talk further. Okay, first of all, I will scape it that I do not want this. Here you have understood the activation. If I talk about activation, what is it? Alt is activated. What is the key of home? What is the key of home? Whatever function we are working on, where is it present inside the formatting, all that is present in the home tab. Right, to reach the home tab home tab, we will have to press all touch. Now the thing is that how to do the align ment, then the align ment starts with a and we have to center it, so we will press a. So this is its shortcut key, understood. Let’s understand one or two more, then you will understand that all the borders are there, how to do all the borders. Suppose your What are the keys starting from Alt, then after that you are going to home, then after that you are applying border and which border are you applying. If you are applying alt border then your key will become Alt H BA. Remember one thing that the key is activated from Alt, from home to home we are doing all the work so h will go and after that b will come. If there is a thick outside border then from alt we activated it. From h we went to border home. From B we went to border and If there is a thick outside border, then thick starts with T, then it will come here. Okay, more borders. From old, we activated it. From H, we went to home. From B, we went to border and from here we applied more borders. So, in the same way, what will happen to no border? Alt HBA has nine borders. So see how easy it was. It is very easy to remember these shortcut keys. You just need to know your work and the system, how you are doing any work. Wherever you get that work, pick up its initials and you will easily remember it. Well, for bold, there is control one. If you try this, Alt H and here it comes by writing 1 2 3, so if you want, you can do Alt h1 23, that will also work in the other wise. Control and Bolt starts with B, then Control B. Italic starts with I, then Control I and Underline starts with Y, so this is your Control Ya, in this way we remember all the keys. One thing, I will tell you the bonus here, just give me a minute. Here we will take the red color. After taking the red color, I will tell you here, did you see the one with width and length , ma’am, width and length? Yes, you were doing it right now, no, what were you doing right, what were we pressing, I did not remember at that time, right? Alt AO I and Alt ho A Now I understand why these two things are taken because inside the home tab, you will get this feature, then press Alt H, look at O, where is the format, we take it here, okay, inside it, as you click, I have clicked that by mistake, Alt H O, and inside this, there is auto fit height and auto fit width, so I and A, so these keys of ours are made here, these are the keys, it is okay, so this is Alt AO I and Alt AO is A and in this way we do all the things. Okay, I hope you have remembered all the keys well. If you have any doubt anywhere then please ask me. Now let me try and tell you for once. Suppose we do the border, then first select the entire data with Control A. With Alt HB A, I have removed the borders from the entire data. I did Control A, did Alt ABA, then did border on everything Alt. If we have done HBT, then there is a border on the outside, in this way we can do whatever work we have to do quickly and very easily, so what we learned here was our basic formatting and we have done the entire basic formatting very well with all the shortcut keys. Okay, if you want to note down, you can note down other wise, so you will definitely remember it, still you are going to get this sheet as it is, so don’t worry about this. Now we have done the basic formatting, now we will understand a little bit about one more topic, which is insert and delete and after that we will move to the advanced topic, what is the meaning of insert, if we look at it in general sense, insert is insert any thing, that means they are adding any thing. Now suppose I saw this data and after seeing the data, I understood, oh no , I have not added any heading inside it, so now in such a case. What will we do, do I erase the entire data and after that go and see that oh my God, now I will go and write the heading and only after that I will make the entries, then it means that there is no problem at all, no, we will not do this at all, what will we do, we will add one more row for ourselves right here, if I add one row for myself right here, then how easy it will be for me, so what will I do, I selected it, look after selecting it, any. If you add something, then what is the plus sign? If you delete something, or if you delete anything, then what is the sign of minus? If you do a minus, then you have to press the plus sign with control, then it will automatically add a row. Now you can write a heading for yourself here, in the same way you had to add it somewhere else. Suppose you have to add here, you do control plus. Now, if I don’t want this thing, then what will I do, I will make the same selection and make it control minus. So, in the same way, now I have told you how to add a row or add and delete a column. Similarly, with Control Plus, you can add a column and delete a column. Now you have learned this thing that when you have to add a row and a column, now if you want to add a cell , you can do that too, but why do you have to add a cell? When we are adding a row column, then look, suppose you have a data written in such a way that a data is written above it. There is a data written below also, now what do you have to do or not to make any changes, that is, do you need another column in the above data, before the name of the party account, you had to write something else, okay, now suppose you select C and do control plus, then this is added below also because it adds the entire column whereas it is required in the data below, otherwise we cannot do this. This is what we have done wrong, so what will we do, as much portion as we want to add, we have added our portion. After selection, I did control plus, now it asks, okay, I have understood the selection you have made, you have to add so many cells, but tell me, what will I do with the remaining data, then what can you do in such a case, you will give command to it, Antays has nothing to do because if I had to antays, then why would I select the cells, if I could have directly selected the entire row and column and done control plus, then these two options would have been useful. Don’t even look, look at the two options above, it is asking where should I shift the remaining data. If I shift down and do OK, then for him it means that I have to make space for you. What are you telling him, I have given it by doing control plus, make space for me, I need space and after that he is asking OK fine, I will make space but tell me what should I do with the earlier data, then you say shift it down to me. I don’t know, make space for me, so he shifted that data down, but did we have to do this? No, we did not have to do this, so what did we have to do? Control Plus, now what am I saying, okay fine, do one thing, shift the earlier data a little to the side and then shift it to me, then the data that is shifted here will be shifted to the right and you do OK, then your data has been shifted to the right and as many sales as you wanted have come here for you and Even if your data below is not corrupted, then in this way we add our data to any row, column and cells inside the data, then here we write it, for one time, use the shortcut key so that you remember later that we have to add any thing, we have to add or insert, then what do we do and if we have to delete any thing or write substack, then what do we do, basically these two things are happening. In which sense it is happening whether it is row or column and whether your cells are dozen matter, you will do control plus to add or insert and control minus to remove it. Okay, so in this way we insert and delete any row column cells. Let’s move the cells inside our excel. Now let us move towards advanced formatting. See, what we are going to do now is to do advanced formatting. Those are the features of that as well as separately. There is no feature but we take it a little advance. See, now suppose we suddenly remember that the heading has not been written, then how can we do the heading? For now, let us keep from deleting the entire data. What we have learned now is that we will select it and do control plus, then we have one row, it will be inserted. We do not have to do that. Right click here, insert option comes, so it will be inserted in this way also. Now I want to write here in the middle, ABC Limited, I want to write the heading, ABC. Limited, so what should I do, tell me quickly, should I do it like this, okay fine, there are three here, there are three here, so I write in D, it will come in the middle, we can do it like this, no, what do we have to do, we write here A B C Limited Limited, okay, we have written this, now what do we want in the middle, neither where in the middle, so first of all, select which one we want in the middle, we want it in the middle, after that you go to the home tab, in the home tab, you are inside the Alignment group. You get only one option of Merge N Center, you click on the drop down of this Merge Center or click on the Merge Center, after clicking it will appear in this manner. Okay, our ribbon is now removed, so now what we will do from here is that if we click on it, it will come in this manner, so see it came in the middle, what did you do in it, merge all the cells we have selected and after that, align them, what do you do with them, center. If you do this then Merge and Center has come here. What did Merge and Center do? After that you can give any color. I give black color that would be better. You can make it bold, you can show it in some other color, you can do some font. In this way, now suppose you had to write this also just because this is a sales report, so you selected this also, Control Plus, Control Plus is not happening, it’s okay, you have inserted it from here, here is another one. You are still able to see that there are separate cells, it has become one cell because you have done the margin center. Now you will write the sales report here, okay and after that you will select this also and then you will click on the merge center and then you will give it a dark color too. In this way, now think about it that you have to do separate work for both of them, so this is not making the work a little easier, it is making it difficult, so when you have to If you have to do more work like this, if you select it and make it merge center, then it will tell you that the top most value which is written will come, if you do OK then only this will come, then don’t do this, what we will do is click on the drop down here and merge means merge in this way, click on merge across, then automatically it will come in this way, okay, this was your merge across, apart from this, suppose you want to unmerge them, you click on this. Click on unmerge cell, it will come like this, now I will do the merge across, so what have you learned here, what have you learned here, two things, what have you learned, three things, you have learned, the first one is merge and the center, you have learned this, the second one, what have you learned, you have learned, merge across, you learned this. And third, you have learned unmerge, okay now you know where all the three things are, we are working in the Alignment group of the home tab, so basically how to activate the home tab, that is, with the activation key, we go to the alt home tab, from H, what have you done after that, after that, you have merged and centered, then your shortcut key will come, merge and center, what have you done, you will activate it from old, go to home from H and here. Merge Across, Merge Across, you should not know the feature, what keys have to be used, the keys are created automatically , Alt H, Sorry, Alt H, now unmerge will happen only when merge is done, first if something is merged then only then it will be unmerged, then M and then you will use U, then in this way, these three shortcut keys of yours have also been prepared, you see, you have to memorize so many shortcut keys in such a short time and trust me, you will not forget once you have memorized it in this manner. Once you start practicing, you will not forget at all. Okay, so in this way, we have done a little more formatting here. One more part of the formatting is left, which is wrap text and one small thing which increases it, I will tell you in the next topic, which is wrap and shrink. See, when we did the interface, inside the interface, I had forgotten to tell you one thing. I am so sorry for that inside the interface, when you will see let me just. Zoom at my screen, you have zoomed this and after that you have come here, you will see here, look here, this is this mark, what is this mark for, see, you can also see here, what is this mark for, I write this mark here, we call it extension, what do we call extension, now what is this mark for, what is that, let’s go to our place and understand, there is no problem in that, okay, we will come to our place, what were we understanding? Wrap End I was thinking, let’s zoom it a little, okay, now it’s okay, so let’s see what it is for. Suppose you have a lot of features. I am saying that Excel has many, many, many, many features, so are there many more features related to fun, and there can be many more features related to alignment, and there can be more, so in such a case, is it possible to show all the features on the screen? Is the answer is no, is it not possible to show them all? So what do we do? There is a symbol of extension in the corner near the group. Look, this extension is not in every group. Look , it is not in Styles, it is not in Sales, it is not in Editing, it is not in Done, it is inside this one. Why is it there because wherever you have it in this way, you have some other options too, but here if they are not visible then the extension comes there. If you click on this extension, a window opens inside, then you have more options to explore here. You get to do another ​ ​No, to fix the cell, I do not want the width of my cell to increase, I want to keep everyone equal, I do not want to increase it too much, so I want to increase the width of my cell, there is no problem if the length increases, but I do not want to increase the width at all, so what will I do in such a situation, I will click on this and I will wrap my name in the text here, wrap my data in such a way that it will be its width. Its width is neither increased nor increased, then in such a case I will click on the wrap text. Now it is here, now it does not mean that it has become like this forever, as if you are clicking on it, then you are seeing here that it is written ‘Tanu Single’, it means that it is written ‘Tanu Single’ and it is written like this, this is just because you have clicked on the wrap text and now the width of this cell cannot be increased, so this happened, now increase the width of the cell, this is fine. It will come, okay, so where you do not have to increase your width, you can increase your length, there you will use it in this way, in this comes the next one, suppose I write the stems single again and they are going out, now I am saying that I am imposing a restriction but now I am saying I am saying that the width is not increasing, it is fine, but the length should not increase, if the length also increases, then it will not work, so what can we do in such a case, it is obvious that the length should not be increased and if the width is not increased, then the obvious thing is that I will have to shorten the font, now if I try to shorten this function manually, then I will not be able to understand, okay, it looks fine in the ate, maybe in the ate ? If he is going out in the nines, then I will keep doing the same thing, otherwise what do I do in such a situation, I go to this extension and here it says shrink to fit, shrink my data to such an extent that it fits inside this cell, then you click on it and do OK, then it fits inside it, okay, it fits inside it very well, we call it shrink text, you can see it here in both the cases above. In both the cases, Tanu is written as single, but I actually want that no matter how much the width increases, how much length increases, but our data is that Tanu comes down by writing single, so what can you do in such a situation, if you write Tanu, if you move your cursor down, after pressing enter, the cursor will not come down, the cell comes down, your cursor is missing, you have come out of the cell, then how will it be written, see what you will do Tan and when you have to bring the cursor down, now you Do not press enter but press alt enter, your cursor will come down, now write, you enter single, then see here also in your formula bar, it has come written in this way. The formula bar shows the same thing which you write in the cell and the way you write correct, so now it has shown it tan single in this way. Look here, it was showing together, here I reduce the width, see it has come in this way, still it is showing it like this because We have written as it is here, we have written it as it is, so it is being displayed in this manner, so here we have completed our wrap and shrink text. This comes within the advanced formatting itself, so within this we have covered it, we have chunked a lot of the basic, so miscellaneous things also come inside it and along with it, the group with clipboard is also included, which means we are going to add some features in the group, so let’s do the work first. Let’s look at the Clipboard feature. Basically, what do we get inside the Clipboard? You can see that we get features like cut copy paste and so what is the meaning of copy? Here you data. Whenever you have read Excel, you have come reading two things inside Excel. I had initially talked about what are the things we are reading in Excel initially. We are reading the data and we are reading the formatting. Right, so when you copy any data completely, the copy is done. What does it mean, we do Control C or you can copy from there by right clicking, then when you copy, there is data in it, whether there is any formatting, no matter what kind of formula is there, all of them come up in that cell, that is your copy and wherever you have copied it, after that what do you have to press to paste, you have to press control v. Now let’s assume that this is where I bring this data, so first of all I am in advanced formatting. What will I do, I will select the entire data from Control A. After selecting Control A, after that I will do Control C. After Control C, you are seeing these dashes running on the side, that means its selection has been done, after selection, Control C has been done. Now I will go to Sheet Two here because I have not named it yet, it is right in front of you here. Let’s pay here. If I do Control V, then as it is data has come. Alt OCA. Do it as it is, the data has come, let me do it a little like this, as it is, your data has come, if you do this, copy this data and paste it on the side, it will come, that means there will be data here and here too, the data will be right, but if suppose you select the data and do not copy it, cut it, do that means control Basically, what is meant by cutting, data goes from there, what is your shortcut key to cut ? Control You should have selected the data, Alt OCA, done the data, okay, now suppose I want to copy the construction company from it, then I want to copy this, let’s do one way, so let me do this control C and keep controlling v here, control c control v control c control v, so how much tiering process is there, how much tiering process is there, no, I have to do it one by one, so we will not do this, so I deleted it, okay, but now what we will do is let’s see what else we do. You can do this for multiple selection, what can you do, hold the control where you are selecting, then wherever you are clicking, you see that it is being selected, it is being selected, okay, now you control it, it will not take, then it means that for multiple copies, this control one which does the selection method is also not working, then what does it do, what does it do, you open the clipboard in your home tab, keep clear all from here, it should become clear here. Select Control C, go on selecting anywhere, go on doing Control C, Control C, Control C, Control C, I am doing this but I am not holding anything, I am going there with Control C and wherever I feel like, you go to that cell and paste it wherever you feel like. You go to that cell and here there is an option of Paste All. If you click on it, then all these things are there, it has pasted here, all the things are pasted here and after that, clear all from here, then all your things are there. If you want to paste multiple copies here, then this is a shortcut method that if you want to paste multiple copies, then you can do it from here. I hope you have understood, I had to tell you only these things in the Clipboard group for now, there is one more thing I need to tell you. Suppose you want the same formatting for another table, then what will you do. Suppose you will copy from here, paste it and then delete the data. There is no need to do so much fuss, you select this data and here there is an option like brush. If you go to this, then its name comes Format Painter Painter, meaning are we the one who is going to paint, who should do the formatting, then if you want the same formatting, then click on it, see the selection is done here, wherever you leave it, this same bean will come after your formatting, so in this way, we use Format Pinter, now I should name this sheet, so I name it, I give it a name, Clipboard Clipboard Group, we have Here we have completed it, now let us move towards our miscellaneous topic. In the miscellaneous topic, the first thing I have taken is the clear sheet. What does the clear sheet tell you? The meaning of clear sheet is that if I want to delete the data then how can I do it? What can you do to delete it? Let me show you a data. Here we can see this data in the clipboard itself. Do you have this data? You selected this data and after that you deleted it. If you press the option of , then the data is gone but your formatting is not gone. If this problem arises, then here we are going to solve the same problem. You get this feature inside the home tab. Now we will remember its shortcut keys. Now we will remember what happens here for deletion. Firstly, we have called the content data here as content or you want to delete the formatting or you want to delete everything. Which is all, then this is fine. Three things come to you, now let me tell you just because it is in the home tab, so from old you will activate all the keys, you will go to home, from old you will activate all the keys, from old you will activate all the keys and you will go to home, what will come for content, clear, what are we doing, we are clearing all these things, we are clearing right, so for clear, the key it has taken is E, E is taken E. Now you don’t need to do anything, if you are clearing the content, then put ‘C’ to clear the formatting. Just put ‘f’. If you want to delete everything, then put ‘A’. Now let’s see it on our own. I would personally suggest you to delete the content, don’t do anything. After making the selection, you can directly press the delete option, that too will be easy for you, but for formatting and other things, you can do this like you can do with clipboard. Now you have this data and you have to delete it, so I directly pressed delete and it got deleted. Now suppose you have to delete the formatting, then suppose you selected this in the formatting and if you delete it, it will not get deleted. Because there is formatting, then you came to Alt H home, see from E, this is the option of clear, E is for clear and F for formatting, so see, it is completely cleared, if suppose the data and both of these have to be removed, you select the data, activated Alt H, E was for clear and if you have to do everything, then do A, then the entire data will be gone. Okay, in this way we do it, after that you have two more shortcut keys. What is Undo and Redo? What is the shortcut of undo and redo? Suppose you have done some work. Undo means suppose you have done some work but that work was not to be done, then you do undo and for any work that has to be brought back, you read it. For the work that has been done, you press control root that I want it back, meaning I have done it. After that, if I want to bring it back, then I press control w. Now suppose I have to delete what I am writing because I have done it. If I have written wrong, then I will keep pressing control, then by controlling j, all these steps which were mine have been removed. Now if I control yy, then look, all the things which were mine have come back. So this is how it works. Which is your undo and redo? Let’s go. Now let’s see what else comes to us next. Insert and Delete. What is there in insert and delete? Suppose, if you want to add any sheet, then from here you can insert from plus. You can do this and if you want to delete any sheet right there, then you click on it and if you delete it, this sheet will be deleted, so in this way we insert or delete, I right click here and write here that on right click you get these options. Till now I was giving name to the sheet, so to give any name, you have to right click. On right click, you get the option that you can name that sheet like this. If you want to rename, click on Rename then we can give this name. Okay, everyone understood in this way, we check the option for tab color as well. Here we get the option of tab color. If we want to give any color to our tab, then look, I want to give red color, so look, this red color of my clipboard has come. I want to give some other color to Miscellaneous, I took the tab, I want to give green color, so look, my green colored Miscellaneous tab has arrived. Okay, as soon as it is open, it will appear gradient, otherwise it will appear solid color, so in this way you can also give different colors to the tabs, so here we have covered the basic things which are very small things of Excel, now what we are going to do next is to do the basic formula. Further, we are going to start from the very basic. Let’s talk about the formula, so first understand a little theory. See, whenever you are talking about Excel, then Excel is more about the calculation that it makes your calculation part very easy, so whenever we do any calculation, how do we do it, we do the calculation only by taking the help of formula, so formula is a very important aspect of Excel, so all the formulas there are here, they will be taught to you in a very easy way. Now the point comes that ma’am. Formula is maths, I am afraid of maths anyway, so what should I do so that I don’t have to do formulas and it is going to be so typical, so how will I be able to do it, so see here you need a general understanding, a basic understanding, you need a basic understanding, if you have a basic understanding of maths then you will be able to do this work, you do not need many such tricky knots in this, you just need to know that you need to do it. What is your work, what do you need, what is the answer, if you know this then you can definitely apply any formula directly here. If there was a need for typical maths here, then why would we be doing Excel? We would not have done the maths on our own, but this makes our work easier, that is why we use the formula here. When any formula is started inside Excel, then what is the initiative? Equals to It happens that first of all we have to apply equals to and then we have to work. Now you will say ma’am if you don’t understand then you will understand easily. Keep a little patience. You just remember each topic which we have done till now. Name of the cell, what makes up a cell. You just tell me that our cell is made up of one column plus row. If I tell you this is a cell and the name of that cell is a1 then what is the meaning of a1 a is the column one is the row. Just keep this thing in mind, after that I I will explain all the things automatically to you. Let’s take a scenario and after that let’s understand it in a better way. You will understand better here. Here you can see that I have taken a data here. What is the data? Let me tell you, first of all you are given the serial number, after that the student name is given, after that the marks of Hindi, English Maths and Science are given. Now if you want to find the total, then if you want to find the total, then basically what to do is to sum. Now do the sum. In which do you need even, which cell is g3 in it, it is okay, you keep looking carefully, which cell is this, g3, please understand this thing carefully, because if you miss this topic even a little, then there can be problem in the future topics, this is your g3, what answer do you need inside g3, do you need total, whose total do you need, one is needed of c3, one is needed of d3, one is needed of e3 and one is needed of f3, okay then basically you You know g3 = c3 + d3 + e3 + f3 ok now let me say suppose you are here you are here which is your g10 which is your g10 so if you come to g10 then what you need is obviously c10 d10 e10 f10 so you understand one thing as this is your g4 this will be g5 this will be g6 this will be g7 in the same way this will also be c4 this will be c5 c6 will be c7, d4 will be d5, d6 will be d7, so it will keep increasing in this manner, okay, you have understood one thing, we are talking about cells here, now let’s apply formula to it and see, we will learn to do sums in different ways. See, this is a very basic thing, when you do maths, you used to study maths in school too , then the thing that was taught to you at the initial level is when it comes to the calculation part. So that was your even, so here also we are going to even, we will spend full time in even, the rest will not take time, okay let me just remove it, first we remove it and after that we do further work, now what do we have to do, have you understood that the answer we want in g3 g3 is c3 + d3 e3 f3, so what we have to do is we just have to write, when we start any formula, what do we start with? Let’s start from equals two, so equals two, now what did I tell you, what is needed here, c3, so I went to c3, what to do plus, then what is needed, d3, then what to do, plus, then what is needed, e3, then what to do, plus, then what is needed, f3, then what to do, if you don’t want to do anything, then go till f3, you have to do plus, press enter, then this answer will come to you, now you can drag it, so see this is yours. The answer has come, what is the answer, you can check here, this is g4, then yours here is c4 d4 e4 f4, suppose you are here, which is your g9, then here you can give the formula, c9 d9 e9 f9, suppose you are here, which is g12 c12 d12 e12 e f12, so basic, we drag and bring the rest of the formulas ourselves. Initial formula. We have to put it in ourselves, so one way was this, you had another way and take it out, okay, later we will fix its formatting, okay, I will do it like this by going to the home, giving the format to the printer, okay, for now, let me assume that I have told them to sell, if I had done something directly, then equals to 90 + 27 plus 10 PS 47 174. Now should I drag it, what will happen to everyone when I drag it? The answer is 174. Why did this happen? Look, it is a very simple thing. We give three things in the formula. Three things consist inside the formula. I am telling you this very basic idea. There are three things in the formula, one is a cell, one is a number and one is a text cell. It gets changed by dragging, it gets changed by dragging and the main thing is that if you want to fix it then you can do it manually. What can be fixed can be fixed manually, we will have to apply some formula by ourselves, which fixation will also be learned later on. Numbers: If you are writing a direct number, if you are writing a number then it is always fixed, it will never change and in the same way, if you are writing any text, it is always fixed. The second thing is that the number is written directly, the text is written inside the double ted comma, okay now these things are now. You must be feeling that it is very confusing, you have to read it just once to understand, so read it, you have to understand it, understand it, very good, it did not come, there is no need to worry, because now when we will do this with the example, then you will automatically understand something. If you do not understand the theory, then hold on. Because that thing will be understood in practice, not everyone understands everything in theory, not everyone understands everything in practice, so here I have covered both the expectations, okay now we have come here, now tell me one thing, what happened here, just give me a minute, okay, this is not erasing, what happened here, I had given them the value by taking 90 plus 27, plus 10, let me make it 47, now the numbers are If there is no change then here too the formula remains the same. Here also the formula remains the same everywhere. If the formula remains the same everywhere then the answer will be 174 everywhere. What is the second thing? Now suppose I did 20 here then it will change because when we give cell in the formula then we tell them that look, add c3 plus d3, add e3 plus f3, now the formula does not make any difference inside c3. Whether you write 10 or 100, what it means is that he has understood that whatever happens inside c3, I just have to total it and now write 1000 inside c3, even if I come here and here and write 1000, the answer has changed because it does not care what you have written, it just means that he just takes the command in this way in which you told him to add c3 to plus d3. Make a plus on e3, make a plus on f3, then he has just taken the cell. Now whatever you write in the cell, he will do a plus, but what you have done here is that you have told the values ​​yourself, turn 90 into a plus by 27, turn the plus into a 10, turn the plus into a 47. You have already given the values ​​here, so that is why it has not changed it. Okay, and later also when we drag the cells, they drag. If there are any, then they get changed, like here there was c3 + d3 + e3 and f3, here the same thing happened c4 d4 e4 f4, those cells change automatically but here you have given the value, the value never changes, it remains as it is, so this is the problem with us, if we apply the formula in this way, then we will get the wrong answer. Now the next thing comes, I will take one more for once. Okay, I am here and I have selected it and controlled it. Okay, it’s okay, it’s okay. Okay, let’s go. Now we are going to learn another kind of total. Now see how much tiering it will be if I go to each cell and do plus plus plus. So let’s say there were four values. If I have more values, then what will be my benefit? If I do it in the calculator, then in such a case, we will apply the formula to add. What do we call sum? If we say equals to sum then we will put equals to sum and tab and always remember one thing, never listen to any person in the formula, you always have to listen to the formula, you have to do what the formula is saying, what is the formula saying number one comma number two comma number three comma number four comma and so on it has come then we will do number one comma number two comma number three comma number four and turn off the parentheses and hit enter. If you give it, your answer will come. Now drag it to you and see the correct answer will appear. You can check whether you have written Equals to Sum. Pressed Tab. By pressing Tab, the sum will automatically be in capital letters and will open your bracket. Whatever things are written inside your formula, keep writing them. It was written there, number one, comma, number two, comma, number three and so on. So, we gave him this formula, so how easy it was now. Our formula has become automatic. If we change anything, there will be changes inside the formula. Now comes one more thing , control c control v. Now comes the thing that see what it has taken here d3 e3 f3 and along with it g3 because it has understood it as further, so we delete it. Okay cell, when we write neither, they move, that is why our answer keeps getting auto updated. Now tell me one thing, you have applied the formula. Sum is written there too, you have to select each cell and put a comma. Is it easier than this? I will use a calculator, so to make the work easier, look at what we do, when we know that we have to add something continuously, then we write it in a different way, like suppose you have now understood what Equals to Sum is, equals to sum and numbers have to be given inside a1 a2 a3 a4 a5, okay five. The numbers were one way, so this is the second way, if I say now what does it mean, add a1 to a2, then plus th, then plus four, plus fv, I can also write it like this, from a1 to a5, when you have consecutive numbers, there is this colon in between. What does this colon say? What does this colon say? It says from to means this is a range, what is a range, we have You have selected a range that is from a1 to a5, if someday you make it even like this, a1 a5 means what is written in a1 and what is written in a5, add both of them, add both of them, then only two numbers will be added in it and here where you have given the range, it means from a1 to a5, if there are five numbers inside it, then all five of them will be added. Now how does this come, let me tell you first. Funda told you here we will apply the formula of sum, equals to sum tab, after that number one number to number three, don’t do it now. Consecutive numbers are going to come, so you select it, there were consecutive numbers in the same heavy, they were together, then you selected it, now comes c3 colon cf3, sum from c3 to f3, enter and now double tap, it will appear everywhere from d4 to c4 to f4, see this, from c6 to f6 everywhere. Now suppose I will tell you another way, if you had done it like this, I delete it, I would have done it like this, here you would have done equals to sum tab and you would have done c3 f3 and enter, then look, it has given you the wrong answer because it will give wrong answer to all the others because for that you have put a comma, meaning now it is totaling which ones, it is only totaling c3 and f3 and not totaling anything else but us. What was actually needed was that I color all the wrong ones red and here we go red and this one we will give light to this one. All the wrong ones we have colored them in this way and this one is fine. Okay, still I say that I have understood one way how to do it. Well, let me tell you the one which is even. You total it like this. Do it like this. Its total is 184 na ya see below the average count. And all these three come in writing but this is only for reading, that is why we have to learn the formula because we want to write it in actual. Now tell me one thing, now we are doing the sum but how much time is it taking, no, it is not taking time, so now I am going to teach you the best one which is the best. The easiest way is that wherever you want the sum, you go to the cell and keep a condition along with it that there should not be any gap in between and then After that, if you press Alt Equal Two together then the formula appears to be the same. The formula for sum is from c3 to f3, you want the sum, but the thing is that we have not set it, it has become automatic. Now you enter it and obviously you double tap it, now you will get all the answers in the same way. Suppose you wanted the total here, what would you have done if you press Alt Equal Two and enter, then see this sum. It’s ok, we don’t need it right now, so I erased it. I want to fix this formatting, so what can I do? I selected it. Alt HMC Alt HMC. We had just learned this. We have corrected this. I have to fix its width. Do Control A. Do Alt OCA. Use this. Look, my table has been corrected. Here, we have corrected all the formulas. We have shown the total in different ways in which we can sum in different ways. What do cells mean? What do numbers mean? How do they behave ? How do we drag? So here we learned the basics of the formula. In plus we learned the formula for sum. Now let us move on to the formula. Now suppose you have the same, I am giving an example of a basic formula. You have the same data. You have marks and also the total. Now if you want to know or any student can do it by himself. Want to know ma’am, I had total four subjects, how many subjects were there, let us understand a little theory that what we want to find out, then the total subjects we have are four subjects, here there are four subjects, each subject is of your 100 marks, so your total marks become yours, your total marks become 400, your total marks become your 400, now the marks of any student are 300 is the first student, the marks he has got are 300 marks, so obviously how much is the remaining, it is 400 – 300, if I say, he has got 100 marks less, then this is the thing we have to find out, we have to substack there, now the thing is understood here, I have done this calculation for the first student, that means marks for the second student, let’s say 200. So how should I calculate the remaining portion for him? I will calculate the remaining portion for him in the same way – 400 – 200 and after that my answer will be 200. Now suppose a There is another student, now suppose we have another student, the third student, his marks are only 100. Now I have to calculate his remaining marks, so how do I calculate his remaining marks? His remaining marks will also be calculated in the same way. 400 – 100 = 300. So, you must have found one thing common in all the three scenarios and that common is that when you are applying the formula. Minus will always have to be done from 400, 400 or 400. No matter how many marks you have got, whatever marks you have got are secondary, you are putting them here right but right now what is fixed is 400, so just here we have this funda. I wanted to make it clear to you that here, when we apply the formula, 400 is our fix, so 400, we will write something in the number when we have to fix it. The number is always fixed, so we can write that number directly, the cell keeps changing, we fix the cell in a different way, we fix it manually, but if we write the number, it always remains fixed, so we will write the number here, what to do is to subtract it from 400. Now see – 174 has to be subtracted here, then 150 has to be reduced to 108. This is a thing that keeps changing, that is why we are here. But instead of taking the number, we will take the sale of the sale lane because the marks are written here itself, who knows, if any number is changed later, the total will be changed here, it will be automatically reflected here, so you can enter it and after that you will draw it. Look here, out of your 400, g23 should have been laced, g23 is laced. Suppose you are here, which is your h27, then it is in 400. Cess g27 should have been minus, the same thing is happening, so it means that you have found the correct answer, everyone has understood it, if you feel that you have any doubt or are not understanding any formula, then you can tell me in the comment section. I was telling you earlier also that write all the doubts together so that you can convey me and at the same time, I would definitely like to tell you that look very much now, generally we have 40 50 There is time as much as hours or there is a minimum time of 40 hours. One is that time and one is this time within which we have to cover all the things in a limited time, so there is definitely a little time constant which is not there in live. In live, no matter how much we stretch, in how much detail we read our things, there is a slight difference, but I will try my best to make you understand all the things that I teach. Okay, here we are on Substack. Learned to do, now let’s move on to our next formula. Now our next formula that comes is this, we are going with the basic fundamentals. I also did plus, minus, if we multiply, then it is basic. Here, just like a sheet of sales is made, it is just like there are party names, there is quantity, there is rate, so you need the amount. How is the quantity and rate amount arrived at, that is, we multiply the quantity. Obviously we get the amount from the rate, so we will equalize to that we need the quantity , basically we will give it, we cannot fix it here, you cannot write this, 442 * 985, if it changes later and you have to put it for everyone too, then you will not write this, what will you do, you will give a cell, then you have given c46, you have to multiply it, for multiplying, you will get a star above the eight, you can use that star. Do this and after that give this cell that this d is to be multiplied by 46, enter it and in this way your answer will come. Double tap it and you will get all the answers. Now suppose you are on e48, then on e48 what do you want that is c48 * d48 then you can see your answer that it is c48 to d48 so in this way we multiply. I have also taken the divide in the same way. This is a little bit of its opposite, suppose you have the amount given, the rate given and now you have to know the quantity, how much has been sold, this is the normal way in which we used to do maths, this is not normal maths, okay, there is not much hard and fast rule, so what will we do inside this, see, let me explain to you a little math inside this so that you do not face any difficulty, so here is what we did initially, what we did initially and what we are going to do now, I will tell you that. Let me tell you both the scenarios . In the beginning, we have multiplied the quantity with the rate and the amount has come. Now what is the amount? We have given quantity, our quantity is x, for example rate is given to us, 10 is given to us, amount is given to us 100 and quantity is given to us, that is, it is not given yet, so what do we do to find out x. 100 / 10 because This is in multiplication, so what will it become in division, then we come to know that our answer is 10 because we cut it from this, so the value of Basically you will go to your place, if you want to calculate the quantity, then what was equal to the amount? You will take the cell with the amount, for divide you will use slash and after that you will enter the rate and after that you double tap, your answer has come correct, okay in this way you can get this c67, in up, this is d67, this is c70, then d70, this is c75, then d75, that means your correct. I hope you have understood all these things, we have done the arithmetic formulas here, we had to do these basic formulas at the initial level, now I will move ahead where I will tell you about the features, when it comes to statistics, Average Maximum Minimum Count Count, this is the thing, we do one feature, after that we will continue or we are going to explore another new feature. Which is a number group, then inside this we will number. Formatters are going to do format work with a very basic understanding. Let’s go through the theory. Okay, so I do one thing, I turn off the grade

    lines. So, I turned off the grade lines. All the lines that you see, we call them grid lines. Now, what I am going to tell you is what formats are actually available to us, what do we write inside Excel, so what do we write if we look inside Excel. Normally, if we talk in normal language, if we talk in a normal scenario, then either we write numbers as you have seen, we are writing our cell, we are writing marks, if there is anything, we are writing numbers or what are we writing, we are writing text that means we have written the name of a party, we have written the name of a student, till now we had understood only these two things, now many things come inside these numbers like That number one is also 23 and number one is also 23 and number one is also 23 and if seen then number one is also on 23, okay so all these are numbers but in a different way this is a normal number, we can say that in accounting we take care of points points also, we take care of so many money too, so in that way it is written in decimal, we can say that currency is attached with it, this is for accounting. Inside we also put money, so here we have put currency, it is written in percentage, so in this way we have only numbers, but we can also show the numbers in different ways, so in the same way, we are going to read about many number formats here, now here comes another thing, whenever I explain anything to you, I also explain even formatting, so I have always said one thing that first you have to select something and then after the selection, you Do you apply anything beyond that? For example, I have given you WhatsApp2, so first we will select somewhere, after that we will apply this thing on that thing, so now let us see by formatting the number in actual, like first I will come to you here, after that we are also going to read the theory of number format here, okay, I did this by mistake in the third portion, no problem, in the third portion, we do it here and here we have drawn our grid lines. Suppose I write one of my numbers here : 1 2 3 4 5 6 7 8 9. So we have written a number. Now when you click on this number and go to the home tab and see here, journal is written. So the way we write the journal number, it has become your journal. If I change the format of this thing and put it in number format, then it has brought it in decimal. The thing which I explained to you here is that 23 can also be written like this and can also be written like this. It’s totally up to you as to how to show it. If you think that later on in my data, things can come in points, things can come in decimal and I want to show it in decimal, then you can go for this format. After that, if I take, let’s say, another number, let’s say I have taken the same number down here and if I want to put currency on it, then what can I do? I am doing this by clicking on this drop down and when I click on currency, then ready currency is also shown on it. Currency comes, if suppose you want to put something else on it, like ₹ 5 is 45, you want to put currency on it but want to put Indian Rupee, then you click here, you will get English India here, for now we do not have it here, it is added, we will learn this later, we have to change this thing from the setting of the computer, but for now, we have dollars, so we will click on dollar here and in this way we will add our currency, now suppose. In any other way, you write a number here, write 45 6 9, and you want that decimals should also be included in it. If all the things like currency come automatically, then you can directly choose accounting. Because accounting is like this, see, comma has also been placed here, along with it, other things have also come along with it. Okay, accounting has been written here too, this is also in the format of accounting, this is also in accounting, comma has been placed, decimal has also been placed along with it. At the same time, if you put dollars then this is the format of your accounting. See, there is no need to open it again and again, you can do it directly from here. Suppose I wrote a number here and you want to put comma in it directly, then you click on the comma, then it will come. If you click on currency, then it will come. So, it is totally up to you whether you want to do it directly in accounting or you can do it from here. Next comes suppose I am writing something here. 10 20 And right now I have to write 30 but if I have to write the percentage then I have to do it manually like this 40 but if I have to do it in this way then now you do not need to achieve so much, you select it, click on the percentage here, now whenever you write something in this area, the percentage will appear automatically so that is your a custom format like you would have seen at many places, for example, do you have a steel business and In that you have to write the quantity, you have to put ton behind each quantity, so what you did was to set the format in it in such a way that as soon as you write the numbers, turn will be written automatically. You do not need to write ton again and again. If you are writing turn again and again, then where is our work easy? It is hard, isn’t it? It is done in this way. Suppose now I write a value, this is the value I have written, then if I want this and that in that. To show it, I have zoomed it and dragged it like this, otherwise if I keep reducing it, it will show me less decimals. For now, I have shown all the decimals. If I want to increase or decrease my decimals, then I have both these options available. Either I can decrease or I can do more. As soon as you leave it, like this is three three, then it will remain three. As soon as you press it, it gets automatically rounded off. Okay, you can do this by clicking here. See 5 6 9 OK and I take this and I reduce it, then see it automatically reduced it to 65, which was 65, yours was 6596, so it automatically reduced it to 66, that is, it rounded off, so it automatically rounds off yours, so these were your number formats. If you click on the extension of number format, then you get a lot of options. I will make you explore more options. There is also a text inside it, if the value is Take any date you have written, like I have written this date and which is in slash, this short date is written, how 2 24 25 is written like this, then it is short date, you can do short date like this, if you want to do this same date in long format, go to this drop down, click on long format, this hashtag error comes when your width is less, then in this way your long date will come fine. And in that you get the percentage. If you want to do something in the fraction, you did it like this and by selecting here you did the fraction. Now you write here 2/3 and 2 s 3, that is, write 2.5 like this, then it will come by writing 2 1 a 1/2. If you write 5.3, then it will come by writing 5 2 and 7. So in this way you can also bring in your fraction whatever you want, any scientific number. I need it, if you write too many numbers then it gets converted into scientific number but it is a small number and you have to change it to scientific, then you can go and click on scientific from here, then it gets converted into scientific number, in this way you get the option of text in the last, if suppose you have written any number which is more than 15 digits, then I teach you a third step here which tells you that if any number is 15 Dialog if it is more than 15 digits The last digit will not come in the box, Excel will convert it to zero, so what can you do in such a case, when you have a scenario like this in which it says 15 digits and if yours is more than 15 digits, then it converts it to zero, so in such a situation, what will you do, you will convert your number into text, what will you do, you will convert its format into text, then with this it will take the number fine. Let’s remove the ink for once and go there and see this thing. Let’s go here and suppose I write a number. Just give me a minute. Here I wrote 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16. So see, it did it in this way in the end. If suppose I go to home and go here and convert it into text right now 11 11 Digits 15 Digits Yes, so now look, it has taken the text, now it is in the text format, it has taken it, above 15, it comes in scientific, above 11, you can convert it into text, in this way it will be converted into text, now no, what I have to explain, you have to explain less because of the custom format, this is the most important, the rest of the things can also be applied directly, so let’s go now. Let’s move towards our custom format. If we are going to do custom formatting, then in custom formatting, the things that I will teach you are according to the date format. What is the date format? First of all, let me tell you a little bit about how we are going to read about the date format. You have any date, let’s take any date like today is 2402 2025. Okay, this is the date and for now, for once, I will move the cell to the side. Okay, now what is the date consisted of, first of all you have day, what is today’s day, then after that comes month, generally what we write is month and after that comes year, what comes year, so now look at their initials, to write day, d is needed, to write month, m is needed and to write year, y is the same thing. If suppose, in what other way can you write them, I just want to explain that to you now. In what other way can you write these? Can you write in this way that NN is Sunday, February and 2025, so instead of writing 2025 like this, I can write 25, it is 25, can I write this date like this? Yes, and what kind of date is written on this date, will it be in short form, we can say that it is in short form, it is a short date or can I write like this, Sunday February 2025, so can I? I can call this date a long format date. Yes, of course I can call it a long format date. Okay, so now I have told you the result of how the general result is done, how your short date is written and how your long date is written, but now let’s convert it into the format. Whenever you are seeing this format, if you have to write this, then we define the day with D, then D will be written, then there is a slash, month. If we define Ko with M then it will be written as m and year we define it with Va and this year is written in full 20 25 So when we have to write anything in complete then we write four times so it will come like this Look, if you want to write any thing in short then write it twice then here DD because Sunday is in short MM because Fab is in short but 25 is also in short so YY Now look here Sunday is written in full so D D D D D February is completely written as M M M M and Yer is completely written as y Wa Wa Wa. So remember the basic. If you want it in short then you have to write it single time. If you want it in short and in text then you have to write it two times and in other wise it has to be written four times. This is a fact because you will check. You can check your month even in the month. You can write June, write April. Everything is in three letters. You can check your days whether it is Sunday, Monday or Tuesday. Wednesday, Thursday, Friday, Saturday, Sunday, check anything, all of them are of three letters only, so it is pre-defined that if you write two times, that means you want this type of answer, if you write four times, then you want this type of answer. Now let’s proof it a little and see, let’s say I write a date here, what is the control, I wrote this date with semi colon here. There is a slash, now I don’t want a slash, I want semicalculus, I will go to home, click on this extension, then click on custom and you can see here, why is there MGM, so the short is two. It means m is given a month ago just because m is here, if I had written d here first and then did DM and then OK, then look this date has changed, 24th February, now it has come like this, I have understood what is the meaning of this format, I have gone to custom, now d is also written single time, m is also written single time, hence single single date has come and y is 2025, that means complete, so it is written like this, neither is it four times, if I If you would have made it two times and I would have given it OK, then look, it is written as 20, 25, it is okay, it will always be written as two times or four times, it cannot be written as single time, OK, if now I have to write the same date in dash, then how will it be? I clicked on this, clicked on extension here, went to custom and as soon as there is a dash here, there is a slash, here we will put a hyphen, say hyphen, say dash, put a hyphen, then we will do OK. It will be converted into hyphen. It’s all up to us as to how we want this thing. It is very important to know the formatting. If these date formats are not available, then you will not be able to know many other formulas too. So, it is very important to have these formulas. Let’s take one more date. Let’s take one more date. Let ‘s say I want a little more of this in the anchor version. So I clicked here, went to custom and here now we will write as per our wish DD D AM D. Wawa y wa four times it was written that 2025 is written in full, so look, in this way your complete date has come. Whereas if suppose we want it in the langar version, then we clicked on it. Come here, we will go to the customs. After going to the customs, D D D D D M is kept small. Let’s keep M M W A Y Y Y OK. So see, Monday has come in full writing, just because I had kept the month short, I had kept it in MA only. Two came and 20 25 I had kept complete, so it came complete, let’s take another date, you will understand that this date was taken, after that went to extension, after going to extension, went to custom and here we write D D D D D M M M M WA Y Y Y and we did OK, so look, it has come to us with complete date written, so this is your custom format of one date, I have explained to you very well which In many ways, you can format your dates yourself. Whenever you make a sheet, you need dates in many ways. So now you do not have to worry about making dates. You can make dates as per your wish. We do this in our life just because they are not used that much right now. This marathon is based on usage, the number of things you use are taught in great detail, here is a For the bar, you can go through the theory that let’s say T is the rate, what does it do for you? It is a place holder. You wrote some text, you wrote it forever and after that you put T the rate, then if you write any text later, this thing will keep coming in front of it. Now what is this ma’am, let’s try it, let’s say okay, we take it here. Let’s say I took this space and I went to the custom, after going to the custom, I took it here and first of all I took the T in the journal. We put the rate, then we opened the double inverted comma, gave a space, wrote tons and then closed it in the double inverted comma and we wrote OK. Now I write 20 here, 30 here, 40 here, 50 here, then the automatic has come with turns in front of it. Why, because what is T the rate tells you that where you are writing T the rate, you can write anything as per your wish. You can, but you have fixed what has to be written behind it. What have you fixed that you told him because I always tell you that whenever we talk about any text, the text is always written inside double inverted commas, so you gave space first, that is why there is space in it too. If suppose you do not give space here, you deleted the space here and you did OK, then see, the space will be gone from here also and see, I had not selected the one here, so in this. If there is space then we can do our format in this way. Now if you want then just ignore the error and your data will come like normal data. There is no problem then in this way you can find your sum. Okay, after that if you want, you can read the star from here that it pats the character, other things are not so important, the date one is the most important, so we covered it in detail, so here we have explained our number format. complete it Now let’s move towards our conditional formatting. They will do conditional formatting. Now what is conditional formatting? Let’s take a small third portion for once and understand what is the meaning of conditional formatting. As is its name, so is its work. What is the name of conditional formatting? Whenever we talked about formatting, when we did the initial formatting, what all did we talk about whether we We talked about the alignment, then we talked about the font, then the font color, the font became the color, after that we saw the fill option, then we saw any kind of color, border, we had done these types of things in the formatting, so now we have to format our data, so it was understood that we are going to decorate it in this way, but there is a condition in decorating too, we will give it a condition that if anything like this happens then this Do it otherwise don’t do it. For example, you made a list of students in which there were marks of the students. Now inside that marks you wrote that if any student has got more than 33 marks, if he has got more than 33 marks, then you make him in red color, otherwise you make him in green color or put the opposite, then wherever there is red, you will understand how many marks he has and wherever there is green, you will understand how many marks he has, so basically. You gave him a condition, let’s take another example, suppose there is a report of sales and you are writing that whoever has sales more than ₹ 10 lakh, we have sold to whomever has entry above ₹ 10 lakh, make it in green color, then wherever the amount is more than ₹ 10 lakh in the entire sheet, there will be green color automatically and by doing this, you will directly know to which party you have sold more than ₹ 10 lakh. This is the condition for matting that there will be a color, there will be a border, whatever you want to do, everything will happen but with one condition. If we talk about the condition, here it was at 33. If we talk about the condition here, it was 10 lakhs or should be above 10 lakhs. So that is your conditional formatting. Now let’s explore their options. Conditional formatting is available to you inside the home tab. You will go to the home tab called conditional. You will get the option of formatting here. Now it comes to the matter, as I always say, if you want to apply anything, first its selection is very important, so here is the selection I am taking. First of all, I want to know the maximum rate to whom I have sold. If I want to know the maximum rate to whom I have sold, then I select this data. I go to conditional formatting. I have clicked here, I have not clicked, I am just coming, so the option has opened automatically, after this you will go to Greater Dan and write here, I want to know, all those above 650 or 700, color them or those above 750, you color them, I have to do it in red color, different colors are available here, I have to do it in red, I want to do it in yellow, I have to do it in green, let’s say I want to do it in green and I did OK. So, whoever was above 700, you will be able to see the color here, whether the color has come automatically here, what we have applied on one data, can we apply something again on that data, the answer is yes, just do not over rule, if you over rule, then the next one which you apply now will take it and will make the first one null and void, so basically now suppose you want to do the same in this only by going to the highlight cell role. Less than means now you have to know more, now you have to know less than 600, if you want then color it red, you did ok, then you realized that Less than 600 have come to you in red color and More than 750 have come to you in green color, so now you will understand just by looking at which color defines what, okay, after that let us assume that we want to see in quantity, we have selected a range. We will go to the condition formatting and we said between, we want to check the quantity between 300 and 400, I want to check who I have sold between 400 and 500, let me know that and all that mine comes in yellow color, then I did ok and it told me, to whom I have sold the quantity between 300 to 400, then I came to know, now I am also able to know from here that the load should be seen twice, urban. I have sold these in medium quantity to Binds and Ekta Creation but at low prices and here I have sold both of them at high prices, so in this way you can get a lot for yourself by applying different colors. You can take all the decisions, you can check the decisions of many, you can check all the things, now this was that normally you have got greater than, less than, you have got between, like we do in our maths too, now comes the next option, what do you get, equals to, suppose you know the exact amount and that exact amount, you want to capture where that exact amount is. It is written for example, I have selected everything and I want to capture the exact amount 376. Where is it written, so I selected it, went to Highlight Cell, went to Equals 2 where I have to go, where 376 is written and after that I want to give a different color of my own which is already pre-defined, if she does not want to give it, then come here to Custom Format, see, the same dialog box opens inside Custom Format, First of all, by opening the extension of Alignment font, it opens and the same key appears, so with more options, you will not feel that oh my God, I don’t know this option, you know, okay, we give purple color here, go to the font, we make the font white, bold and bold, do OK and then OK, then it told me that in the entire data, the amount of data I had selected, if seen inside it, there are 376 here. If it is written, then in this way we can check where something is written, if you know the exact amount, whereas till now all the things we were doing were related to the number, now whatever comes, comes related to your text, like your next comes the text that content, suppose look at the text, if you want to check the text, then there should be data of the text only. I checked this, now I just did not remember much or the name of the party, I just remembered that. Behind that party, it comes with no solutions, so I clicked on the solutions here and said, brother, color the solution written there, so that I can see it and then I will know it, fine, I had talked about it, so now I did OK, then it told me OK, these two entries come to me in the name of solutions, okay, so if you have a chunk of some text and remember the same and you want to find the complete text from it. You can also do this by highlighting the text with that content. Next comes the date ring. Suppose you have selected the date just because. If you want to do the formatting of a number then the number should be selected. If your selection is correct then you will get the answer also correct. If you select the number then you will get the number. If you get the selection of text then you will have to apply conditional formatting related to the text. Now Next. The option which is going to be related to our date, so we have chosen the date, you go to the condition formatting, go to the highlight cell rule and after that you go to the date array, after going to the date array, you get the options here that you say yesterday just because today is 24th of February, so here is yesterday, if I do it today, then today is coming, tomorrow is coming. I have to highlight yesterday, I have to do it with green, so I made it green and I did OK, so you can see this here, you can also check the date, our date today is 24 Feb 2025, so the date we see here which has been highlighted is 2025, sorry, 25 Feb 2025. Okay, if you want, you can highlight yesterday also in the same way and inside this you will get more information. You get a lot of options, which is like last week and this week, next week, last month, this month, next month, you get a lot of options, you can explore it here, the main thing is that you should know what are you going to do in conditional formatting, what is our use case, what do we want to know, whatever you want to know, you can explore it here and different different. You can see by applying options in it, here then you are left with the duplicate values, that is, if there are duplicate values ​​anywhere in the entire data, then remove them, but before doing this, look, we have made it so colorful, so first of all, find out that if I want to remove all this, then how can I do it? So, when you go to the very bottom in Kandi formatting, you get clear rules, then here you get two options, one is clear rule. From the selected cells that I select a cell and remove the condition formatting from it or I call it clear rule from the end there might be chances right now it is very small data It has been taken that there is huge data, there is a lot of condition formatting, you are not even able to understand where it is included and where it is not included, then what will you do in such a case. In such a case, you will clear the roles from the entire sheet, but before clearing it, I will teach you the management once, after that, clear because I have just cleared it, then how will you learn the management? So let’s see the management now, maybe you have some I did the conditional formatting and later suddenly it came to my mind that this purple looks a bit strange, it has become too dark, all the other light colors are there, so we have to change this color, so what you have to do is go to the conditional formatting, you will come down here, in Manage Rules, after coming to Manage Rules, you are not able to see anything because you have not made any selection, you have directly reached the conditional formatting that I So if you want to change then look above, you are seeing the show formatting rules for whom, then you show this worksheet from here, then all the conditional formatting done on this worksheet will be shown to you here. Okay, you have to change this one, you select it and look above here, there are options like this: New Rule, Edit Rule, Delete Rule. What you have to do is you have to edit, you go to edit and after that you Obviously you want to change the formatting, then you go to the format, from here you choose any other color, I take blue from here, okay and we have done okay, now we can apply it, you can also do okay, so look at this, it has been applied in this way, I like it much better than before, so in this way you can make changes. Now suppose I select this cell and after that go to condition formatting and clear rules. If I go to the selected cells and from here, I go from here only , I go from here but I don’t go anywhere there and I go to Clear Rules and want to remove it from the entire sheet, then your conditional formatting will be removed from the entire sheet. Now let’s do what we wanted to explore. Next, let’s explore the one with duplicate values. Suppose I want to know whether there are any duplicate values ​​in the entire data. Not checking in dates, so I selected this and it is talking about values, so text will not work, so we took this, let’s consider text also, so we took this, after that we went here, came to duplicate values ​​and whether to take duplicate or take unique, it is totally up to you that you have to color the unique or whatever is not repeating, so obviously it is the complete data which is not repeating. If you want to duplicate it, then how to color it, you can do it here. Now suppose I make it 521 here too, then it will also be colored. Now suppose I make it 314, then it will also be colored because it is a duplicate. Suppose I make it a color, then it will also be colored. It also works on text, so because it is a duplicate, okay, so in this way all your things work if there are duplicates everywhere. If you want to check, then you can check in this way. Okay, next you get this. What does Top Bottom Rules do? First of all, we have to select the item in which we want to check. Suppose I have selected this and after that I want to know what are my top 10 items. Only two items are 13, so knowing the top 10 is a bit weird, but you see, top 10. If you want to know less, you have to know the top five. So you can also do the top five and from here you can color them, I gave yellow and gave OK, then it measured all of them and colored the top five out of them. Similarly, if you want to know the bottom 10 also, then you select it. Go to the conditional formatting and take the bottom 10 items from here and if let’s say you want to get the red color in it, then you did OK, then the remaining ones are in the bottom 10. Oops, we have 10 should not have been taken because in bottom 10, obviously it will take the rest of the data also, we come to the bottom 3. Okay and did OK, then it told me that your data comes from bottom 3. Now it was normal and directly wrote to you that bottom 10 is needed, bottom 3 is needed, top 2 is needed, top 3 is needed, top 5 is needed and color has come. Now more options come in it, on top 10, on top 5, on bottom 10. But what is it at the bottom 5? Basically if you suppose the whole is summed up and how much comes out at 10, off the total output at 10 will tell you. If you have conditioner formatting then go to the top bottom rules and if you want to color the top 10 para in red color then it will appear on your top 10, there can be more than two values ​​at the bottom, there may be more than one value, your top 10 para is falling on it, there might be chances that it is falling on it too much. Well, you can also change the percentages from here. If you want, then you can make the bottom at 20. But you have to know about 20 and you have to fill green color in it. Look, in this way you can fill more than one value can fall, even one value can fall, so in this way you will get the values, so this is what you have learned now, learned the highlight cell rule, learned the top bottom rule, after that you are going to learn the data base color scales and icon set which is very simple but for that, first I clear this data, so I have just selected. And now I can also do selected cells. Now suppose you want here that the one which has higher rate means the color should be filled inside our cell in such a way that the higher date can be understood. If the one with higher rate can be understood, then you will go to the data bars. Here you get two options. The first one is gradient and the other one is solid. What is gradient? It is the one which keeps the shadow like shadow. Look, whatever color you are doing. If yes, then see the shadow is coming in the last, it is becoming a little light in the last and what is the gradient? What is the gradient? What is solid, sorry, solid is not a solid color, it will look exactly like this, okay, if you want, the gradient is solid, you get the same result, you can click on it, which is more, then that cell will be filled. Now what is it, I can tell by looking at this cell completely, 932 is the highest because the whole cell is After that I can tell that this is 9907 which is the second highest because it is just a little bit left after that, it seems to be 855 or you can say it is 876 or you can say this. In this way you can judge by looking at these colors which one is more and which one is less. It is totally up to you whether you want to show it or not, whether you want to show it with gradient color or with solid color. It is totally up to you. To you, you can show as you want, okay , let’s go next, let’s say I want to show something in quantity, then what do the color sets also do? What is there now? In the data bars, there was only one and it was showing you in the form of bars. What is there in this? Shade shading is like, you will get different shades like middle, so it means the one which is least is dark, then it will be less than that, then in this way you will get less than that. It will be visible in the form also and just like this shading is happening, you can also put the icon in the same way. If you want to put any icon, it works exactly the same way, the lowest number is red, the normal number is yellow and the best number is green, like our traffic light thing, so look, if you put this icon, it came in the icon in this manner, then it was 932 highest, so see green is visible, after that 856 green is visible. After that 855 green is visible, okay, so in this way you get these highlighted and this was your conditional formatting. In conditional formatting, let me tell you one more thing, these are the clear rules, we talked about manage rules, let’s talk about the new rule. Inside the new rule, you get to explore all the same options which you have explored on the outside. If you want to read it in detail like Format All Cells. Based on the values, we just did the format cells that cells that content, so we did the values ​​that contain , format only top and bottom ranked values, we did the top 10, take a look, it is also written in this, you can turn on top 10 or percentage or format and only values ​​that are above and below average, so above and below average, you get it here, let me show it to you. Click below you get to know the average 2499 28 And if you want to color then you can go to this and you can color the above average in one color, if you want to color the above average in red color, if you want to color the below average also, then from here you can give a yellow color to the below average and in this way you can color the below average also, you can get this directly here too, it is ok format only. Unique and Duplicate Values ​​We have tried this now, this is one option which you do not get directly, whenever you want to explore, you will have to come here, that is Use a Formula to Determine Which Cells to Format, meaning formatting has to be done here using a formula. Now till you have Unless you learn the formula, you cannot do it here and even after learning the formula, you do not have to do anything here, just like you write a formula somewhere outside, you just have to come here and write it and after that, if you are satisfied with the formula, then you can get that color done here. We can look into it further, but here we have covered all the other things which were there in the conditional formatting and that too very good. If you have any doubt anywhere, please let me know in the comment section, I will definitely help you and I am constantly saying that you go while writing your doubts and if you feel that I want to learn better in this thing and want to do it, then you can definitely come to the live course also, all the things will be found in the description and what happens is that in live, you can discuss with me which is the best. The most main benefit is and the other thing, now you will get this sheet also, so daily when you get the sheet, do you practice something daily, either you do it in one sitting, then there are more chances of forgetting it, or slowly and gradually, if you start absorbing it in your habit, then we start getting comfortable, so that is the main purpose of life that there are many people who have already excelled and are still doing it. There is only one major area, no, it is that normally, what do you do, what do you learn and then the end of that, yes, we have learned this, the certificate has come and when you do it live, you practice it, now somewhere when you listen to something daily, you understand more, so that’s all, so here we have completed the condition formatting, now we move ahead, see inside the home tab, we People have done the number condition formatting. Now we complete the table cells style and the rest of the things. The remaining chunks are completed and after that we will move towards our remaining basic formulas. Data entry and the other thing is table creation. In normal data entry, you do not have to do things manually, whereas in table creation, you do not have to do things manually and it keeps running automatically. Your data is basically a dynamic one. This is done in the form which is updated automatically, that is why table creation is a better option. In comparison to the data entry and when it comes to the formula, neither is the formula. The bigger the formula, then obviously ranges are given in it. Initially, when I had explained the formula of sum to you, I had explained that brother, we will give the range, then your formula is applied on the same range, so what is a range here? Suppose you have given a range somewhere from a1 to a1, but later you have written the data in a101 and now your data is written in a200, then later when you have written normal data, what will you have to do? You will have to update your formula there. You will have to give the range from a1 to a200 because now your range has increased, now you have entered more data in it because of daily new. The data is being entered but when it comes to the table, initially when you give a range in it, it does not take even a 200 or 100 and will write it like this. The table will write the range in such a way that later whether you enter 200 or even 2000, it will automatically give their sum, it will automatically update your answers, so this is the biggest and most effective use of our table. Mainly, this is very useful in the formula. Now if we have to talk so much then it is important to see how the table will be made. So look, first of all we have to make the table. Let me tell you one thing, whatever heading is there on the table, we call it a header. What do you call header? You select your data. Oops, I am so sorry. You took this, you select your data. Now you have two options, either you go to the Insert tab and here you select the table. There is an option, click on it or what you can do is you can press control t. Table starts with t tab. So if you press t with control, then you will have this type of OK, my keys are not working. It’s okay. If you go here and click on the table, then you will have an option like this. Now what is it saying, My table has headers. If you turn it off then it thinks that the data that you have It is given in the first row in the first column that dates are written party name quantity rate amount is this also your data is it your data no which is at the top It is written that it is a header, it is possible that sometimes you have data in such a way that there is no heading above it, then you should not turn it on. Now it is necessary to turn it on. My table has headers and if you do OK then now your table has been converted into a table with a header. Always remember one thing in Excel. When we insert something separately in Excel, then if we have to make any changes in that inserted thing, then a separate tab is automatically created. Otherwise, you have as many tabs as you have , but it comes as a separate tab. Now like I have inserted this table, in a way, I have converted my data into it, in a way, I have inserted the table, so whenever I click here, I get the above format of a table design. Look, click somewhere outside, it will go, click on this, it will come, isn’t it coming because it thinks that I have inserted a table, now whatever. If you have inserted, then whatever changes we want to make in it, we will do it through a new tab. First of all, whatever work you should do, what work should you do? Even if you are doing any work in your real life, you are creating a lot of tables inside it, if you are doing a lot of work, then I would call it mandatory, so that you can make the work easier and make it better. What should you do for that? After creating the table, you should name the table here on the very left side of the table design. And here you don’t have to give space. If you give space then the name will not be taken. Okay, so don’t give it space. Name it anything. I have given the name of Sales to Sales, so what will happen in the future, whenever you have many tables, suppose you have a lot of tables, some are Purchase tables, some are Sales tables, some are tables of employees’ details, there are many tables and you have to go somewhere and apply a collective formula. If you have formulas somewhere, then this is yours. There is no table one, table two, table three, what did I just explain to you? Look, normally, what happens is that a1a 200 is done in this way, but in the table, he takes the range of the table and writes the table range, so now table one range would be written there, then you will go around wondering what is this table one, now go and check whose table one was, table two whose it was, table three, so if you name it that is the sales table or the purchases table, then now. Even when you apply the formula, it will come by writing ‘Sale’ or ‘Purchase’, it will not come by writing ‘Table 1, Table 2’. Table 1, Table 2 was coming only when you had given that name to it. Along with this, you can see above that these filters come. We will learn later how to use the filters. This comes by default in it. You can go to the table design and change any color from here. If you want any color and type of table, then you can convert it into that. It is totally up to you that how do you want your table, I want it in this way, I want it in this way, I can keep it like that and inside the table design, what are the options you get? Header, we want total, we want total in this row, below is the total. If you don’t want, then you can turn it off and in this way you get other things. If you want to remove duplicates from it, then you can remove them directly. Have you removed the duplicates? Yes, check among these. Is and after that you can check in it, if nothing happens then it will not be deleted. Now we have learned about the normal things about the table. Now it is very important to understand the difference between main data and table. It is okay to have made the table but it is also very important to know what is the difference. So, let’s do one thing, take one data and after that we will know easily. So, I copy only this from here and enter control alt vv. Now why did I do this, I will tell you this slowly later on. I will explain it to you there, you will get better clarity. Now if I sit to explain, you will not be able to understand and I will not be able to explain because you have not got that understanding yet. Let me format this data for once. As you can see, these are numbers whereas they should come in dates. So what will I do? Now, I had explained to you the number format, I will go to the number format and convert it into short dates. If I want to select this data, then control a. I can select this data with Alt AB A, I put borders inside it, with Alt ABT I put borders outside it, and just because for now, I have converted it to normal values, so this is not our formula, so we will apply a formula, quickly equals to this multiply by this enter, so like this Now double tap on it, you will have these formulas. Now we will start understanding the difference. How can the difference be understood? Suppose, now I have to make a new entry here. Let’s enter from today’s date. So I entered today’s date. Here I name anything. Stella Stella Rojo. I named something like this and look here, automatic zero has come, that means it has automatically updated your formula here, do not wait. Here it is 2000, here I have given 100, so see, it has updated automatically, so does it do the same thing here, it will do the same here too, but why does it do it, I will definitely tell you the difference, here I write Stella Roger and then here also I write 2000 ok here also I write 100 and here also we are getting the answer, so ma’am you were saying that all the things in the table get updated automatically. But it is not happening here, it is happening here, look why this is happening now, let me tell you the reason. Now as you can see, here it has automatically applied the thick border that I had applied here, it has taken it automatically in the correct manner, so you can see that here it is not in the correct manner, one thing, so you see this, the second thing, I had shown you here already zero, it has automatically updated your formula, that is not the thing here. I was waiting to see if any value came. Is this happening? Why is this happening? Due to a setting in your Ekal, there is a setting inside Ekal that if you make three-four entries in the same pattern and after that you keep writing something, then it automatically considers it as a pattern and starts answering. Now where is that setting, like you will go to the file, you will go to Options and from here you will go to Advanced, then you are seeing that you are allowed editing directly in the cells. Extend data range from the formats and formula, you do one thing, turn it all off for once, turn it off, after that you do OK, now I will make an entry here and after that you will see, now we are going to make an entry again with today’s date and now I would have written here robot robot robot chucks, after doing this I have written anything, I have seen random 500, this zero comes already, this is a great thing. Okay, so I have come to this, now I do the same thing with robot text and now look, it did not even take this, it did not even correct the alignment, earlier it was correcting the alignment, 500 150, and no answer, why because you have turned off a setting of your Excel, then there is a setting due to which your data keeps getting auto updated, otherwise it does not get auto updated in the normal data, now suppose I turn it on and go to the options. After going to the options, I go to the advanced and turn them on. We turned on all the settings that were there and from here also turn on the automatic search. Now when you do it, it will take it automatically, then we delete it, do it again. Here we will take robotics. There may be chances that he may or may not take it because we have already entered once, now he has taken it because now he has followed the pattern and we have turned on that setting. That the pattern which is written above should be extended below also and take it in that way. Okay, so this is what we have, how to make entries inside our data, what difference do we see in the table . Now one more main chunk, I am going to tell you about the table creation, I am going to tell you one advantage, which is the slicer. Let us now look at the slicers of the table. See, we get the slicer inside the table. Now what is the function of this slicer? It allows us to easily access our data. For example, suppose one, these are filters so that if I want to see anything, just want to see something of Aqua Pure Solution, then it has shown me the data, so in this way we can see from the filter, but how big is the process of filter, you will go to this filter, select it, after that, you will check, it seems quite time consuming, it seems to be a big process, so what can you do in such a case, you can insert a slicer, now you can insert something. If you want to do this and that too is related to the table, then you will have to go inside the table, then click somewhere on the table and go to table design and here you will see the option of insert slicer. It is asking you whose slicer you want to insert, meaning for which thing do you want a date slicer, whether you want to filter your data according to the date, whether you want to filter it according to your party names or according to the quantity, rate and amount. So I take the party names, I do OK, now I adjust it here, anywhere else, for once, I adjust it here, clicked on Aqua Pure, Bharat Craft has come, Ekta Kapoor, Sorry, Ekta Creations, what has come on Green Leaf, Organics, what has come on Innovative Solutions, if you want to do multiple things, then if you want one, then turn off the filter, this crossing means filter. Only off, if you want multiple, then you turn it on, it is on, Aqua Pure Ekta Heritage Mastek, now everything is selected, no, remove it, I want these, so this has given me the answer to these, in this way you can do this, you have also inserted this slicer, if you click on it, there is a separate tap for the slicer also, see, I always say that if you insert anything in Excel, then there is nothing in that inserted thing. If you want to make changes, then you get a separate tab for that and you should make changes within the same. Changes can be made from within the same. If you want, you can also keep your slicer related to this, so that is a beautiful one, it will show you that, you cross it, the complete data will come, you can also adjust it, you can make it smaller or bigger in this way, now I delete it, you can show the slicer in this way or else I can control it here. I do plus plus so that we have a little space and I select it and do Alt AE A so that it gets deleted and I place my slicer here. In this way, the slicer is automatically placed. I can make the color a little better, so I take green. It looks a little better on the screen. So, in this way, we create our data. In this way, your table creation is done in this way, all the things are done. I hope you understood it completely. If there is any doubt anywhere then please let me know in the comment section. Let’s move ahead a little. The other thing is cell style. What does cell style do to you ? Like suppose you have taken this data, you have taken this data and copied it. I just create another sheet, rename it with cell style, do end ok and here I enter control alt vv so that my data comes in. Okay, exactly the same way as I had fixed its formatting earlier . Similarly, if its formatting needs to be corrected, then I will quickly correct its formatting. When you do this work again and again and you see it being done again and again, give it all. I also had the option that I can prepare everything in advance, but this thing is known to you, what happens, we will not show you the process right now and will tell you all the things directly, then how will you be able to relate because in your life, you will also have to correct similar things, so that is why we do it in this way. So see what the cell style does to you or does it help you directly ? Now I do one thing to do any kind of formatting. Now I do one thing to make it normal. Now what I do is select the entire data, take control A and after that I go to the cell style and select anything. Here, I can directly do the formatting of the table in the way I want, it will give it to me directly, after that if I want to make any changes then you can do like That now it seems a little light to me, so I made it dark, I want to make it black, I want to make all this black, so it has come in black, I like it better, now I want to give it any color, so I can color it, so in this way you can change it later, it seemed beautiful to me, so I made it in this way, so this was your cell style. Colors are pre-defined inside the cell style. If you want, you can change the themes of these colors as well. Right now you are seeing one set of colors here. If you want that this set of colors should not be visible , if you want to see some other set of colors, then you will go to the page layout. Here you will go to the theme. Inside the theme, here inside the colors, you get many different types of palettes. Suppose you have taken this palette, now you will see in the cell style according to that palette, then the color has changed here. Now you are seeing the colors. Look in this way, I have seen this cell. Selected and went to sell style and I took this color, it looks so beautiful. One of my favorite color. Okay, so this looks so perfect. If you wanted any other palette, then you can take another palette in the same color from here. See, whenever you change the palette anywhere, overall because you have done this work using a single palette, then overall the entire theme of the system gets changed. Now you will go to the home and look here, you will see that the theme of colors has changed, there will be some other colors first, you are not able to understand. Once you remember these colors well, what kind of colors are there, okay now I go to the page layout, go to colors and here. So now you go to your home and see the colors here, the theme of the colors has changed, earlier it was in a slightly reddish reddish color, now look, it has come in this way, so with this, the colors can be changed not only in the cell style, but also in the cell style, which seemed to me one of the beautiful, one of my favorite seemed to be not here because I changed the theme from there, so it does not change only here, it also changes there in our home font. If it is changed then it is a cell style so that you can do any formatting directly, you do not have to do much hard work, this was one thing, the second thing is that I would like to tell you about a shortcut, let’s say do Control C and enter Control Alt v v here, now you just change its format and nothing else to do, you did the short date, did Control A, did Alt and C A, did your data, now suppose you want to do any formatting directly, you should do it in this. If you don’t want to do any hard work, then what you have to do is, you have to select this data, after selecting the data, you have to press Alt O A, then after this a window like this will open in front of you. What can you do from this window, whichever way you want to format, you can do a lot of formatting inside it. Suppose I like it, I have given OK, then this formatting has been automatically converted into it. If you want to do any formatting directly then this is the direct formatting. You can also do this in this way, what have I pressed, I write the shortcut key here, which is Alt OA, okay, your shortcut key, I have written here Alt OA, so in this way we work in our A cell style, now let’s move ahead, so look, till now we have completed our cell style, after that if you see any feature, then those features are visible here for insert, so we have already made you know where you know how to insert the cell. How you have to insert a row, how you have to insert a column, we have learned its shortcut keys, after that comes the delete key, we have also learned how to delete something, after that comes the format. Inside the format, we have learned the row height, the column height, it has to be auto-fit, all this, now comes the turn of hide and unhide, if suppose you want to hide something, suppose till now. You have done this work and now you have to hide this cell, if you want to hide this column, then you can hide it from here also by right clicking or you have this option inside the format also, so why do you have to go so far, you have to right click from here and then click on the hide option . Here something is hidden, if you right click and unhide it, it will be unhided, so in this way we hide or unhide something, in the same way, if we want, we can hide or unhide any sheet too, like I have hidden it and if suppose later I want to unhide it, then I will click here only and unhide it here and it will tell me that I need to unhide this file. If there is more than one file, then you will see it here. If you do OK, then your file will come back here, that is, your sheet will come back. So in this way, if we want, we can hide or unhide our daily columns or our sheet. You get this option here also, but there is no need to go there and do such a long process. You can get this option by directly right clicking. This option is there in almost all the formats. If you get it by right clicking, then I like the right click option better like now you have the next option, take rename, take tab color, take protect sheet or take mover copy, take hide and unhide, then here you can check hide and unhide rename sheet. Move Copy Sheet Tab Color Protect Sheet Lock Cell So almost all the options we get by right clicking, you get the same options here too. Now let us move a little further in this Rename Sheet You know this thing how it is done, you click on any cell, any sheet and rename it here and you can rename it, okay, we have given that cell, after that suppose you want to color, then you right click and tab. Press on the color and you can do whatever color you want. I had made it purple, so we will keep it purple. When you are on that sheet, then that gradient fill will be visible on the sheet. As soon as you come out of that sheet, if you are on any other sheet, then you will see that solid color. Okay, after that, the most important thing is that there are two things here, the first one is mover copy sheet and the other one is protect sheet, so I am giving you both of these. Here, I am going to teach you, first of all, what we will learn is mover copy sheet. Suppose now you need another sheet which is exactly the same as whatever work has been done on this sheet . In this workbook, I am explaining to you by taking three scenarios. For now, I want a copy but in this workbook. Now either, what is the first method I have that I select the entire data and do control C and then create another sheet and do control V in it, then it is a time consuming process. How can we do this work directly? What do you do to make it exactly the same? You are on this sheet of yours, after that go to the format, click on move and copy sheet here, understand a little what it is asking you, first of all, the names of all your sheets are coming here like number format is theory, number format is theory, so in all the sheets, whatever number of sheets you have, that is, whatever number of sheets are created in the workbook, that name is coming here, The Other. The thing is that what do you need, whom do you want to copy, now suppose I have to get the cell style done, so I clicked on the cell style, OK fine, after that what do you have to do, create a copy or not, yes, you will have to create a copy, okay, I did it, the cell style has come here, look, the cell style is the same, you will not even be able to tell the difference, it will come in the name of Tatu, but you say no, we don’t want, we need it in some other file. Meaning, this file should remain here and should also be moved to another file. Okay fine, if we do this then what will we do, we will send it to cell style two, we will do the work, then we will go to format, move and go to copy, select cell style two. Now we are saying that the copy of the sheet that we will send there should also remain here, meaning that sheet should remain here and in the one in which we will send it to the new one, so here we will turn on create copy, now you have to send it somewhere else, that’s it, right? If you want to send it somewhere else then now you will have to choose another file, first you have to select the place where your file is, then as soon as you click on the place where you want to send it, you will see all the files which are open in your Excel, you have to keep them open in whichever workbook you want to send it or the other way is that if you want to create a new workbook, then New Book is also written here, so suppose I want to send it in Book One and OK. So here I had another Book One open and Cell Style Two has arrived here in exactly the same way. Okay, in exactly the same way your Cell Two has arrived here. Okay, suppose we come to this only and Cell Style Two. Now we will send it again but will send it in a new book and now we want it to go from here, it should go from here, it should not be here because what will we do with two sheets of paper here, then we will go to Cell Style. Now we will not click on create a copy because in such a situation it copies it. Now we will directly click on the new book that we want in the new book and do OK. So see, a new book has been created. Look, now you will say that it is not the same as Book One. Look somewhere in Book One, there are Sheet One, Sheet Two and other things. This is a sheet in itself and another sheet has been created with the name of Book Two and has come to you, so in this way you can get it very easy in Excel. You can move your data here and there, you do not have to select the entire data again and again by using Control C Control v. For example, suppose you are seeing the data till here, now here below, there is some data written at the very bottom, it will not be copied but it will remain because you have not seen that data, so when we copy and paste manually. So there might be chances that we make a mistake or leave some data but in this way your sheet is exactly moved there and also copied, whatever you want to do is done directly, so this was the way we have to move and copy, now it comes to you that you want to protect your sheet, meaning if suppose you have done some work, now you have to go for a break or an important call has come and now you Do you want to say, hey, I will go, if someone does something in this time, my work will get ruined, so we have to protect our work, we basically want to protect our work, we want to keep some kind of protection in it inside our system, then what can you do, you will go to format control, that is, you will go to format A, from here, click on protect sheet, make sure that these three arrows are selected, basically let them be locked and unlocked. The type of cells can be either locked cell or unlocked cell. Now if you select both then it means that all the cells will be locked. Okay and after that you can give any password here. For now I am giving 1 2 3 password and it will ask us to reenter 1 2 3. We gave it and we will do OK, so in this way now this password has been protected. Now how will you know whether the password is protected anywhere, you can do anything. If you try to write, it will not let you write. The cell and chart you are trying to change is on a protected sheet. To make a change, unprotect the sheet, you might be requested to enter a password. OK, so what will you do? You can do it from here again, you can do it on the sheet as well, it is the same thing, you will go to the unprotected sheet and enter your password here. 1 2 3 And OK, if you do it, look here, now you can enter your password. If you want to write anything, you are able to write, it is allowing you to enter. Okay, if you want to do this temporarily or not, I have to do this thing, put the password again and we are going out, you can go for a break, no one can write anything, we are trying to write something, it is not allowing us to write. Okay, so in this way you can protect your sheet. This option is also available here in the format. Look at the home tab, which is a summary. Most of the features are inside the Home tab of the entire Excel and there are some features in the Home tab which are for the overview, you will get those features later too, like here I unprotect it for once, like you saw the Protect here in the Review tab, when you go inside the Review tab, you get the option of Protect Sheet and Protect Workbook here, but if you do not remember there, then you will get it here under the Format too, if it is not there then also. If you right click, here also you get the option of Protect Sheet. Basically, you are protecting the particular sheet. Okay, so in this way you can put the password here. Now we have completed this which is our format, after that what comes to you is Autos. You have already done the rest of the things. These are the functions, we will do them only when we do the statistics, after that I want to teach you this series. So, we will start very basic. If we start from basic, then first of all I will give it a name. Okay, here we have

    different different things. For once, I will also give it some color. Now, when we are giving color to all the things, then it is not this, which color should we give? Give us blue, what about blue, okay, see what it does basically. The first thing I will tell you is that you have to fill any thing, see what is this option, this is the option that you will get. It is visible that this is the option of fill, and what is the spelling of fill, it is FI, so remember that what is this option, it is the option of fill, what will be the spelling inside it, it will be FI, so now if you have to do anything inside the option of fill, then see how its shortcut key will be made. Let’s draw once for the shortcut key and just give me a minute, we will adjust it and We have come to the draw page and see what our activation is, what does it mean from alt to home page, where do we go from alt to home page, what is the spelling of fill better than H, F I, so remember now, whatever work we will do in this entire sheet, it will remain as Alt H F I, next to this, that thing will keep changing, after this, whatever you have to fill, the name will keep coming according to that. Everyone must have understood very well that what is Alt, what is H, what is F a. What is ok, now let us work in actual, see what is the first option that comes, suppose I write here Tanu Single, I have written this name, ok, I auto adjust it with double tap, fill some color inside it, like I wanted to fill a good color, this color is good and we have filled this color, given a border in it, in a way it looks quite good, ok, if I want the same content at the bottom, that means exactly. We want that thing in the cell below, so basically what we want is that the shortcut key to fill down fill down is Control D. I am telling you exactly the shortcut key. If you want to go directly from here, you can go from here too, but I will also tell you the way to go from here, but remember this one, Control D and if you want it on the right side, then Control r. Now let me tell you one thing, what does it do? Basically exactly the same if there is any other color here. If there was a different color font here, then it would also have chosen a different color font. If there was a different size font here, then a different size font would have come here too. Exactly copy paste does exactly copy paste. So to know us about fill down, I write here, what we did for fill down, what is our shortcut key for fill down, fill down and fill down, control D and this is what we did, fill right and What is the shortcut key we have for fill right? Control R is fine and at the same time if I want to go according to the home keys because you get this option in the home tab then Alt HFI and it is found D and right is called R. So if you want, now you have two shortcut keys meaning one more thing, meaning the easy one, if you do not remember this then what shortcut key can you use because now you have generated the shortcut keys from the home tab also . Alt H means Home F I Fill and after that it is D, it is D, neither is it D, and here Alt A A I D D will not come, what will come, this is right, otherwise r will come, okay, this thing which I have just told you has been done for down and right, if I talk about the same thing for once, I copy it and paste it here, if I have to do this thing in the upward direction or if I want to do it in the left direction, then I have There is no shortcut key. We don’t reverse anything anyway, we don’t go up, so that’s why the main thing is used only. If you have to do something on the left, then you will go to the left cell and after that you will click on the left, then it will be filled in the left. If you have to go to the up position, then go to the up position and then go up. Okay, we can do this directly, they do not have any shortcut key. Okay, I understood, generally we either We move towards this or move like this, that is why their shortcut keys are available with us. Okay, everyone understood, so what did we learn here? We learned these four types of fill: Down, Right, Up, Left. After this, what we are going to fill is a series of fills. Which is the most important thing, so let’s listen to how the serious feel is. First of all, let me look at you in the serious feel, first I will give you the complete feature, and then one last one. I will also write a formula, okay, let’s write a series, first of all, let me tell you the normal series. If I want to write a normal series, then I wrote one and I can drag, one way, I have this and I can do the fill series, one way, I have this, I take it a little to 10, it is okay, the second way, what do you have , the second way, you have this, you write the initial number here, one and go to that initial number and here in the series. Go, after clicking on the series, a window like this comes to you, now what does this window say that what you have to fill, you have to fill it daily, you will come to fill it daily, otherwise it will go like this, it will go like this, I will do it one by one, let me tell you how the daily works, keep it in daily like this, linear means what is linear used for, plus is used for minus, so plus minus means we are adding one number one by one, isn’t it technically you? When you see the series 1 2 3 4 5 6 7 8 9, if you check it technically, then what are you doing? You are doing the same thing, then here you write one in the step value and assume 10 in the stop value, because you have to write till 10, then if you have given OK, then it will write it in this way and give it to you. It is okay, but you did not want to write the column in this way. That’s why we choose columns instead of rows, we have taken columns, we have taken linear, only one plus has to be done and here if it stops at 10 or 10, then till here your value will come directly. Now you will say that ma’am, we can do this by stretching, that is, we can do it by dragging, why should we achieve so much, these were also 10 numbers, so that is why you are feeling that I can do it by dragging, but if this is the same thing I can do to you. Say, if you want to do it for 1 lakh entries, then till 1 lakh you will keep dragging and here you have to write the amount by just one go, so you will write it directly. Okay, so this is what we do, this is our series. Now let me tell you another way. Suppose you have to write some pattern. You have to write the pattern. 2 4 6 8 10 If you have to write the pattern by doing something like this, then what is happening in this pattern. What is happening in this pattern that I have started from 2 . Starting with that, we write the numbers, OK, then what is happening + 2 4 + 2 6 + 28 8 + 2 10, so basically two are being added, so in this way, if we have to write any pattern, then we will go to this, we will go here, meaning we will go to our fill, we will go in series and what do we have to fill in, first of all, why do we have to do it in the column, now you have understood because every day, he will give us all the answers like this . If you want an answer, then this is your column. The second thing is that you have to keep it in linear. Whenever you have to do plus or minus, if you keep it in linear, then you have to do plus or minus. You have to do plus. Well, how much plus has to be done. Step value means, how much has to be done, then you have to do two and when to stop, what answer should come, stop when you reach 100, stop where the last 100 comes, then stop . If you do OK then 2 4 6 8 10 12 14, see, you keep going on till 50 values ​​till 100 is reached. Everyone has understood the guess. If you don’t understand then you can do the same thing. Let me show you in some other pattern. Let me show you in some other pattern too. Let’s say I is 100. Keep subtracting F from it until the answer is zero or till the answer is one. Okay fine 100 is written in the series, now what do you have to do in the column but now you have to do minus F because now you have to do minus and for how long when the answer F does not come, for Apple you have to do it till the answer F comes OK then 100 95 90 will keep decreasing and it will keep going till the answer F comes in the last, okay so it is up to you how you can implement any feature. When you use your features, you get to do it in this way, whatever is linear is for plus minus, just remember this, I will write these things to you, what we have done first and what we have done for linear, what we have done first and what we have done for linear and use for plus minus. Okay, so those who use linear, they use for plus minus. If you have a basic understanding of how the pattern is being filled, then you will understand these things. Now let me do one thing here and delete it so that we can talk about the second series below. Second, what do you see here, if you go to the series, then next comes to you, growth growth, which is growth, which deals in multiply and divide. Second, the one that comes to you, comes to you, growth and growth deals in what , deals in both of these, in multiply and divide, you will say that this See what kind of pattern it is, suppose you have written two, till now what was there was that you wrote 2 + 2 4 4 + 2 6 6 + 2 8 8 + 2 10, it was going on like this but now when you use growth, it will be 2 * 2, then it will be 4, but 4 * 2 will be 8, 8 * 2 will be 16, 16 * 2 will be 32, 32 2 * 2 will be 64, that is this. If it will grow in the same way then you go to the series and select the column. Now to take growth, what do you do here? Write 2 here and stop value 100. Then stop till 100 is reached. Do OK then 2 * 2 4 * 2 8 8 * 2 16 16 * 2 32 32 * 2 64. Now 64 * 2 becomes 128. 128 is greater than 100 and you had given the stop value as 100, so beyond that it did not give the answer. Okay, in the same way, if you want, you can divide it. Now like you have written 100 and after 100, you have gone to the filter, that is, you have gone to the fill, gone to the series, gone to the column, gone to growth and now you have to change the step value to 0.5, keep deleting by half the number and till the answer. If you don’t get five then ok let’s try 100 Did Ba 2 50 / Ba 2 25 25 / Ba 2 12.5 12 Did Ba 2 A 6.25 makes half of that, it has come, you just have to be a little careful that what values ​​should I put in it so that I get exactly the answer I want, then putting those values ​​is your main here. The work is going to be done, if you have put those values ​​properly, then all these things will come to you in the correct manner, so that is your growth and linear, you have also done the growth, now the main one comes, the end date of the day comes, this part of the date is used the most. Within the date, I have already told you in number format but still let me tell you what does date date mean today? You can see the date of 25th Feb 25, this is today’s date, so what is inside it, day, month, year, okay, so one way can be that I keep increasing every day from today, one way can be, I can show month wise and one way can be, I can show year wise, right now I am not able to understand it, it’s okay, now we will understand, okay if you see the example, you will understand, suppose I have taken today’s date. I took the date and after that I want to drag it, then it will get dragged, either I can drag directly, we do it when we have small data, we have to drag for some time, like for a second or two seconds, within three seconds we can do that thing by dragging, so we obviously do the drag thing but when it is taking more time than this, then do not drag, after that what do you do this Take the date and suppose you want to write from 25th to 26th, then you will go by dragging for a time, then you will have to pay attention that when 26th 25th February 2026 comes and then you will have to stop and there is one way – go to home page, go to the series, go to the column, why are you going to the column. You know this thing, go to the date and there are two things in a day, one day comes that is a normal day, the way other things are coming and so on. If a week day comes, it will automatically remove your Saturday Sunday, that is, you don’t need Saturday Sunday at all, if your days come without that, then this is also a liberty in it and the good thing is that if suppose you have to write only working days in this way and want to remove Saturday Sunday, then it will write it to you. Now suppose you want to write it only till the third March, then three three just because will remain till here, so okay, look here. Now suppose it has come, now you have seen that the step value is also written there. Now if you wanted to write a date in which if two days are lost, then you will go to the column, here you will write two in the step value and after that you will write 03 03 2025. Okay, so look, 25 has come, 26 has been left, 27 has arrived, 28 has been left, 20 first of match has arrived, second has been left, third. It has come because you have given two values ​​so that by adding two plus it comes in it, then in this way, if you want to fill any pattern, then you can fill the pattern, you check your step value, it will come only by adding or minus to the step value. If you want to reverse it, then put a minus, like suppose if I write 03 03 2025 here and then go to fill, go to series, go to column, go to date. I do -2 and I say keep writing till 25th January or 25th February comes, then see 3 1 27 25 You can also do this in reverse, what have you written this time, if you have written -2 there, then it happens in this way, now I will tell you the week day thing about the same thing, if you have to write the week day, then on the week day, first of all we will do this thing, then we will do this, then we will do this, so that you understand the difference, okay for the week day, you will do the same thing. First take today’s date, after that you go in the series from here, leave one in the column and from here take the week day and take it as 03 03 20 25 and ok so this came to you 25 26 27 28 and one and two he has removed it May be one and two Your Saturday is falling so one and two he has removed it Directly three has come Now the same work if we have someone in it If we want to do addition then we can do that too. We have this value. After the value, what are we doing? What should we do in the gap of two days? After that, we went to the series. After going to the series, we took the column, here we put two and this time we took the week day and the stop value, we took the same 3 3 20 25 and did OK, so see 25 26 is gone, 26 is gone because we called it two step value. If it was then it will give according to two values ​​and after that 28 is also gone because 28 will not come, the next one was supposed to come from that, why did the next one not come because it was within the week day, two did not come, so these three dates are left, like this we can do the reverse also 03 03 2025 And here we went to the fill series, after going to the series, went to the column and after that we went to the week day and here is the pay step value which we have Given -2 and the value that should be stopped here is 25 2 2025 and Okay, so we have these three dates. Okay, last thing, what is left with you for the month? Suppose, if you do this three times and you want only the month to be dragged, then what will you do? After going to the series, we will go to the date in the left column and will do the month. Now till how much do you have to write, suppose you have to write till 25 12 2025, then see 3 4 5 6 7 8 9 These middle ones are increasing. Which is your month? Okay, if you want to do the same thing for the year, then write down today’s date and after that you go to the series. After going to the series, you take the date from here and go to the year. Whether to increase by one year or by two years, it is your choice. I am trying to increase it by two years. I have shown this and after that, I am trying to reach where I have written 25 to end, okay two dashes. It took 20 15 ok then 25 27 29 see the date in between is not changing, only the year is changing and it has come to 49. In this way you can write the date of whatever pattern you want, you can write series which is fill series, it is mostly used for date, it is mostly used for date, now it complements the series itself, if you believe that then this is the feature. If you do not want to use this, then you can use a formula. Which is equal to sequence? What does the sequence do? Tap on it, write as many numbers as you want, directly want up to 1000 or only up to 10, you write this, enter it, see, a series up to 10 will appear, this is your formula, ok, date is needed, something has to be done for the date, Equals to sequence tab, sorry search, the tab has come, right? How many are required daily, let’s say 10 days are required and 10 dates are to be written, how many columns do you need, that is, how many columns are to be written, suppose I have to be written in two columns, then two OK, where to start, if it starts from today’s date, then you can write today’s date or you can apply today’s formula, let’s do this thing further, just because right now you will not know the today formula because we have not made those formulas, so normally you can understand. That we can do this even by applying the sequence formula, but it is better if we do not apply the formula because the references come from the formula, we can mess it up later, if you remove anything in between, it will create a mess, so that is why we should do it in this way by using this option, rather than you use any formula, we will learn the complete formula for this later, but for now, we have learned this much. If you have any doubt then you can tell me in the comment section. I say this again and again that all of you either tell me your doubts one by one or keep writing those doubts as you are reading because it is difficult to cover the whole thing in one go, so your doubts will come continuously. Slowly, slowly, slowly, you will get the answer and solve it and if you think, I will see everything in one go and After that, if I ask all the doubts in one go, then it is totally up to you. If you want to ask like this, you can ask like this. Okay, here we have completed the series. After the series, we get a clear all which we have done. After that, we get the filter. Filtering is very important. Filter and Sorting is one of the most important topics of Excel. The best feature is the single which helps us in many things, which also helps us in a lot of reporting, it helps us a lot in understanding something after seeing it, especially with the data, so now we will do sort and filter filter and sorting. What is if I talk about filters, then let us understand a little bit three times and after that we will get a little better clarity about it. So just give me a minute, so see us here, I will make a filter, just ignore my drawing. Okay, so we made a filter, okay, how does a filter generally work, for example, if you put 200 liters of water inside it, okay, 200 liters, you put water inside it and what is coming out is 185 liters, that means, what are the impurities in 15 liters, the 15 liters of water that was impure has been removed and 150-185 pure water has come, okay, so what is the effect of applying a filter? It happens that you separate the things, whatever you had to separate into pure and pure, the filter has done it, so in the same way, suppose there are many things written inside a data, like you can see the data, here date is written, name is written, category is written, product is written, state is written, there are many things if you want in your mind. It came like this, okay fine, many states are written here, I want to know how many sales we have done within Assam, do you want to know how many sales have we done within Assam, you just want to know, now if you sit down to search on your own, how much time will it take, it is a very time consuming process, so in such a situation, you will filter out, what will you do to filter it out, okay, let me tell you how the filters are applied, whenever you have to apply filters, you will go to the heading of your data. You will go to any heading. There is no mandatory whether it should be the first heading or the last heading. You go to any heading and click on it. What will you do after clicking? In the home tab, I will tell you the direct feature once, after that I will tell you about the shortcut key. Okay, so what will be the direct feature you will have. Look here, this filter which I made and told you about, you can see the same shape now, so you will click on it and there is an option of end filter, its shortcut key is also written next to it. Which is Control Shift L, then you click on it, your filters will be applied, drop downs like this will be applied, the way to remove them is also that if you go to this and click on the filters, then they are removed. Now I have to apply filters anywhere, obviously filters will be applied on headings, so if I click on any heading, I will press Control Shift L, then my filters will be applied. Now we were talking about how filters are used for. Example, if I want to see, now I have different categories, electronic, decker, fashion, etc. If I want to know how much electronic I have sold, then it will consume a lot of time to check it myself. I will click on this drop down. Just give me a minute. I will click on this drop down. After clicking on this, I will get a window like this. Whatever data you have, write here all the unique values ​​in that column. Now you have to see only electronic data, so this select all is already selected, remove it and after that select electronic and after that you do OK from here, by doing this only electronic data has come on your screen, rest of the data is gone, you are able to see, you have only electronic data, I will show you from here, see only and only you have electronic data, then in this way you can filter out, now you have filtered but if you want to go back. If you want, then there are two ways, either you directly press control shift L, then the filter is removed, removing the filter means that the entire data as it is will appear in front of you, the second method is that you will click here and it is written here, clear filter from the category, you will do this like this, the filter which was applied from the category will go away. Okay, the next question of yours is that ma’am, can we apply more than one filter inside one data? Yes, absolutely it is. We can take an example and let’s go with the same, suppose I wanted to know how much electronic has sold in the category, then I did how much electronic has sold, how much electronic has been sold, it came, after that you know that electronic is fine but I want to know further that how many laptops I have sold, so we did electronic, inside electronic, we had to know how much we have sold laptop, so we got laptop, then you say, ok, about laptop too, but I want to know how much the females bought and how much the male bought, I said ok. Then we will impose fine on gender, how much did the mails buy, okay, but I want to know how much was sold in Rajasthan, so you will select it and remove it, we will keep checking below, Rajasthan starts with R, so here Rajasthan is and after doing okay, we have only these four entries in Rajasthan and this much has been sold, so it has come to us, so look everywhere, there is a symbol like this above the category, there is a symbol like this on the product name, there is a symbol like this on the state too. There is a symbol like this on the gender too. Having this symbol means that there is a filter on it. Now suppose you suddenly remember that no, I don’t want to remove it on the product name, it means I don’t want to put a filter on the product name, I had to put it on the rest, so now either you will control it, then the whole work will be removed, so in such a situation, what will we do, we will click on whatever has to be removed and here comes Clear from the product name. If you click on it, then look away from here. there is space left You applied the rest later on like state, gender but still they are there. Okay, so in this way you can remove your filter even from an individual and you can automatically filter out your data and see it. So in this way, our filters work for us and help us a lot. Now suppose I want all the data back. So what to delete after going to each one. Directly press control shift l and control shift l and the drop down will come back. Okay, in this way you Let me tell you one more thing, if you click on the filter, you will see some options above here, Sort A & G. If you click here, then the options you see are Small to Largest. If you click here, you will see Oldest and Newest. So what does this mean? Look, one thing is very simple. Let us understand that if you want to filter out anything, then filter it out in the same data. Now let’s talk about the text. If we talk about the text, then if the text has to be arranged, what has to be done, if the text has to be arranged, then how can it be arranged? How can it be arranged? So how obvious is it that for its arrangement you have to do A, either A to 2, I don’t know why it is not working, A to 2, you can do J to A, right, these are the two arrangements that can be made. In what other ways can you arrange the alphabets? You will put it in the same way. If there is any customization, if you want to put it in a different way, then it is a different matter, then we will look at the custom, but the general thing is that whether it will be A to 2 or Z to A. If I talk about numbers, is it possible in the arrangement in numbers ? If we can put smollet, then it is possible for the date in the same way. Is it possible to make the smollet largest or not from A to Z? Will it be oldest to newest or oldest to newest or new to old, should the oldest one be placed first or the newest one should be placed first, then this arrangement will be done in this way, otherwise it is possible in the same way as our arrangement, that is why the features that you see here are those on the text, if there is any filter somewhere. If you are looking here then you see A to two and J to A. If any filter is being applied on some number, then what you see is small to largest and largest to small and if you check on the date, then on the date you see oldest to new and newest to oldest. Okay, there I will make you check one more thing. As soon as you go to any text, you see text filters here. If you go to a number, then you will see number filters here and if you go to a date, you will see date filters here. Okay, now you have understood why something is written there, you have got the answer to the question, okay, there is a green color here, okay , I have to find that, so how do I do that? Suppose, sometimes what happens in the data is that we apply some color to highlight it, then you can sort that too, you click on it here. And here after writing ‘Filter by Color’, the color comes, now I am saying that somewhere it has got green color by mistake, so it has happened here, now I can change it by going to the home, suppose I have done this, I have made it charcoal grey. Now look, it has come in the text filter, it is fine, but I made it white just because it was done by mistake, okay, I had to do it here, I made it white, okay, now for you, I will tell you the data once in this way. How to color Control Shift L Control Shift L No problem, it is not working for us. Okay, let’s color one place at a time. By holding any control, I have selected this data and I am going to color at various places. Okay, and I will color it here. This one is fine, I have colored it at various places. Now I have to sort it, so what can you do. Okay, I will take another color, single color, so you know, so I have colored it here. But I have selected anything from here, you are not even able to see it, I can’t even see it, and we have selected such a small, small, small one , and here we have red, see how many yellows, okay, now I have zoomed it, just for once, I had to do it, now suppose if you have more than one color fill at some place, then you can filter it out, you will go to this, fill by color and here you will see all the colors, you want yellow first. Look, yellow has come, all the yellow ones have come, okay, so this is definitely a way, when you can filter any of your data according to the color, if you removed it , then this data of yours has been removed. Okay, now I tell you, if I ask you, do you know all these text filters etc., text filters and so many filters that are shown to you, you will say, ma’am, I am learning new things and you are asking me whether I know it or not. You don’t know, you know all of them, now how to see that. What you just learned from me was that you had learned conditional formatting, so now let’s move on to it by meditating a little and relating it a little and we will also understand a little what conditional formatting does, see, for once let’s talk about what does conditional formatting do and what does a filter do, okay if I talk about conditional formatting and on one hand what I talk about, I talk about filters. If it is ok, then what is conditional formatting doing? If you give any condition, if you give any condition, then I will do the formatting instead of that. I told you some condition that if it is so, then do this, then only that data is there in it, let’s say this data is of 1000 entries, the data of 1000 entries is okay and inside this you have to highlight the duplicate values ​​and 50 There are duplicate values, for one time, it will color it in 50, it will change the border in 50, it will do something or the other in 50, but here the data that you will see will be of how many entries, only 1000 entries will be visible, only that much is visible, wherever we want to highlight people, there is a color there, then what happens inside the filter, no entries, only 50 will appear, the answer is the same. Will come but the method of representation changes. How does the method change? Now when you apply filters, 1000 entries will not come, only 50 entries will be shown, no color, nothing, only 50 entries will be shown, so it is up to you as to how you want to keep the representation. Features are all the same, you will see that if you go to text from here, if you go to text filters from here, Equals to does not equal to begin with and. With does not contain condition was done in formatting and not written in solution then tell me if anything is written then tell me then all these are the same as if you go to custom also then you have the same, you have the same, greater than equal to whatever you had read, when you go to number format, you will go to number filters, equal does not equal greater than greater than equal to less than top 10 Top 10 Below Average Above Average All these things are the same, isn’t this the same, you can check in the date, when I told you about a date in the date, I did not tell in it, Yesterday, Today, Tomorrow, This Week, Last Week, everything and that is the same, okay, so in this way you can do the same work here in the conditional formatting, here you can do the same work in the filter, what is the difference in the conditional formatting, 1000 If there are entries of 1000 then 1000 remain but what comes in color but what is in the filter comes out after being filtered, the rest of the data goes away, whatever is asked for as it is remains the same. Okay, so you know all these filters, definitely practice. If you have any doubt on any of these, please let me know in the comment section. I will definitely tell you but there is no point in repeating it here. Because we have done that, we know it already, we will not waste time there. Now whatever we can learn, we can learn sorting. So, now we will learn sorting manually. The thing that we know is sorting which I just told you about the arrangement. So the arrangement itself is called sorting. We have to sort. Suppose now you can see that the names are written in different types. There is no such thing as A, A, T, Z, Z to A. If it is written then you can do that thing, you click on it and from here you click on A to Z, then see that in this way your data has been sorted in it. Okay, suppose you want to do something else, you want to do according to the number, then you can go to the number. If you want to do the largest to smallest, you click on it and see, a sorting icon has also appeared on it. Let me just show it to you, then see a sorting icon has appeared on it. And look, the number which will be on the top will be the highest and accordingly the entire data has been changed here. Let me tell you that earlier the data which was there was Harijan Wellness and later when we made it from largest to smallest, now it is Bright Harijan Venture. Okay, earlier we had done the price, so that is something. And it was showing that here we had done the price from largest to smallest, so here it was Radiant Health Club, so in this way we can sort the entire data is about the same thing, if suppose I want to arrange the data according to the date, from newest to oldest, then the new largest data which is written is written according to that, the entire data is arranged here, Zenith has come here. Now okay, one thing is that when you do the sorting, then you can undo the sorting. It doesn’t happen. We have done it hand to hand for now. If you think that sorting is left, then I have left it. Later, I will do the same data again, then that thing does not happen. Now, what I will teach you will make you aware of sorting also. As soon as you have your data here, after that, you can go to Sort and Filter here and click on Custom Sorting. On Custom Sorting, first of all you can see all the headings inside all the data that you have. This means that it is asking you that the custom sorting you have to do should be done according to what. For example, if we have to do it according to the name, then we have done the name. After that it asks you according to what we have to do, according to the cell values. We have to do it according to the cell color. We have to do it according to the font color or there is some condition formatting icon. So let’s say, from here I take the color only. When I took the cell color, I took the cell color and now as soon as I took the cell color, my options have changed here, now it is asking me which sorting to do, for example, I want to take yellow, but there by default yellow was coming, which was yellow by default, it was only bringing and giving yellow, now this is sorting, not a filter, it is sorting, so what will happen in the filter, it will bring and give only the yellow color, the rest of the data will go, sorting is not done like this. It keeps that data as it is, it just arranges whatever arrangement you want to do, now as I want it to come on the bottom, that means all the yellow data should go at the bottom of the data, I have done OK. Now look, go to the very bottom and whatever data you had, see the data is getting finished. Here, that entire yellow part has come down, that portion is fine, so in this way, if you want, you can do custom sorting. Okay, everyone understood, here you will get custom. The option of sorting is available here, it is completely up to you as to what you have to do and what not to do. If you want to delete any level, then you delete it. If you do OK, then your sorting has been deleted from here. Those who will be sorting from here, look from here for a second. All the sorting which you had done is gone and your yellows have again come from scattered places. So the custom sorting which is done from there is done by you. You can also delete from there itself. So here we learned to do normal sorting. If we want to do text then it can be A to 2J to A. If we want to do with numbers then it can be small to largest and largest to small. And if we want to do date then it can be L to newest to oldest. We also learned custom sorting that how we can go there and do our according sorting. Let’s do filters here. And we have completed the topic of sorting, now we move ahead, the next topic comes to you , Go To Special, how to use Go To Special, for what, first of all we have to know that and what is the meaning of Go To, why is Go To Special being used, when we know this, then we will be able to apply it easily. See, Go To means to jump directly over any cell. Now this thing is asked many times in your interviews also, if you agree, then we will be able to apply it easily. Let me say this, we have come here on this side and I tell you that I do not want to go to Rs 1 lakh. If I want to reach Rs 1 lakh, then what will you do by scrolling, will you go scrolling like this or will you go down using your keyboard, use the page down, then how much tiring will it be if you have to reach Rs 1 lakh, then better than this you can use Gotu. Now there are two ways for you to use Gotu, one way is where you directly. You can use the shortcut key and one way is known to you that we will explore the feature directly, so what you have to do is, first of all you will go to Find and Select on the Home tab. After going here, you will click on it, then here you get the first option of Go To. If you click on it, then you will get a window like this. After this type of window comes, here you will have to write the reference where you had to go. a100, you had to go to a1 lakh, after that you press OK, then it has taken you above a1 lakh, you can see that this is our sale, it is above a1 lakh, but I would not personally suggest you to use it, for once, I will definitely tell you its shortcut key, go to starts with the g, so what happened to its shortcut key, what am I saying that go to starts with what is go to. Starts with the G. Hence, its shortcut key is Control G. Okay, now Control G. If you press Control G anywhere inside your sheet, then this window opens to you and you can write directly here, but I say this is also a big way, we will not do it in this way also. If in any case, if you are told that I have to reach K 3965 3, then where will you do what, you go directly to your name box and write here k. 3969 8 You had to reach here, just enter, then see it has taken you to 3969 8 and from here you can see that it has brought you to the place of that sale by jumping directly, so instead of using Go To, use the name box. Go To adds more features in itself. There are many features which are very useful, so we will do that, but here my job is not just to tell you the features, my job is to tell you in this way. Let me tell you the features that should be so effective so that you can do your work better and use the name box to do better. It will give you better results. Well, what is he doing here on the side by jumping directly to the cell? Now suppose your interviewer told you that you have to select the entire area till 1963, so in such a situation, you will do the same work, you will write in the name box : 9 63 5 2. 8 You can write anything till the selection and after that now you will not directly press enter, if you press shift enter then here it has given the entire selection till the point where you have written here 963 U which is your number, not sorry 3969 8 So it has given till here yours is ok so we can do the selection in this way, suppose I am here and from here till how much do I have to select. If you want to reach m10, then I wrote m10, after that I pressed shift enter, then put the first cursor till m10 and after that, write jump on the cell where you want to reach and after that press shift enter, then the entire selection till there will be automatic. Why do we learn selection? I have always told you in Excel that whatever work you do, first you have to make a selection and only after that you can apply something beyond that. Yes, right, that’s why we are doing selection here, so that first we get to know different types of dynamic selections, after that we can do anything. Till now, if I talk about what you had learned in the selection, then you had learned the basic selection. Now what was that basic selection? The basic selection was this. If I told you to do a complete selection, select the entire data in one go, then what would you do ? If you used control A, then the entire data would be selected, then I used to say, brother, do the selection with a single click, how was the selection done with a single click, it was done with control shift, then you used control shift arrows and the entire selection was done, after that it came to you that you have to select a single cell, then the single cell was also selected, you held the shift and after that used the arrows and here a single selection was done, but I am saying . Yes, this is the way to select the data. I gave you the data and said in the data, select all the blank cells. Then brother, how will this happen because neither can you select the entire data. How much pressure have you put in it that select all the blank cells. Well, I tell you to select all the text written inside the entire data. Now look here, there is text written in between the values ​​too, they should also be selected, so you will keep watching like this. For this type of dynamic selection, we use Go to Special. As soon as you press Control G, you get a special option below. Click on it. You will get a window like this in which there are many options. If you do not want to explore it from here, then you can also explore it from the Home tab . Go to the Home tab, go to Find Select, here also you will get Go to Special. Where does it go? Now we have to see what options are available inside it and how can we use it. So see, we will control A so that our data gets selected, after that we will control G so that we have this option, after that we will go to special. I would personally suggest you that whenever you go, control G and then go to special. First of all, let me tell you that it is very small here, so you may not be able to see B, so below each word. There is an underline, there is an alphabet inside every word and there is an underline below the alphabet, then that alphabet is its key. In the same way as home, when we press alt , one key does not come, similarly, there is no key here, the one under which there is an underline, that is its key. Okay, the other thing, the first one is notes. Let’s say I put notes here at different places with shift A2. I put some random notes here at different places with shift f2, okay. And now you want to select wherever these notes are present. Suppose you have a huge data and now you have to highlight wherever there are notes, so that you can see where there are notes in the entire data. So before applying anything, we need a selection, so we will do Control A, Control G, we will go to Special, we will select the notes and we will do OK, so see where the notes are present, that selection. It is done, now I have colored it in this way, so now I will always see in my data that OK fine, there are notes here and there, OK, now suppose you want to remove this color again, then you will do Control A, Control G, after that you will go to Special, after that you will select the notes and you will do OK. Now if you want, you can remove their color, I have made it white and look, all these selections have been removed, so in this way you select the notes, after that you can see. Do Control A, Control G, go to Special and you get the option of Constant and Formula. You will have to understand it in a little detail but before understanding it, let us know one thing. See, when you click on the Constant, these four options are active, the first one is number, the other one is text, the other one is logical and then the error and even when you click on the formula, these four remain active, so are these four for both? Yes, can you explore them together, that is, you can choose which constant and formula together. The answer is no. When you do it for a constant, it will be a constant thing. When you do it for a formula, it will be a formula thing. These are their common options which you can use. Now you need to understand what is a constant and what is a formula. In this entire table, the most useful ones that you will find are these two options. You will get constant and formula, that is why it is very important to understand the difference between these two. If you do not understand the difference between these two, then understanding the whole go to special will be useless, so let us understand it a little carefully. See, here you get two words, the first one is constant , the other one is formula. Suppose from a1 to a1, some 10 10 digits were written like this 10 10 10 10 On one side I wrote I give, this cell is mine and here I write 100 and on one side here is the cell of mine, I write the sum a1 a10 then the answer is this is my formula will be visible in the bar but the answer is mine what will be visible is 100 so here which is only value there is no formula so what has become constant and here the value is there but is this value constant is it just value no check the formula b what? There is some formula attached to it. Yes, so suppose this is your formula. Okay, so the first thing we understood is the constant and formula. Let me give you one more example. Suppose you had written some ‘A’ and ‘Your’ marks here. Okay, now you have written directly inside the cell according to the marks, if someone’s no came at 30-40, then if he passed, then you wrote ‘pass’ after seeing and on one side, what did you do here, if you put the formula that if. If it happens then do this or else do this and then after that means you applied some formula here, you calculated pass from that formula and if you failed then the answer will come here then you will see pass but inside that when you checked in the formula bar, the formula was written there, so this is your constant and this is your formula, so now you have understood this at the initial level, what? Is it a constant and what is the formula? Now see, when you write a value, we call the value a number. Here also the answer is your value. If your answer is 100, then this is also a number. So this number is the number of a constant, meaning that number is the number of a constant. And this number that has come has come after being extracted, what has happened, has it come after being extracted, that is why it is the number of the formula. Now you see here, when I control you and tell you, go to the special, see, a constant also has a number option and a formula also has a number option, but there is a difference between these two, what is the difference, now you understand what is the difference, one will be the number of a constant and one will be the number of your formula, in the same way, if I talk in the way we have talked about numbers, in the same way, if I talk, it is of text. This is about the text, is there any formula written here or did you write the pass directly? If you write the party name, then what are they directly? Some generate it from some formula and do not come up with it. You normally fill the name directly yourself, do some data entry, so that is your text. What kind of text is the text of the constant? And here you have applied some formula to find out whether the student has passed or failed. If you have done anything like that then it is by applying a formula. If you did not understand then that is the text of your formula. If you understood then now you have understood two things – the number of the constant, the number of the formula and the text of the constant and the text of the formula. After that you have two more options. What are the other two options that come to you? Here we will explore both the options which is logical and after that what is an error logical? Anything written as true is false. What will be the logic, either this or that is logical , then what is written is true and false, that is logical and error, you must have seen that in the formula there is such a value error, by putting a hashtag, such an error comes, a name error # a # spill # divide, you have errors in many ways, then you have got these errors, so if we assume that there is an error in a constant, then it means that an error occurs when a formula is applied. If the formula’s error and other wise are written directly, then directly the error is the error of the constant. If you apply any formula and the true false answer comes, then the logical of the formula and not come means it is normal. Directly, we ourselves have written true false as per our own wish. That is your constant. Now even if you did not understand it so well, then it is okay because now we have explained it in great detail here. Let’s see it practically, this is our data, okay, inside this data, let’s say, let me tell you, you will constantly keep looking at the formula bar here, like I zoom it a little here, we clicked on the date, the date is coming, that means there is no formula, clicked on the name, the names are coming, there is no formula and look at the product name, state, gender, quantity, the value is coming in the quantity, there is no formula, cost, price, no, no, this price is coming. The value is directly written in it but when it comes to the purchase cost then look at the formula written here, the value is visible but the formula is there, click here, the formula is visible here, the value is visible here, click here, the formula is visible here, the value is visible, click this, the formula is visible, but the text is visible, click this, the formula is visible, but it is visible. Okay, so here you are given two things. You can select the formula numbers and text and all the things, so now accept that I tell you, tell me the number of the constant, then select the number of the constant and tell me, then I will do control A, I will do control G, after that you will go to the special, from here you will select the constant and here, leave only the numbers selected and OK, so see, the constant date is always counted inside the number. Let me tell you this thing, the date is always counted in the number. So, here, these numbers are there as well as the quantity because there was no formula in it. I just showed you that it was not included in the cost, it was not included in the price also, but when it comes to the purchase cost, sale cost, sorry, sale price profit, so your formulas were included inside it, so it did not select which one , which one was selected which were just constant numbers. Now if you want, you can do anything with it separately. Can you give them some color so that I can color them and highlight something like this? What I have to do is tell you what you can do. My main job is to explain how the selection will be done. Okay, so here we did the go to special thing. Okay, next here we did the constant number. Now the same thing, if we had to do the formula number, then we will control A, we will do control G, we will go to special, we will go to the formula, we will select the numbers and do OK. So see, the numbers have been selected from here, but you see carefully, this is zero, this is a, this is the value, this is this. There must be some digit written directly in B, so it has not selected it , you go down here and check if there are any other errors, see because the value in itself is an error, it is a text in itself, it is a constant text, so here we had told him to select the formula number and then he is so pressed that he has not taken those things from the middle which are not your formula number, which is the formula number, he has taken that, okay let’s go. Next we will see Control A will do Control G will do the same goes with the text, if you want to take the text of a constant then how will you take it, all these names and names written are your text, these are constants, you have written them yourself, not generated from the formula from somewhere, but right there, by doing Control A, Control G, if I go to special and if I take the text of the formula and do OK, then it gives me the text here, now you will say that Ma’am False True False This is also a text, yes text is datchi, so what does he consider as true false? He always considers logical true false, he will not show it as a text here, a thing can be one thing, it can be either text or logical or it can be an error. Now if there is an error then the value is also written. If the value is text in itself, then is it in the text? If he will not count it, he will count it in error and one thing cannot be counted in two things, he will have to count only one thing, Hans, what is written here, the value, is your error, True False, what is written, is your logical, that is why all the texts were there, he has given even, here you will believe it or not, here ok, you will believe it, yes, we had taken the text with formula, neither have you taken this one, now I have taken the one with constant. You had to tell me more in the text, control ji will do special and I wanted to check one more time with the constant one, I wanted to check it once more, you see, from here, he has selected this, so we saw it, you look here, see, for one second, we came to the side that yes, look here, he has written the text here, neither has this also been selected, he has not left that data, if you have told him the constant text, then he has selected this also, I had to show you this, we had gone to the data on the side. By mistake, here we have done two completes, which is the first one is number and the other one is text, after that if we talk about control, we have done it directly, no problem, we have come to special, after that we will go to the constant and we want to check the logicals, will we get the logical in the constant here, tell me from which, the answer is no from my side, if yes from your side, then you are facing some difficulty in understanding and we will explain it well, see, okay. So look here, we had not selected the data anywhere, so it checked here in the blue one, this is the heading, I had to check here in this one, Control A, do Control G, do special, and here, go to the constant, and here I have to take the logical, and do OK, so there is no logical here, saying no cells and found, why because what is logical here, what is true false, is that true false, from whom did this true false come, see from whom did this true false come, look above. The formula is attached, it has come from the formula, so if I do the formula one, control a does control g does special and after taking the formula and then taking logical in it then it comes again see then it has made the selection but here it was not in the constant na look for the constant, I have created a separate data so that you can practice control a did control g did special and here you took the constant so here you can do OK with it so look here this Why did you make the selection? Look at the selection here. Click on it. Check your formula bar at the top. Is there any formula written there? No, all the text is written, so the text is written and true. If false is written, then what happened to you, it became logical, which constant one is it ? Similarly, if I talk about the error, then look at the control a, the errors are written here, the error is written by itself, here the error is not coming from any formula, okay, then you will control a, control g will go to special and from here you will take the constant, from here you will take the error, okay, then look, it has selected all these errors, okay there. If I talk about the formula, then see these are the errors. For the formula with red heading, see this, we have applied the formula and after that, if any error has come, now you control a, control g. If you go to special, go to constants and take an error here, then it will say no cells found yes because all the errors here have actually come by applying the formula, so you have to control g special. We have to go to and select the formula from here and select the error from here and click OK, then it will select all the errors, so here we have completed all the options which are the main options of Gotu Special, in which we have seen all the four options inside the constant and we have seen all the four options very well inside the formula also, now next is our We will see what comes close, we will do control A, we will do control G, after that we will go to the special, the most important comes blank one of the important. Suppose and this is also asked many times in the interview, that is why I am going to create this data in front of you, we had created this data earlier and here we do one thing, why did it happen like this for a few seconds, yes brother, it is okay, I am making a selection by holding the control, because I have to do multiple selection, hey, I used the control. Don’t hold it, I will make the selection from here, okay and here I have made the delete option and now look, you have this data, now there are many blanks inside it, if I tell you that you have to delete all these blanks, then are you going to sit there and delete them one by one? Otherwise, if you start doing it one by one, then it will be a very time consuming process. Now, if I have to delete all these blanks, then to delete them, I have to do the selection first. And what do we use for selection? If we do Control A, then sorry, we do Control G. Now can I select the entire data with Control A? Try it, it will not happen because there is space in between, hence we will have to do the complete selection from here in this way. You have made the selection, I have made the selection with Control Shift Down Arrow, after that I press Control G, I go to Special, select the blanks and do OK, what is it now, right? In these blanks, we can directly do control minus. What happens with control minus, our sales get deleted. We will delete the sales here. We will not delete the entire raw because there may be some data in the surrounding as well on our side, so we do not want to spoil our data. We do not want to spoil the whole sheet, so we will do control minus. We will delete the sales. Do control minus. We do not want to antagonize. Now we will think that we have to do ba sales. I have already explained to you how to delete cells. But understand it a little more carefully , what do you have to do with the assisting data. Do you want to move the assisting data to the left? Do you not move it to the left? You will bring your remaining data upwards only. If the cell in the middle is empty, then delete the cell and shift the remaining data to the top. If this is what you want, then shift the cell up and do OK. So in this way your data will be completely shifted, now there are no blanks inside it, okay in this way there are no blanks, the first thing you learned is this, the second thing I teach you is that suppose what you do is that you have a blank, there are a few blanks at some places, there are a few blanks in the whole data, now here there are a lot of them but there are a few blanks, okay now inside those blacks all the same values ​​are going to go and you in that You do not want to fill one by one, you want me to write something so that it fills all the blanks in one go, then how can you do it in such a case, suppose the first thing you have to do is select the data because you will select the blanks, only then you will be able to do something, so first of all you have to select your data. Select it, OK, after that use control G, after that go to special, after that select the blank from here and do OK, then all the blanks you had will be selected. Now you have to write anything that you want in all the cells together. For example, I write my name here, single for once or write any value or write anything, I write 1000, so I I have written 1000. Okay, now I want it to appear in all of them, so if I press enter, what will happen? What happens after entering? We enter in the next cell and the entire selection will be off, so we did not do this. Now you can do one thing, instead of enter, press control enter, then that 1000 will be written at every place, here if you are thinking that ma’am, you have written 1000. Why did this format come? It is date based, that is why it came in the other wise. You will write the same value everywhere. Okay, I understood what you have to do. You just have to make a selection and start writing directly. It is not like you are clicking in a cell. As soon as you click, the entire selection gets lost. So do not click. Start writing directly. After that, control has to be entered because the selection is already done. If we click once more in the selection, then The selection gets turned off. We don’t have to turn off the selection. You directly enter control and your data will go everywhere. Okay, now I do control Pressed k, pressed enter and you have got this selection, do control minus, we will do shift cell up and do OK, so in this way our data will be fixed, okay, we have learned this here, after that I will tell you one or two more options, before that , first of all, I will cover all the important things which are important and after that I will make you explore them normally. Okay, after that you will have the information which is important. Option comes , that comes, let me tell you first option control g special and inside it there are two options, row difference and column difference and these are very useful, they are very useful, that is why I am telling you this, see how it is, raw difference and column difference, like suppose you have a small scenario and the real life scenario is that you suppose you do data entry, okay, your business is there, 99 invoices are made in it for January March. It is okay that 99 were made in the month, you put 1000 invoices in LI and in your Excel there were 99 or it could be its opposite or there is a difference in some value, that is, you have written all the details here, here you have written in Excel and first of all, when the recount comes, first of all we check the values, suppose there is a difference of 5000 in both your data, then first of all you will see this and not directly I can find this out. Where is the difference in the values, then if suppose you ever want to check the difference in two values, you have two days here and you want to check the difference in them, then you can use this trick. Basically, what you have to do is to select the data, selected the data, did control G, went to special and took the raw difference and did OK, then in this way, wherever the values ​​were different, the rest are the same. Look, this one is different, this one is different, this one is different. This one is different, just color it, you will come to know, yes, it is different, everything else is the same, so in this way you can find out, it also has a shortcut key, now we have gone to Control G, its shortcut key is Control and forward slash, control and here your forward slash will come, so you can do this work by using it too, how did I do it, let me tell you back, why did I take it, why ok fine just give me. Minute OK, I selected it, went to home and made it white from here, OK, what did I do now, control selected it and pressed forward slash with control, did control forward slash OK, that works, sometimes my key of my laptop, the key of my system is not working, but you try using this, your work will be done, you can also do this, control A did OK, control A did control G did and went to special And from here you took the row difference and you did OK, then it will come in this way Control A control data select control G special row difference OK and just color it OK, similarly if suppose your data is in this format then you do the column difference, check the columns, there is not much difference, it is just the same thing, so you selected the entire data with control

    shift side arrow, after that control G made it special, after that you did the column difference and then OK. Wherever there were differences, they have come, now you can color them, so here were the differences here and you have these differences, okay, so these were the major two options which are very used, when you recalculate any two values, then you can do it directly in this way, after that if I show you the option in special, then here we will not do the current region and array, right now we will do the object, we will understand the object also but here But before that, we can see President and Dependents, what do we mean by these, so let’s see, we write a simple formula, here I write 10 * 2 = t this multiply by this enter so basically 10 * 2 * 20 if I convert 10 into 20 then 200 this is working, suppose I took this data and controlled g, then went to special and after that If I did presse dents and direct only or all levels then did direct only and ok then it told me after doing 10 * 20 this is 200. What is president basically you have it here just give me a minute look at this way you can see like suppose you are here then what is president where is this particular 200 from where did it come from? Multiplied 10 by 20. If you want to remove 200 aya then you can remove it from here. If you want to see the reverse of it then say let’s say where these 20 are being used. If you want to check on what it is dependent on then it is dependent on this. If let’s say you want to see the same thing for 10 then you can do it from here. So in the same way when you have to make a selection then you can also do the selection by controlling g, you will do special, you will do presidents and end. If you do OK, then it has selected both of them. Now suppose here I write 50 here and here I write yours equals to this cell multiply by this cell. So now tell me once that the dependency it has is here also. If I make it 20 here, then see everything will also change, so we have created a dependency. So if I click on sorry dependents from here, then it is dependent on here, okay. If I remove array this President, I go here and click on it, then it is dependent on these. If you are understanding it, then it is okay because we will do it in detail later also, so here what we have to do is remove the arrow once and after that make this selection, then control G, after that go to special and we took President and did it at all level and did OK, then it told me all the dependents. Similarly, if I want to see its opposite, then I did a special control and here I came to the dependents and if I want to check at another level, then the dependents are there, these two values ​​are dependent on some or the other, then it has come to you, so basically whenever you want to see the formation of the formula, where has this particular value come from, from which values ​​has this value come, then you check this. You can do it, okay or here you can also say that we have covered this topic a little bit, which is Trace President and Trace Dependent, if we explore it further then we will do it but it is not so useful, just whenever you want to check, you can also check directly by going to the formula bar, but if you are not able to understand, you have to check that movement, then you can check that movement from here, okay after that you have. Another option comes which is your special, go to you, last sale comes to you, sometimes you do not know where in this whole sheet something is written last, so what can you do, you will do last sale and ok, then here you have this is your last sale, because you must have some entry here, then it told me, this is my last sale, okay , you can jump directly to the last sale, after that you will get more options . You have just done the conditional formatting and data validation. Conditional formatting has not been done. Suppose you have applied some conditional formatting here. I have this data. Let’s apply conditional formatting for once. Here I do control A, after that I go to home, here I take conditional formatting here, here we take the text that content and here we come inside the decker, where it is written decker, it gets filled in red color, then this is what I do now, control A, I do control G. I go to special and I say, do you want to know the conditional format, do you want to know all or do you want to know only, I have done all, that is, if the same is of the same kind, then it will make the selection, do all, then look, it has selected it and given it, where is it applied conditional formatting, then we have it in the whole, when you have applied the condition formatting, then it is in the whole, now the decor is in the whole, now tell me one thing, I will write the decor here, please write the decor. Okay, I have written this wrong, haven’t you written decker, so it is coloring it too, it is not a big deal because we did it with a little selection, we had selected the entire data, so it has given us the selection of the entire data, after that the option you see is data validation, which we have not done yet, so we will do that. And there is also an option for the objects objects. As soon as we insert, there is also an option for the object. If you tab, the pay will be covered there. Okay , so here we have completed our go to and go to special, that too in full detail. Now let us move towards our pay special. So now the topic that comes to you is what is the pay special of pay special. So what is normal special and normal. What is paste? So basically whenever we have taken any data here, we will select it, after that we will control it and if we go anywhere else, we will control it. v If you want to do this then that will also be done and or if you want to press paste directly then that too is done then normal copy paste all two, you have already learned that I have taught that they pick up all the content and bring it to you as it is ditto but now you do not want as it is, do not want normal work, you have to do something different, you just have to bring the formats, you just have to bring the formulas, you just have to bring the notes, you just have to do some more work. In such a case, you can use Pay Special. Well, here as soon as you click on paste and many icons visible here are all Pay Special ones but it is very difficult to understand directly from the icon, hence if you click on Pay Special here, you will get a window like this. Now look at this window, Pay Special is used a lot, so either you go directly from this window. If you do not remember the shortcut, but if you want to remember the shortcut, then control like you used to paste normally. Inside this, you just have to add Alt, then hold Control Alt and just press V, then this special window will come to you, then after that you can do whatever selection you want, so here for once, I will delete it, I do Alt AE A, it is deleted and after that, now we will explore it one by one, what are the options available inside it, I first took some data here, like this is what I did. I have taken control c of the data, I will come here and do control alt v and after that look, first of all, see the above options, no, we will not explore all the options, we will explore only the most important ones, so that is the rest of the things, we will explore. Like, I will tell you what is happening in this thing, but mainly we will see the examples, as many of your important ones are there. First of all, we will see the above options, which is paste the first one. It is all as it is, it should come as it is, which is also being done by control c and control v. So if I have to do the same then why would I waste my time by coming here, I will not directly control c and control v, so there is no use of all here. Okay, so here you do not have to do anything with it. Next formula. Suppose you have a formula inside the data and you want to take it as it is and take it somewhere. There is no formula here right now. It is already there, but can we apply it here? Can we apply it at all? For once, we apply the formula here. If you enter Equals to this Multiply by this amount, then this formula has been applied. Double tap it. Okay, now let’s say you have applied it. A, let’s take it here, copy it and paste it here, so do n’t you get the amount? You have copied and pasted it. Now here you do p special and try control lt vv, sorry v, I didn’t want to do the formula. Okay, I did it. So here you have the formula n3 * o3 o3 * p3 o3 * p3. So see, look at the formula. Here, he has dragged it like n3 * n3 * o3. Here too, he has dragged it in the same way. Formula has brought only the formula, it has not brought the rest of the content. What did you say in it, just bring me the formula, so it has brought the formula but has not brought the rest of the content. What it does here is it brings all the content, there must be some formatting in it, there must be some color in it, anything can happen, it brings everything. Whatever you want to choose, if you want exactly the same thing, you can bring it from there, okay, I select it here. I remove it from Alt HEA. Let’s see next. Next, what do we get? I copy anything for once. After that I go here and do control alt v. Next tells you the value. What does the value say? Suppose, you will learn the random formula in future and you will learn other types of formulas, then what happens in such a case. You can say, assume this is this thing, this is the amount, as soon as I copied the amount. And when I come here and paste it, obviously all the values ​​have changed but I say no, I have to put this amount somewhere in the report or I need this amount somewhere, so what will you do in such a case, you take it as Control C and go to any place where you want to take these values, put Control LT v, then it will convert it into values. See, the values ​​which are there now are extracted from your formula. If it has been extracted from the formula, then that is the formula, you will see in the formula bar, that is the formula, you can see the answer of the formula, so basically, that is the formula, if you convert it into value, whatever you are pasting here, do it in the form of value, if you do OK, then all your values ​​will come, now will it not change, okay, so in this way, whenever you have any data which You want to see that this data never changes because the formula is based on the reference and the reference can change. If any reference changes, your formula will change. So in any case, if you think that you do not want to change your formula, then what you can do is simply convert all your formulas into values. To convert them into values, you can We will select control C, go anywhere here and do control alt v. Like I told you in Got Special also, the alphabet under which there is underline is its key, so its key is v. Values ​​value starts with the v and you press enter, then your values ​​will come here. It is used a lot, that is why I also remember its shortcut key. Personally, you can also remember its shortcut key. Its usage is very high if you correct. You have learned how to use it, look at the features, the features are the same, it is just that how can you apply it on which situation, it is totally up to you. If you have learned that thing, then the work is sorted, then you must remember this thing because it is very useful. Okay, we learned about values. Next, let’s see what we have. We did control C, we did control alt v here, after that comes the format. Suppose I have this same table somewhere else. I want but only want the format, then you can do it, choose the format from here, do OK, then look, the same table has been created here, now I go to scape here, do Alt AE A and remove them, just I wanted to tell you that in this way you can format, there is another way to take the formatting there, if I had to take the formatting somewhere else, don’t trust me, I do not use pace pressure because we have another one. There is an option which is control a and format printer, I would have taken it and just clicked, then this thing would have happened here, okay, so this is it, look at us, there are many ways to do the same work inside Excel, it is up to you which method you remember at that time and which method seems suitable to you, okay, let’s see next, you selected it, did control c, did control alt v, after that comes you Comments and Notes Comments and Notes I’ll leave a comment or two for this Now suppose you have selected all this data and after that you have done control C and after coming here you have done control alt v and you have selected only comments and notes and OK, so wherever there are comments and notes, that selection has come and exactly your comments have also come. Exactly your comments have also come. Now you Wouldn’t you think that all my data should come because you have selected that comment, it takes up a lot of size, as if only the formula had come in the formula, its formatting had not come. If you have selected the comment and notes here, then only those will come. Okay, here you can delete it. Which is Alt A and A. Okay, now I have to delete both of them, so what do I have to do? Obviously, by selecting it and using control g, we can go to special. From here, we can select the notes and do OK, both will be selected , we can press Alt HEA, both will be deleted, then you can use this method effectively, like I just realized that why am I deleting one by one, I can do it together, so I used it and if I did not remember that, then I too would have been deleting one by one, this is what we call. We can use it effectively. Okay, let’s go next. Let us learn that we selected this data, did control C, went here and did control alt v, after that you have validation validation. You have not learned it yet. When we were talking about control G also, data validation came in it also which is go to special. What is data validation? Let me give you a little overview so that you have clarity so that you do not get confused like this. Data validation is not done there either. Data validation is a type of drop down which we create. It is available to us inside the data tab. We will learn to create it. Okay, we will learn it in detail but for now we leave this option. Later you can see. All using source means same, almost same data comes. All accept border means complete data comes but borders do not come. Column width column width. A. Like once I make you click ‘All Accept Border’, OK, everything is there but the borders are not there, you can check it, ‘A. Control Jd. Suppose, you want to make the column width, then you did control alt v, after that, you made the column width. What is the column width? Suppose, sometimes we have data where we have adjusted the columns by stretching them one by one, so now we want that next whenever we create the data, the width of our column. If the width is the same then you have done OK, then see here the party names extra is coming, here also the party names extra is coming and rest of the space you can see is the same, the rate is coming small, so here also the space is small, so in this way you can control the column width, lt v will do next, you have formula and number format, now only formula was going from there, number format will also come, values ​​of number format all. Merging condition formats, as per your requirement, you can use these combinations. This is completely situational. If your situation is like this then you can use it. Next, let us move towards our operations, which is very very very important which will help you a lot in doing any work effectively. Suppose I have all these digits. Okay, now I am not 500 in these digits. To add, these are old, wrong digits are written. 500 is written less or 1000 is written less. If I want to increase it, should I increase it one by one? Should I not increase it one by one? What do you have to do? You have to write 1000 somewhere, okay, you copy it. You can paste this copy here anywhere, so I want to increase all of them or select the one you want to increase. Suppose you have to increase this, this has to be increased, this has to be increased, this has to be increased, this has to be increased, okay, then you do control alt and now you see in the operation, what you have to do is to add, multiply, subcut, divide, divide, you have to add, okay, you do OK, look, this has been added to your values ​​and this is not a formula, this is also the most sorted thing that this is not a formula, so you can immediately It will be sorted and there will be no change. You can delete it later. Yes, there will be no change. Your data will also be updated. Suppose you have to do the same thing here. I have to do 1000 laces, try doing 1000 laces, try control C, in this I selected the entire data, did control alt v, from here I took the substack and after that I did OK, then look, the value has been substacked, I selected it, put it here with the format printer and delete it, what difference does it make? Similarly, now in the multiply one, I can take another example like suppose you have the complete cells. Like I will draw here and tell you, this is the sheet of the entire sale. Okay , now the empty cell will not be written in the sale. The sales return will also be written. Now here the amount of one sale is written. The amount of one return is written. Now here you have to calculate the net sale. Now tell me one thing about the net sale. There will be cell minus one SR. And your sheet here is the sheet. It may be of first second, third entry sale, fourth entry may be of SR, fifth six. But there is a difference that in front of the sale, something is written as ‘SAIL’ and ‘SR’ is written in front of it, ‘SR’ is written in front of it, so now in such a case, how do you mean that you have calculated the net sale here? In such a case, suppose I leave the pay sale positive here and put a minus in front of every sale return, then it is automatically plus minus minus, it will become minus when the final calculation is done. If you understand what I am saying then that is the last calculation. If you have to convert something into minus, then how do you do it? This is just one scenario. In any scenario, if you suppose you have to convert something into minus, then how to do it. Now let’s see what you have to do. Do you know that plus minus is minus and if you multiply any number by one, then only one will come, that is, sorry, only that number will come. So you write -1 somewhere. Okay, after that you copy the entire data. Select control alt v do v do sorry v don’t do this I have got into a bad habit this is good multiply ok do it then see all these numbers multiply these will be in minus. How did all the numbers become in minus? Now you have this, you can also delete -1. Similarly, if you have to divide something then you can also divide. Suppose you want to divide all these by 10 or by 100 . So what you will do is control C, select control TV and from here select divide and do OK, so in this way these are your numbers, okay I selected it, did Alt H app and selected here, okay why did I do Alt H f p, you should know this, I am not telling you right now, you should know okay, so here we have completed it, even after this we have one or two options left like you have this data. In what format is the data? If you are seeing headings inside each column, then this is the data. I can say that it is in vertical format. In which format, if you wanted to make this same data in horizontal format, then in what way could you have made it. So see what you will do, you will select this data, you will do Control C, you will go anywhere and do Control Alt v. One, if you have to work on all the data, then All and what you have to do is Transpose Pose, which means the data. It will be in a different format than the one in which it is, like if it is vertical, it will become horizontal. If it is horizontal, it will become vertical. So, if you did the transpose ok, then look, now the data is the same, y 269 591 -11 28 is the same, it is 1479, it is the same, it was in the vertical format, it came in the horizontal format, okay, so this was yours, I will get your transpose option . Let us write 1000 and 365 963 853 963 1000. Okay, suppose you have some data which has some blanks inside it and what will come inside those blanks is written in a separate data. Suppose it is written here 635 965 and 523. Now you want that these values ​​should come inside these blanks, then how will you do it, you do not have to do anything. Selection has to be done here because like this then it will take time. If someone starts writing here manually or by applying formula, something will have to be done, then something or the other will have to be done in it to fix it, so in such a situation, what can you do, you do one thing, select this data, whatever data is equal to it, select all the data, select control C, now come here do control alt v and after that do skip balance and do OK, then see 635 has come here. 965 is here, 523 is here, now delete these values ​​if you want. Your data has been completely updated. Blanks of skip balance means that the blanks have been filled as per the data given by you, but remember that your data should be next to those blanks, only then the cell will understand that wherever there are blanks, I have left them and I will fill the rest of the data here. So, suppose you have written 635 here, then it will clash from here, then if it will not be able to do it, then this is a little. There is definitely a bit of a draw back but yes when such a situation comes then you can use it. Now let me tell you one more most effective thing. Okay, I create a little space here, just give me a minute. We have to create space here, so control plus shift right does not work. I take it, do control C and control v below here. Exactly the data has come. Now suppose you want some data where the data at the second place and the data at the first place change. If I do this, if the data gets changed at another place also, then we can do this work directly without any formula, so what will you do, like suppose I have taken this data, I did control C, here now I will do control alt and not, and here below there is an option of paste link, you do it, now not only data comes inside it, formatting is not available, what can you do for formatting, select it, click on format printer and it comes from here now. Suppose I have made it 100, then see it has become 100. Here, suppose I have written Tanu single. Tanu is here. I am writing anything. No, see, changes are happening here. I have deleted them here, so see here, they have become zero. Here I set the control, so the value has come here too. So basically, the changes that are in our first will be in the second. Will the changes that we do in the second be in the first or not? Because this data has come from data one to data two. Data two has come from data one, so the changes that happen inside it will reflect the same changes here but the changes here will not reflect here. Okay, so you have to be a little careful and in this way you can do this thing. So here we have completed, we have completed all the features on the special, now let us move ahead. Next topic comes to you, find. And replace has the same function as its name suggests. First of all, where is it found? Find and replace is found by going to the Home tab or Find and select. Now you can see that there is an underline under F in front of Find, so we can also find with control f. The second thing, let me tell you, first of all, this feature and the next thing is that there is a formula for find and there is also a formula for replace. Okay, so what we are going to do here is that we are going to feature. We are not going to do formulas here. Okay, what is find? Basically, if you want to find something inside the entire worksheet, then he can do it, or if you want to find something inside the entire workbook, then he can do it. The second thing is that you have to decide, see, first of all, what to do, either you do journalize control, then it will be done in everything or if you want to find something inside the particular data, then select that data and after that, like I did, select this data. I have done control f and after that look, this find and replace are together, so if you do not remember the two shortcuts, because the shortcut key for replace is not control r, because with control r, then we fill right, it is control h which is our replace, so if you remember control f also, then it is fine, then you can go to replace here. Okay, what is the find in find, for example, you have to find. Where to write crafts, so where to write crafts, so I have written C is big, craft is written, okay, window is going to remain the same, so we will keep the window as it is, after that see what option do you have now, we will not do any formatting right now, we are trying to do normal work, first thing with in means where to search, do we want to search in this entire sheet or in this workbook, we want to search in the sheet, we took the sheet, search by everyday, go to everyday. Look, go to the column column and see, so we are fine in the daily routine, we have to check in the formula, we have to check in the values, there is nothing like this in the notes, let it be as it is, match case, what is the meaning of match case, the case which I have written means C must be big, r must be small, A must be small, in this way match case has to be done. What does not match the entire cell content like suppose now if I put any color in it then it should be exactly the same as it is? I want to do the normal one for now so I did find all then it told me that in the more basic feature in the sheet with find and replace, Bharat Craft is written inside this cell, so look you can see here, this is the Bharat Craft, it has also brought the cell here, if suppose I write crafts here. Even if I give and then do find all, it is finding because we have not turned on match case here. Now I turn on match case, now I do find all. What is saying is we can’t find what you are looking for because here you can see all the numbers are in small letters but we have made them in capital letters here. Now I remove it and then I do find all. So look, it is fetching me if let’s say I am a workbook. And after that I do Find All, then he told me at different places where this is written, so look, P is also written here, it is also written in the condition formatting section, so wherever this is written, he told me all of them. Okay, if I had done match case and did Find All, then it is saying that it is not there anywhere. Suppose I am here, you understand its meaning, right? I do this and did control A, did control F, and after that now I search. When I do Find All, then look, it has searched and told me because now this graft is in capital letters, okay, so in this way you can find out anything, you can find out anything, it means if you are not able to find something, there is a number, there is a name, you have found out and now you have to find that thing, then what will you do, you can use control F and find any thing inside your data, after that you get the thing that let’s say you have this. Is it Craft? You have to write something else in its place or Creations have to be written instead of Creations. Ok, if you want to change anything then first either find it and then change it or you can directly replace it. You do the same thing, you press Control H and it opens directly to the replaceable one. In the other wise, you can also go to Replace with Control F. The thing is the same, okay, first of all we need to find Craft, that is, Find Vt means in whose place you have to go. I have to make changes. I have to change the logistics solution of the bytes. I have written the solution here. OK, my caps luck was on. The solution is fine. Match case is also fine. I have done that, remove whatever case or match case, remove the match case. If you feel like I do, something is written differently everywhere, then you can turn on the match case, otherwise you can remove it. Now I have to replace it. From the solution, I have done the solution and if I want, look here, find all, where are they, because it was a workbook, I should have done the sheet, and when I came here and find all, then these two solutions are written, and now I want to replace all, then it is saying that two replacements have been done, and look, now these are the solutions here, earlier there were solutions here, okay, so in this way you can also do the replacement. It is very easy, first inside Find What, write what to change, which word to change, and inside replace with, write what you want to change. Okay, ok, let’s do one more thing. Suppose, I take some random data like this and inside it, I gave any color like this, gave it yellow color. Now suppose I am not liking it, I am not liking this yellow color, so I selected this data, did control H and then After I replace, first erase these, erase them because then they will cause problem. Format set means we can also search the formatting. If suppose I will search and tell the formatting first, after that I will replace and tell. Suppose I just want to know where my data is written in yellow. So what will you do? You will go here to format and from here go to fill, choose yellow color and do OK and find. All sorry, sorry, sorry, sorry, find all, so it told me where all my data is in yellow, you can see, it has made a selection here and told about all of them, okay, I accidentally replaced all of them with only the empty one, so I do it again, it got clicked by mistake, after that let’s control A, like suppose I had accidentally replaced it and this replaced one was empty here and here. There was no format on it, so that’s why he left those cells empty. Okay, so you can understand how effectively it works. Now suppose wherever there is yellow color, what have I given in the Find What? Now I have to replace it with something, so I can replace it. I checked the change here. Let’s take the green color and go to the font and make it bold. Make it white. Then the preview will also come and it will look like this. If you do replace all then see that your entire data has been replaced, wherever it was in your yellow color, it has made changes there. You do not have to do anything, you go to control A and see, if you write something, it will appear here that you want to make a change, then do it here, but if you want to change some formatting, then do it here. Now see, whatever is written is also visible first, now it is already visible here, now what do I have to do from here first, in clear format, this is green. If I want to change this too then I took it here fill green font bold and I have to change this thing ok and what to change inside the format I just have to change the fill color to red ok rest is ok so I did replace all, now I am not able to find it out because even I have not understood what is formatting so I chose format from the cell, I took it from inside this cell ok replace all then it did six replacements. Now we know why it has done six replacements because there is date format inside it, we had told it what is this format, it is journal color, not only colors are formatted, your numbers are also formatted, now like here it is, it is a number format in itself, it is a different format, so it did not change, here it was text, here there were formats, it changed it, okay, so here it should have changed these also, we converted them into values. Okay, so in this way you can use Find and Replace very effectively. You can change anything anywhere, whether it is your value text or any kind of formatting. So here we have completed our Find and Replace and Find and Replace. As soon as I complete the Find and Replace, I can say that the major thing which is our home tab, we have almost completed the home tab. Now we We will move towards our basic formula because it is very important to do that. As soon as we get the formula, our grip in Excel will get stronger, so now let us do our formula. We are going to start the formula from the statistic formula. First of all, you get the sum. You have already done it. I told you about its shortcut key, so you will enter Alt equal to two here, then you will see that your sum has come and just double tap. You can drag it from here and just double tap it, then you will see your answers. Now let’s talk about the average. What is the average? First of all, I will tell you another way to calculate the sum. Like we did it like this, here we get the sum, here we also get the average and we also get the count and this is the formula we are going to apply. Secondly, all these formulas are going to be applied in the same way as the sum is calculated, only your calculation will change. What is the average? As you might have heard, now let’s see, RF Sharma has 90 in one. He is very good but in English he has 27, in Maths he has only 10 and in Science he has 47, so on an average, how many marks does A R V Sharma have? It is very normal. Let me give you an example, like if you watch cricket, if you watch this sport, then you know that there are six balls in one over, now it can happen. On some balls he may have hit a six and on some balls he may not have done anything, then after that an average comes that how many runs we have scored in a particular over, so that is the average which we are going to calculate here. If you want to calculate the average, you will apply the formula Equals to Average tab, after that number one, number two is coming in the same way as it comes in the formula of even, that is why now we will give the range here. No, the reason is because we have already done the sum, so why are we giving the range here, you enter it, after that you can double tap from here, you will get all the answers, you can check whether this is the correct answer or not, you take your number here, see how much is its average, see, this is the answer here, after that you get the maximum minimum, maximum minimum means this. Suppose you have these four subjects of RO Sharma There are marks and now you want to know how many maximum marks he got and how many minimum marks he got. The method of applying them is exactly the same, just what you have to do is to write the sum directly, what is there in the average, what is there in the average, you have to write the average directly, but in maximum and minimum you have to remember one small thing that what we call maximum in short is max, then whatever formula is given will be called max and what we call minimum in short. If there is Min, then the formula used here will be Min formula, so here we will tap equals to max, this is also saying the same thing, number one, number two, number one, number two, means we have to give the range, enter it, it will give it, it will tell what is the maximum, see, if you do not give the correct range then no matter how correct the formula is, the formula will be called wrong, if the range itself is wrong then you will get wrong answers too, hence you have to give the range carefully. Ok, let’s set the minimum, tap as per your wish, after that, take all the numbers and enter, then your minimum will also come from here and just double tap it, then you will get the answer from here, you can check, like suppose I check in this only, then which number is your biggest inside this, 74 68 27 32 74, then your answer is 74 and which is the smallest, which is 27, so come here. Gaya Your 27 Okay, so here we have done four formulas, what is the sum average, maximum and minimum, let’s move forward to the count, we will have to learn things inside the count, a little bit, so we take a sheet of three here and call it statistics here, okay, we delete it, here we come with the three, so we bring it here, so that’s what we have with the three, let’s go now, what are we going to understand in the three. We are going to understand the three formulas and how they work, we are also going to understand which formulas are we going to do here, are we going to do the count formula, what is the count basically, we are telling you by counting, we are telling you by counting, so look at the data you have in the count, what are the things you have inside the data entry, either you have numbers or you have text or characters, I can speak text or characters, okay so. What all do you get inside the numbers? Some values ​​come , whatever the values ​​are, or you get the date, or your percentage, or your time, that too is written in the format of numbers or I have already written your date. Okay fine, so we count all these things inside the number. Whatever is left inside the text goes inside the text. Also, I can write this, the non-MT cell which is empty is empty inside it. So if there is nothing, then we can say non MT cell or text or character, it goes, so suppose you have some data here, there is some data, there is a list and inside it, number, text, number, text, some empty text is also given, now you have to check how many numbers are there inside it, then you can apply count formula, if you want to know only the numbers, then what does Count A do? Count A also counts the things with count and also counts the things with text, like I will tell you a small one. Let me tell you this in tabular form. See, if I talk about count, I talk about count a and then I talk about count blank. These are the three formulas that I am going to give you here. Okay, see what count does for you. Count only counts numbers. Date percentage time counts these. Count a counts whom. It counts all the things that count, what count formula does, apart from that and text. Character or I can say non MT cell but at the same time count black like its name is how many blanks are there so call it blank cell or call it force or call it MT cell it counts it okay so now see we will see it according to the formula meaning we will see it by applying a practical formula so that there is better clarity Now I want to know what to know here how many if we assume this is the marksheet of my marks if I have to just count the numbers if I am here I will count the number and here it comes, four is four numbers are written, that means I have done all the entries, right, if I have written three, then that means either there will be some text there or it will be MT, only then it is showing three, it means we need to check, so in this way, you can apply it in any situation, we have tabbed the count, inside it, just did not write the number and wrote the value. The method of applying is exactly the same, you have to give the range, you have to enter, three numbers are written, now double tap it, now where it is two, you have understood that the person in front has given only two papers, that is why all the marks obtained in the exam are written, the rest are not written, whereas when it comes to count A, see here you have understood, we have to check only the numbers, when it comes to count A, now count A will also count the numbers and It will count the text also. Suppose someone is absent, if he has written absent, then if he has written that text, then he will count that too. In such a case, what result did you get? Did you get the result that I will come to know that I have not entered by mistake? If I have entered, whether marks have been written or absent, I have entered but if I have not entered somewhere, then I will know, that is why we have the formula of Count A. We will put it here, we will give range to him and he will enter, then here he told me that there are four entries, so now I know as soon as I see three entries here, that there is no entry here, seeing three entries here, I realize that there is no entry here, as soon as I see three entries, I realize that there is no entry here, why is it not because, either see, I must have written the number, if any student has come, his marks must have been written, if someone has not come, then I must have written absent for him, but in some case, I If nothing is written then that is my default and this count is one which is telling me the numbers as well and is also telling me the text. The count is only telling me the numbers. Now the count is blank, it will tell you the blanks, tab it, hit enter, then here it has told you that wherever there were blanks, it has told you that only these three will be blanks. So looking at this from here, you get a lot of things. See what the count blank means. Zero is blank, four is blank, that is, all the entries are there, out of which three are numbers, one is your text, see, there is no blank here, four entries have been made and all four are numbers, here one of yours is blank, three entries have been made and all three are numbers, here you have one blank , three entries are made and all three are numbers, even after looking at this, I have not even seen it, trust me, I told you just by looking at this, what is here You must have kept the entries because whatever formula you apply, the result comes out in the same way. You can find out all these things from that result, that is why we apply any formula, so here we completed our four formulas, these were Sum Average, Maximum and Minimum and the other one which we completed, which is count, count A and count blank. After this, we move ahead with our cell referencing. Cell Referencing: What is cell referencing? Basically, till now, whenever I had taught you the formulas, I had explained one thing in the formula, what I had explained was that the formulas which start with equal to two, how do we write them, so for once, let us repeat that thing once so that you can remember the thing and understand why we learn cell referencing. Here we are basically looking at the answer to why we are doing this. We are going to talk about the topic, why are we doing cell referencing? Okay, so see, whenever we write a formula, we write three things inside the formula. We will write three things inside the formula. One is where we write the cells, one is where we write the numbers and one is when we write the text. The cells which are there are always keep changing. Now what is the meaning of keep changing? It will keep changing as we drag, as if something like a1 is written above and When I drag, it will be a2 a3 a4 a5. What are the numbers? What are the numbers? They are fixed. If you write a number, like we learned in Total, if you write a number, then that number remains as it is and the text also remains fixed. Whatever you have written manually, how will you write the number and text manually? If you write by giving a cell, then it will go into keep changing, that is the cell. If you manually write any number and text, then they are always fixed. Okay, one more thing is added to the text. Whenever you write in a formula, you write it inside a double inverted comma. You do not write it directly. Whenever you write a text inside a formula, you write it in a double inverted comma. Now tell me one thing, the number is fixed, the text is fixed, it is keep changing, so suppose I have any such reports etc. She has to make a place If I have applied the formula, will I keep applying the formula everywhere because sales are ever changing and suppose I ever have to fix it, if there is such a situation, then we have to fix it, then we can fix it, but we can fix it manually, we will have to fix it separately, when to fix it, when not to fix it, what is the need to fix it, this is the learning we call sale referencing that we do in this way. We will learn when we have to fix our cell, when not to do it, why we have to do it and how to do it. We learn all these things inside cell referencing. So now you have understood that we will learn in cell referencing. In cell referencing we are learning that when we have to fix our cell and when we have to keep it in keep changing. Okay, now let us take the topic of referencing a little further. Cell referencing. Okay, let’s talk about cell referencing. How many types of cell referencing do you have? There is no need to remember it but as a la for general knowledge or if you understand these few topics then you will understand things in a little detail. Just for that there are three types of reference. The first one is relative reference, the second one is absolute reference and the third one is mixed reference. Okay now what is relative reference ? What you are talking about till now in reference is relative reference, meaning keep changing. Whatever I will talk about here, I will talk about sales, I will not talk about numbers and taxes about anything else, I will talk about sales because whatever work we are doing, we are doing it for sales, so what comes under relative reference, keep changing, it will keep changing. What is there in absolute, fix everything, fix everything. This is what we were going to talk about in referencing, what to fix and when to keep changing, then in relative, always keep changing, in absolute, everything has to be fixed, now what is mixed, what is mixed and mixed means it does relative plus absolute, now both are fighting among themselves, change everything, no, fix everything, no, change everything, fix everything, so now me. Tell me the solution to this. If there is a fight between these two, then what will be the solution? Tell me, if one person is saying everything, I just want to explain, one person is saying change everything and another person is saying fix everything, then in such a situation, if you have to give a solution, what will you give? Fix half of the solution and keep half of it changing, otherwise what, do 50 50 brother, half of you agreed. Half of yours, assuming the work of both is done, then we call such a reference a mixed reference. Lad, this is a part of the theory. You may be wondering why we are reading all this but it is very important. Now, as soon as we do the practical, you will say that it has come out so lightly and it is very important to learn it. You will understand why it is so important now. Let’s do one more topic. After that, we will move towards the practical. What is the small topic and what is the topic? It comes that you just have to remember one thing, this is a cell, this is a sieve cell, so C is the column and one is the raw and what does a cell get? It is formed by R in the column plus and when we give a cell inside a formula, we give a cell inside the formula, then the names of the complete cells come, you will see that if you apply the formula of sum, then a1 to a10, then those are the names of the complete cells, you just had to keep this in mind, now let’s move towards the formula. After that, you will understand all these things. We come inside the cell reference. The first thing that comes to us is the relative reference. What does the relative reference say? Look, I have to put the sum here. Tell me the way to put the sum. Here, how can I put the sum? I can put it by doing Alt equal to two, I can enter and double tap it. The answer will come. Till now we have not put so much mind into it, now we will put a little bit of mind into it so that we can understand what is happening and what should we do. Have understood this thing, what had to be done till now has been done, but the thing has been understood, which cell is your h3, what is your h3, what is the even you want inside h3, what is the even you want, what is the even, you want from d3 till g3 here, okay what is this h4, what is the even inside h4, what is the need from d4 to g4, then what will come, h5 will come, then what will be the even, from d5 to g5 and so on. Suppose I reach h100, then what will I want, what will be the even, what will be the d. 100 to g100, tell me one thing, the h3 here is also changing, h3 h4 h5 h and along with that, the simal new, along with that, you are seeing that d3 d4 means along with that, these are also increasing, so what is this whole scenario? So when the whole scenario is changing, we have to change, so we don’t need to fix anything, that’s why what we were doing here was taking the formula and double tapping and my formula was being applied all over the place, you see d3 to g3, if suppose you are on h9, then this is d9 g9, if you suppose you are on h16, then d16 and g16, so there was no need here, now we will do one more. Let’s take an example, which is going to be our absolute reference, so see, we are going to calculate the percentage of these marks within the absolute reference, so here you learn two things at the same time and also calculating the percentage, but my main focus will be to teach you cell referencing, along with that, learning the percentage will become automatic, okay, so let’s first understand how to calculate the percentage, okay and then Later we will understand this scenario a little with the study of A. Suppose there are students here, let me make five students, this is your A student, this is your B student, this is your C student, this is your D student and this is your E student, okay now here the marks of A student are 200, marks of B student are 300 marks of C student are Marks of 350 students came to 250 and end marks came to 275. Okay, these marks have come. Now suppose you have to find out the percentage of all these students and how many subjects they study. If they study four subjects, then how do you have to find out the marks. What is the formula of percentage? What does Total Marks Obtain mean? The number of marks obtained, so let us put the number on the right and upon. There is an exam of total marks, we will keep it below, now tell me one thing, how many are going to be below the total marks A, 400 because there are four subjects, one subject is of 100 marks, then you will have to see the marks above 400. If suppose I calculate this percentage of A for A, then how will I calculate it, then how do I calculate the percentage for A, 200 / 400 * 100, so here is my Now here we are in Excel, so even if we do not put 100, it will be fine because we have applied the format of percentage. If I calculate the total percentage for b then how will it be 300 / 400. If I calculate for c then how will it be 350 / 400. If I calculate for d then how will it be 250 / 400 and if we calculate here for e then what will come out is 275. / 400 So tell me one thing for everyone, we have calculated the percentage in this way and you have come to know how to calculate this percentage, now we will travel a little, whatever we do, we should do a little traveling in it, we will understand the things, let’s travel, let’s travel for a second, so first of all, what did you take, first of all, what do you have to take, the number of any individual, then it means you took the marks, okay and the marks were taken for a, tell me one thing. So there is a different mark for B. There is a different mark for C. There is a different mark for D. There is a different mark for E. So what are the marks? Keep changing and keep changing is happening again and again. What is the keep changing thing? Cell number text. You can write these three things in your formula. What is the keep changing? If it is in the cell, then it means to choose the cell. Here, OK for divide divide. We have put slash below we need total marks total marks how many are there 400 here how many are 400 here how many are 400 here how many are 400 here and how many are 400 here so that means is a fixed thing now tell me one thing we can write three things in the formula we can write cell we can write number and we can write text 400 text is there otherwise this one gets cut off now let’s talk about these two The number is always fixed. The number is always fixed, so either we write the number directly or we write a cell which we have to fix manually. In both the scenarios, our answers will come because what we need is to fix that number below, that’s why we can write the number below or we can also give a cell. Okay, so now we will apply our formula in both these scenarios and find out our answer. Let’s do it here. First of all, I take the total, Alt equal to enter and after that I double tap here, so here our totals are here, now it comes to the percentage, first of all we will do it, which is the easy way, whatever we know is fixed, we will write the number, it is always fixed, so we do the same, so equals to, first of all, we will have to take the marks because we knew the thing. The marks are being changed, we have taken the comma, sorry slash, after that what will we write, we will write our 400 and enter, then see you have got the percentage, just double tap it, see, double tap, we are able to do h32, for here obviously we need h33, so we will do h33 because it is in the keep changing, now you know but suppose I say that we have this cell, marks are written inside it and now we We are going to calculate this percentage through cell, that is, I put equals to total here and slash it and after that I give this cell and hit enter, still my percentage is correct, now I double tap, so do we have all the percentage here? No, why is it not there because if I double tap the number g30 in the divide, then it will go to the key changing. Now after g30. Is it g31 ? Is it science? If you divide it by science then only the value will come. Do you divide it by 34? Will you divide it by 37 47 93? See, the values ​​will come in the same way because it is keep changing. Look, after g31, it becomes g31, g32 becomes 33, then tell us one thing that you should not do this. Even if your answer is here, whatever you have to write, take it as h. You have to write h32 diva ba g30, you are here, suppose this is your h36, still divided by g30 is required, you assume this here, suppose your h is 42, still divided by g30 is required, then g30 is g30 g30, below everyone else is g30, you know this thing, everyone needs 400 below, so what will you do in such a situation, you will fix g30, now let’s learn how to fix it, this small thing. The concept is that we will learn how to fix any thing, here we come to our third part and from here we will learn how we fix. Suppose you have to fix any thing, any thing has to be fixed, we are learning to fix the cell. Inside the cell, let me assume there is a cell, then I will tell you how to fix these two. Look, the symbol used for fixing is dollar, now dollar is also above the fourth key, so Do not put dollar manually with shift, you have to press press f4 and there are some systems in which f4 will not work. If f4 is not working in your system, then hold the function, press and hold the function and then press f4, then it will be okay. a is also fixed and one is also fixed that means column is also fixed raw is also fixed the thing which has dollar in front of it is fixed like suppose if I write dollar a1 then here what you fixed fixed this column now when you drag it what will come # a2 is sorry # I am saying dollar a3 dollar a4 a will remain fixed if suppose I write a one then now when this would happen when now this What would have come if we had dragged? If we had dragged, what would have come? If suppose I am dragging it from this side, then it would have come ‘Bud 1 S Dove D Dove’. Why because I have not fixed ‘A’ then ‘A’ will keep changing but if I have fixed ‘One’ then it will remain ‘One As It Is’ so basically the thing which has a dollar in front of it becomes that thing. Okay, so here you don’t memorize it. What do people do, they memorize it so many times? If you press f4 then just dollars should come here. Hey why should they come and why should it be fixed? We have to learn this. Now we will apply the formula again inside the cell reference. See equals two, we will take our marks and divide. Now we need g30. Tell me one thing in g30 whether I have to fix g or fix 30 or fix both. Let’s see, you press f4, you tell me one thing, g30 was required completely no matter which cell. Go in, you wanted divided by g30, then g has to be fixed and 30 also has to be fixed, so I took the cell, pressed F4, dollars appeared in front of both, that means both are fixed, just double tap it and in this way your answer will come, okay, in this way we can fix our cells, it is very important not to memorize at all , if there is any data doubt anywhere, please let me know in the comment section, it is okay Let us now move towards the third reference, now you have come to relative, absolute has come, then mix has come, okay, there is no need to panic, but still we will do it a little more carefully. Okay, if you have understood this one, then after this you will be able to make any kind of formula for yourself. Here too, if we have to find out the percentage, then percentage. You already know the method of calculation, so here we will calculate the percentage, take equals to marks, divide by 400, write whatever you want, take this, take this and fix it with f4, you know I want the whole cell, so you have fixed g61 here, now enter, after that you double tap, you will get the correct answer, now you have the next thing, this is a case study in the way. We divide our marks by the total number of marks, in the same way I say that what is my percentage of Hindi within this 189, what is my percentage of English within this 189, so if you want to find out something like this, then you will have to apply the formula here, now like what we were doing there, we keep as many marks as we got, above, so that means, if I have 41 marks in Hindi, then I will put above in And Upon. The total marks here is how much is the total marks 189 so I will keep 189 ok next this is your Hindi, after that you have to find out English then 39 diva is 189 after that 75 / 189 then find out like this now look what is 41 41 is your d3 so basically what are you doing d3 divided by what is your h63d was 63 this and upon In h 63 if we talk about next then d63 / 63 divide by h 63 that means your h 63 is fixed h 63 is coming in everyone everyone needs it otherwise if you drag then it should remain fixed that h 63 is coming in everyone so let’s now apply the formula so we will apply the formula here How many marks are there in Equals to Hindi this is the comma because d63 Then e63 then f63 so it is changing but the one below is h63d 63 / h 63 should have been this e63 / so look here also here also h is 63 if I assume that I am going here then here also h is 63 tell me one thing if you have to do this for 27 75 68 79 then will you check according to 189 then you will make it for 249 According will check the meaning, understand the meaning of this , it means that suppose you were doing this one here or this one here, f e your 73 so what you wanted here is 73 divided by h 73 if I talk about this then what do you want here d69 upon h 69 if I talk about this then what do you want d65 h65 and now yes ya to hindi ka nikala ka karenge then f65 / h65 so In this way it will keep increasing, so now I understood one thing that it is true that here we need h 63 but here again we need h 64, here we need h65, here we need h66, that means this h is remaining fixed 63 64 65, these are changing, so do not fix the thing which is changing, right now you have fixed both of them in the formula, that is why the problem is coming, don’t fix them at all. We do not fix the things which are in keep changing, that is why now we will apply the formula here again, so see, you remove this and after that apply the formula, take equals to marks, divide, now we will take 189, h will take 63, we will press f4 so many times that we get the desired desired result. Now what is our desired result that we have to fix h. But do not fix 63 because it will become 64, 65 will become 66 , then keep pressing f4, keep doing this until the dollar appears in front of h. No one will remember whether to press two times or three times. If you are remembering this, then you will not be able to make any formula by yourself, that is why this is being done in such detail so that you can make the formula by yourself, so here you are wondering why h. Why is 63 not being fixed and if h has to be fixed then dollar should come in front of h then just keep pressing F4 as many times as the dollar comes in front, I see, I press it again, I am gone, it is coming on both, it is coming in front of 63, that means 63 is fixed once more, it is done, no memorization, it has to be done like this, enter it, now you drag it, drag it. After check below this 63 63 h 6363 correct and now drag it for a second now look I am here I this is your g70 so h70 is coming below d70 it is not so h 63 is here h70 is coming here so h is 74 is coming that means now your answers are absolutely accurate so what did you do here you fixed half of it and left half of it so it is the same It was when I explained to you in the mixed section that half should be fixed. What is the solution? Fix half of it and leave the other half for keep changing. Okay, so this is what we have done here, so this is where our cell referencing ends. If there is any doubt anywhere, please let me know in the comment section. In the live class, we do it in a lot of detail, but we know that here we have a little restriction of time, so here we have done it in as much detail as we wanted. Still, if there is any doubt, please let me know in the comment. Section and let us move ahead towards our next formula, so now the formulas that come to you are tax formula, how are tax formulas which are related to tax and let me tell you one thing about these formulas, all the formulas that you will see are very easy to apply, without doing anything, we have just told the text that if we want to make any change then in which text we have to make it but then what is the difficulty in it . So there is nothing but you have to keep in mind that whenever you have a situation, you should remember that this formula will be applied in this situation, the challenge is only that we have to remember that oh we have this situation, now we have to apply this formula, there is no problem in applying, it is very easy to apply, okay, first of all we will directly take the three formulas together and talk about the three formulas. Okay ma’am three yes yes three suppose you have some data like this a one let’s take some data here ok suppose you have some data here I write abc 1 2 3 xyz this is your ID some code is written now suppose you take this abc from inside it each meaning here there are 100 entries from inside that you want to extract the initial three words you understand this we can extract any text How to read, we read from left to right. Okay, now let me quickly explain from the left side. Now from which side you have to do this extraction. If you have to do it from the left side, then what formula will you apply? Will you apply the left formula? What do you think in the left formula? You will tell from where to extract from. From here, we have to extract from this text. Suppose a1a, so you have written a1, after that how much has to be extracted. A, B, C, three letters. If you want to extract, then you write three here and your answer will come, in the same way, suppose you have to do 11 will come at number 9 10 11, that’s fine, so you will not be able to extract it, how will you not be able to extract it, because it will go from left to there, you cannot write this, extract the number nine, if you write nine numbers, it will extract all the numbers and give it, then you cannot apply the left formula from here, you cannot go from the left side, now from which side will you go, you will go from the right side,

    that is why what formula will you use? You will put right, now when you go from the right side, what will you get , which number is it on? One, first tell me which text you want to change, you have to change it in a1 and on the right side, how many texts do you want, if you want three, then you have done three, then your answer will come to you, third comes to you, what does mid say in the middle? It says in the middle and if there is a middle, then we will not decide the middle, that means it will not decide the middle itself, we will tell you which middle has to be decided. middle you left right if you don’t remember both then middle can also work ok what do you do in middle first of all tell which text you have to change a1 has to be changed then tell where will be the start from where will be your middle start from suppose I am starting from 1 2 3 4 four so I have made four after that how many extractions do you have to do let’s say 1 2 3 three If I want to extract, I made it three, then my answer will be 1 2 3. Okay, so the middle works in this way. It’s totally up to you, what you have to extract, depends on your situation, what you have to extract and according to that, you will apply your formula, so let’s apply the formula. See, here we will go to the formula. We will apply the left formula for ourselves. To apply the left formula. We will write equals to left, tab ups, we will tap equals to left, we will give text, we have come here, comma number charge, which is written Na C H A R S, its meaning is How many characters will you go here, how many characters will you have to take from there, you have to take a, you have to take r, and you have to take that dot, I told you that here the spaces are counted, so you have to take m, you have to take r, you have to take that dot, then how many numbers have become, they have become three numbers, you will enter three, so here it is, now you double tap all the initial numbers that you have, they are there in keep changing. You already understand that, but you have got all of them, okay, just like that, now suppose I have to extract all this from the right side, M A O K L M So look, it has come with a dash, I said no, it counts, okay, you read it, Oops, Oops, Oops, I’m so sorry, I’m so sorry, you double tap it, you will get all the answers. Let’s talk about the middle, what do we call the middle in short, when we say mid, then the formula you think is the mid formula. Equals to mid tab. After that, the text will come. What will the text come? Here is your text, okay, this is your text, this is what it means in which. We have to make changes. If we have to make changes inside this text , then this text came. Comma start number, start number, what does it mean, where to start that middle, then a One second, how many characters do you need, comma four, okay, enter 5678 and just tap it, okay, then it would have come to you in this way, if you had done four here, then it would have counted the dashes and given the answer from 5 to 6, because it counts the dashes also, and it starts giving you numbers from whatever you start the middle stew, so you just have to pay attention to this small thing. We have to keep that in the middle, the rest of the things are directly in the left and right, so here we have completed three formulas: The first one is left, the second one is right and the third one is mid. Okay, let’s move next towards our length. If we have to apply the length formula, suppose you have an ID. The ID is written in this way. Okay, you have made 1000 entries and you have the data. Now you want to check whether all the IDs are written correctly or not. Look, if there is any problem in writing, we cannot tell right now how we will check or what we will do. But we know that our ID is only of 12 numbers or 13 numbers only. Just like you know that there will be only 10 digits in the contact details, you know that there will be only 10 digits in the contact details. So suppose somewhere I tell you that here 11 digits are written, here A is written, nine digits are written, then you will not even check what is written, you will tell me straight on the face that it is wrongly written, so this is how you came to know, you checked the length because its length is fixed, the length of the number is fixed, that is, it is of 10 digits, so whatever. If it is of 10 digits, whether it is more or less, then obviously it is wrong, otherwise we check the length in this way. Now we call the length in short. What do we say in our formula? If we say AA lane, then we will put the lane formula here. The suffix was not supposed to come here, we will put the lane formula. Equals to Length tab and what to do in it. Always listen to the formula, do not listen to anyone else, what does the formula say? If you want to take the text, then you take the text, you have taken the text and after that you enter, it will come here and just double tap it, then your complete length will come. Okay, let’s move ahead with this, here we have completed the length, after that comes to you. Trim formula. What does the trim formula tell you? The trim formula tells you that suppose you have some data which has a lot of unwanted spaces inside it. What are the unwanted spaces? I am writing here that there are unwanted spaces, so if you have to remove those unwanted spaces, then now you will sit down and start doing it one by one, then how time consuming is the process, one by one. What will we do in such a case, in such a case, we will apply trim formula here so that all the unwanted spaces will be removed, so you apply equal trim here, tab, after that give that text and hit enter, then in this way all your unwanted spaces will be removed from here. After that, double tap, then all the unwanted spaces there will be removed. Okay, so in this way, when Whenever you get any data, like any data comes from a client, in which data cleaning has to be done, then trim formula is used a lot in data cleaning, because no matter how the data comes out there, suppose sometimes you copy something from the website and bring it from anywhere, then this mistake happens there too, then how can you correct that entire data? You can correct that entire data in such a way that you apply a trim formula and then After this, all your unwanted spaces will be automatically removed. Okay, now let us move towards our next formula, which is not the text formula, we will do the text formula later, after that we will do lower upper and proper. Now what is this lower upper proper? Basically, let me tell you a little because we are going to do three formulas together, let us do a small overview. See here what we are going to do in lower. We will do upper and one we will do what is lower upper and proper one second prop what is lower like your alphabets A B C D this is lower what is upper what is your A B C D this is your upper and what is proper if I have to write tanu then T A N N U S I N G H A L So see the first letter first letter what came first letter capital came and all the other smalls came that is your proper which is your sentence Case, what do we call this? We call it sentence case. If you want lower case, you want all the letters in small letters , then use lower formula. If you want all the letters in capital, then use upper formula. But if you want everything, that is, you can use proper formula. If you want it in sentence case, then you will go here to the text formula. And after that, for a second, look here, all the things are now in sentence case, then you will use small letters. You can do this for small letters, don’t write small, you have to write lower, tap will give the text, meaning what changes are to be made inside it, enter it, then your formula will come and just double tap it, all your formulas have come, in the same way, if suppose you have to do all the things in capital letters , then equals to upper tab, after that you will give the text and enter, then here you have all the things. If it has come in capital letters, then you can convert it to capital letters in this way. When it comes to the proper means sentence case, then already you can see that it is in all the capital letters, so now we have to convert it to sentence case, so to convert it to sentence case, we will apply the formula of equals to proper, tap, after that give the text and enter, then here in this way you will Look, all these things have come in the sentence case, easily the data has come automatically in this manner, so this is what we have completed here, three formulas, the first one is lower formula, the other one is upper formula and the third one is proper formula. Now let us move a little further and let’s see what other things are there. You get tex join flash fill is also of the same. There is an alternative which is not available in every version. It will be available in the versions after 2019. It is very easy and first of all, let us move towards our formula. Suppose you have two types of text and here we will read one more topic, so read it a little carefully. Just give me a minute. Suppose you have two texts here, you have to join both of them, then you can apply the formula like text join. As its name says, its function is also text join, text join, text join, tub came, now read it because I will explain something in it and after that we will apply the formula, first comes the delimiter, then comes the ignore f mt and then comes the text one text two text thi, it goes on. Okay, you have read this, now we will understand it, first after that we will do something, so see, what is a delimiter, it is very important to understand, okay daily pea, this will come in more formulas later on. While going on, understand this very carefully. It is easy to understand. Okay, look, what is a daily pea? It is a thing that joins two things, just like we read in English. Not a conjunction that joins two things. So, in the same way, it is a daily pea. Suppose I write like this Tanu Singhal. Now, there is a space here, a small so t space, what is a daily meter? Suppose I write here tan single, so this is the underscore, what is this daily meter, I write tanu comma single, so this is the comma. What is this delimiter, I write Tanu Sl single, so what is this slash which is there, what is this daily meter, what is daily pea, then what is daily meter, which is connecting any two things, even if there is no space, then space is also your daily meter, okay, you just have to pay more attention to the space thing, that if you put anything because of space, whenever you apply the formula, then you can get confused in the space thing. If yes, then do not get confused in the thing with space, space is also your daily pea. If you want to join two things and there is a space between them, then that space will also be called your delimiter. Okay, now let’s apply the formula here. Equals to takes join tab. After that, we need daily pea. What is daily pea? What have we given daily pea? Suppose R Sharma, how do we want to join it, we want to join it with a space. Okay, now look, I had explained to you that you can either give cell or Then you can give number or text or character along with text, I have said character along with text and character. Right, so the space in text and character is like a character, so whenever we write something in text character, in what thing we write, we write in double inverted comma. Right, then we will turn on double inverted comma. Now for space, we will tell him that if I want a space, then I will give one space, how much space is needed, I will also give one space. Look, sir, I went ahead of him. After this, I will turn off the double inverted commas, I will put commas. Now what are you asking next? True False is never to be memorized. It always happens like this. Whatever formula you are applying, True False is coming in it. Suppose now this data is very small, if later on the data becomes very big and there is an MT cell in between, then do you want it to be ignored or do you want that MT cell to also be included, then there will be a lot of space in between, then what kind of answer do you want? Obviously if it is included, if the MT cell is included then it will become empty, nothing will be shown, then you will make true, false, okay. Now there is comma, text one, text two, then text one, what to add, OK, text two, what to add, enter it, so look here, Aarav Sharma, one is connected to it, if let’s say , I will show this thing by doing it one more time here, text join, don’t get confused, tap delimiter, now I have to add comma, so I put a comma in the double inverted comma, after that I closed the double inverted comma, then put a comma, after that I made true, now you know that this is done twice. Why is the comma coming once again? The comma is to move ahead from that formula and the comma in the middle is for the delimiter. This is called the true sense of the formula that you are able to understand its true sense. Now you are not memorizing the comma and after that you have taken the comma and then the text. If you enter then Rohan comma, okay, it is done in this way. Let us double tap the same formula and come here. Now we have to do a lot of processing inside it too. We had to look at all the things and came up with an easy version of the same, but the easy version works on a little pattern, so we will talk about that also, let us move ahead, we do the same work with flash fruit also. See, any particular work can be done in more than one way in Excel. It is totally up to us that which thing we are remembering at that time, which one we understand better in doing, which one we think is easy and which one we can do in the best way. In that way, we do this work, okay, now where do you get this feature, it is found here in the flash fill inside the data tab, okay, but we will do it with the shortcut key and its shortcut key is control e, what is control e, I write it along with it so that we always remember control e, okay, the flash result works by using control e. Now a little talk about how the flash fill works. And after that we will use flash fill as I told you that the flash fruit works on a pattern like flash f. Okay, now see what is the function of this pattern. It works in two ways, one is input and as soon as we need an output, now we can call input output as question and then we need answer. The thing is the same that you give a question, that means you give an input and from that you get the output, that means you give a question, from that you get If the answer is found, then there should be a pattern in giving the question. There should be similar questions because you need an answer by dragging and there should be a pattern in taking the answer. If there is no pattern then you will not be able to get the answer. The only thing is that if I tell you that after looking at this data then the flash result will definitely work in it. It is possible that the flash result may not work on it, then there is no such guarantee of the flash result but if it If you have understood the pattern then it will give you the answer. If you have not understood the pattern then you will not get the answer. Now let us give you an example of this. Let us assume that you will understand the pattern of the question. Then you will understand the pattern of the answer. What is the pattern of the question that on one side all the first names are there and on the other side are the last names. So are they written pattern wise? Yes, the same work has to be done in all of them, not first name last name first name last name first name last name first name last. Name is something different, something is changing, not changing, neither the pattern means the same, what is the answer to the question, what is the answer, we need Aarav Space Sharma, Rohan Space, Aditya Space, Mehta, Vikram Space, Malhotra, Rajat Space, Bansal, Arjun Space, Thakur, same is required for all, pattern is being formed in the question, and from the same, when we have to extract the answer, a pattern is being formed in it too, so when the pattern is being formed, Will the flash fruit work here? Yes, of course. Now how does the flash fruit work? How does the flash fruit work? You have to give him a command, you give him a command, explain it to him, sometimes it is not possible with one command, then you can also give two commands or three commands, but from my personal experience, I tell you that whenever he had to work, he would do it in one command and when he did not have to work, no matter how many commands you give him, it is okay if he does not work, then you will give him a command here, after giving one command, he will do your work. It will make it automatic and it will understand the pattern, what do you want the answer to be, then the first command we will write here is A. Okay, as you write, it will come A. A. R. A. Correct is to be written. The first command is you have to give correct . If you do not give correct then the answer will not come. Okay, I have given correct and I have given space here Sharma. Now I do not have to do anything. Come to the cell below and press control E and see your yes, see your answer has come, your answer has come, this is the answer for everyone. I wanted, yes, let’s see one more example, suppose it is the reverse of this. Now think what is the pattern here, think what is the pattern here, what is the pattern here, here is the full name, how is the full name also given, there is a pattern in everyone, Arf space Sharma, Rohan space Iyer Aditya space Mehta Vikram space Malotra Rajat space Bansal Suresh space Reddy, so all these are written in a pattern that there is a name, there is a space, then there is a name for them only we know. What is tex split? In my version of tex split, we are using version 2021. It does not have that formula. Inside 365, you will get that formula. What is tex split? Just like we have joined the text, it says to split the tex, so here we will do this work with flash feel, how will we do it, we will give our commands and after that he will understand now what is the command , what do I want Arav here, so here comes Arav. After that, what is the command that I want Sharma here, then Sharma comes here, okay, after coming here, press control e, after coming here, press control e, and this has done your work, okay, so in this way, we can use the very effect of flash fruit, wherever you want to extract any of your things, you have to do anything, you can use your flash fruit there, so this is your flash fill, we have completed it here, let’s do one more formula here. Let’s make some substitutes. Before substituting, we do one thing. We text the text formula. What does the text formula tell you? There is one thing in the text formula which I have taught you very well. It is going to be used here. It is going to be used here. I always say ‘Bo’. Suppose you want this date given. No, which day was it on that date, just like you don’t write your birthday, we write the birth date and you are asked in interviews etc. that which day was that day, tell me which day it was on that day, tell me, if you want to know this, then how will you tell, see, we will apply the equals to text formula, we will tab the value, what is the meaning of the date, the date has to be given, the meaning by which you want to know, you are asking about the comma format, what is the format? You have to know the format of date according to the date, how is the date written inside the date, D D M M Y Y Y or it is written like this. Now if you want to know the day, then that means you have to write DD, but if you want to write the day completely, then how many times can you write it by writing it four times. Now you have understood how many times D has to be written four times. Now what is D in itself? What is D, is it a number, is it a one? What is text? What is that character? What is text? So there is a text and any text is written in double inverted commas. So here you will turn on double inverted commas. Here you will turn on double inverted commas. You will write D D D D. You will turn off double inverted commas. You will turn off parens and enter. So you will get your answer here. Now you can double tap it, you will get all the answers. What did you do, if you wanted to know the days, let’s say. If you want to know the month , then go to Equals to text tab, after that give the value, meaning give your date, in the format of comma, you write four times mmmmm. When you enter the parenthesis off, then look, it has told which month it is – June, September, July, April, July, November, March. So, you have all the months here, so in this way, you want to get the days. You know the format, you want to get the months, you know the format, you want to get the year. Do you want to get the format written, you know the format, you should know the format and now I have got the format done so well for you, so you know the formatting, why we wrote four times D, why we wrote A, don’t memorize it, people here memorize it, write four times D, the answer will come, write four times A, the answer will come three times M, the answer will come, no, the logic behind it. Now you know the logic behind this, why we write four times only, we three. Why do we write only times? Why do we write only two times? Why don’t we do something directly? Why are we writing at all and why have we put double inverted commas in it? Now you know all these things. So here we have completed our text formula. Now let’s move ahead. Now we will do our substitute formula. Substitute formula. We will do it very easily here. What does the substitute formula say? What is a substitute? What is a substitute? What is my substitute? Someone else has come in my place, today I am teaching you Excel, okay, someone else has come in my place, so he is my substitute, someone else can teach Excel in my place, so that is my substitute, if suppose you are not using Excel, you are using G sheet instead, so goel’s has been replaced and in its place, we can use it. Suppose, you can write with a pencil and you can also write with a pen, but if you have picked up a pen instead of a pencil, then what have you done? Is pen a substitute for pencil or is it meant for writing? Yes, both the tasks are being done by it. Yes, there is a difference but what both the tasks do is only for writing. Neither is pen. Pen is the substitute of pencil. In the same way, if there is something inside the data which we want to change, then we can do it with some substitute formula. Then, Equals to Substitute tab. After that, we have to give the text, then which one should be changed. What is the meaning of the text? What type of change has to be done? Do the commas have to be used in it in a single single because there is not the same change in everyone. If there was the same change in everyone then we would have done this. It will not be able to be dragged. Okay, now we have to tell the old text what to change. 56 78 so 56 78 is the number so you can directly write the comma text. What text do you want to write? Let’s say I want to write here 1 2. 3 So I have to write 1 2 3, I have to do something else, if I don’t understand anything else then just finish it, enter the formula, see if the text is apx600, then you will give it in double inverted commas, p, k, r, you will write exactly the same so that it can understand and, what have to be written in its place, suppose you want to write a b c, then you are writing the because text in double inverted commas, right? If you want to write enter then it has written ABC. Okay, so in this way you can replace anything. Replacement here is this one. Why did it mean that we have substituted? Replace is basically a kind of replace but it is not a complete replace thing because we have to do it differently in each case. If you want to replace a particular thing with a particular thing, then you can do that directly. Okay, this was your substitute formula. Now we will move towards our date and time formula and if we are talking about date, then first of all let us learn that the current Which formula is available for date and current time and which shortcut is available? Shortcut: Yes, you can get your current date and current time directly through the shortcut. If we talk about current date, then you will know the current date. Here we apply the formula to get it. Write today’s today formula, tab it and see, I always say, listen to whose formula or listen to the formula, what are you saying brother, nothing else is required, direct parenthesis. Do it, I will give you the answer, then it’s ok, then if he doesn’t want anything, then don’t give it. Turn off the parentheses. If you enter, then the current date will come. Similarly, if you want to get the current time, you can get the current time. For the current time, you have to use the formula of now. I will tab and it also says, I don’t want anything, just turn off the parentheses, so we turned it off and entered, then it gave me the current, okay, I checked today’s time. Have you just put the formula ? Okay, there is a date here, we have to do the time, so look, it has given me exactly the time. You can check the time formula from here. If you make a little mistake in the date formula, if the time and date of your system are not in the correct way because they are captured, then somewhere, how is it able to find out on its own what date it is and what time it is, then suppose anyone’s answer is wrong here. So please check your time setting, is it accurate, whatever it is will be shown here is fine, so you make sure that in any case, if your answer is coming wrong then the reason for that is in your right corner that your things are not correct here, if things are correct here then your current date and current time will be accurate. In the second method, I will erase this. Let ‘s not erase it. Let’s do it here. If you agree, Take the current date, if you want then control and you have to press the colon control and after pressing the colon, you get the date in this way, then look at what you pressed for this, the control is fixed, just remember that for this we press the colon and for this we press the semi colon, the only difference is, now remember the semicalculus, if you do not remember the semicalculus then remember this, just for this we apply shift. Applying shift means using semicalculus. If we are pressing here control shift semi colon, if the colon one is pressed then basically semi colon will be automatically applied, then your timing will come. Okay, you remember this colon colon control colon, your date has come, control along with shift and put it, then use the colon, then your time will come. So in this method, we find out our current date and current time. Okay, now we will move ahead with the text formula. You already know that by pressing it, take a look at the text tab for once. We gave the value D D D D, turned off the parenthesis and entered and here our formulas have come. We had just learned the text formula, so there is no hard and fast rule in it, as you all know that inside a date, there is a day, there is a month and there is a year, so if you want to extract the same thing, then you can directly extract it. It is a very easy formula, like it is very easy, okay, so what you have to do is to apply the day formula. You have to tab the serial number meaning if you enter your date then the day will come. Okay to get the month equals to month, this is very easy. If it comes in handy in any situation then it is very rarely used directly like this then you enter then your month will come and in the same way if you want to get the year then the year tab serial number means if you enter the date then your year will come. Okay so in this way you can get the day month year, it is very easy. Why do let’s say you have a date, it is 9823, it could be like this, it could be 9th August 2023, and it could be like this, it could be 8th September 2023, isn’t it a possibility? Look, it could be like this, 12th month of 2014, who knows, it could be like this, 14th month of 2014, who knows, it could be like this, 14th December 2014, anything can happen, so to know this, you have read Day Month. Year done now you know 14th will be taken in 2012 ok so sometimes such situation comes you don’t know in which format it is written you don’t know Within this date, which is the day, which is the month, which is the year, then you can extract it directly from the formula by applying the formula of day, applying the formula of the month and applying the formula of the year, I hope you have understood, there is a doubt somewhere, let me know, okay, now we will do it. Look here, the day formula tells you how much day is there in that date, when I say days of any two dates. When you find the difference in between, there will be only days, otherwise now the formula we will apply will apply the days. Basically, what does the days do? Here is the formula applied in between two days. Okay, I have to remove this formula. Okay here, how much gap is there between the two dates, how many days have gone by. If you want to know, then what formula will you apply, what formula will you apply, what formula will you apply, the two dates of the days. How many days have come in between, then what will you do? Don’t memorize all these formulas, you have to do them according to what is written. If you go to memorize all the formulas, you will mess up all the formulas because in some, the start date comes first and in some, the end date comes first. In such a situation, you will get confused, you will not even be able to remember the formulas, they will start looking typical, that’s why they seem typical, so that’s why you don’t have to memorize these, put the days formula and tab it. Two and after that see what is written end date end date meaning when is ending end what is happening here comma start date start since when start when is it starting from here enter 42 days have come ok I for once just hold it with control I shift it here for once ok and control minus it from here left ok for now I shift the data for once Took because I wanted to make you do Days 360. There is one day which tells you how many days have actually passed between two dates. That is where Days 360 comes in. We know that look, we go with a very general understanding about our year, which means our entire year, how many days are there in it? Tell me quickly how many days are there in a year. Normally there are 365 days. There are 366 days in a leap year. Okay, if I remember maths, we used to do calculations in maths and in maths, marks were given like this, calculate the number of days below every question, like there are 360 ​​days in the whole year, so what does it mean, what is the meaning of 360, 360 divided by 12 is 12 months, so it means 30, it will not even consider in which month. It doesn’t matter which month has 31, which month has 30 or which month has 28 or which month has 29. It doesn’t matter to him what it is, he has to know that I will agree that in every month even if it is your February it has 30, your May also has 30 and your November also has 30. I don’t care in which 31 comes, in which 28 comes and in which actual 30 comes, I am I will take 30 out of all and give the answer according to that. So in such a case, the formula we apply is Ear 360. Sorry Days 360. Sorry Days 360. Sorry. Sorry. Sorry. In such a case, the formula we apply is Days 360. What is Days 360 doing now? What was Days doing? The Days which was giving you the answer was 365 on Edge or 365 on Edge and Was giving according to 366 which is actual but how will it give you as per month on 30 days but month month as per month on 30 days is ok now when you apply the formula then you will understand see I am going to give the same date here the difference will come in the answer equal to 2 days 360 tubs after that start date brother see it is in this start date look at that and end date was taken earlier. Start date first, take start date, take comma, after that end date, leave it for once, enter it and see if the answer is coming, is it yes, leave it, don’t enter it, then see, here it was 220, here it was 217, here it was 43, it was 44, then the answer changed, no, why did the answer change? Just because of this difference , somewhere it must have considered exactly 31. 30 A must have considered 29 28 must have considered because 24 isn’t 24 is the leap year so maybe B He must have considered 29 but he has considered 20 everywhere Sorry everywhere 30 It doesn’t matter to him So that’s yours What is your days 360 So here we completed two more formulas Which is days and days Let’s go 360, now let’s move ahead, which is your network days and network days intel. Look, now you understand a little, now you were given a date for example, you were given a date from 1125 to today’s date, let me write this today’s date is 12 3 2025, what to find out the exact in between. To calculate it exactly then we need days formula. To calculate the according of 30 days in between, what is needed to calculate the according of 30 days, so we need 3 days. Well in this I should say exclude weekends and weekends also only Saturday Sunday off, then what formula will you use for network days and if I say look see what I just explained to you that I want to know how many days are there between two dates. But among them automatically it will turn off Saturday Sunday and tell me that if I take it from here to here and there are six Saturday Sundays in it, then it will remove six and tell me that it was not doing this thing, Days 360 was not doing this thing, who will do this thing, the network will do this thing, but the network will do this thing, but one situation has come, what do you get for the second situation? Now let us read the second situation here, let’s read the second situation here. It comes to you that you say that ma’am, it is fine that they are giving Saturday off but my company does not give Saturday off, I only get Sunday off, that means you are excluding the weekend, you want to exclude the weekend but here you want to customize the weekend, meaning it can be as per your wish, you get it on Monday, I get Sunday off, someone gets Saturday off, someone else gets Saturday off. Some people get off on Monday, Tuesday, some get off on Friday, Saturday, so many things can happen, so in such a case, the formula we apply will be network days intel’s, then you will be able to notice this thing there and you will be able to understand well which thing is there and why it is written. Okay, so here you just understand that the network is also doing the same thing, it is giving you the difference between two dates, but what it does is that it Saturday removes Sunday, where when it comes to the network day int64, then you have applied. Now comes to the network days and network days, ital network days. We have to do this after reading and reading. After reading, all will be done. What is the network days tab asking for? Start date, take the start date. What is the comma asking for? End date, take the end date. Okay, now first of all I will show the answer by bringing it normal and then We will also consider the holidays. If there are any holidays other than Saturday and Sunday, then it is okay to consider them too, but we will talk about it after two minutes. First, we will understand it directly. Answer: Look, 31 has come, look, I had given the same date, in this also I had given the same two dates, in this also the same two dates were given and in this also the same two dates were given, but the difference came here and here, it has removed Saturday Sunday and told me, so how many less days are there. If you have gone and seen, you will get the difference everywhere, then it has removed Saturday Sunday automatic. Now I have one more here, one second control control plus, no, from here, control plus, I don’t know what kind of data is below, so let’s write it, let’s do control R and here we write holidays that we are considering holidays also. Okay, what is there in holidays? You have to tell them the date that my holiday is only then when you tell it, right? So what is there in that, he will consider, if suppose your holiday is falling on Saturday and Sunday, then he will not deduct it twice, he will not deduct it twice, he will not deduct it once, if you directly write the number of the holiday, then he will not be able to understand it. How many holidays are there? Will consider if any of these dates is falling on Saturday Sunday then should I count it only one time OK then you will have to pay for holidays also here and pay attention to cell referencing Look here now look at Network Days tab Start date this is taken comma end date Oh hey hey sorry end date this is taken comma Now these are holidays, when I take them for the first, then also all those holidays are for the last. Loo, there are holidays in all, you will have to look at the same holidays for all, otherwise what will you do, fix it with f4, enter, 31 has come, tap it, then look, there are four holidays here and there is one holiday here, why because it has now considered some holidays there, she might not be falling at all, so you have not taken it, then you should also fall, if it is not falling at all, now these three, four, these 8. From 11 to 20, 12, three or four does not make sense, so it will not fall, so it does not come in it. It is okay, if we had written any holiday directly, then it would not have understood, it would have given the wrong answer, so that is why we should tell them the dates of the holidays. He will check himself whether she falls within that time period or not. Is there any of those dates which is falling on Saturday Sunday? So he will not deduct her double time, he will deduct her single time. So that is your network days. Okay, now network days intel, when did I tell you, I write holiday inside it, network days ital, when did I tell you, then I told you when you have to do customization, look at network days ital or it seems exactly. In the same way, customization is done in the last one, start date is taken with comma, end date is taken with comma, then look, it has automatically opened the list, I have not pressed anything, it has automatically brought the list, now check, Saturday Sunday off is required, was it available only in network days, Sunday, Monday, Tuesday, the answer will be the same because only two days have to be removed, yes, changes will come, it is ok because of the date, Wednesday, Thursday, Friday. Friday Saturday, I want only Sunday only. Either I bring it down like this and press tab or directly write 11. Ok tap comma. After that, Holidays. If we are not taking holidays for now, then we enter this. This is the answer. Look, it was the same thing, but now your answers are different. Why is the answer different in all, because the demand is different, here something was coming exact. According to 360, here Saturday is coming without Sunday. Here along with Saturday, holiday is coming with Sunday. Here we have removed only Sunday and here now if we remove Sunday and also remove holidays, then what will we do? Network days, itel, tap ups, sorry, tub, start date, start date, see, whatever formula is there, see, it is written here, so you can also read the end date from here. You will take comma, after that you have written the same 11, if you want, you could have tapped from there, after that Holidays, Holidays, you will take this, you have to consider this for everyone, you will fix it with f4, hit enter, then look, the same thing has come because there was no holiday considered there and it has been changed. Here, holidays must have been considered, so here he must have changed because he must have checked from there, so in this way, we will make this network of ours. days and network days are used by intel, if you have any doubt then please let me know, I have explained it in very detail so that you can understand it very well, now let us move ahead towards our next formula, which is start month, e date and e month, ok, what do you do here, like you calculate the average due date, that is the work of average due date, understand a little here. It will be better with an example . Let me adjust it for once. This is adjusted. For once, we will understand the theory. Let’s take a case with us so that we can understand it better. Suppose this is you. Okay, Mr. He bought clothes worth Rs 10000. Now he is saying payment of Rs 10000 is fine. So Sir, I will not be able to make the payment right now, I will do it after two months. I don’t have the money right now. So Mr. Don’t you know how many people would be coming in a day? So , he records what Mr. I was patient for two months, now I have to pay my due date, so you should know it, and how to know the due date, it is on 12th March, if you add two months in plus, then what will come in March, April, so your due date will be made in May, so you have added two months, right, so in this way, we calculate our due date, so this is the work which you have done manually, this formula. If you want to do it with then use the formula of e-date, end date, basically end date, then you will put e-date, you will tab it, I have said the same thing, you have to do it after reading it, not by rote learning, what is asking, start date comma, okay, now some people may say, ma’am, if there are days, then there are days. Convert it to months, brother, if the date is days, I tell you, first take the months because you cannot do it with your formula, I have this, so what should I do, no, you did this, after that you went to home just because it is on the journal, we need the date, so here we took the short date, this is the date, one more, I create it here so that you can understand, control plus or control R, I would have removed it if you agree, you say. If I have this month, I will make another one, this is the days, write the days 60 90 65 52 62 32 45 85 45 62 If you have these dates, you do not have these, if you do not have a month, then how will you do it. Look, you will have to give the month in the formula, now how will that month come out, you have to know that, equal to e date tab start date taken comma after that take months. Now there is no month, forget the month, there is no month, you have days, how do you get months from days, how many months are there in a year, if there are 12, then divide by 12, no brother, month will automatically calculate , enter yours, 84, enter did you take this date? Well , there are 30 days in a month, so we will not do it by 12 months, we will do it by days, but it will not be standard, that means, in some, 31 will come, in some, it will come, then this can be messed up, okay, here that thing can be messed up, here two is written, here it is 90, that’s why here I write three, your answer will be correct, equal will come, okay, so here I have standardized it. I have divided it by 30 but you will have to convert it into months. Okay, if you want to be very accurate, if it is normal then you can enter the answer in this way. You will not get confused after seeing these two, because they are written randomly, don’t look at it right now, it is written as one, so here I write 30, the answer will be correct. If three is written here, then if I write 90 here, then the answer will be correct here. It is written here that if I write 60 then the answer will be same then this is different because random is written here just to tell you ok this was your end date, after this another formula comes end of month, now what does it mean, this is the formula which I had understood, within this formula I add one more condition, after that you will understand better, now what is the next condition, this person says this thing. It is true that I have to do 10000, it is true that I will do it in two months but but what does it say but sir, whatever date I follow your due date, take the end date of that month, end date of that month and date of that month, what do you say, oh sir, it is very easy, you are telling me, I did the transaction today, yes yes, then you are saying that my due date will be on my 12th, yes, I am on 12th. I am not liable to give it, I will be liable to give it on 31st May, O then your due date should follow anytime, on that day you will be liable to follow that due date which is the last date of the month, K Yes, now if you understand it right, then if such a situation arises, then you can use end of the month, see equals to e, O month which is the end of the month in which you started. Date taken, start date taken, comma, same months have to be taken, here you have to enter months, then look here, your answers have come, now look, it is the same, you had put the same thing in this date also, you had not done anything different, so here, look at 31, 8 is 31, 20 is 31, 23 is 30, look, all the last dates are just months, if yours is June, then tell me what will come, your date is that date. What is the due date? If it is June, then 30th of June. If your second is September, then 30th of September. If your third is of November, then 30th of November is your last date. If it has gone up even by one day or has fallen, then I am liable to give it in the end of the month. You see your formula, so that is your end of month. Okay, after this we move on to our next day. That is a very very very good formula. It is okay but it will be understood very easily. To understand this, let us consider a small case study and from that we will get better clarity. Okay, see here, he has asked to give the resignation. Now what does the manager say, OK fine, calm down brother, you have to give the resignation, there is no problem, but remember that after giving the resignation, you will be given 21 days’ notice. You have to serve your notice period. You have to serve your notice period. What do you have to do? You have to serve your notice period. Oh shut up, meaning I am here today on 12th March and Now I have 21 more days, which means that if I work, it will go till 3rd April, and this means that I will go till 3rd April, I have to work till 3rd April, but no problem , I will work till 3rd April, I will definitely leave, I am very fed up from here, so he has done the calculation directly till 3rd April, but the manager there says no, son, it is not like what you have done for 3rd April, in that you have also counted your weekends too, have you counted the weekends? Obviously your working days will not be counted. What have I said? 21 working days, 21 working days have to be done. If you have to do 21 working days then your Saturday and Sunday cannot come in it or whatever your weekend is, that is also customization. You know this thing that we do customization inside Intel. Okay, so Saturday Sunday cannot come. They say, OK, so now calculate and tell me till when will I have to work . We will tell you who will calculate and tell. Let’s calculate and tell. See, you came here in work days, after that you enter the formula of work days here, tab it here, it is written work day, it means it gives you the last date, I was saying work days by mistake, I am really sorry for that, like you see, when you did the day formula, do you remember in the day formula, you were getting the date as to which day is within that date, but like you said days. If the formula was done then the difference coming between two dates was net work days because in it the difference between two dates was coming, these were network days. I have also made the mistake written above, I will change it now but this work day by day day means that particular day, that is why he gives the date. Okay, we will take the start date, we will take the start date, comma, what is it saying after that, how many days have to be served, let’s say there is no holiday to serve 50 days. Will we talk about holidays later? Will we talk about holidays later? Let’s enter and here I do one thing, I take it from me, I go to home and here I come in short date. Okay, here I do a control plus A, A, I write it and here I do control R. Okay, here we will do the holiday one, then the holiday one too. You have to explain that if any holiday is considered in between, then neither the manager will consider that. Do it, it’s a holiday, work a little bit, so here you have the work day here , it ‘s ok, so here your work day has come, you double tap it, you will get all the dates. I was talking about today, right, I will show you today’s also, you did it here and we had taken out 21 days, so how do we take out its work day tab, after that was the start date, we did this with a comma, after that we gave this and entered, then we have 10th off. Where will April come? He was sitting there with ‘Third of April’ in it, do Alt HEA, then it will be deleted. Okay, so here we will calculate the working days now according to the holidays, so it is the same step of holidays which was in your network days, you take the start date, put commas, tell the days, take commas, for holidays, you have to tell this and this has to be considered in all the holidays because it is going to remain the same in future, so you Fix it with f4 and enter, your answer will come and here we go, so here you can find it in this way, if suppose you want to do customization, here by default it has considered Saturday Sunday as weekend, but here, if you want to consider Saturday and not Sunday, you want to consider something else, if you want to consider only Sunday, then you can do that also, you will enter the working day, tap the start date. You will take start date, you will go here and put comma, after that you will take days, you will take days here, you will put comma, after that you have to do customization here, what will you do for customization, you have to show only that of Sunday, otherwise you write 11, put comma, after that you have to consider holiday, if there is anything, then we will consider the holiday later, so I removed it and entered, so see this in working day only it considers both Saturday and Sunday. Here it has taken a consideration, so the date has changed, if I suppose I do the same thing here, I take it, I control it like this, and here I take the holiday, we write the holiday here, we write the holiday thing, holiday and we turn off the parentheses and enter and here I am going to consider the holiday also, so we will apply the formula again, how to do equals to work day, take the intel tab here, after that you should start. Date Start date How to take Start date is your comma after that you want days then for days you have this After that you need Sunday only, to take Sunday only you have taken 100 sorry 11 taken I am really sorry for that 11 taken com, now you need Holidays, I have told you about the holidays, select it, fix it with f4 and hit enter, then see it is the same thing but now your only holiday has also been added in it, so your answer has changed Holidays. You have understood the concept, you had done the same concept in the network days and the same concept is there in the work days also. I am so sorry. Okay, so here we have included all the possible formulas related to our date which are used the most. Here we have completed them. Now let us move towards the time formula. There is nothing much in the time formula, it is a very easy thing which you have just learned about the date. What are the things written inside a date? Inside a date, your day is written, month is written and year is written, similarly what is written inside a time, an R is written, a minute is written and a second is written . Because for now it is in this format, so what format will we do it in? No general format will come in the time format, okay ninth R means ninth R is going on, we will apply the minute for minute formula, we will tap, after that you will take it and enter, then it is 10 minutes, from how many minutes it has extracted, we will tap for second, after that we will take the serial number, we will enter, so so many seconds are written in it, okay, we do not want it in this much, we will take it in this. We have rounded it off and given it. We have given it by rounding it off. If you want, you can do it in this way. You can show it normally to two seconds. By rounding it off, we can take it from this. Okay, so in this way your R comes with minutes and seconds. So here we have completed all the possible formulas of our day and time formulas which were most used. We have completed them here and also. We will do the formula further, let’s move ahead, see till now we have seen, now let us start our logical formula. What is the logical formula? The first formula inside the logical formula that we are going to learn is the if formula. Now before learning the if, see how if is called in Hindi . On the basis you will be asked what is the answer, basically you will be given a condition and according to that you have to answer. If you did not understand the thing, let us understand from the example. Suppose there is a Raju, Raju goes to school. Okay, now Raju has given the exam. Now what is said in the exam that if he gets more than 45 marks then he has passed, otherwise he has failed. What did I say that if Raju gets more than 45 marks? If he comes, then he is passed, otherwise he is failed. Okay, so what is the condition that we have given? What is the condition that we have checked his marks, are they more than 45? What is the condition that we have given that the marks are greater than 45? If this is true, then either this will be true or this will be false. If this is true, then write PASS there and if this is false, then write FAIL there. Have you understood just one thing? You have to understand the condition very well, after that you can do this work like suppose we will travel again for now this is student A, this is student B and this is B and this is student C and if I say his percentage then it is 55. If I say his percentage is at 40 and if I say his then it is 75. So now tell me whether the one who is a is pass or fail is pass or fail is pass. If I talk about b then it is pass or fail is fail and if I talk about c then fail of dice is pass then if you tell me this then you know how to apply the formula, we just have to understand a little bit of the formula, basically what will we know by doing time travel, first what did we check, did we check our condition whether the marks are greater than 45, what did we check whether the marks are greater than 45 and look at the marks, it is such a thing. Marks percentage is the same thing, okay percentage is something which is different for this person, it is different for this person, it is different for this person, that means these are the marks. How are the keys changing, so what does it mean here, what will we select , we will select a cell, that is, we will select the cell with marks and then greater than 45, 45, whether it is this or this, the condition is same for everyone that it should be more than 45, so here we can write the number at 45 because the number is always fixed, so here we understood one thing that the first thing we have to check is what we have to check is to check the marks. Is she greater than 45 days? Then we time traveled that as soon as we get to know about the marks, that means we get to know about a condition, sorry, we erase it. As soon as we get to know about a condition, what do we have to do? Now that I have got to know about the condition, what will I do now, I will think about the condition. Is it yes or no, that means, has this condition been successfully achieved, if it has happened . So what will pass and if it has not passed then what will fail? Okay, what are these two? What is text and what do we write the text in? We write the text inside double inverted commas. Okay, now we have understood this but I have explained these things, why what is their logic? Let’s see what formula I am making you here. Right, just give me a minute . Why is it showing like this? No problem, here we will write equal to if tub here. Read what is the logical test value of true and value of false, so now we will elaborate this formula a little bit, after doing it in detail, we will understand it completely, okay, so here I write the F formula which is what is our logical test value if true and value false and the formula we have just given, we will understand it according to the example we have just given, so that we can understand F in detail. What is Logical Test? What is Logical Test? Check the percentage of marks. Is it true of the individual? Is it greater than 45? Value if true, if the condition becomes true then what to do is pass and A value false. If the condition becomes false then what to do is fail. So in this way you will be able to apply your formula here, that is why I told you the value of true by making this condition one condition two. Because value of true value of false also comes in your formula, so now you know what is value of true value of false, you just have to think of the condition properly, after that think about the condition whether it is true or false, after that you can apply your own, so see, here we will apply the formula practically, we will go with the same thing, whoever has more than 45 marks, he will pass, otherwise he will fail. Here we will write equals to if tab, after that logical test, what is the percentage in logical test? The only thing to be checked is the percentage of every student. Take the percentage of every student and obviously now Aarav Sharma will be next. Riya Verma will be next, then Anaya will be there, then Karan will be there, then Sanya will be there and then Rahul will be there. Meaning, the things that are changing will keep on changing, so don’t fix it. Okay, keep it at Greater Day 45. Greater Day 45 will be there. Do you check the comma value of true? If this is true then the condition is true then you have to write pass and if this is false then you have to write fail. Now you don’t know what you have learned till now in so many formulas and in that way. Now you will never get troubled by looking at formulas or symbols. Half of the people get troubled by seeing what are the symbols that why did you put this double e and inverted comma and then why did you put comma after that. Why is this greater than given? I will not be able to understand the formula or they will come. Now look, double inverted comma is text, hence we use comma for any next command. Greater given is given because we want to check this condition. If you hit enter, it will come close to here. Double tap it, then look, it is failing here, why 27 at 33 45, we have not put equal at 45, if we want to assume that If there is equal, then put the equal sign here, enter and now double tap. Now the one who was at 45 also passed. If you want that the one who was at 45 should also pass and the one above him should pass then you can do it like this. Okay, is this working or not? Once I check it, I made it 20. In this side also his marks will have to be 20. So see if he has failed, then in this way you apply your if formula. If you understand how the IF formula looks, take one more condition and tell it in another statement. Suppose any party name is written here. Party name is ok. I write any party name here. A A B C B C D E F G H I have written the party name here. Now I write the amount here and write the status here. I am explaining it very easy. Look, let’s go with a condition that see, this is my party. Now if any payment comes from them, then I write it here otherwise this cell remains empty and now I have to put the status. Suppose from here I have received a payment of Rs. 10000. It is okay from B. No payment has come from C. No payment has come from D. I have received a payment of Rs. 20000. After that I get F. A payment of Rs 63000 has come from H and then I have received a payment from H of Rs 52000. Now I have to update the status here that from whom has payment been received and from whom has no payment been received. Okay, now what will I do here, wherever the amount is written, that is, wherever the amount has come, then I have to write payment done and wherever the amount is not written, I have to write pending. So now what is the condition whether the cell is vacant or not? What will I think here, what is mine, what do I have to check, I have to check the cell, is it equal to MT, if this is true, that means, if it is MT, MT, then yes and no, yes and no, if it is true, the cell is empty, then what should come here, cell is empty, it means payment has not come, it means pending should come, and if we assume that cell is not empty, it means payment has come, then yes, payment received, understood, confusion, tell me once more. See what I am saying, come in the third, I am saying here we are going with a condition, see what is the condition, we have to check the cell whether it is MT and if it is MT, the condition of MT thing is yes and no, if yes means cell is empty, when is it empty, when payment has not come, payment has not come, it means pending and if it is not empty, that means payment is written in it, that means amount has been received, then payment is done. If it comes , then you know the value if true and value of false. You know that pending and payment done have to be written, but this is a logical test, how to write it? What am I saying in the logical test, you have to check the cell, whether it is MT or not, then it means that you have to check a1, then you will take a1. In the logical test, a1 is equal to two. How to show empty, there is no number, any number of text or character or anything other than the number. If it comes in double inverted comma, then double inverted comma. Now you have to show it empty, right? If you have to show space, then you give space. If someone has to show you a symbol, then they write that symbol. You have to show it empty. Stop it as it is. It means nothing. If space is given, what do we sometimes do? We give space to show empty. If you have given space here, then he will understand that there should be space inside that cell which you have shown in double inverted comma. What you write will come, now you will not write anything directly, you will turn off the double inverted comma, this means that it is empty and if it is empty, then it will come, so let’s try it for once, then you will understand better. We will go to logical formula here, we will put Equals to If tab. What is the logical test? What is the need to check this cell, what is the need to check whether it is empty, then I turned on and off the double inverted comma, but did not do anything in it because Only then it will appear that it is empty, there is nothing to be done, comma, if this becomes true then it is really empty, then it is empty, it means the payment has not come, that is, pending, see what happens, sometimes we think negative situation, sometimes we think positive, that is why I explain the logic, if you understand the logic, try the condition by making it yes and no, then we will find the correct answer, otherwise we may get confused, okay. Pending

    comma value false means the cell is not empty that means when the cell will not be empty then when the payment has come then we will do the payment. Pens of enter then see if you do this then see here the pending is coming. Now I delete it here, this is also pending. Suppose if I write any payment here then this payment is done. Okay, in this way we can effectively use if. If one like this. There is a formula which is used a lot, whether you are doing small work or big work, whether you are making a report or doing anything. If is used the most, that is why if you have a doubt about understanding If very well, then please let me know in the comment section. Here we have done it in great detail, just like we did If, similarly in logical functions, there are two more formulas in the logical formula. Other two formula R and and R and and R Now let us give a little logic to this We have to understand what is the meaning of ‘and’ and what is the meaning of ‘and’ and after that we will be able to work well. Okay, now what I am talking about is ‘end’ and ‘or’, these are English people, they are English people, now how come this is my friend Mr. I will eat pizza and burger and on one side I sent a birthday card and wrote what all will happen, meaning this is a fictional kind of example ok and there it is written pizza and burger in English and there is either pizza and burger, can we get both? The answer is no, where else comes to mean either A or B, one but where end comes, means A and B means both and both are ok, so this is the basic difference. Now why did I explain this in between is and and and and, I am talking about logical, I am talking about condition, I see where I have reached, here also it is a matter of condition, like suppose till now you had what was being talked about inside if and what was being talked about, single condition is ok, now it has come to the case of if condition, multiple condition, you have more than one condition and now there are two situations, either both the conditions are satisfied. Only then will some work be done or if only one of them is satisfied then it will work. If both have to be satisfied then apply the ‘And’ formula and if any of the two conditions, suppose you have two conditions, if any one of the two will be satisfied, then apply one more thing. Well, one more thing. The ‘if’ formula is more flexible and gives more customization. How inside the ‘if’ formula, you tell yourself that I have to write a pass, I have to write a fail. I want to get payment done written, I want to get pending written, I can get anything written but there are such formulas which will give you the answer not only on the basis of true and false, remember Go to Special, inside which there was a formula from which true and false were taken out, that is why when we were saying that brother, only where true and false are there, he considers it logical, why do he consider it logical? These and and and and whatever they are, they come from the logical formula. You will answer only and only in True and False. Through these you will know whether your condition is satisfied or not. Now if you understand it with a practical example, you will understand better. Whenever you do not understand the theory, no problem, we explain the theory only so that you can understand the core of it. If you do not understand there, it is okay. Not everyone understands the theory, then you will understand through practical. Now we have an example. What is the example that our manager is telling us to make a list of all the persons who are eligible for the employment like bonus. I said ok, it will be fine, we will make it. What is the condition, the experience of the employee should be greater than 5 and his rating should be greater than 5. If it is so, then he will get the bonus, otherwise I will not get it. Said right, meaning he needed both the things that he should work for more than 5 years and his rating should also be good, only then he will give the bonus. Okay, so in such a case, we will apply the formula of end, what is the end tab logic one, I have to check the experience, is that greater day equal to 2, because even if it is five, it will work and after that we have to check the rating, is that greater day equal to 4, if you enter it, the true answer will come. And double tap here, always look at us, here we are giving sale to whom, we are giving experience and we are giving rating and this is in keep changing, that is why we have not fixed it, now see, here it is six years and if it is 4.1, then your pay here has come true but here it is 3 years, it is 3.8, even if I make seven years of pay here, it is also false, if I make five years of pay here, then go. It is true that means both the conditions should be satisfied, I made it three here, then why did it come false, because the experience here is less than 5 years, he has to satisfy both the conditions, what has to be done, if both the conditions are satisfied, if even one condition is satisfied, then it will not work, see where the thing with one condition works, same is the same example, everything is the same, same is the data, here if even one condition is satisfied then let’s go. If you go to that is your or formula tab, you have to check the logic, Greater than = 5, comma after that, if you want to give logic two, then you will check that the rating is greater than equal to 4. If you enter it, then it will come here. Now let’s see here what was 65, so 65, so it will remain true, assume it is 4, this is 4.5, that means the rating is good but the years of experience are less, still he is giving true, if this of mine becomes three and this also becomes three, then it will go and give false saying brother, if neither of them is failing then if even one thing is right then it will give true to me, what else is that single condition also. If it is satisfied, then it will give you the answer. True and what are both the conditions, that is, all the conditions which you want to impose will be satisfied, then what is more, even if even one condition is satisfied, it will give you the answer. By default, the answers they give are in True and False, so here we have completed our logical formula. Now we come to you some miscellaneous formulas. First of all, we will learn that we have to rank. Now we will understand the method of calculating the rank from an example and then after traveling in the same way, we will make the complete formula. Okay, so let me draw five students here for you. Let us write the students here like this. Student A is one. He is at 60, the marks of D are at 85, and the marks of E are at 45. Now tell me the rank, who will come first, who is the student who will come at the first rank, who has the highest marks, then you will simply look at it and say that D is the first, then you will say for second, B is the second, C is the third, the fourth who will come will be A and the one who will come fifth will be E, and if you If you have given the same answer, then you have given the correct answer. Okay, now it comes to the fact that we will travel. Basically, what did you do? If I have to get the rank of a student, I have to get the rank of A. If we are taking an example, then first of all what I check is, I check the marks of A, that is, that person’s own marks. So, are these marks going to be different for A, different for B, different for C, different for D, different for E? Yes, of course, A’s own marks. B has its own marks, C has its own marks and D has its own marks, so this is keep changing and keep changing means that we are not writing anything on our own, we have to take cells only, the leaves of both numbers and text are removed, only cells have to be written and because there are individual marks, after that, what did you do in the second step, you can tell by just looking at A, what rank he has got. Unless you look at the other students, then to check the same rank, you have to check the same rank. Also checked B, it is 70, which means it is more than A. Well, it is 60, which means it is more than A. Okay, its 85 is more than A. Okay, if it is less than A, then according to this, whatever A will be, it will be on the fourth, so it means to check the rank of A, what did you check? So the second step comes that check the whole lot, basically the whole data. Okay, now tell me one thing, if you find it for b, then find it for b first of all. B’s marks are checked, O is 70, okay fine, after that, you will not do this. C’s is 60, D’s is 85, E’s is 45, okay, you will check A’s too, so no, we move ahead, we check all of them, it means for B too, you will have to check all of them, for C, we will check C’s marks, after that we will check all of them, only then we will be able to tell what is its rank, so basically the whole data remains fixed. If it is sales, then we will fix the sales manually. What is the meaning of fixing manually? We will apply dollars beyond that, then in this way your rank will be determined. It is very easy to get the rank but still you make mistakes in this, then we will also see what mistakes you make and we will correct it and will also see the correct answer. Now let us try it practically, so here we will put the formula here, we will have equals to rank, here you have it, tap the number, the number means which. What is to be checked? What is to be checked? Percentage is to be checked. Have you taken the percentage? Okay, comma is saying that reference means which one should I check? I check in these and I do one thing. For now, I will not fix it and after that we will check the rank. Okay, comma is asking for order. Now don’t memorize here, we will take zero, we will take one. Hey, here it seems to be zero, here it seems to be one, whenever things like this come, true false comes. If row one comes or any thing comes then in such a case you have to read that thing, you read why it is getting written and zero. Why am I writing this? Now I want to know why I am saying this. Generally, we take descending in rank but sometimes the opposite can also happen. You are carrying a negative situation. If you are checking your date, then in the date, the person who is lowest for you will be the one with good date. The one from whom our debt is less, so those are good things. If you use ascending there, then when will you be able to use it now. You will be able to do this when you have understood the logic in it, now you have not understood the logic only, you have done only 01 01, then you will make a mistake, then you will think that how will this happen, here we will do zero, which is descending and parent off, we will enter, we have got the rank, double tap it and the rank is correct, what is it, see, the first rank here is at 78, then the first rank is at 62, then the first rank is at 6051, what happened now ? Let’s check for once the mistake that people generally make, the mistake about which I had also told you that here we checked the rank, what did we check? Firstly, i3 is what is written in i3 and after that we checked from i3 to i17, it is okay, i3 is the individual marks and from A3 to i17 are all children, after that we came here, we had to find the rank within what is i k4, so here we will check. i4 as well as what is staying here from i4 to i1 means what did it do. If you are getting the rank here for i4 then it has been taken from i4 to i 18 whereas in 18 there is no data here, there is no data here and where did it start from. Sorry here, there is no data here and where did it start from here, it did not even check this 51. Then accept it if you are on i6. If you are coming, then it is checking from i6 to i20, it is increasing like this because you have not fixed anything, then in such a case, will it give you the correct rank or not? That is why this was the mistake, so now we will correct it. Just give me a minute, I have to remove all of this and then we will put our formula again here. So we took this, after that we erased it, after that now we will put the formula here. Equal to rank tab ok rank average taken by mistake I took the tab number take the number comma after that take the reference take the reference I took this and now fix it with f4 comma ascending penis off enter and now see now you double tap then your rank has come here see if these failed were failed then see the last rank is 12 15 14 okay so in this way you have to find your rank so here we have another formula. Completed, what is a rank formula? Now let us move ahead. We will do the round formula. What do we do? Whatever you round off, you get it rounded off. Now how will the round off be done? Let’s learn to round off a little bit. I will write a number and according to that I will teach you the normal round off, like suppose you have written 9635 6949. So first of all this. Understand, if I tell you that I want a number up to two digits, then it means that I am saying that I want a number only up to two digits after the decimal, so I want five, so I will write as it is and after that I am here, I want this number up to the second digit, neither this till the second digit, as far as we need, it is dependent on the next digit, if our next digit is If it is above five or equal to five then it gets converted to the next number and the other way it remains as it is, so now the number here is nine which is more than five, so now we will write this number by taking it here, then it is completed in two digits. Suppose this number was 96 3.56 449, then what do we do here in such a case. 9635 Now see on which it is dependent, on the next step it has to be checked whether it is greater than five or equal to five, so here it is four, which is less than five, so we leave it as it is, it comes to zero, okay, it is five, it comes to zero, let me tell you another number, let’s think of rounding it off, see here 89 7.65 5 3 2 I have two. Do you need round off till digits, what will you write 8976, what is the next number, five is equal to five or more than five, then what do we do with it, we round off, so that is your normal round off, now this is the normal round off, I understood when to do it and when not to do it. Here are two formulas and come out which is round up and round. Down tell me one thing, let’s me in this, we will understand this one and I will take its example, okay, I am taking the same number but changing the example a little bit 8 9765 432 Now tell me the answer to this, what will happen on rounding off 8976, this f is dependent on this four, four is small, f is as it is, now what these two are, what is the normal round off? Normal round off, but at the same time, let me tell you some different round off. Suppose I have got this situation here that I have got this number and now I have to apply the round up formula, then the round up formula says whatever the number is, I don’t care what your number is 8976 5 432. If this number is not there then it is smaller than f but still 8976 6 will give the answer, he will always round up no matter what. It doesn’t matter whether the number is above five or not. Okay, this thing, now let’s try it by rounding down. We use this formula to round down, see 8 97.6 5532. Now tell me one thing, technically this number after five is five, so it should become six, but rounding down will give you the answer 8976 5. That means he keeps the number as it is. It doesn’t matter to him whether the number on the side is higher or not. It is less, he keeps it as it is, so that is your round out, now we apply this practically, I explained this round off because people get confused about the decimal thing, so now you will not be confused, so see here, we will apply the round formula, apply the round formula, one second, we will do the equals to round tab, after that look, the number is saying, number has to be taken, meaning which number has to be changed, check, this one has to be done. The comma after that is saying the number digit. I had asked you how many digits to keep, so here we keep two digits or if you want to keep three digits, you can keep three, but after entering two, it has been sen. Now we will read this. First, we double tap it. See, after six, nine was and if it is more than five, then it was sen. After three, two was and if it is less than five, then we left three after six. Two was which is less than 5 so left it as six so in this way you have rounded off now let’s see the round up if the numbers are the same round up Tom after that we will take the number we took the comma the same one is asking the way of putting the digits is exactly the same situation will come different so you have to see ok now see this is the same number here now there was two after three so let it remain three but round up says I don’t care after Whatever number I have, I will tell him by increasing it, even after 63 there is a two, he makes it 64. Even after six, even after a two, he makes it seven. After five, even after a four, he makes it six. So that’s yours. Round up and same stubborn, ours is round down. He says, I don’t care, I will keep it rounded down. If I round it down, then we will take the number. After that, we will take the number . Comma digits two, you need to turn off the parentheses, enter end, you can double tap it, then here the answer comes, see it is 37, because after that there is nine, then it should increase, but it did not increase, it did not increase, it does not increase, it says, I do not care, this is fifth here, after two, there is five, it should increase, but it did not increase, it says, I do not care, I am stubborn, I will do it like this, so the round is your normal round off. Round up always keeps the dozen matter up, what is the next number and round down always keeps it on the down. Dozen matter, what is your number? So here we have completed all the three formulas very well, which is round, round up and round down. Now we will do some such formulas which tell you what is written inside the cell. Now you will say what is this, yes, I am telling you there is a list of formulas inside it, this formula is different. There is no point in doing this but let’s keep it in a little understanding like suppose you know what is written, a number is written, a formula is written, then you can check it, is the number tab, after that give the value, enter is this a number, yes this is the number, it is true, ok equals to is text, whatever you want to check, tab, did I give this value, enter, was this a text, then it gave false. Given, if suppose I do the text tab here, after that I give it and enter, was it text, yes, then it is True, in a way, it is behaving like a logical thing. In True False, it gives you the answer. Let’s tell whether that content is there inside that cell or not, like now you put equals to is here and you are getting lots of them here, you are okay, here you have to check if this is the formula, so you tap on it, give you this, enter the value given by you, is this a formula, yes, there is a formula inside it, then true, if I do the same thing somewhere else, then I would have given this formula tab and this Pooja Deshmukh enter here, was this formula no? That was the name I had written, the text was the constant text, you know this thing, you have already learned about the constant thing and the formula thing, okay, so here you will know, okay, next we will check is the error, is the error tab, is this an error, so you checked this, enter false, now see is this an error , okay, this is close, so we get this here, equals to is the error tab. After that we took this enter, so is it an error? Yes, if there is an error, then it gave true. In this, another formula comes, what does E E R R E R E R E R do, it also tells the error but it does not consider N. It is an error and considers all the errors but E E R R does not consider N and considers all the others. You take this, enter it and it will come true, it is ok. After that, more come to you in the same way like this error e error we have done ok fine after that comes to you e even meaning we have to check whether this number is even check yes this number is even in the same way if it is not an even number then it gives you this false and you get the formula in it see you can read from here like is a like e r r it does not do a but does the rest is a for particular a. You have to check whether there is any error with ‘A’ there or not, this number is good, this is weak number, so here you have many formulas which you can explore, I would like to do something else in this blank like took this blank, took tab, gave value, gave enter, so what was the blank here, otherwise if I remove it, then false comes, then yes, true, this is blank, so in this way, there are many many things here. There are formulas which are logical formulas, they are used very rarely, they are used along with some formula, their usage in themselves is less but if the situation arises then you should remember that yes, there are some formulas of this method too. All the terms that we have taught you, all these formulas are related to those terms in the data. Okay, so here we have completed these formulas, we have many good formulas. That’s done for now. Now let’s move ahead. I have done this for some advanced formula. I have been doing this in basic only but this is in kind of advanced. It is a good formula. Which is Sum F. Now let’s see it in detail. When I talk about the Sum F. So, first of all, look at its name. What is Sum F? How many words is Sum F made up of? Sum and F. Sum. What is the meaning of total? To total something if Had you read a condition just now? Had you read the if? Had you read the else? So this is what you had read for the if. One condition, one condition, two, check it in that. Now and in that condition, I am saying that you have to total. Now you have not understood the point, no problem. Let us understand from the example, this is your manager. The manager has a report. There are 10000 entries in the report and within the entries, there is data of North South East West and the manager has told you that Mr. Raju, you have to prepare a report. In the report, he gave this report to make a report. He wrote this, North, this, South, this, East, West, this, he wrote the total and did it like this and said, brother, fill in the values ​​here, fill in the values, meaning, tell me how many total sales have I made, take the data of these 10000 entries from me and check with me, what are the entries of North, what are the entries of South, what are the entries of East. What are the entries of West, what are the entries of West, total them and after totaling, make such a report and give me such a report. I want to know how many sales have we made in the entire North region, how many sales have we made in the Southern region, how many sales have we made in the East region, so what is the condition here, what is the first condition, first condition will we apply, so what is the first condition, what is to be found for the North and what to do, then if we get the North, we will get the entire North, then what? If you have to make even, then when you have a single condition and you have to make even, because you have to know the total sale, what has he told you, this is what he has said, I want to know the total sale of North Region. In such a case, what is the condition, what is the answer, what is to be done, then what formula do we use to sum, I have understood the condition, okay, I have understood the example, now let’s read the formula for once, after that you will understand better, it is sum, ff, tub, range, criteria, sum, range, ok, range, criteria, sum, range, I write it and after that I explain it to you completely, then we have another color, we work equal . To Sum F Tab Range Criteria Sum Range, this has to be understood carefully because they will understand that if they did not understand this one, nor did they understand the portion, then they will understand the reporting that you do in advance as well as the formulas used there and at the same time, if you are able to do all the work with the data using any formula you have, then you have to understand it very carefully. Okay, yes, first of all we will not talk about the range, we will talk about the criteria. What is the criteria? What is the criteria to search? Now tell me one thing that I have to search. Above, I gave you the example where the manager gave the report to you Raju and said that I want the sum of note South East West, then Raju will search whom, whom will he search for North, he will search only North, he will search only North, the amount is written in front of it, but whom will he search among all the entries, this is the amount, isn’t it? Will start searching for North. North will start searching for North. If all are found, then the amount is already written in front. So whom will he start searching for? North, here what will be his criteria, what will be North then for South, for South for East, for East for West, then what can I say? Can I say that the region is asked for region wise report, neither is the region within the report, within the region report within the report, so I wrote the report because the one with the report should be found inside the main. If you are thinking about the data, then what is your criteria range, meaning in which to search, in which to search, now tell me one thing, I am saying that you have to find the region, okay, you have to find the North, okay, you will search in the data given by the manager, you will search in that only, then you will search in that and tell me, North, okay, this is the entries of North, so in which you have to search, so what will you do here, if you take the region from the main data, then check in the region. You will do North North North North North North North North North and from that you will get to know the sum range which you have to sum means your amount which will come and where that amount will be written in the report. What has to be written in the report, if we have done the total, then what will you get in the main data, so basically now think about it, it was logical, but we have put it in the formula, how is it logical that there is a big data with 10000 entries in which North South East West has entries, so logical. Right, I want to know the total sum of North, so obviously I will first find out all the North, first I found out who I need to know, okay fine, I want to know the North, then I sorted out all the entries of all the North and after that I did all the sums separately and after that I took the total of all the amounts which were here, this is what you do, now we have brought this work inside the formula, how easy is it, so if I start making the formula here, if I start making the formula here, like this example. If I start making the formula, what will be the formula? Look, if Equal to Sum F Tab Range, then what will be the region in main data, what will be the criteria, what will be the region in report and sum range, what will be the amount in main data. If you do not understand this thing, then there is no need to panic. Let’s put an example practically. This is an example with me. What an example. See, here I have party names and also party names. What are the entries of the sale here, see how many entries have been made, one person comes many times to buy the goods, so look, we have a lot of entries, what is it now, I know that I do not have that many people, I have only so many customers, these people come again and again to buy, so here they are, now someone told me that I have to go, according to the name swift4, okay, so now you have come to a new example, leave that example. Now understand this, here there is an entry of sales, name of each party is given, there is sale next to it, you want to know how much sales have been done, then we will put it because if I search for swift4 in the name, then I have taken comma, now I am doing it for one, after that I will tell you how to put it for complete, so who did this comma criteria? If you want to search, then look, it gave me the answer 80586, okay, everyone understood, if I want to check this, then with control shift L, I applied the filter here, from here I searched for shuff nova, sf nova, ok and heavy go, then this is our total, look here 805 869, so here our total will come 80586, understood, okay, we remove the filter here, now the thing was, we have removed one if this is the thing, if I If I drag and bring all the answers, what are the correct answers? What are the correct answers? Look, he is choosing the range from b5 whereas our range should have been from b4. That means there might be chances that this is correct but no, this is the wrong way. We should not do it this way. We will use the right way because what I just said, there might be chances, I was not accurate, so we have to do the accurate work. Equal to Sum ​ ​ ​ ​So brother, do f4 or fix it with f4. Take all these criteria about comma criteria one. Okay, we have to remove comma for this. After that, even range, even range, tell me one thing. Sf Nava also has to be found in this. Same range for blue puck also, same even range for a cross. So okay, then when this is for everyone then take the even range and fix it with f4. Okay, enter your You will get the total of all the passes . Now you can do Alt Equal to here and enter. You have got the total of the sales. So, how much time did you spend in this method and was it a method that we will apply filters, we will find the answer of North, we will find the answer of South, then how hectic it would have been. So look here, you have to find all the answers in one turn, then this was your sum. If the way we calculate the sum, what do you think in that way? The average is also calculated and the count is calculated in the same way, so in the same way, no matter how much you read excel in the whole series, wherever it seems to be even, understand it automatically. Similarly, the average and count will also start calculating in the same way. Now suppose you want to know about Swift Nova in the same way. On an average, how often does it buy, what does it buy, meaning how much, what does it buy? Now imagine that there is a party which comes only twice or thrice in the whole month and It takes such a major chunk, that is, 30-40 business comes from only that, so we will see or say that three or twelve times it comes in the whole month, but if we look at the average, then brother buys in lakhs and there is a party which comes 20 times but buys in thousands, then from the average we come to know how much a person is buying from us. On an average, how much is he buying, then the method of calculation is exactly the same. Average Average F Tab is exactly the same. Range criteria now. Last comes the average range. Look, obviously if you are doing sum, then the sum range will come by writing the average. If you are doing average then you will write the average range. Doing is of the same values, otherwise the range in which we have to find is the same, so we will take this party name. Do you know that we have to fix it, why do we have to do this because comma criteria is same for everyone, meaning what we have to find is obviously, we have to find these only, comma average range, we will take the one which is in the sum range, the even range. If the average is even, the average will be in the range, we will fix it with f4 because it is the same for everyone, enter it, then see on an average, here is how much they do, if you do not want decimals, then you can remove them from here, okay , so you have this, now comes the point, this was also very easy, the main part of the average comes the count of sales. If I ask you, those who think that you have this for one month, it was a sheet of sales for one month, okay. Now I ask you, how many times does the person who is SF Nova come to you and buy from you, then if you concentrate on this thing a little, then think about it, if any person comes to you, he will buy something from you, if he buys something, then you will enter in your cell, you will enter, it means that every time a person is coming, he is entering in ours, so if I want to know how many times that person buys from me, then I check his name. How many times has his name been written in my entries? If I find out how many times his name has been written in my entries, then it will definitely become a fact. That he has bought something or the other from me as many times as that is why I have included him in the entry of the sale. So, we will do the same thing here. So think about it, here I have to check about a person how many times he has come but is there any consideration of any value in this? Rather, I am checking how many times his name has been written, that is why inside the formula, when you apply count if, then you will do a second tab, then here there is range, there is criteria, but There is no value because we don’t need the value, so we have to count how many times it is written in it, so you have taken the range in which you have to search, fixed it with f4 and after that you have done comma which means the criteria to find, you have to search for them, just enter, then it has come to you, see SF Nava, it is 28 times in the whole month, see the maximum, Golden Leaf has come to you, no, the maximum has come to you, True Harvest or Organics, so this is If you understand it in a very simple formula, then it is a very simple formula. From this simple formula, you have taken out all the insights about how something is going on in your business, so that is your sum formula. If any doubt arises anywhere, then please ask, I know this thing remains a constant for some time, but here also we are doing it in great detail, still if there is any doubt. Please note that you keep commenting, keep commenting because you will get their reply one by one one by one one by one one by one. Now let us move ahead and look at the formula. We have completed the home tab. We have completed our basic formula. Now we should move a little towards the tab. Now what we are going to do in the next tab is insert tab. So see, we have completed our home tab, we have completed our basic formula. After completing the formula, now we should move forward a little in tabs only. Now what we are moving towards is Insert Tab. Here is your Insert Tab, inside which there are different groups, Which is Table, Illustration Chart, Spark Line, Filter, Link, Comment for Insert Tab. If I summarize one thing and say that the Insert Tab is mostly used, then you can create and link the Insert Tab with this. Creativity. Mainly creativity, if you are creative or doing some work like creativity, then you need insert tab. Along with this, you can also do the work like reporting easily through insert tap. Now through creativity, you also get dashboards, so the most important for you is if any tab comes after home, then comes insert tab. Inside the insert tab, you can see the options, which are tables, inside which we can prepare tables. After that comes the Pivot Table. Pivot Table in itself is very useful for reporting. For now, I am giving you an overview of the Insert tab. After that, we will do the groups one by one. After that, you have the Illustration group. Inside the Illustration group, there are different types of things like there are pictures, there are shapes, there are icons . We will talk about all these now in the charts. Basically, I am going with a scenario here and that scenario. This is that we have Pivot which is useful for reporting, Charts in Plus which help in generating insights in creating your dashboards, if they help, then in Plus you will see filters which are your slicer and timeline. You have already used the slicers for the table. When you were reading, now the use of timeline will come with your pivot only, so I can say that there is a group of filters which has slicers and Timeline is the end, so these things are not complete in the complete reporting. This is a huge chunk in itself, which we will not do with the insert tab. We will do it separately and will do it at the end. Why do we do it at the end because what is the result of anything? It has the insight from which we will take the decision. There is a dashboard, so if I put it in the middle now, then it will not be relevant, you will not be able to connect because half of the things are available, half of the things are not available, now the advanced formula is there. If you don’t even know the advanced formula, you have to do it, so only after that, if we do the reporting, we will understand it better, that is why we will do it later, then what is left, the illustration, we will do it now, we will do the spark line, we will do it now, we will do the links, we will do it now, okay, so let’s complete the overview here, now we will do the insert tap. We are going to do that, we are going to do the illustration group. One second, if something comes first in the illustration group, then what is it? As soon as you click on the drop down, you will get three options, this device is stock image and online pictures. You can insert any picture from wherever you want. If you do this device, then it will ask you the location inside the device. If you do stock image, then the stock images will be shown here which you can directly insert . For online, it will be shown online. Now like I insert a picture from here, okay, I have inserted the picture of the boxes, so look, this picture has come here, now I have to arrange it a little, so I arrange its size in this way, look here. Okay, see, one thing is journalized for the insert tab, so understand it very carefully. From the insert tab, you insert anything, whether it is a picture, whether it is a shape, whether it is a table, whether it is a pit. Be it a table or a chart, if you have to make any changes in it, then you cannot make changes from the insert tab. Then we will say ma’am, then what can we make changes in, if only in that, we will have to make changes. See, whenever you insert something, what you do is click on that thing, then you will see that a tab is created above here, look, I am clicking outside, the tab is gone, I am clicking on this, the tab is clicked out. The picture format has been done on this, that is because if I have to make any changes inside it, then I will click on it here and I will get all the options here, I will get all the options here or I can right click and go to the format picture, then I will get all the options here. The options which are here in the extensions too, like these extensions are not visible here in full, they are visible here on the format control. You go to anything right click. Do format, go to picture or go to format, then you get all the options here to change them. So you understood. You insert anything from the insert tab. If you want to change any thing inside it, then a separate tab will be created. Changes will be made directly from it. There will not be a separate tab. I don’t understand. Right click on the same thing. Go to format. You can explore all the options from there. What did we learn here? Insert a picture. Now picture. I clicked on it from here, suppose I have to remove the background, I can do correction, I have to change any color, see, I wanted to show this kind of color, I have shown it, no, I want to show it a little brighter, so I have shown you the way you want to show the color, you can show it, okay after that, you have to show some artistic effect, what kind of effect should come or any other kind of effect, like this kind of, then you can show the effect in this way, I did not like it so much, I made it normal. I want to keep it in this way, I have kept it, after that you want to compress, the size of your picture is very big and you want to reduce it, then you can do that too. Here, if you want to change the picture itself or reset it, you can do that. After this, you want to frame beyond them. Look, if you want to do the framing in this way, then do it. This frame looks fine to me, it looks beautiful, so I did it, okay, I understood, after that suppose you want to change the color of the border of the picture, then I did. If you want to apply any effect on the picture, like I took this yellow color for glow, then it came, after that, the picture layout, if you want to show your picture in some other way, then you can do it like all text, if you want to put any text etc. in it, suppose you have done it here, if you want to make another copy of it, then what you have to do is either you select it and do control C and go to the side and do control v, then one way is to copy it. Look, I have made a picture here, the second way is this, you go to any picture, click on the end control and hold the roll, just drag it down, just drag it down, just drag it down, so in this way you can make many copies. Okay, now as you have done this, if you go to the picture format, suppose you go to the picture format, then bring forward send backward, this means to bring it forward, let’s say I am this picture . If I want to bring forward from this picture then I will bring it forward, so see that it has not come outside, I have to keep it behind this but if I want to keep it in front of the one behind then In this method, if you want to change anything on your pictures, you can do so. Now let me tell you one more thing, whether it is a picture or a shape, how will you know that it has been selected. As soon as you click on it, whether it is a shape, a picture, or whatever, you click beyond that, then bubbles come in the form of these bubbles. You are seeing these points. Yes, if you are seeing these points everywhere. That means there is a selection there, these are not visible, that means there is no selection, these are visible, that means there is a selection, okay, so from here we have learned about the picture, you want to crop it, you can also crop it, you have learned about the picture, after that suppose you come to the insert tab, I click outside, in the insert tab, Next comes to you, there is a shortcut key of the picture which is good for shape, I will also tell you the shortcut key of insert. It is N, like the shortcut key of home is H, its N is N, press Alt, see N is visible and the picture starts with P and stock starts with S, so S, then look, this window opens with you, whatever thing you use very often, just remember its shortcut key, okay shapes, look, shapes starts with SA, so if I press Alt and S H, then the shape will come, okay from here we can take any shape, I took this shape. I have made it, so here I will teach you a lot of good things in the shape later. I will do simple things. Now I have to make any changes in the shape, so look, I cannot do it from the insert tab. If I click on it, then look at the shape format. If it was a picture, then the picture format is this shape. So the shape format has to be changed. The shape has to be edited. You can do it from here, you have to write something inside it, double tap, your cursor will go inside, you will be able to write inside it too, okay. Okay, from here you have to change the color of the shape, you can change the color, let me assume that this color looks good, so I have taken this color. Look, this is the cursor, you can move it here and adjust it. Okay, after that, you want to change some color here. You can do that. If you want to keep some outline, I want to keep the outline yellow, so I have kept the yellow outline. If you want to give some effect like you can get the effect of glow, then you can change the glow in this way. Take the effect. Well, here if you say in the text, you write some text inside it, you Accounts My Bad Accounts Expert, you had to write this, you took this, after that, suppose you fill the text, you want to make it in black color, you want to outline it in black color, you want to outline something in white color, if it is not looking good then you make it black so that it looks darker, do you want to apply any effect, do you want to apply some reflection in this way, then see this reflection has been done, you want to fix it. Yes, you have selected it, gone home, normal, aligned it in the way you do alignment, formatted it in the way you do formatting, see how well it has come, you are not liking this effect, go here and change the text effect, reveal, you can also do this method, see, you can change anything in this method, OK, now assume that Bring Forward and Forward are exactly the same, you click on this. Do it, hold it with control , bring it backward, so you can do it in this way, okay, I have to delete it, I have deleted it, after selecting it, you had this for the shape too, if you right click on it and go to format shape, then you will get many options here, just as there were for the picture, you get all the options here also, it is totally up to you from where you access it, after that you go inside the insert tab. You will see the icon. Click on the icon. Let me tell you that as soon as you click on the picture shaped picture or the stock image, then look from here also. You can go directly to the icon cutout, people, sticker, illustration, cartoon people or you can go to the icon separately. If you want to go to the icon, then you can also go to the separate icon. From here, suppose I take an icon, I took this plane, I inserted it, this is my icon, now if you want to make any changes inside this icon, then I can go to this icon. When I click on it, the graphic format comes up. By clicking on it, the shape format comes up. In the graphic format also you have to change the shape of the graphic. Let’s say you have to change some color, you have to fill something inside the graphic, you have to make the outline of the graphic yellow in color and if you have to apply any effect on the graphic, then I have kept all these look, similar, similar kind of off. So that it looks good, bring forward backward, you know all this, you have to crop, all these things are same, right click on it and format graphic, then the options will come here, all the things are exactly the same, go to insert, after the icon, I tell you the 3D model, in the 3D model, you click, from here we take the emoji, there are very cute emojis, trust me and from here we took this emoji and will insert this emoji, look at the pot once. For this, I made it a little smaller and placed it here, after that I do a little bit on the side. What is a 3D model? You can move it in any way, okay, it’s totally up to you, how do you have to keep it and just look at the face, yes, it is a cute emoji, so now you have to change anything inside it, click on it, the 3D model comes up, you have to reset something from here, what is the way to do it, if you do not understand, then you can do it like this. Or you can move it directly from here, it is fine. Bring forward a backward. You know that by right clicking on the format 3d model, the main thing is to get the rotation done here. In this, you can get the rotation done directly from here. You can get the rotation done manually by entering numbers there. It is the same thing, in this way you can also insert the 3d model, after that you get smart art. Smart art is done in a way that your diagram does not. As soon as it is listed, it is processed, it is processed, if you want to show any type of relationship of cycles, then like you, I took this process one and I did OK, so it came here, now I decrease its size a little, not a little, but I decrease it a lot. And if I have to make any changes inside it, then I can make changes inside it too. How I clicked on it and here both smart art and format came , what is the format for the things inside. To change and smart art means I have to change only a shape, for that suppose I want to make the shape fill orange, so this is not looking good to me, white is fine, it is fine in this way, well, it looks fine for now, if you want to make any changes inside it, then you can do it directly from here, all the features are the same, you can also format the shape by right clicking, next comes to you, go to insert and screenshot screenshot . Let me tell you, if you do this in the screenshot, then if I do not have any screenshot in my system, then it is not showing. If you already have any screenshot, then it will show the other wise. Screen clipping, what does screen clipping do? Now, this will appear on my screen and suppose I take any screenshot, from here, I have taken any screenshot by doing like this, I have taken a screenshot of it. Okay, so look at this screenshot, it will appear here. Let me just adjust it. First, I have added this image here. Okay, now I zoom it, see, this is my image, the screenshot that came is coming in the picture format, I have to make any changes, I can do it by right clicking on it, doing format printer and clicking on it, then the effects etc. which were applied on it, will be applied here also, okay, you can use format printer also, so here we have completed our illustration group, now let us move ahead with our spark. Before reading groups towards line group, I remembered one thing which I have to teach you, what is a picture insert in a shape, so let’s see, suppose I have taken a shape, sometimes what happens is like we are making an invoice or anything, then we have to put a logo, so we keep adjusting it, so it is better that we take a shape and insert a picture inside it, now you will say, yes of course you take it. Right click, go to Format Shape and from here go to the fill option, here you get picture and texture fill, click on the picture and from here you can choose your picture, after inserting it, I take a stock image, from here we take these buttons and insert it, then in this way you can insert any picture inside your shape, first thing, then this is the second thing, let us assume that you are someone very creative in this. Shape has to be given, sometimes what happens is that you have taken a laptop with green screen and you want to show something inside that laptop, then how can we do such a thing, we will right click and here there is edit points, click on edit points. If you do this then you will see that points have appeared everywhere. Now your cursor is also changing. Now you can make anything happen with it, like made it like this, then from this point we made it like this, any kind of shape, like suppose I have to make it like this at this point. It has to be made like this. It is becoming kind of A, isn’t it? It is becoming kind of A. Now I will take this shape a little and make it look tight, now I understand. That is , if I want to do more on this point, then I will right click and do edit points and I have to stretch this one a little bit more, stretch this one and move it here a little bit and now I have to make this shape tight like this, so look, I have made a shape, I was just making a random shape, ch is a a, now suppose let’s look at another shape, we have taken a shape, we have taken a rectangle shape, right click here. Okay, now the picture has come, this picture has come, okay, now I will right click on it, I will do edit points and let’s say okay A points, so I have made it like this, look, it looks exactly as if there is no screen, it looks exactly like that, look exactly like we have created a separate LED kind of that screen, you can make any shape in any way, see, you can make any shape, anything is fine in this way. You can edit their points and create any shape. This is a problem for general people, but it can be done very easily here. Now we can move towards our spark line topic, for that we will need a data, so quickly let’s see what will happen that there are charts made inside the cell itself. There are very small charts which tell you about that data. We understand the charts as soon as we see them, so they are not charts, basically they are There are spark lines which we can create. Now suppose I want to see all the marks of Aarav Sharma in the form of a chart here. So what will I do. I will go to the cell in which I want to show it. I will go to that cell, after that I can do whatever I want to create a spark line. First of all, whenever you have to show a trend, you use the line, then you will take the line. Here you have to take the data range, the data range means which you You want to show that you have taken the data range, location range, I had already told you, go to the cell where you want it, if you do not go to that cell, then here you can put it in the location where you want it, you do OK, then it has come to you in this way, see, it has come in this way, now I will make it 60, it will come in this way, now see, I had just explained to you last that if you insert anything from the insert tab, then you will have a tab for that. One way it comes out is that I can drag it directly, then I will have to go through all the formatting one by one, I will have to change the thing or I will have to change the entire selection, so now what I do is, I click on it, I go to the spark line, first make changes in it, later I will drag it. Okay, what is the edit data here, meaning if you want to change the data itself, then you can do that here on the line column, let me say this. If I want like this then I can do it directly. There is no need to go and do anything. Look, high point means what is the high point of this entire data. 47 60 2040’s 60, then see second is high point, what is low point, 20 which is maths, what is negative point. Negative edge is true, we do not have any answer. What is the first point, from where it started, meaning 47, what is the last point, where it ended, 40 markers. Which will show these markers, like high point, low point, negative point, if we have turned it on then it is showing all the points through the markers, okay, now you know which point is which, okay, I have also told you from here, according to what I am telling you, if you want, you can also change the color of the spark line. Firstly, the spark line means the line that remains, if you look, I have made it red, then the line itself has become red, okay, if you want, you can change the color of the spark line. You can also change it. I am keeping the color of the spark line black, after that you can change the color of the marker, like leave the negative point ready, whatever the marker is, you can show it yellow if you want, or you can show the marker green if you want, I have taken green, or we can show the marker with some other color too. Which is blue, so we have taken these blue ones, after that we show the high point with green. Okay, we show the low point with red, you can show the first point with blue, so look in this way, blue green red red, now you will understand by seeing this, you can drag it, you are not able to see it, so I do one thing, I fill it with color so that you can see it a little better, now you can easily do not fill it just for the sake of showing, it will look very strange, just now you can see this thing clearly, so I have inserted it, just like when we have the spark with the column. If you want to make a line then you can do that also. You have started applying the formula. You go to the Insert tab and then go to the column. Give the data range here, after that you do OK and you have to change any things inside it, like here you have to make the negative points, the high point, you have to make it green, you have to leave the low point red, you have to make the first point blue, just double tap it or drag it and your spark lines will appear. Similarly, you have to do the same for Win Loss. You will go to the Insert tab, you will go to the Win Loss tab, the data will give the range, you have given the range, after that you will do OK, so this is where you got the markers, now you have understood how the markers work, then in this way you can change the colors of the marker, okay, it is up to you, in which way you want to see, in which way you want to show your data, you can use it at that place, so this was your group with Spark Lines, where we have completed about Spark Lines, this is it. All the options were there, after this the link comes to you. Now we will read about the link because of the filter, we are going to read with the pivot. Now we will read about the link. What is the link? For the link, I will need a sheet where we have many sheets like we have this sheet. Now suppose I create a main sheet and write anything here. First of all, I write a name which is written here. Data creation is ok. Creation, we have written this name here, Data Creation. Now suppose I want to put a link on it so that if I click on it, I will either reach the data creation sheet, then in such a case, we can insert the link. You can either go to the cell and click on the link, this window will come up or what can you do or what can you do directly by pressing the control, because what do we call this link, we call it hyperlink. If you do control H then the replacement will come K is the last alphabet so control key is fine, you can remember control key. If you press control key then you will get a window like this. Now let’s see what is there inside the window. First of all assist file and web page. If you want to tell any web page then you can tell. Okay place in the document. If you want to link to any document which is inside this workbook then you can do it from the document. Create a new one. If you want to create a document or want to attach an email address, then you can do it. Now we are going to explore both of these, like place in the document, so we had taken data creation, this data creation is here, comma, click it, OK, now see that it has changed, now you will click on it, you will go directly to the data creation page, okay, which sheet were we on? We were here, now this does not mean at all that we need to have a sheet. I have to take the same name like there is date and time formula but I write Accounts Expert here, okay and by going here, controlling it, going to Place in the Document, I link it to the date and time formula here, so it doesn’t matter what is written here, if I click on it, then access to the date and time formula is okay, so it doesn’t matter at all, it doesn’t matter at all what you have written, where has our sheet gone. Okay, we were here and we come to sheet one, okay, so here we learned, now after this we have to learn one more thing like suppose we have to do a web page, now I copy the link of our website here, here we took the link of the website and from here I copied it, now I go to my place in the sheet, write here web page or website, okay, here we did it with control, after that we took the web page one and we get here the browsed pages, current folder, all this, so Go to browse pages, enter the address here which I want to link, I have linked it, I have done OK, now I have one more thing to do. I will delete it from here so that you don’t think that we have taken the same link as before, we have taken the end here and okay, we have opened it, now we go and click on our link on the website, as soon as we click, it will take a little time just because this is the work of the internet and see, it has directly redirected us, directly on our website, we have come to our website, so in the same way, if you want, you can add any kind of link in it. You can attach it, it will redirect you there itself, okay, how do you have to do it, press the control key, your hyper link will come from there, that thing will be attached, here I have told you both the things, place it in the document and in which way you can also place the web page in this, the third thing is that your email comes in it, you have to log in for the email person, so you can log in that thing or you can directly create a new document, so here we have told The major point is that the link has been completed, after that you get the comment. What is the difference between comment and note? You are also hearing the note when we were doing go to special. We were doing special in pay special. In go to special, there was both comment and note. There was note in go to special. So, what is done with shift f2, like what is done with shift f2, this one is fine and one is this, you get this. Comment is fine. Comment, you can write anything like. Defaulter and Anything Okay, now what is the difference between these two, look for the difference, we need a data data, if we get it, then we can tell the difference, like suppose I have this data, one second, I take some good data, just give me a minute, we have taken this data, okay, we have this data and suppose I have added it here by doing shift f2 in such a way that the payment is pending for this person, so we have to take care of his payment pending in the next time, do this, OK and here. Also, I showed it through shift auto that the payment is done, I showed it here, so this is a note that whenever I go, the same will be visible to me and otherwise I can’t do anything in it, only these notes will be visible to me, only that girl can add a comment here, to add a comment, I showed payment pending here, I did this and I see, it is written here, if you press control enter, then it will be posted, then it is posted, now you will go to this. So the comment is coming but here it gives you the option that means his payment has not come till today, never mind, his payment has not come till tomorrow, never mind, the payment has not come till tomorrow, no problem, the payment has come today, so obviously you want to remove it, then you can right click on it and here you can resolve the thread that the thread is resolved, now whenever you go to it, resolve will show that brother, payment first. It was pending, now it has been resolved. Now let’s say, if you want to delete it, you can delete it. Now, if you want to delete it, you can delete it. Okay , so this is the difference between the comment and your note. This was your comment which got resolved, which you can delete. These are your notes which are visible as it is. You cannot do anything inside it. What you have written is there. It is done in that way, okay, so here we have completed the comment, you have given the link and also the comment, after that the text comes to you, the text is nothing, this is a text box, you will say that it is a text box, I don’t understand, see, it is very easy, the way you have inserted the shape, then you will go to the shape, then the first thing that comes is the text box, don’t you see, this text box has come, so the same text box is directly given separately here, this is also a text box, see, it is the same, you will click on it. Even if you click on it, the shape format comes, so it is the same as I told you about the shape, it is the equation equation or symbol equation, I tell you many equations are already there, ink equation. Suppose you want to write an equation and now you have like you are using a pun tub like me, then you can write any equation here like Why is he considering, he is considering the sum, he is not considering anything, 3 4 is not considering anything, he is considering the fear and the rate as zero, that is, in this way you can make any equation, like I have made this equation, it is behaving like an equation. Let me make one more equation and show it, it is not of much use but still if you have any use of it then you can use it ok just give me a minute equation, we will take ink equation and like you can write this x up in y = 239 in upon 435 multiply by 3 That equation will come, then this was a method, so whatever creative thing was there, it has come in the insert tab. We have completed our insert tab here. Now we will move ahead towards our page layout tab. Now the next tab that comes is the page layout tab. What does the page layout tab do? See, whatever you are creating data and doing, if you are obviously reporting, then there might be chances that you will need all that in hard copy also. So, if you want everything in soft copy, then in such a case, you will need a lot of Page Layout tab because it helps you in printing. Okay, so first of all, let’s have an overview here for once. The group that comes here is the theme group, which we have also read with the cell style, that if we have to change all the colors, then how can we do it? You can do it from here, like I have changed the palette here, so whatever is the initial a which is our home. The palette that was there inside the tab has been changed. Okay, here inside the cell style also, the colors of the palette have changed. Okay, if you want, try changing any palette here again and make it green. Now you go to home and check your palette from here and check the cell style from here. It has changed. Okay, so these are our palettes, which we are here to change things in the entire data. After that, we have the page setup, scale to fit sheet comes. Option comes and arrange comes then mean these three come here which is page setup scale to fit and sheet option ok so before we do this let me tell you why we are doing all this so that we can print right then print how do we select our data and take control . It is also visible that we can connect the printer, that thing is different, the properties of the printer etc., I am not talking about all this here, I am talking about all the other settings related to print, if you setup its end page here also, then other settings will open, then you, I am defining this thing here so that there is no confusion, the settings here and the settings here in the page layout are the same, it depends on you, from where you like to do it, do you like it better that I am here. I make the changes and after that I go to see the preview, then make the changes there and if you think that no, I do not understand what I have to do and what not to do, I want the changes to be reflected, so you can make the changes from here too, those changes will be reflected to you here, okay, so we will make some changes from here as well as from there, but don’t get confused, that is why I have already told you that this thing is going to happen in this way, let’s go now. We move towards one group each. The first group that comes is the page setup. So we know how will the work be done without theri. Our work cannot be done without theri. Our alt okay just give me a minute right now, first of all we will come to the page layout, we will come to the page setup work. First of all, what is the margin? Now what is the meaning of margin? What is the meaning of margin? So we hear profit loss margin, there is that margin over there. Don’t you see, this is your paper. Okay, I ignore the drawing. Do it, this is your paper and I am talking about the paper that comes to you generally and when you look at that paper, you can see the lines inside it in this way, there is another small line in it, okay, this is how the paper is visible and here a slight extra is left so that you can turn to the next page, so tell me one thing, here you are left for the title and for other things, here you can write the serial number etc. and you can write the other things. Yes, this one is left blank space for you and if you talk about exam, then you yourself come here with a line so that the teacher can write his marks here, then what do we say to the one who leaves this area on the side? What is called margin? What is called margin? We say that we have left margin on the side and the middle area which is now I make it a shaded area, a second shaded area which will be this middle area, this one which will be the middle area, inside this you write correct, inside this you write, then the outside area you have left is called margin. Now I will show you or tell you one or two things right there itself. One, you have seen the normal thing, two more things come that let’s say. You have this notebook here or this page of notebook, okay, one is this page and one is this page, okay one, I have done this where also I will do the yellow part, that is your writing portion that you can write here, so we did it here and it is here now I highlight the writing portion where you can write, you can write here and here you can write in this, you can write in this portion, okay so you one Tell me one thing, when you talk about the margin inside this one, you are seeing that the margin on the side is very high, so this margin is called wide margin. What is called wide margin in which there is less space for writing and more space on the side and right here, if you see that there is less space on the side and more space for writing, this is called narrow margin. And how basic understanding or common sense is that if you assume that you have large data, then obviously you You would like that the data on the side should be less in space and my data should come on the same page, then you will use narrow margin. If suppose you have a little data and it should look a little better in the page, then you will use wide margin so that space is saved on the side and my data should come in the middle properly. And if you have a normal situation, then you will use normal margin and not the normal margin as it is then it is fine. Similarly, now you understand the three types of margins, go to the page layout. There are three types of margins within the margin, normal, wide and narrow. We can also customize it. To customize it, we can do it by ourselves. It should be so many centimeters. It should be like this. We can do this by ourselves. It should be horizontal. It should be vertical. Look, it is visible here, the horizontal center on the page should be horizontal and vertical. So, you can do all these things. Now how to do this, once we Let’s look at my data here, if I go to control, my data is coming in this way, the complete data is not coming, then what do I do? Look from here, either I take the margin narrow from here and now go to control, then see more data is coming, first it is coming till the product name, now it is coming till the state or look here also there is an option of margin, you can click here also, you can do custom margin here, I make all the things zero, I definitely want

    margin. Otherwise look, the space is gone from here by mistake, it was removed from me, we will go back to the custom margin, we will make everything zero 0 0 0 Row and OK, so look at this whole page, even a little bit of space in the whole page, now the data cannot come on the side, there is no sheet, there is only this much data, so that is why it has done till here, so here I have not left any margins at all, my data is coming in the whole page in the whole page because I have set it myself, customized it if you want. If you don’t customize then you have normal wide narrow. Now if I did wide then only this much data would have come. If I had done normal then this much data would have come in normal. If I had made narrow then I would have had data in this manner. But what I had done at that time was that I had customized everything, I had made it zero, so I make it zero for once , from here I made it zero, made this also zero and did OK, so my data has come in this manner. Okay, next we come to orientation, now let me explain the orientation a little creatively so that that thing can be remembered, now I am telling such a thing and if it is not remembered then what is the use, so just give me a second, now let me explain it to you, see, all of you must be taking selfies, taking pictures, so whenever you take a picture, you have held your phone in this way and now you are taking a picture, so which mode is this mode? Let’s say portrait mode. You are holding the phone in vertical form. The form in which your reels come and shorts come in which form does it come in portrait mode? Suppose I do it like this. Now if I am clicking your picture or clicking any picture, then in which mode am I clicking? Which mode is it in landscape mode? This is landscape mode. If you are giving a picture or youtube0 video, obviously most probably you will be watching it in this way. Right, by doing this in this way, then in which mode are you watching? In landscape mode, if you were watching it like this, then in which mode would you be watching? In portrait mode, then it is fine. Similarly, we can adjust our data, it is up to us, how do we want to print, click on the orientation, look at the portrait, the picture is also visible here, portrait or landscape, we have the data is big, we need to show it in landscape, then do it in landscape, if you want to do it in portrait, then do it in portrait, from here, let’s say for now, I control p, control p for a second, then I have the data coming in this way, okay, let’s say now I once from here I will also tell you from there, I will control p, then look, it is coming in landscape mode, look, now everything is coming after writing till the price. I was not getting the columns in landscape at that time because there are more columns at the top, so I should have done landscape. It was not coming in portrait. Well, you can change it from here also. I told you that all the settings are there here, you can do portrait from here too, it is not looking good in landscape, that’s why we do it here because here we have to do it. You get a direct preview of what is there outside, then we have to come here and check, this is giving me a better clarity, this is giving me a better feeling, my data is visible in it in a very good way, so I will keep it in landscape, okay, so here we learned the next thing, that is our landscape or portrait, which is the orientation, after that comes to you the size, you click on it, many types of things are already given, so either you Pick it directly from there that I have to pick this, I have to do this, I have to do a legal document , I have to make a statement or I want a3 size, I want a4 size, do this, I will definitely tell you a very basic way to understand it, whatever document we make, whatever documents we print, all of them are done in A4, okay and if there is no problem in understanding, then I will tell you that as this number decreases, I will say a3. a2 So that means the size is increasing, the size is increasing, okay and as soon as I say a5, a6, it is getting reduced, now let me give you an example, there are documents in a4, inside a3, your sketch which you make is so one page, the thick page comes, that is your a3 and there if you talk about the pages of the notebook then a5 will come and if it is a small notebook then a6 will come, okay then it is the reverse. It is said that as the number is decreasing, the size is increasing and as the number is increasing, the size is decreasing. Okay, so in this way you can see that the normal document that we prepare is within A4, rest it is totally up to you that in which you have to do it, then that is your size, after that comes the print area. Now think of it, you are in your data, here you control p for a second, by controlling p, the complete data comes and you are seeing. Yes, there are 52 pages coming below, this is such a huge data, but you say no, I don’t want all this data, I only need the state and that much data, I only need this much data, so select the amount of data you want, after that you go to the page layout, after going to the page layout, click on the drop down of print area and set the print area from here, this is done, now you go to control page, only that data will come which you have selected, rest of the data will not come, look below, it is one page. Earlier, how much was coming, 52 pages were coming, so what did you do here, set the print area, what did you do, set the print area, okay, if you do not want to set the print area, then you will go here Clear Print Area, now look, press control, it is complete, right here it is complete, if you want to set the print area, then you can set the print area from there, after that you have the option of breaks, what does it say that if you want to insert any break, then we have inserted break here. So look at this line, my data was here at that time, look here for a second, I had put a break in my data here, so my data is here. Till now everything else is coming below, in this way you can apply brakes, you remove them for once, then these brakes are gone, one second reset all page breaks, look at ours, I take it in normal view, our data has come in normal view, I go here, only after three headings, I insert the break here, okay, one line has come, now I control p, so see, two lines have to come on the initial, in everything else. The data is coming in two lines in the initial because I had put a page break. After two lines, only two lines are coming there, so you can break it as per your wish. Now you have put this break wrongly. So what can you do, go to the break point, reset all the pages, now do control p, then your data will come in the same way. Basically, suppose you have to put any type of break anywhere, you have to show the entries till here, you just go here and break it and then Press control and see that you have got so much data. If you want to leave then simply go to break and reset all pages. After that press control and see that all your data is coming in the normal way. So in this way, if you want, you can also insert a break. After that comes print tiles. Okay, sorry. After that comes background. Suppose you have this Excel file which is visible behind you, which is Excel like this. If you want to insert something in the entire Excel, it looks beautiful. If you want then you can put it, we don’t use it, but it is not used that much, but if anyone wants to do something creative, then you can do it. Let’s say I take the logo from here, I don’t have any pictures like this, we can take a picture from here, so see, this is how the logo will be placed, it is present in the entire workbook, it is present in the entire meaning sheet and if you want to remove it, then just delete the background and it will also be removed. Okay, after that comes the print tiles. Inside the print tiles, there are many settings which help you in printing in different ways, like if you click on the print tiles, then look inside the print tiles, there is the page, there is the margin, there is the header, there is the footer, there is the sheet. Let us know about the page. Suppose my data is not being adjusted. Now I want to adjust it, so I have two options. First of all, look at the orientation. I have done the scaling. You can also do the scaling here. Will read, if the option here has come inside it, then you can read there also, after that the print quality is OK, fine margins are there, which I have read, the header is the footer, which we will read and all the things inside the sheet sheet, whatever we have to change, look at what is there now, print area, print titles etc. You already know that turning on the grid lines means that if you want that whatever I want to print, the grid lines should be visible, then you can turn it on, you want that the black end. If the data is in white then you can turn it on. If you want draft quality or heading of row and column, then you can turn it on. We do not want that. Down the over over the down. The way you want to order the pages, you can do it. Now we have done the down the over, which is right and you do OK. Now look, you come by controlling p and see that the colors have gone from the heading because you had taken black and white as an option there. Now if you do not want black and white, then you can print it. Go to the tiles , go inside the sheet, turn off black and white and do OK. Now turn control panel and see that the colors have come back. It is totally up to you how you want. From here, go to the print tiles. If suppose you do not want the grid lines, you can remove them. Okay, now I will tell you one more thing that suppose you turn the control panel and here the heading is appearing on your first page but the heading is not appearing anywhere on the second page or third page. In such a case, you If you get worried about not being able to see the data, then in such a case, you can get your heading repeated again and again here. You will go to the print tiles and look inside the same sheet. It is written here, ‘Row to repeat at top’ or ‘Column to repeat at the bottom’. There is nothing on the left like if I want to repeat, then I will not take that. If your data is horizontal then you can take it. Right now our data is vertical, so we need row repeat. We have to do this, we will select it, select it and do OK. Now look, now you control p, after that look, you go to any page, look, I look below, I am on page 20, 21 , but all your headings are appearing in every page, so this In this way, you can put any heading you want to put in every page. If you want to remove the heading, then go to the print tile in the same way and remove it and do OK. Now when you control p, your heading is no longer coming here. If you want to put it, then you can go and add it. Okay, here you guys have learned this setting, now we are left with two settings of the page which are Chch is page which we will learn inside scaling and from here we will Okay, so now let us learn both of these things. First of all, let us learn our header footer . What are header footers? Suppose, let’s take a page here. Here we have taken a page and inside the page you will see that there may be a name of your company at the top or anything else you want in every page. If you want, you can write the page number at the bottom. So what we write above is what we call header which we write in the space above. And what we write in the space below, we call it footer, so it is okay, you can also customize your header footer inside your document, so how will it be, like in the page layout, first I go to my data, it can be in two ways, either I can go to the print tiles and from here I can go to the header footer and write here. Ah, either I can choose from here what I want and or else I can write a custom header here, I want it in the center, I want it in the left, I want it in the left. I want it on the right. I want it on the right. I want it in the center. Suppose I want to write Accounts Expert. I wrote Accounts Expert and OK. And here in the footer, I want to write pages. So look, I will not do custom footer, I will take pages from here. Page one, page two, page one. Took and I have given OK. Now I will take a preview tomorrow. I will do a p here just because we don’t have space. Look, page three is also being written and accounts export is also coming on top. So let’s do one thing, this is the margin and we keep it narrow, so see here Accounts Expert is written below. If you are going to page one next, then Accounts Expert is remaining as it is because we had customized it and the pages are going as you are moving. Look, it is going on in every page of yours. Okay, you can do it in this way. If you want to customize the footer, you can do it. As of now, Accounts Expert is visible in the middle, if you click left and right. If you want, you can do it from there itself, there was one way, see what is the second way, you get different views here, you will also get it in the View tab and here also, you go to the page layout view and directly from here, if you want, you can write something else, like let me say here, I write Accounts Expert in small letters in short, earlier it was written there or wait, I write Accounts Expert Accounts Expert app.com, which is our website, okay. We wrote this and entered it and after that I have come to the normal view. Now I did control p, so look, now above here the account is written as expert.com which is a website and see it is being written in every page. Okay, so in this way you have two ways. Either you can write directly by going to the page layout view or you can go to the page layout and see that the page layout is the same and this is also the page layout, so the thing is the same but as per your choice, what do you remember? What do you want to use, then you can either do the page layout from here or go to the print tiles and customize it by going to the header footer here. You see it visible here. If suppose you want to remove it, now you say that you want to remove it, then the methods of removal are the same. Either go to Easy Out there and remove it from there or remove it from here, then they will be removed. Okay, I will keep it here now, so here we have done the whole group of people with page setup, now the thing is. Now comes scale to fit. Suppose I control p. So look here, 64 pages are being made. I don’t want it in 64 pages. I want it in 50 pages. Look, to do it in 50 pages. There is anything to be done in 50 pages. Look, what is the maximum that can happen? One, I can reduce its margin. Okay, I don’t want to reduce the margin because the data has to be shown in a small way. So what can I do after that, which is the data, the size of my data. If I can reduce the size, then how will I know how much to reduce the size? Look, I have two options either I keep reducing the size myself, like I kept reducing the size in this way, it is okay and after that now if I control it, then it will be more. It is able to take entries. Look, my data has become smaller. Now it is able to take more entries. Is it okay or what can I do like custom scaling? I will tell you, wait for a second, click on it here, the same window comes, you come here, either I told it what size to take, I don’t want to tell it the size, I don’t want to tell it the size, I keep it at 100, just keep it at 100 for a second, I I want to tell you how many pages I need to fit in, I need it in 50 pages, now you do it, okay, now according to you, he has taken 62 because he knows because I told him that brother, I need it in 50 pages, now brother, you see, after how many pages you need to do it, will you give me the correct answer, if you give me the correct answer, then now it is 50 pages for me in 20 pages, okay, because we had made the height wise, we fit in two pages. Will do one second one and wide by okay t and from here we will do 25 and okay let’s see once let’s look at it now it has come to 50 pages and it did it comfortably and what it has done is scaling on 81 has shown that whatever multiple we get na I took the multiple that the width of two pages and the height of it in 25 pages adjust it in this way you can adjust it from here also you can adjust it from here also You can do this or go to the print tiles and from there you can also do the page settings from here. You have all the options from where you have to do it. It’s totally up to you. After that you get grade line views and print view. If you want, you can turn it off or turn it on. You will see the same according to whether you have put borders or not. If you have not put borders, let’s say Control A, I do Alt H B A, I do Control A, Alt H B A, I did one second. So my data is gone, even though I am on control, see grid lines are coming, I have removed them then why grid lines are coming then why should it not come because in our page layout the grid line is on, now I have removed it, now I press control, then see now grid lines are not coming, if I turn on these here, now I press control, then see now grid lines are coming, so even if you have not put a border, turn on grid lines, that border kind of off you. It will be visible okay, same with the heading, if it is in view, if I have removed it, then press control, it has come in this way, now the heading is not visible to you, whatever heading comes above, you turn it on, these headings have come, okay, bring forward etc., all these things are the same, we have covered the main ones in the print settings here, now what we are going to do next is that we will do the formula just like the formula, so this one. We are not going to tap the tab. Now what we will tap will be the review tap and then we will tap the view. As its name is, its work is basically giving you review by doing things and helping you in doing things. The first one comes for spelling. Let’s say I take some data here, let’s take a small data like I took this much ta, copied it, brought it here and pasted it and just I did it like this, okay, control A, did Alt OCA, now assume. Take, I make some spelling mistake in electronic, removed this in fashion, removed this in fashion, okay now suppose I want to get it checked, I took this and after that press f7, either press f7 or click on spelling, the thing is the same and it is giving me a suggestion here that look, you wanted to write electronic here, did you write it wrong or wanted to write electric or wanted to write electronics or wanted to write electronica. I remember yes I had to write electronic so now you chose this one. After that see, you have the option Ignore once or everywhere if there is a mistake then ignore all but I don’t want to ignore it, I have to change it. Now the question comes whether the same mistake is still happening somewhere else too. So suppose we do one thing only at one place, I do it here at the same place, copy it, do it here too, do it here too, okay look now, selected the data, pressed f7, now it is saying ‘Electronic Aana’. Okay, if I ignore the one here, then you have understood the thing. If you accept that I make a change here, if I make a change, then it is fixed here, it has not happened in other places, it has not happened in other places, it is showing for other places, if I do change all, then it has been changed everywhere, okay, now it goes to the next page until it is clear that everything is there. The spelling is correct, it will keep telling further, it is saying here, do you want fashion, yes, I want change all, so it was everywhere, now it is saying spell check complete, you are good to go, now you can go, it is absolutely correct, so whenever you feel that your spelling is a mistake, you can check your spellings, it will suggest you that it is a spelling mistake and now you can correct it, inside the complete data, after that comes to you Thesis What is the thesis? It is a synonym in a way, suppose you have written a word, you have written answer and answer is such a basic thing, don’t you want me to write some advanced word for it, I will write answer here and will search for it, that is why I told you that you can call answer as response, you can also say reply, you can also say reaction, you can also say resolution statistics, you click on this, how many words are there inside this workbook, first look inside the workbook statistics. First of all it is telling about the current sheet, which sheet is open, about that sheet, the end of the sheet is g17, the cell with the data is 39, the tables are zero, the formula row is Sheets four, the cell with the data is that many cells and after that it is telling about the workbook, so whenever you want to know anything about your workbook, you can go for the workbook statistics, after that comes to you, check accessibility, now what is good and what is bad inside my report. It is better for me to search for a person to know this than I ask Excel itself to tell me what is better or not so I will click on check accessibility here so it told me here so what is it telling me hard to read text contrast so where is it saying here it is difficult to read okay so here it will suggest you current text color is hard to see consider a high contrast color so That the text is clearly visible because here if I had made dark green color here then it would have become more visible okay like I have crossed it out okay sorry we will go to the review to check accessibility okay so this is our clear missing all the text so see here the text is missing so it is telling me okay after that our rest of the things it is telling me okay the default sheet name is saying there are three sheets which have the default sheet name so you are seeing. If you don’t give the names of the sheets , then we won’t know which sheet depicts what, what does it tell, so in this way it has checked and told me and it will make me correct all the things one by one so that the report I make is at least a little better, doesn’t it help me, that is your check Accessibility Translate is normal, we do not use New comment Add a comment which is the same thing that we learned from shift f2 and then notes Notes: You have already learned where we had added the protect sheet. Here we had protected the sheet inside the format inside the home tab. The same protect sheet is now inside the review. There are so many options that they are found in many tabs, some will be found in the home tab too and some will be found in other tabs too. If we do the same work then there is no problem in that. We have done hide ink. Suppose I am using pe ink here, I have used pe ink here, anything. Ink has been used. Now suppose I want to remove it, then it gets hidden. Hide all ink on sheet or delete all ink on workbook. It gets deleted from the entire workbook. It gets deleted from this sheet or it gets hidden. If I delete from the sheet, then I deleted it from the sheet. Okay, so here we have completed our review tab. I am doing a little tab. If you are also like me, then I have completed my review tab. While practicing, you want to write. I use the pen tab. If you also want to do the same, then I am telling you for that. See, this prop is your pen, there is a brush whose thickness you can increase or decrease, so you can do this normally, like I am writing, you can write anything in this way, okay, after that you also get this pen, this eraser comes with you with which you can erase anything, after that this marker comes. With which you can highlight anything, after that suppose you want to delete the whole thing, then you select it like this, you can move it here and there and can also delete it, after that this arrow comes. Suppose you want to use the arrow instead of the pen, then you do the arrow. If you do not select the arrow, then it remains only a pen, after that comes to you Ink to Shape, so what will you do in Ink to Shape? Suppose you have created a shape like this. After rounding and then in Ink to Shape, I select it for a second and then I go to Ink to Shape, then see it has been converted to shape and it has literally been converted to shape, you click on it, see that the shape format will come, I will make another one and tell you like I have made it here in this way, now I will select it first because my selection will be from this and after that I will click on Ink to Shape, then this is my right. The angle triangle has been formed and now let’s say here I select it with arrows, then see the shape format comes here. Okay, ink to math. Just like we had written the equation, it is exactly the same that you can write the equation here, which we have learned in the equation. Replay of these, let’s say here I have done Tanu single here, anything like this, I have done anything like this and I want to see the ink spread, so look like I have moved my ink in this way. This has come in the format of video, okay, I erase it and okay, we can also delete it, so this was your draw tap, it was very easy, I thought that if you use it, then you should give an overview for once, so this was our draw tab, now we have moved towards our view tab, but still there is one thing left in it, so that is for that one thing, so we will definitely see it, rest I will tell you the most in the view tab. First you get the views: Normal Page Break View, Page Layout, Custom View, then you get this thing from here, so you do not need to worry about going there, you will go to the View tab, then you will see that the work is being done in an easy way, we should do it in an easy way only, so you can see it directly from here, after that, Grid Lines, lad, all the grid lines I was turning on and off till now, I was doing it with the shortcut key T, Alt , you can do it from here. You can also turn it off. Look, I had turned it off for now. Now it has turned on. Do you want to remove the formula bar? Remove the formula bar. Do you want to remove the grade line. Do you want to remove the grade line? Click on these three dots and do the Always Show ribbon here, now the ribbon has come back. Now from here you can turn off the grid lines and the formula bar and also the heading, so in this way, if you want, you can show the entire data on the entire screen, you can also make changes for the ribbon, you can remove the grid lines, remove the formula bar, remove the heading, okay, after that you get the zoom option, so you can use the zoom option. It is better if you explore from here itself, then you will click here, see here, you have to do 100%, 100%, if you want to zoom, then this list has come, if you have to zoom a lot, then you have to click on this, then it is in this way, it is better if you explore directly from here, if you want that list, then click on this, then this list will also come, so you do not need to waste your time by going to the view tab. You can do it directly from here, after that comes a new window. Suppose, the way I taught you, inside the format for the sheet, inside the home, you can copy it from here, then as it is, a sheet will be created. Similarly, if you want, as it is, a workbook will be created. Now our workbook or insert tab is basic. If suppose I make a new window, then the insert tab has come to basic two. Now suppose I want to get it arranged. So I have arranged all, how do you want to arrange it? Horizontal Vertical, I want to arrange it vertically. Okay, so look, all the files that were open have been arranged vertically in this manner. I did not want to arrange in this manner. It’s OK, I did not want so many files. Where were we, we were here. Okay, and we have arranged all the files for once, so in this way you can arrange . Only after this, you will get this view side by side, which view do you want with this, which class do you want with this, so these two views have come, now there are a lot of files synchronizing, if I do this, view side by side, due to there being a lot of files, this is not happening right now, you can also see it in the same way in the other wise, by moving here and there, OK, switch window, switch window, now we are free. First of all, let’s see what is the switch window? Suppose, I can directly jump to any file from here, but if I am confused from there, then I can see it directly from here. Like, if I want to go to Insert Basic, then I have come here. Okay, I right clicked on it, it came completely. After that comes Freeze Pin. What does Freeze Pin do? If you see, now I go down, my heading is not visible, so I am not able to see which thing is which, so if I want to freeze my heading, so how can I do that, whatever you want to freeze, you select the area below it, after that you go to the freeze pane and do the freeze pane, after that see, okay, we have selected the area wrong, we said okay, unfreeze from here and here, come here, from here and after that you come here, okay, now do the freeze pane, freeze pane, then see, this is how your data is being done, okay, directly here too and you If you want to unfreeze , then unfreeze your beans will also be done from here itself. Okay, at the same time, you have the option here, freeze top row directly. Even if you do this, it will become the top row. You do not need to select anything. Suppose you want to freeze the first column, then you see the top row is also there. If you go here and there, your date will remain as it is so that you can see this date is this and the rest of the things will remain like this. You have to unfreeze. Unfreeze it, okay, so in this way you can see your data, so here we have completed our view tab, now what we will do, let’s see what we will do now, I will teach one formula, I will teach two to three formulas that if you are looking at the data, then how are these data created, if you want to learn this, then now you can learn this in a very accurate way. See, first of all, what do we need, first of all, we should know this. Suppose I want the serial number, then I have given the serial number. After that I wrote the number , I want a party name, so I wrote the party name, after that, suppose you want any amount, then write the quantity, write the quantity, after that you want the rate, you write the rate, after that you want the amount, you write the amount, I make one data, I make another data and tell you, let’s make two data. Okay, what can you do for serial number, normally you will write serial number and just drag it as much as you want serial. You need a number, here you can take 10 serial numbers, which is enough and take one more, okay, we are making 10 entries for the party name, now let me tell you for the party name, you can use Chat JPT, all two here too, you can integrate your AI but we will do that later, but now we will use Chat JPT, what will you do, go to your account, write Chat JPT here, you will enter, after that you will You will go to the official Chatpati from open, you will click on it and here without logging in, you can do whatever you want with it, you will tell him give me 10 random Indian business names, then he will create it and give it to you and now you can copy it, okay copied and you go to your data here, after that paste it here, then you have these names, quantity for quantity and rate, amount for amount, then this will come quantity to rate. But for quantity * rate, if you need some values ​​here, then here we will apply a formula, what is the formula? One is Rand formula, all the formulas are Rand, all the formulas are random, okay, what is random now, we will apply the random formula equals to rand between one, so let me explain the formula to you, first let’s do one thing, Rand formula, what does Rand formula do? It gives a random number between one and one, put rand formula, tab it, what is it saying, I just don’t want anything, I just turn off the parentheses, turn off the parenthes, hit enter, then look, it will give a random number, okay, what does rand between do? Equals to rand between tab, it asks you, in between which range do you want the number, like I want a number between 100 to 200, so I asked what is bottom, what is 100 up. Top what is 200 pence of enter so it gave me the middle of that now you notice this changed rand formula whenever you apply it or do any activity the whole formula changes like suppose I have written a here it has changed write anything here d whatever I am doing this will keep on changing so this is a draw back of it but I will also teach you how to correct it okay so first we rand You will fill your data here using ‘Between’, after that I will teach you another formula. ‘Between’ tab, after that at the bottom you have to write which is the quantity, neither 500 is good, you can write 50 to 150, Pens of Enter, so here we have written the quantity, what can we do in the rate, Equals to Round, ‘Between’ tab, after that at the bottom, take 1000 in the highest. Take 5000, turn off the pens and enter it and double tap here. Here you can put any formula of yours. If you put the formula here and just check then you have created the data here. Now what is its biggest draw back is that it will keep on changing, so what will you do to ensure that it does not change. Select all the data, select both of them, do Control C and go to the same place where it is, do not go anywhere else, do Control Alt v at this place and in which Now change it, this is the formula, convert it into values ​​and do OK, then see that now the values ​​are written here and the values ​​do not change, the formula changes because there is a reference in it, so now it will not change. Now you can do whatever you want, after that you can do whatever formatting you want in it. If you do not feel like doing formatting, simply press Alt O A. This is a shortcut key of your auto formatting. Where you can use any key and give OK, its formatting is done, you just correct its alignment, then look, you have data ready, you get worried like this, let’s create another data, here I will take the rest from here, I have taken this thing, instead of party name, I will take student name, okay and here I want student name, here we will call only four GPTs, give random 10 Indian names. With first and last name, okay, we have entered and it will give us, okay copy it from here, come here and paste it, so it comes to us, now we will write here Hindi, here we will write English here, we will write maths here, we will write science here, we will write total here, okay now look, I need marks here, I know I need 10 rows, 10 rows have to be filled, four columns have to be filled, total, so I will get it later, so here we will put the formula. We will tap the array, see how much is required per day, how much data is required, 10 is required, 10 entries are required, then write 10, how many comma columns are required, Hindi, English, Math Science, four columns are required, four commas are minimum, if there are marks then minimum can be zero, maximum can be 100, minimum row can be maximum 100, if you want to keep some more minimum maximum then you can keep comma, now it is asking for integer, see if you want that Decimal number will also work in the result, so put false for me, but if you want it or not, I don’t want decimal number to work, then put true that I should get complete integer, then it is totally up to you, what do you want, I have to do true because I want complete number, I turned off the parens and entered, then look, it came in one go, but there is a problem with it, do anything, if there is a change, then there should be no change, what did we think for that, what did we do to select this data? We will do Control C, we will do Control Alt v, we will enter, and see, in this way your data has now been converted into values, now you do not have to do anything, here you press Alt equal to 2, here it comes Control A, do Alt o A, press A here, let’s say I want this formatting, I have done the formatting, okay, your data is completely prepared, so in this way we prepare the data for ourselves, now we will enter our advanced formula. Let’s move towards advanced formula. First of all, I am going to take the formula that we have. If I talk about ifs, then look, we have done no ifs. Okay, so now we are talking about ifs. What is ifs? What is ifs? It is the one where there is multiple condition. When we talked about ifs, what did we clearly write when we talked about ifs that brother, single condition is single. We had written the condition, just like when we talk about ifs, we have this plural word, so now we have a multiple condition, now it can be any multiple, which is more than one, okay, so here we go with a normal scenario like now see, here the rating is given and here the name of the party is given, so what is inside this scenario, we take two things because there is more than one. We have to see the condition that if the rating of a person is below three or equal to three then we call him good and if he If it is above three, then what do we call it? We say excellent. Okay, we can keep these two things that if it is like this, then this is this, if it is like that, then this is the condition here, so what can we do here, we can put ifs formula, ifs tab, okay, this thing, no, we can do more than one, just because now you have made only a single condition, so now we do with two conditions, okay, so what will we apply logical test here. What logical test will be applied, who has to be checked, who has to be checked, you see these things, no, I have already made you know that now all the terms will come, you have already done the logical test, now you do not have to do it again, now you have understood it, so we have to check the rating, we have checked the rating, what have to be checked, is it greater than equal to 3, what if it is greater than equal to 3, then first let us take the Smollett one. Is it equal to 3 then what do we have to write that it is good and if this rating is greater than 3 then what do we have to write that it is excellent. The value of true value false does not come in it. It just has to be told directly in it that write this, then see it has come in good, you double tap, see it is five, I make it four, then see it has come in excellent, I make it six, that’s it. If I give a five, then see if it comes in excellent, then in this way you can do these things. If suppose you have multiple conditions, how will you do it in this way, then you may have to apply more look ups, you may have to apply Will tell, okay, I take it like this and delete it, okay, I had prepared this report, on this side, I have taken the names of all the parties, on this side, I have taken January, February, March, this is my data, inside which I have a look, let me tell you, date, month, name, category, product name, everything is okay, what do I have to do now, I want to know the total of the particular party, right now the same party must have bought many times, so I want to know in January. How much did you buy in February, how much did you buy in March and there is date and month written next to it, so I can find out this too, so here generally when it comes to sums, I take a sheet here. See, when we talked about sum if, if you remember, okay, we saw that you had a sheet with 10000 entries given by your manager, in which North, North East, West South entries were given, so you sum them. Now the same manager is saying to you that yes, it is okay that you have taken out North, now in North also tell me how much in January, how much in February, how much in March, how much in June, now he had single condition in North and put one more condition, how much in January, how much in February, so now what have you got, multiple conditions have become multiple conditions, so there are multiple conditions, so it seems ifs, that is why we will put even ifs, okay even. If you apply Ifs then you get the same things. See Equals to Sum Ifs tap, what comes out of that, Sum Range Sum Range, what to sum, Criteria Range, Criteria Range One, Criteria One. Look , let me tell you a little difference for once, so that you can understand well, here we will first put Sum F. Sum F, here was our range Criteria and here was our Sum Range, okay and here what will we do, Equals to Sum Fff, now this What is taking even range criteria range one criterion neither then criterion range two criteria two and so on because if you can take more than one then tell me one thing tell me one thing let me first ask what is this range in which you look for so here what is the criterion range do you look for the criteria no there is more than one criterion here so I have written criterion one and here I have written criterion range one. It is the same here, there was only one, so there was no need to specify whether there is one or two. Here the specification is done only because there is more than one criteria here, so here I wrote criterion one, here I made the criteria range one, here also you used to select the range first and then select the criteria, here also you are selecting the range first and then You will select the range of criteria, then a criteria of the same will come, okay, here the sum range was given, it was given in the last place, here you have given the sum range earlier, the only difference is that everything else is the same, now we will put the sum ifs, earlier I have shown you the data, we will put the sum ifs here, let’s do the data, yes, okay, we will do the sums, let me go here for once and I will put this data in one go or else one. Let’s put it in both the bars one by one, first find out the answer for one time, then find out the whole answer together because cell referencing, now we have got the hang of it, now we are talking about advanced things, so equals to sum, ifs tab, sum range, we need the sum range in our data, obviously we will take the sum of sales price, we have taken the comma, after that look at this formula, read the criteria range, one criteria, what is the names, is the names of the names. If you are searching for the names then in which name then you have taken the named range, okay comma, what is the criteria, what is the criteria, you go here, Bharat Innovation is in even F, comma, after that, criteria range two, now you have January, February, March, this was also your condition, so now you will go here and where will you get to see this, whatever you have made for this month, you got this, after that you have f2, okay, don’t fix it now, comma, after that you have this. Here, who has to be checked, I have to check January, enter two answers, it may not be of Bharat Innovation, it is good, this is the way we enter this data, now what is it, I tell you how to calculate complete, in this there may be only zero answer, no sale was done in January, that is why it is here, then I delete it from here, they will sum the complete of complete, if that means we will tab all the completes, will give the sum range here. What will come, we have to take our amount, so from here we will take the sale price, this is the entire amount taken, tell me one thing, the even range is going to be the same for all, did we do this thing in Even F also, yes, it is going to be the same for all, fix it with f4, fix a comma after that, what is the criteria range one, what is your name, then what will be the range, there will be a column with its name, we have taken the name, is it going to be the same for all, with f4, it is going to be the same? Fix comma after that, if your criteria comes then what is the criteria? Whatever you are going to search, you are going to search all these names, na select all of them in one turn, comma after that, second, what are you going to search, this is January February, so first of all you have to take the range, then you will go inside your data, you will take the range from here, from where will you get this monthly range, have you selected this, is it going to be the same for all? It is going to be the same , fix it with f4, do the comma, I think, okay, I think, I will tell you later, okay, now what criteria do you have to take, so this is all in one go, if you want the answers of January, February, March, then select all of them, do not take the total till December, enter the complete answer till December, our data was such that selective sale was going on, so see, the entire sheet has been filled in this manner, so if you also want, then it is in this manner. Let’s see what we have applied, you may think that I have done it very fast, but if you apply, then do it very slowly with patience, reading each and every thing and understanding each and every thing. I will once again revise it to see what I did. First of all, I had to sum the range, so whose sum had to be done, I had to sum the amount inside my main sheet, Criteria Range, Criteria Range, what was to be taken, brother, I had to see according to my party name. Where will I find the party name? Inside the party name, in the main data, there is criterion one which we are looking for, criterion two in our months and criterion two which is inside our report, so in this way we have applied this formula and have prepared our sheet. Through the formula, if you were to apply the filter yourself, how much time would it have taken, then here you can create it directly, so here we have completed all the ifs. Well, there is a very small formula which is left with us, which is sub total, so we would like to see it further and see what is the benefit of sub total. I just want to tell you that, so I do one thing, I take a little data from here, let’s just take this much, okay, we will copy and paste it here separately, let’s do old OC. Now what do I do, I sum here. To do this, what do I have to do here? To make even, what do I have to do here? Tell me, I have to do alt equal to. I made alt equal to enter, so here I have got even. I do a little formatting on it. Okay, here I have got even. Now what do I do here? With control shift A, I apply a filter here. After applying the filter, I do any filter. I have to check the decor, so I did the decor and OK. So now I am not getting even here, then it is a big problem, so what do we do in such a case, we put sub total here, instead of sum, whenever we work, we should use sub total, what benefit does sub total give us, put sub total, do the tab, see what sub total says, it has a lot of options, so you can use any one in it, what do we have to do now, we have to sum, how much is the sum, is it nine pe, or I go like this. Should I tab or directly write nine like this, comma after that is sum like the formula of sum seems to be reference one reference to that means he is asking for the number then you will give the range from here, you will enter then your total will come, now you see, press control shift A, after that you take dicker from here and do ok, then see now it will show you the sum of whatever you want to sum, you can do car excrement from here, do ok then see it will show the sum. So this was your sub total formula which helps you a lot, so whenever you are working on any of your big data, you know that I have to apply a filter on it, later if I want to check the total then apply sub total instead of normal sum and it will give you a better result, so here we have completed our sub total formula. It is about advanced formula and not about look up. How can it be like this, what we are doing now. They are going to do their look up formula, what are they going to do? Look up formula is ok, look up formula, now why did I say this, so let me tell you its logic too. Look, we do three formulas, we do look up, A is look up and Bring it, search it, bring it, now you will say, what does this mean? I don’t even understand it. Suppose this is your manager. The manager has a complete data in which there are lakhs of entries. Now the manager has selected you out of 1 lakh entries. He has given you this and here he has made a report in which there are 100 entries in it and has told you to extract the data of these entries and give it to me. Take this data of 1 lakh entries. Take this from inside it. There are 100 entries, take them out and give them the specifications. Take out these 100 entries and give me these 100 entries. Will you apply a filter or not? Will you find out from there? No, this is a very time consuming process. So, what do you do? Do you use the look up formula? What will the look up formula do for you? We will go inside this data and will give you the answer of these 100 entries from this data. Okay, so now you understand this. If I talk about lookup formula in general, then how does lookup formula help you? If you want to extract some small information from big data and you want to extract some information from big data, then lookup formula is used. Now you will say that ma’am, lookup formula is used, so what is this and lookup H lookup And look up then comes to us A look up and then comes to us What is horizontal data? Do you remember I had made a special on you in which you were transposing the data, then the horizontal data had come, your that is your horizontal data is fine and single access data, why are we saying that, we will understand further, now suppose you have understood, why is it called v look up, why is it called h look up, both the formulas are the same, I do it like this, both the formulas are the same, if v lookup comes When I went, h lookup came. The only method is that when the data is vertical then apply v look up and when the data is horizontal then apply h look up. Now I am talking about these two, so h look should not feel left out, it should feel the most modernized. Why should it feel? One, x look up is a new formula, it is not in every version, it is in the versions after 2019 and the x look up is optional. Whose alternative is v for look up and h for look up, it is okay if you don’t know v look up, h look up doesn’t come, no problem, x look up comes, all the work will be done, if v look up comes and the rest don’t come, then there is a problem because h look up will not happen, h look up comes, even if v look up does not come, there is a problem, but if The same will be useful, this is an alternative and I would say it is an easy alternative if you have not learned V look up. Suppose you are in an interview and in his system only V look up works. Let’s see, I am going with a scenario that this is your big data or this big data with lakhs of entries, party name is written here, category is written here or product name is written here, region is written here, contact number is written here, is it okay in some way, this is your A column, B column, C column, D column, E column is okay and now you have to find the data inside it, so here you are making a report inside which the first name is written Raju, now you have to bring its contact details, what should you bring? If you have to bring the contact details, then basically you have to find Raju, who do you have to find, if you want to find Raju, then how does the look up formula work? When suppose this data, suppose I am creating a dummy data here, inside this data, this one here, I do not want to spoil anything, so I am creating it here. Suppose Raju is standing here, that means there is a person standing here who has to find Raju. Okay, so he should know that he is searching for Raju. If I I will not tell him that I need Raju’s contact details. I need Raju’s contact details. Will he search ? That’s why whenever they start the formula, they should know who they are looking for. Whom we are looking for, we call it look up value. What do we call look up value look up? What do you call look up value? Look up means whom to search for, go and bring whom to bring, that value, Raju is the look up value when your formula is started. If that person goes inside and searches, then he should know in advance that he should keep roaming around for a while, then you will tell him that wait, I had to find Raju, it will not happen like this, so when he starts the formula, right from the beginning, he should know what is the look up value, if we want to find Raju, then from here itself, our first question arises, what comes out, I write down here, the first question that comes out is that our look up value is extreme. It should be on the left because look, there is vertical data, so first it will go to the first column, first it will go to A. How do you read AB, CD, this is how you read, that’s how you check, isn’t it a systemic way? Check B first, then check C, then check A, then check G, then check G. Don’t do it like this. It will go to the first column, then to the second column, then to the third column, then to the fourth column, then to the fifth column. He will go and then he will find out, oh here is the contact details and I wanted the contact details from here and that too of Raju, he will find Raju here only, this Raju is here and after that he will go and check the contact details in each and every column, then the first requirement is that your look up value should be in the extreme left, if your look off value is not in the extreme left, because see, if any person starts searching for something. If you do it, it will go left to right, it will go left to right, you are going A B C D, if you are looking at yourself then you are going left to right, then if your look up value is not left to right, if your look up value is not in the extreme left, then your look up will never give the answer and mainly people make the same mistake. They know how to apply V lookup but they do not understand the parts of V lookup, that is why. If it doesn’t work then you understand its meaning now. If you apply it then you will understand better. Second second comes to you, what is Ajman? No duplicate look of value. Now let’s say no in this. No duplicate data. Data can be duplicate. Look up value should not be duplicate. Meaning if I say there are two Raju’s then you will not get confused about which Raju either tell him in a simple way Raju Sharma Raju’s anything but if you tell him only two same person’s name is in it then get confused. This will happen, then it will bring wrong data, that is why the look up value should not be duplicate. If the subsequent data is duplicate, then it will work. Look up value should not be duplicate. These two conditions are there. If these two conditions are satisfied, then you can apply V Look Up on that data. It will bring you the answer and give you the answer. Now see what all the things are there inside V Look Up. Now V Look Up works like this, now I will tell you more about the look up. Here, if A look up happens, A look up happens, in v look up, what does it do? It is checking each column. In H look up, it will just go to each column and check. It will go to the first row, then it will go to the second row, then it will go to the third row, then it will go to the fourth row. So the movement here is from up to down. Okay, this is the only difference, it is the same ajman, that is everything. Now let me tell you both the formulas here like what is the Equals to v look up tab. Look up value table array column index number and range look up So let’s write it and after that tell you like here we look up what is coming inside it look up value table array what is coming after that column index number and what comes after that after the column index number your true or false ok I will also tell you the look up h look up also here and tell you by writing h what is the meaning of look up h look up look up value now you will be able to understand the difference in this. Look up table array raw index number and true and false. Now see the difference between these two. Look up value. Look up value. Whom to search? Whom to search? So whom did we have to search there? If we had to search Raju, then Raju is yours. Look up value is the table array in which we have to search and in this we give the entire table so to search in which we do not give any specific thing. Like within the range, Pressa easily used to say, search in the party name, it is not there. If you give the complete data in which you want to search then the complete data is complete data but remember that the range should be on the extreme left which is your look up value. This is what I told you. Look at the column index number. In V Lookup, it checks in each and every column, hence the column is the index number. Inside it is the raw index number. What is the difference between the two, in which the answer is written, the column with the answer or the raw number and you tell this number by counting yourself and After that you get True or False True. You use Approximate to match whether you want an approximate answer or not. We will put False because we need an exact answer. Okay, now let’s go ahead and see if you understand. I will look at our data first. Name is Category. Product Name is Region. City is everything. After that you come here to v look up. Here we will apply the formula for Harmony Foods is equal to two. v Look up tab one second I had to zoom it a little bit here equals to v look up tab look up value Harmony Foods are looking for comma table array table array is where we have to tell all the data to it so you take your data and remember whenever in the table array, your look up value should be in the extreme left, there is no look up value in the extreme left because he will start looking from the left, your look up value will not be found in the left. And if it will not give you the answer, then from here on the extreme left our look up value, we have selected the data, comma, after that it says the column index number, what answer do we want, do we need a category, count the category, on the first page comes the name, on the second page comes the category, then what is your column index number, so you have taken two, comma, after that, what do you have to do, should I put true or false, we will get the exact match from true. If we want the answer then we will take the exact answer, tap on it and close it from here and enter, then see our answer has come here, okay now I will tell you by adding one more thing in it like I have added the serial number here, serial number and here I do one and here I have done this and made it a fill series, I take this and go to home. I took this format post, I clicked on it, once again and I am here to tell you that we look up, which is the mistake that people generally make and after that they say we look up doesn’t seem to look, we look up tab look up value look up value, we have to search this: comma table array table array, take the table array, they take it from the serial number, so you take it from the serial number, now tell me one thing, is your look up value in the most extreme left or not? That’s why the answer will not come, I am telling myself right now, the answer will not come, but let’s look at the column index number. First of all, there is the serial number. One second number is the name. On the third number, there is the category. If you want a category, then you will write three, comma, after that, false tab. Panis of enter. The answer will not come. Will A not come? Now the answer will come. Look at the answer. Equals to V. Look up tab. Look up value. Look up value. You have to search for a value. We are here. Okay sorry, had to take a look up value, I put back equals to v look up tab look up value, we took the look up value, comma, after that we will take the table array, table array, we have to take it here, now we cannot take the table array from here, what will we do, we will take it from here because what we need is in the extreme left, whatever look up value we need in the extreme left, we have searched from here, comma, after that now we will take our column index number, then the column index number. Now should I write two or should I write three because there is also a serial number, so we always have to count from where the range starts. Now where does our range start, it starts with the name, so the name is the and the category is the two. Whichever range you give, it seems to be the same, its data does not know the data before and after it, so that is why if you write two from here, then write two directly here, make a comma, do false, tap on the pencil. Turn it off and enter, you will get the answer. Okay, understand. Now suppose you can drag this. If you drag, will the answer come? What if the wrong answer has come? This is the wrong answer for you. Okay, so how will you bring the correct answer. To get the correct answer, see, we need the product name here. If I am doing it here, then it is 2 to 2, so ours was that, 2 is our category, so this is this . How to fetch the answer because it has look up value a2 and here it has taken our look up value b2, it has taken the look up value fashion, so what look up value is our fashion, otherwise you cannot do this, so now if suppose I have to do something simultaneously, then how can I do it, so either I have this method that I keep changing the column index number for each one, three for this, four for this, five for that, so this is a time consuming process. How can I put equals to we look up tab look up value comma, after that we will take the table array table array, now we will take it by name only, you know why we are taking it by name and whether the table array is going to be the same for all or not, then we will fix it with f4, comma, now tell me one thing , what answers do I need in the column index number, what answers do I need, I need category, product name, region, city, state, meaning if I count again. If I start doing 2 3 4 5 6 7, I want the answer till seven, then should I do it one by one because I write two manually and it is fixed, so when I drag, there is not even three in place of two because it is fixed, so what will you do in such a case? 7 Turn off the curly brackets, after that, remove the comma, remove the tub, turn off the parenthes, enter, your answer will come in one go, it is correct, see how correct it is, a2 is its look up value, a2 is its look up value, a2 is its look up value, ok, I still have one complaint from here that I had not kept this or that, so if you want, you can fix it, what can I do now ? I select it and just drag it over here, then see, it will give me all the answers, okay, this was one method, but this method with curly brackets does not work in the old versions, so in such a case, you can put a column formula here, what can you put a column formula, if I delete it here, then I tell here, the column formula will appear here, equals to and look up tab, look a value look a. Value taken comma table array will take table array you took and it is going to be same for all so fixed it with f4 now look column index number we cannot take curly brackets but We have to take something like this that if it starts counting automatically, then we will put the column formula here, then what will we do in the Column Formula tab, after that, if we want to count from here, then we will come to our V Lookup and wherever it is, then we have to take it, okay, after that we have to turn off the parentheses, put a comma, after that, false , turn off the parentheses, enter, so see, it has given me the answer, okay, so one way is also there, if in your If the curly brackets don’t work then you can use the column formula. Okay, this was your nested formula. Nested formulas are when you put another formula inside a formula. Here we have put a column formula inside a formula so that we get the answer. So this was your nested formula. So in this way we put our and look up. If I had to put H look up, for H look up also I have If there is data to be passed, then what do I do? If this data is visible to you, if it is in horizontal form, then we will apply H look up, okay, but before that, H look up is normal, it is used very less, so now what we will learn is that we will learn X look up, look inside Can’t go here, can’t go there, it should be on the left. There is no ajman, it does all the work with ease. Second thing, let me tell you what values ​​are written inside x look up . Array, just like you did not do in range, you used to directly choose the party name. Now in this also, directly choose and return array. What is the meaning of written array? Answer, just as in that, you did not do it by taking the same range. You used to take the same range or return it. Meaning, we have to tell what is the answer, find out what is the answer, what type of search is to be done and who has to do this search. Okay, so now we will put our Look up is done very easily, so we will directly take care of equal to We will fix the comma, after that return array answer, what is the answer, what is the answer, what is the answer, what is the answer, if we want the category answer, then we will take the category answer and enter, then see here, I should have fixed it because it is going to remain the same for everyone, enter and just double tap it, then you have the answer for everyone, but what should we do so that it gives the answer for everyone, so tell me one thing about us, if I have for everyone. If we want an answer then our look up value is going to remain the same and when the look up value is Y then the look up array is also going to remain the same, the only answer is what we have to change, what do we have to change in the written array, what should we do in the written array so that we have all these answers, right? We have to set it in this way, so let’s put it again. Let’s check once in which way we put it. We can see by putting lots of combinations, then look up X. We will tab, we will look up value, we will take comma, we will look up array, we will go to our data, look up array means where we will find it, where we will find it in the name people, we will find it in it, we fixed the comma with f4, now we need return array, in return array we need answers, from category to gender, so I selected till gender and the selection is done till the bottom, now it has come from c2 to h30 331. If I enter it directly, it will give me the answer. Is it Maharashtra Pune Male Gender Is it correct We check Voman Dress Yes is it correct and then now I drag it and bring it down Is it giving me the correct answer Fashion Suit South Kochi And see what answer was coming here I delete it and it was getting the answer here All West Vadodara Gujarat That means our X look up is wrong here Is it wrong They check so that If we want to understand it right, then look here there is a2, here a2 a3 a4 a5 is coming, it means it is coming right. But here also this thing is coming fine, that means the look up value is coming fine, the look up array is fine, now it comes to the point, now tell me one thing, if we want to find the harmony force, then our range is from c2 to h33, okay, here our same will remain the same, here it is from c3 to 332, here it is from c4 to h33, it means c should remain common and the numbers are increasing, the numbers are increasing, but We have to keep the number number the same. We also have to keep the number the same, so what will we do, we will put a dollar in front of C so that C is fixed, let’s try once and in front of H, now let’s see by entering. Hey, I should have done it here, let’s fix it with A4, let’s try and see only by doing, we will know where what mistake we are doing. When we entered, then see, now it is here. Now I go and drag it, then there is no impact on the answer, why not if I am here? If we had taken leti, what would have come to mean that C was already fixed, we should not fix C, we have made this mistake, now let us fix two and see, we put dollar in front of two, fix it with f4 and here also we fix it with f4, okay let’s enter, so what we did here is that the number is changing, right basically C and h remain the same, the rest of the numbers are changing and see your answer has come, what were you doing? Change of s and h to c and h was the same but the number was changing. Now I will try to explain it again so that if you understand it better then equals to If you want the answer then take the answer till gender but remember to press f4 so much that your numbers get fixed. C and H are fixed anyway but these numbers should also be fixed because the range is going to be the same for everyone and you press enter, you will get the answer and after that you can drag it because if you have not fixed the look up value then it will keep moving and you will keep getting such answers, then in this way From this you can apply ​Yes, let me do HMC like this, here I will write any name, like what we do is that inside this filter, we create a drop down with data validation, okay, I am going to teach you this later on, but for once here, let us create it, okay, so here we have the name, we will write any name here and after that we will have its formula, meaning its data will come in it, no matter how many times it is written, everything will come, so first of all for this. We need that whatever is your data in which you are going to search, I am going to search which also has duplicate entries inside it, so if there are duplicate entries inside it, then we are going to search in it, we keep this data here, it is okay for once, we are going to search inside it, now the thing is that we have to keep the same heading there and the other wise, our data will not come in the right way but remember that according to whom you are searching, your heading should start from there. If you want then we will take comma from here, copy it and go to our filter here and paste it here, so in this way your data has come here, now we will put the formula here, Equals to Filter tab, after that we will take the array, inside the array you have to give the complete data, so you will give the complete data from here. Well, the data you have to give is to be given by name, it is not necessary, you can give the complete data, you have given the complete data, comma after that it says Include according to whose name you are looking for. According to whom you are looking for according to the name,

    then you will select it, you will do equals to and what should it be equal to, what should this cell be equal to, this cell should be equal to this cell, whatever you are searching should come inside this, enter it, so here just because we have to take it like this, in the date format, okay, so here he has brought me all the entries, whatever his Look, if the entries were not completely copied here, then here it has completely copied and brought it from the date, so all the entries that we had to take, all the headings which were to be taken should have been taken from the date, so it has locked it and if I say some other name from here, then look, it has locked the entries for that too, if I do something else, it has brought it’s entries and given it. You click any of them, it will bring all the entries and give it to you, okay. So in this way, if you want, you can apply a filter formula, if you have duplicate entries, then it brings that too and gives it, so this was your filter formula, you see, making a search box, this is what it means to make a search box, in this way, you create a box, write your name in it and your complete data comes below, then they say that the search box has been created, the name is written above and the complete data is below, so this is what happens, that search box is fine, next we move ahead. Look, till now you were working with this actual data and what was inside it. There was a look up value in the extreme left. There was a look up value in the extreme left. Now I do this work with the look up value. Whatever is there, I bring the shift category here. Hey brother, no problem, do control plus, sometimes things do not work, control v and delete this, okay. Right now I say that I want a category according to the name, then you will say that there is no look up value in the most extreme left, otherwise how will we look up? I will apply Datchi’s formula. Now how does the index max work, which is an index? Equals to the index tab. So look, what is required in it. Are arrays required? Raw numbers are required. Column numbers are required exactly the same way as we use in Laka etc. Raw numbers are required, are column numbers exactly the same? How does this work? It works on the intersection, basically it will find the data in two ways here, it will also find your vertical data, then it will also find the horizontal data, where the intersection will come, it will bring you the answer. Okay, so now how will we use this intersection, how will we do all the things, let us see, we will put the equals to index formula here, we will tab it, we will give it, we have to give the complete data, so we will give the complete data from here, it does not matter, you complete it. Give the data, don’t think that brother, yes, if it is a serial number, then don’t give it. Give a comma. After that, the raw number. If your data is vertical or horizontal, if it is vertical, then you can give the raw number in the vertical. What can’t you give, then instead of the thing that you cannot give, I am telling it in a very simple way. I have not gone into much detail because you will get confused. The formula is like this, that is why I am telling a very logical thing, the vertical data is raw. You can give numbers, you can not give, you know that we are applying a different formula of combination, then put the match. If there was horizontal data, then we could have given the raw number, then we could not give the column number, then there we would put the match formula in place of the column number, now here we will put the match formula in place of draw, put the match formula, do the tab, what does the match say, look a value, what to search, then you see what to search here, we have to search this name, isn’t it the name? You have to search comma, after that look up array, where will you get this name, it is exactly the same as you will get this name, right here inside this column, comma, after that you want exact match, less day, greater day, obviously exact match, do zero, turn off the parentheses, so till here you have put the column number, you have not put the column number, now you will tell him what is the answer, so you had chosen from the serial number, right? If you want answer category, then 2 is your column number. Is there anything left after that? Will we use comma? No, there is no need to do anything after that. Turn off the pennis and enter, then it has given me the answer. Fashion is ok, can I drag it? Try it by dragging. No, why can’t it? Why can’t it because the answer has already been given? I have given it a column number. Can I bring it like this? Yes, I can bring it like this, but here I have to do it. We will have to check the match because even inside the match we have given a look up value, is it correct? We will have to check that thing once again for the product name. What did we do? We took the array and took the array. We will select the entire data from here and the array is going to be the same for all. Yes, so it has been fixed. Comma after that, can you give R number in the raw number and vertical data? No, apply the match formula. Tap Do after that look up value. What is the look up value? You see, you need according to the name. You have taken the name. You have taken the comma. The look up value has to be changed again and again, so we will not fix the look up array. Look up array. Where will you get it? It will be found here in the name. So you have taken the name. The look up array is going to be the same for all. Yes, so you fix it. After that, we need zero exact. Take off the commas. Do the comma. After that, what do you need? Column index number. What do you need the answer to? Now you need the product name. The product name would have come anyway. There was no need of a match. There was no need of an index, but you tell me. 1 2 3 4. Forth on the fourth number and enter. Here the answer will come. Woman dress. Just drag it over here. So you have all these answers. Now we can drag it. Can’t we? Okay, so in this way you can use the index match. I just wanted to tell you a little bit, you all. Work can be done with v look up Lo, even if I change my heading in this way, your answer should change. Now this work cannot be done in V Look Up, why because there is column index number in Select it, OK, you have selected it, put a comma, after that the field means what is the answer you want, what is the answer saying, what do you want, give it whatever is written in this field, it is not there because we can change it, so give that comma, after that criteria criteria, you already know what we have to find, but here we give the criteria with the heading, when we enter, then this answer has come, now look, I am here. If I am changing it then look, the answer will change, this is me, no one of any kind will give you any error here, let’s put it once more like D gut did tab did what did we do in the database, we give the complete data in the database, give us your whole load data, okay, these are multiple criteria, then it comes in handy, you gave a comma after that, what is it asking from you, you will check this field field, whatever is written about it, give a comma after that, criteria. So the only criteria here is that it has to be given along with the heading, enter it, your answer will come , you check it, you change it, then see that it is getting changed, okay, so in this way we apply the D Gut formula, after that you get D Sum, D Sum also works in multiple criteria, so we will put Ds here, like Sum If is an upgraded version of Sum If, so if DCM is to be applied, DCM. Put the sum, if it seems easy, then put that, there is an alternative to that, tap the database, take the database, we have to get the complete data in the same way, we have taken the complete data, after that do the comma, after that it is saying tell the field, then from here we will tell the field, we want the amount answer, so we took this comma, after that it asks us in D Sum to tell our criteria, so now the D Sum is such that within which we have to give the criteria along with the heading, we have If you enter the given then this answer will come, okay what you have to do, everything is the same, you have to give the same database, you have to give the same fields, you just have to keep in mind that whatever criteria you give, you will give it along with the heading, so here we have completed two more formulas, f is d sum and d is gut, after this let’s do a formula which is large and small. Basically, assume that you have this data and you want to know that it is rank wise and not rank wise. We are extracting but give those five numbers which are the highest or give those five numbers which are Smollett, then in such a case you can apply the formula, see here you put large equals to large tab, after that array means from which you have to find, then you have to search from this, so we have taken this comma k means which values ​​12 2 3 4 5 This is what we need, top one is needed, top two is needed, top three is needed, then you take this and enter. If you do, the top five values ​​will appear before you. Similarly, the opposite will be given that if you want small then small will also come, just tab it, you have to give an array, give it a comma, tell him the meaning of top small, he will tell from the bottom, he says no, your rank came from the bottom according to that which is the lowest, according to that, he has gone away telling, so it was very simple but it should have been done, so I got it done for you, after that it comes to you, a we are mostly at our place. We have covered all the formulas that we need to know in advance. In this, I will teach you one more formula which is the finance formula. Finance formula. I want to explain it to you in complete detail. So let’s complete it with a case study. See, here we will take a very simple example. Suppose you have bought a phone. Okay, you bought the phone and you bought that phone for Rs. ₹ lakh. It’s okay. And on which interest of NM 12 is going to be charged, now you figure out how much its installment will be, so 1 lakh and you are going to pay it in 1 year, you are going to pay it in one year, then you see how much you will pay within 1 year, 1 lakh, then you have to pay the principal amount of ₹ 1 lakh, so its cost is ₹ 1 lakh, plus its discount on ₹ 12 means interest of ₹ 1 lakh on 12, then you will have this amount. How much becomes 112000, it becomes okay, now you have to divide this amount by 12, that much will be your installment. For example, for once, let us take 8000, that is, your 8000 is being made, so within 8000, you know that you have withdrawn only a little of 1 lakh, this is also the 12th installment, so your 8000 is being made. Your principal amount is also going inside it and along with it, your interest amount is also going there. Right, whenever you have to calculate the installment that how much money will I have to pay, then you apply PMT. PMT calculates the installment and gives it. When out of this installment, when you want to separate how much interest has gone and how much principal amount has gone, that means brother, I have paid how much principal amount and how much interest has been paid, then I will calculate the interest amount. For this, you apply IPMT and calculate PPMT to know the principal amount, then I can say that whatever is logical for you is fine, there is no such equation, PMT is equal to IPMT plus, PPMT means your installment, what is formed from the principal amount in interest plus, so this is how the formula works. Now let us see one or two things in the formula here. What are one two things, one two factors, one. So what is the factor that principal amount is the principal amount which is the main amount on which you have bought it. Okay, secondly, what is the rate rate? The amount of interest you have to pay, the interest you have to pay, now the interest you get generally, when P is written, that means enum means for the whole year. If I write this on 12, it is for the whole year, then how much will it be for the month, because of our formula. If it asks us in months then Ch is 12 but divided by 12 then it will be % of every month. Okay, after that it asks for time. Time means in how much time you have to repay it. Suppose if you have to repay it in years, then our formula asks us in months. So 2 * 12. We will answer 24 that we have to repay it in so many months so that because your installment goes, it goes as monthly installment. If it does not come for this reason, then what will we do here? Now apply our formula and see, here it comes to you, you can see what is the loan amount, it is a loan of 1 lakh, your interest is being charged, so how did you withdraw this much monthly, if you have done it at 10/12, then the monthly installment has come, sorry, the monthly interest has come, the loan term is said to be five years, so the period month should obviously be 60. It is 5 * 12 for 60 months, so now if you want to withdraw the installment, then what will you apply? PMT, will you tap? You have already calculated the rate, so you take the article, calculate it in advance, divide by 12, otherwise you will have to put a comma in the formula, after that on n, on n, what will be the time taken, to be repaid in 60 months. Comma after that, PV means the principal value will be this much. Enter, then you have this answer. Principal amount is an outside world, meaning we have to give this value, it is outwork. If you show this value as negative inside your formula, then this value will come positive. Otherwise, you can also keep the installment in negative. You have to know the principal amount. Now that you know the installment, you want to know that if my installment goes, then it will be in that. How much will the principal amount go to, then we will tab PPMT, we will take the same rate, comma after that, what are you asking but for how many years it is going to last, that is, we have to find out the number of years, how much principal amount we are paying in a year, or in that one comma, how much is the total going to be, go after 60 months or comma, what is the PV after that, enter lakhs, then see, this amount from this installment is your principal value and right there. If you take out the interest on pay then IPMT tab, after that you will give the same rate. You have to take out the year on the comma, but the year comma is once in a year and after that what are you doing on N meaning your months comma after that enter your PV then this much is your interest. If you total both of them then which is 21 24. This much is your installment going. This much principal amount goes inside the installment and this much amount of interest goes. So here we have done the basic, meaning it is basic, if you understand it well, then it will be basic. Other wise, you will get confused in this also. In the basic funda way, I have given you the finance related formulas here, so here we have covered all the formulas from basic to advanced. Now we will move towards our main topic which is going to be our pivot, where we will learn from reporting, where we will learn about dashboard. After all this, we will tap the data tab and developer, now let’s move on to it, so if you have watched this video till now, then I can definitely say that now you must have understood Basic Excel and Advanced Excel very well. Unfortunately, we have to stop this video here and the reason is that youtube2 If I am explaining pivot table to you, making you a dashboard, making you make a power query or making you make an AI tools and in the middle that video has to be ended there. That’s why we will bring part two of this video where we will cover all the similar topics, be it your pivot table, charts, dashboard, power query, DAX, VBA, macros, AI tools, all of them are going to be covered in part two of this, so you will stay with us, as well as all the content I have used here, you can access it on the app on top of our app. Go above and check the free content there, you will get all the sheets. Apart from this, if you want to do professional training, do live professional training, then you can join us. We deal in accounting software, data analytics and finance, so all the software related to this, you can explore them on our app, on the website or if any query comes, then you will meet directly on call or whatsapp2, till then you will get your Don’t forget to give feedback because from your feedback we get to know how we should bring content to you and how we can deliver the best for you. So let’s meet in the next video till then goodbye.

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • Adobe Illustrator: Shape Creation, Selection, and Design Techniques

    Adobe Illustrator: Shape Creation, Selection, and Design Techniques

    The provided text offers instructions and demonstrations for using various tools and techniques within a graphic design software. It begins by introducing basic shape tools, their manipulation through anchor points and handles, and methods for applying color fills and outlines. The text then explores selection techniques, including basic selection, group selection, and a magic wand tool for selecting similarly attributed objects, along with a lasso tool for freehand selections. Zoom functionalities and document setup options are also covered. Subsequently, the text guides the user through creating several design projects: a layered ribbon, a 3D chocolate bar illustration using effects and rendering, and a visiting card design incorporating masks, gradients, and image placement, concluding with a basic Ludo board creation demonstrating grid splitting and pathfinder operations.

    Adobe Illustrator Course Review

    Quiz

    1. According to the instructor, who is this Adobe Illustrator course designed for? This course is designed for absolute beginners who have no prior knowledge of Illustrator, as well as individuals with some basic understanding who want to learn advanced techniques. The instructor emphasizes teaching from the very basics in a traditional yet interesting way.
    2. Name at least five types of designs that can be created using Adobe Illustrator mentioned in the video. Adobe Illustrator can be used for designing logos, creating cartoon characters, flyer designs, business card designs, invitation card designs, letterhead designs, brochure designs, book cover designs, certificate designs, social media ad designs, banner designs, and mobile UI designs.
    3. What is the key difference between vector-based and raster-based graphic designing software? Vector-based software, like Adobe Illustrator, uses mathematical equations to define shapes as paths or lines, allowing them to be scaled infinitely without losing quality or becoming pixelated. Raster-based software, on the other hand, uses a grid of pixels, which can become pixelated and lose quality when zoomed in or scaled up.
    4. What are the minimum system requirements mentioned for installing Adobe Illustrator on a PC? The minimum system requirements include a 64-bit processor, 8GB of RAM, and at least 2GB of hard disk space. A monitor with a minimum resolution of 1024×768 pixels and a 1GB GPU are also recommended.
    5. How can a user access a perfect circle or square shape while drawing in Adobe Illustrator? To draw a perfect circle, the user should select the Ellipse Tool and then press and hold the Shift key while dragging the mouse. Similarly, to draw a perfect square using the Rectangle Tool, the user should press and hold the Shift key while dragging the mouse.
    6. What is the purpose of the Direct Selection Tool (shortcut ‘A’) in Adobe Illustrator? The Direct Selection Tool allows users to select individual anchor points or path segments of a shape. Once selected, these anchor points can be moved, and their handles can be adjusted to modify the shape of the path or round corners individually.
    7. Explain how the Shaper Tool (Shift+N) can be used to create and merge shapes in Adobe Illustrator. The Shaper Tool allows users to draw rough shapes, which the software then interprets and converts into perfect geometric forms. It can also merge overlapping rough shapes into a single combined shape. Additionally, drawing a zigzag line across multiple shapes with the Shaper Tool can merge them together.
    8. Describe one method for zooming in and out of the artwork in Adobe Illustrator. One method for zooming is using the Zoom Tool (shortcut ‘Z’). Clicking and dragging from left to right zooms in, while dragging from right to left zooms out. Alternatively, simply clicking and holding with the Zoom Tool will continuously zoom in on that area.
    9. How can the Magic Wand Tool be used to select objects in Adobe Illustrator? The Magic Wand Tool selects objects based on similar attributes, such as fill color, stroke color, stroke weight, opacity, etc. Double-clicking the Magic Wand Tool icon opens a dialog box where users can specify which attributes and the tolerance level for similarity to use for selection.
    10. What is the function of the Pathfinder panel in Adobe Illustrator, and name one of its shape modes or pathfinders? The Pathfinder panel contains a set of options that allow users to combine, subtract, intersect, divide, and otherwise manipulate overlapping objects to create new shapes. One of its shape modes is “Unite,” which merges two or more selected objects into a single object.

    Answer Key

    1. This course is designed for absolute beginners who have no prior knowledge of Illustrator, as well as individuals with some basic understanding who want to learn advanced techniques. The instructor emphasizes teaching from the very basics in a traditional yet interesting way.
    2. Adobe Illustrator can be used for designing logos, creating cartoon characters, flyer designs, business card designs, invitation card designs, letterhead designs, brochure designs, book cover designs, certificate designs, social media ad designs, banner designs, and mobile UI designs.
    3. Vector-based software uses mathematical equations for shapes, allowing infinite scaling without pixelation, while raster-based software uses pixels that can pixelate upon scaling.
    4. Minimum requirements: 64-bit processor, 8GB RAM, 2GB hard disk space, 1024×768 resolution monitor, and a 1GB GPU (recommended).
    5. Hold the Shift key while using the Ellipse Tool for a perfect circle and the Rectangle Tool for a perfect square.
    6. The Direct Selection Tool (A) allows users to select and manipulate individual anchor points and path segments of a shape to make precise modifications.
    7. The Shaper Tool (Shift+N) creates perfect shapes from rough drawings and merges overlapping rough shapes into one. Drawing a zigzag across shapes also merges them.
    8. Using the Zoom Tool (Z), drag left to right to zoom in and right to left to zoom out; or click and hold to continuously zoom in.
    9. The Magic Wand Tool selects objects with similar attributes (e.g., fill color, stroke weight), configurable through its settings.
    10. The Pathfinder panel manipulates overlapping objects to create new shapes; “Unite” is one mode that merges selected objects.

    Essay Format Questions

    1. Discuss the advantages of using vector-based software like Adobe Illustrator for graphic design compared to raster-based software, referencing examples from the video.
    2. Analyze the instructor’s teaching approach in the video excerpts. What methods does he use to engage beginners and those with some prior knowledge of Adobe Illustrator?
    3. Describe the process of creating the ribbon design in Adobe Illustrator as explained in the video, highlighting the key tools and options used.
    4. Explain the steps involved in creating the 3D chocolate design in Adobe Illustrator, focusing on the use of 3D effects and material options.
    5. Outline the process of designing the Ludo board in Adobe Illustrator, emphasizing the use of the Split into Grid function and Pathfinder options.

    Glossary of Key Terms

    • Anchor Point: A point on a vector path that indicates a change in direction. Handles extending from anchor points control the curve of the path.
    • Artboard: The workspace in Adobe Illustrator where you create your artwork. Multiple artboards can exist in a single document.
    • Vector: Graphics composed of mathematical equations defining lines, curves, and shapes. They can be scaled infinitely without loss of quality.
    • Raster: Graphics composed of a grid of pixels, where each pixel contains color information. Raster images can become pixelated when scaled up.
    • Interface: The visual layout of a software application, including menus, panels, and tools, that allows users to interact with it.
    • Toolbar: A strip of icons or buttons in a software application that provides quick access to frequently used tools and functions.
    • Shortcut Key: A key or combination of keys on a keyboard that performs a specific command or action in a software application.
    • Selection Tool (V): The basic tool in Adobe Illustrator used to select entire objects or groups of objects for manipulation.
    • Direct Selection Tool (A): A tool used to select and manipulate individual anchor points or path segments of vector objects.
    • Ellipse Tool (L): A tool used to create circles and ovals (ellipses).
    • Rectangle Tool (M): A tool used to create rectangular and square shapes.
    • Shaper Tool (Shift+N): A tool that allows users to create perfect geometric shapes by drawing rough approximations, and also to merge shapes intuitively.
    • Pathfinder: A panel in Adobe Illustrator that contains options for combining, subtracting, intersecting, and dividing overlapping objects to create new shapes.
    • Unite: A Pathfinder option that merges two or more selected objects into a single object.
    • Minus Front: A Pathfinder option that subtracts the topmost object(s) from the objects below them.
    • Intersect: A Pathfinder option that creates a new object from the overlapping areas of two or more selected objects.
    • Divide: A Pathfinder option that divides overlapping objects into separate, distinct shapes.
    • Zoom Tool (Z): A tool used to increase or decrease the magnification level of the artwork view.
    • Magic Wand Tool (Y): A tool that selects objects based on similar fill color, stroke color, stroke weight, opacity, or blending mode.
    • Stroke: The visible outline of a path. Stroke attributes include color, weight (thickness), and style.
    • Fill: The color, pattern, or gradient applied to the inside area of a closed path or object.
    • Gradient: A smooth transition between two or more colors.
    • Opacity: The degree to which an object is transparent or opaque. A lower opacity value makes the object more transparent.
    • Blend Mode: Options that control how colors of overlapping objects interact with each other.
    • Group (Ctrl+G): A command that combines selected objects into a single unit, allowing them to be manipulated together.
    • Ungroup (Ctrl+Shift+G): A command that separates objects that were previously grouped.
    • Align Panel: A panel that provides options for arranging selected objects relative to each other or to the artboard.
    • Distribute: Options within the Align panel that control the spacing between three or more selected objects.
    • Rotate Tool (R): A tool used to turn objects around a specific point.
    • Reflect Tool (O): A tool used to create a mirrored copy of an object across a specified axis.
    • Pen Tool (P): A tool used to create precise paths with anchor points and Bézier curves.
    • Direct Selection Tool: Allows for the manipulation of individual anchor points and path segments created with the Pen Tool.
    • Split Into Grid: A feature that divides an object into multiple rows and columns of equal or specified dimensions.
    • 3D and Materials: A feature in Adobe Illustrator that allows users to create three-dimensional effects on vector objects by extruding, revolving, or inflating them, and to apply materials and lighting.
    • Inflate: A 3D effect that adds volume to an object, making it appear puffed or rounded.
    • Expand Appearance: A command that converts live effects, such as 3D effects and strokes, into editable vector paths and shapes.
    • Eye Dropper Tool (I): A tool used to sample the color or appearance attributes from one object and apply them to another.
    • Clipping Mask: An object whose shape masks other artwork so that only the area within the mask is visible.
    • Brush Tool (B): A tool that allows users to paint paths with various artistic brush effects.
    • Symbol: A reusable piece of artwork stored in the Symbols panel. Instances of a symbol can be placed multiple times without increasing file size significantly.
    • Mockup: A representation of a design in a real-world context, often used to present design concepts to clients. This often involves using software like Adobe Photoshop to place flat designs onto three-dimensional objects or scenes.
    • RGB: A color model that uses red, green, and blue light to produce a wide range of colors, primarily used for digital displays.
    • CMYK: A color model that uses cyan, magenta, yellow, and black inks, primarily used for printing.

    Design Software Tools and Techniques: A Briefing

    Here is a briefing document summarizing the key concepts and tools discussed in the provided sources:

    Briefing Document: Introduction to Design Software Tools and Techniques

    This document provides an overview of the fundamental tools, panels, and techniques demonstrated in the sources for creating various designs, including visiting cards, flyers, social media posts, infographics, and even 3D objects. The software being used appears to be a vector graphics editor like Adobe Illustrator.

    1. Interface Overview and Workspace Customization

    • The interface includes an Application bar at the top, displaying the software icon, home button, and menus (File, Edit, etc.).
    • On the right side of the Application bar, you can find options for search, arranging documents, switching workspaces, and window controls (minimize, maximize, close).
    • The Document tab shows the document name, zoom percentage, and color mode (RGB or CMYK).
    • The Toolbar is typically located on the left side and contains various tools for creating and manipulating designs.
    • Panels are usually on the right side and offer options and settings for different aspects of the design process.
    • Workspace refers to the arrangement of the toolbar and panels. You can:
    • Choose from pre-set workspaces (e.g., Essentials, Printing, Web) via the workspace dropdown or the Window menu.
    • Create custom workspaces by arranging panels and toolbars as needed and saving them via the Window menu > Workspace > New Workspace.
    • Arrange panels by dragging and dropping them, grouping them together (indicated by a blue border), or attaching them to the top or bottom of other panels (indicated by a blue line).
    • Separate panels by clicking and dragging them away from their current group.
    • Toolbars can also be customized. You can:
    • Detach toolbars and move them around.
    • Access basic and advanced toolbars via the Window menu > Toolbar.
    • Create custom toolbars by going to Window > Toolbar > New Toolbar, naming it, and then dragging tools from the complete list (accessed via the three dots at the bottom of a toolbar) into your custom toolbar.
    • The Control Toolbar (or Control Panel) is typically located below the Application bar and displays options relevant to the currently selected tool.

    2. Document Setup

    • When creating a new document, you can specify its dimensions, color mode (RGB for screen, CMYK for print), and raster effects (PPI) (72 PPI for screen, 300 PPI for print, 150 PPI for medium).
    • Bleed area (the area extending beyond the page boundaries) can be set during document creation.
    • Document Setup (File > Document Setup) allows you to modify settings like units (e.g., pixels, mm, cm), bleed, and more even after the document has been created.

    3. Basic Tools and Shape Creation

    • Selection Tool (V): Used for selecting and manipulating objects.
    • Direct Selection Tool (A): Used for selecting and manipulating individual anchor points and path segments of an object.
    • Rectangle Tool (M): Creates rectangular shapes.
    • Clicking and dragging creates a rectangle.
    • Holding Shift while dragging creates a perfect square.
    • Clicking once on the artboard opens a dialog to specify width and height.
    • Rounded Rectangle Tool: Creates rectangles with rounded corners.
    • Ellipse Tool (L): Creates elliptical shapes and circles.
    • Holding Shift while dragging creates a perfect circle.
    • Polygon Tool: Creates polygonal shapes.
    • Clicking and dragging creates a polygon.
    • Use the up and down arrow keys while dragging to increase or decrease the number of sides.
    • Pen Tool (P): Used for drawing precise paths and shapes by creating anchor points and Bézier curves.
    • Shaper Tool (Shift + N): Allows you to draw rough shapes, and the software will convert them into precise geometric shapes. It also allows for merging shapes by drawing a connecting line through them.
    • Zoom Tool (Z): Used for zooming in and out of the artwork.
    • Click and drag to zoom into a specific area.
    • Dragging from left to right zooms in, and right to left zooms out (animated zoom, may depend on graphics card and settings).
    • Ctrl + 0 (or Cmd + 0) zooms to fit the artboard in the window.

    4. Object Manipulation

    • Selecting Objects: Use the Selection Tool to click on objects to select them.
    • Transforming Objects:
    • Resizing: Drag the handles (small squares at the corners and sides of a selected object) to change width and height. Corner handles resize proportionally by default; holding Shift while dragging a side handle can also maintain proportions.
    • Rotating: Move the mouse cursor slightly outside a corner handle until a curved arrow appears, then click and drag to rotate. Holding Shift while rotating snaps to 45-degree increments.
    • Copying Objects:
    • Ctrl + C (Copy) and Ctrl + V (Paste).
    • Ctrl + C (Copy) and Ctrl + F (Paste in Front).
    • Pressing the Alt key while dragging an object creates a copy.
    • Ctrl + D (Transform Again) repeats the last transformation (including moving and copying).
    • Arranging Objects: Use Object > Arrange to change the stacking order of objects (Bring to Front, Bring Forward, Send Backward, Send to Back).
    • Grouping Objects (Ctrl + G): Combines selected objects into a single group for easier manipulation.
    • Ungrouping Objects (Ctrl + Shift + G): Separates objects that were previously grouped.
    • Aligning Objects: Use the Align panel (Window > Align) or alignment options in the Control bar to align selected objects to each other or to the artboard (Horizontal Align Left/Center/Right, Vertical Align Top/Center/Bottom). You can designate a key object for alignment by selecting multiple objects and then clicking on one of them again (a thicker outline will appear) or by using the “Align To Object” option in the Align panel menu.

    5. Color and Appearance

    • Color Modes: RGB (Red, Green, Blue) for screen-based designs, CMYK (Cyan, Magenta, Yellow, Black) for print.
    • Fill and Stroke: Objects have a fill color (the inside) and a stroke (the outline). You can set these using the Swatches panel, Color panel, or the options in the Toolbar.
    • Eye Dropper Tool (I): Used to sample color from existing objects.
    • Gradient Tool (G): Creates smooth transitions between colors. Gradients can be applied to both fill and stroke.
    • Opacity: Controls the transparency of an object (0% is fully transparent, 100% is fully opaque). Can be adjusted in the Transparency panel or the Control bar.
    • Stroke Panel (Window > Stroke): Allows you to customize the appearance of strokes (weight, cap, corner, align, dashed lines, etc.).

    6. Pathfinder Panel (Window > Pathfinder)

    • Provides tools for combining, subtracting, intersecting, excluding, dividing, trimming, merging, cropping, and outlining shapes.
    • Unite: Merges selected shapes into one.
    • Minus Front: Subtracts the topmost object(s) from the bottommost object.
    • Intersect: Keeps only the overlapping areas of selected shapes.
    • Exclude: Keeps all non-overlapping areas and removes the overlapping area.
    • Divide: Splits overlapping shapes into separate objects.
    • Trim: Removes the parts of an object that are hidden behind other objects.
    • Merge: Similar to Trim but also merges same-colored, non-stroked adjacent objects.
    • Crop: Keeps only the area of the topmost object that overlaps with the objects below.
    • Outline: Converts objects into their outline paths.
    • Minus Back: Subtracts the bottommost object(s) from the topmost object (not explicitly mentioned but implied by “Minus Front”).

    7. Working with Text

    • Type Tool (T): Used for adding text to the artwork.
    • Text attributes like font, size, color, weight (bold, regular), and line spacing (leading) can be adjusted in the Character panel (typically found within the Properties panel or under Type > Character).

    8. Advanced Techniques

    • Offset Path (Object > Path > Offset Path): Creates a new path that is offset from the original path, either inside or outside. Positive values create an outer offset, and negative values create an inner offset.
    • Split Into Grid (Object > Path > Split Into Grid): Divides an object into multiple rows and columns with specified numbers and gutter spacing.
    • Magic Wand Tool (Y): Selects objects with similar attributes (e.g., fill color, stroke weight). Double-clicking the tool icon opens options to customize the selection criteria.
    • Lasso Tool (Q): Allows freehand selection of anchor points or objects.
    • Clipping Masks (Object > Clipping Mask > Make or Right-click > Make Clipping Mask): Uses one object (the mask) to define the visibility of other artwork. Only the parts of the artwork that lie within the mask are visible. The masking object needs to be on top of the objects being masked.
    • Document Raster Effects Settings (Effect > Document Raster Effects Settings): Controls the resolution for raster effects applied in the document.
    • Drop Shadow (Effect > Stylize > Drop Shadow): Adds a shadow effect to objects, with options for mode, opacity, offset (X and Y), and blur.
    • Image Placement (File > Place): Imports external files (images, other documents) into the Illustrator document. Linked images (indicated by a cross) are linked to the original file. Embedding an image (using the Embed button in the Control bar when the image is selected) makes it part of the Illustrator file, breaking the link to the original.
    • Mockups: Visual representations used to present designs in a realistic context (often done in separate software like Adobe Photoshop by placing the design onto a mockup template).
    • Expand Appearance (Object > Expand Appearance): Converts live effects (like 3D effects or strokes) into editable paths and fills.
    • Reflect Tool (Object > Transform > Reflect or Right-click > Transform > Reflect): Flips an object horizontally or vertically.
    • View Modes (View > Outline, View > Preview): Outline mode shows only the paths of objects, useful for precise alignment and identifying overlapping objects. Preview mode shows the final appearance with fills and strokes.
    • Guides (View > Rulers > Show Rulers, then drag from rulers): Non-printing lines used for alignment and layout. Guides can be locked/unlocked and precisely positioned.

    9. Data Recovery

    • The software has an automatic save option (Edit > Preferences > File Handling) that can be configured to save recovery information at specified intervals (e.g., every 2 minutes) to prevent data loss in case of crashes. You can also set the location for these recovery files and whether to save backups on the cloud.

    This briefing document covers the main topics discussed in the provided sources, offering a foundational understanding of various design software functionalities and workflows. Remember that practice and experimentation are key to mastering these tools and techniques.

    Adobe Illustrator Course: Answering Your Questions

    Here is an FAQ (Frequently Asked Questions) based on the information in the sources:

    Q: What is this course about? A: This course is a complete course on Adobe Illustrator. It aims to teach you graphic designing from the very basics to more advanced techniques.

    Q: Who is this course for? A: This course is designed for absolute beginners who have no previous knowledge of Illustrator, as well as people who have some basic knowledge but want to learn advanced techniques. Even if you have never opened Illustrator before, this course is for you.

    Q: What software is used in this course? A: The software used in this course is Adobe Illustrator.

    Q: Do I need prior knowledge to take this course? A: No, you do not need any previous knowledge to learn from this course. It starts from the very basics.

    Q: What will I learn in this course? A: In this course, you will learn how to create logos, design and create cartoon characters, design flyers, business cards, invitation cards, letterheads, brochures, book covers, certificates, social media ads, banners, and mobile UI designs, among many other things. You will also learn to create objects, write text, and design various elements like 2D restaurant designs, strawberry cream chocolate designs, ribbon designs, 3D chocolate designs, infographics, visiting card designs, ludo designs, social media posts, pattern backgrounds, christmas candy designs, 3D text designs, abstract backgrounds, 3D rainbow designs, and isometric building designs.

    Q: Is Adobe Illustrator difficult to learn? A: According to the instructor, Illustrator is not a very difficult software. This course aims to make it even easier and more interesting to learn.

    Q: Is this course free? What is the “small fee”? A: The instructor is offering this course for free, and no money is required. The “small fee” requested is to like the video, leave a sweet comment, and share it with at least one friend.

    Q: Why is this course different from other courses? A: This course is different because it aims to teach Illustrator in an interesting and practical way, not just the traditional way. You will learn to make designs and patterns along with understanding the tools and options needed to create them.

    Q: What if I miss a tool or option in the videos? A: You are advised not to skip any part of the video because the instructor will explain how each option or tool works in detail and then use it in a design without repeating its basic working again in future videos.

    Q: How can I easily access specific topics in the course? A: Timestamps of topics and chapters will be provided in the description box of the video, allowing you to learn any topic easily without hassle.

    Q: How can I ask questions or get in touch with the instructor? A: Links to all the instructor’s social media channels are provided in the video description box, where you can talk to the instructor and ask questions. The instructor also mentions starting online live classes soon, and you can potentially join those. You can also contact via instagram2.

    Q: What are the career prospects after learning graphic designing? A: There is a huge demand for graphic designing skills in the market, and this demand is increasing locally as well. Learning this skill can help you earn money in top sectors such as Brand Design, Marketing & Advertising design, Packaging design, Web end user Interface Design, Print & Publication Design, Lettering and text design, Graphics Illustration, Data Visualisation, and Infographic Design.

    Q: What are RGB and CMYK color modes used for? A: RGB (Red, Green, Blue) color mode is used when you are designing something that will be used on a screen, such as social media posts or for platforms like youtube2, as screens on mobiles and computers use RGB colors. CMYK (Cyan, Magenta, Yellow, Black) color mode is used when you are going to take something for printing, like a visiting card, flyer, banner, or flex.

    Q: What PPI should I use for screen and print? A: For screen use, you can take 72 PPI (pixels per inch). For printing, you would typically take 300 PPI. A medium setting might use 150 PPI.

    Q: How can I customize the workspace in Illustrator? A: You can customize your workspace by choosing from preset workspaces (like Essentials, Printing, Web) from the workspace dropdown or by going to Window > Workspace. You can also create your own custom workspace by arranging panels and toolbars as you like and saving it via Window > Workspace > New Workspace.

    Q: What are panels and toolbars in Illustrator? A: The toolbar is usually on the left side and contains all the document tools used to enhance your designs. Panels are typically on the right side and contain options and settings that you will use in the future for various aspects of your design work.

    Q: How can I save my work automatically in case of a crash? A: You can set up automatic saving by going to Edit menu > Preferences > File Handling. Here, you can turn on the “Automatic save” option and choose the interval (e.g., every 2 minutes) at which your file’s recovery information will be saved. You can also choose to save backups on the cloud.

    Q: What are basic shapes in Illustrator and how can I create them? A: Basic shapes include rectangles, rounded rectangles, ellipses, and polygons, which can be found by clicking and holding on the Rectangle Tool icon in the toolbar. * To create a rectangle, select the Rectangle Tool (M), click and drag on the artboard. Hold Shift to create a perfect square. Clicking once on the artboard allows you to enter specific width and height dimensions. * The Rounded Rectangle Tool creates rectangles with rounded corners. * The Ellipse Tool (L) allows you to draw ellipses; hold Shift to draw perfect circles. * The Polygon Tool lets you create polygons; while dragging, you can use the up and down arrow keys to change the number of sides.

    Q: How do I resize and rotate shapes in Illustrator? A: * Resizing: Select the shape with the Selection Tool (V). Drag the handles (small squares) at the corners and sides to change the size. Holding Shift while dragging a corner handle maintains proportions. * Rotating: Select the shape. Move your mouse cursor slightly outside a corner handle until a rotation handle (curved arrow) appears. Click and drag to rotate the shape. Hold Shift during rotation to snap to 45-degree angles.

    Q: How do I change the fill and stroke color of an object in Illustrator? A: When you select a shape, you can see the Fill Color and Stroke (outline) Color options in the Toolbar, the Swatches panel, or the Color panel. Click on the fill or stroke swatch to choose a color. You can also adjust the stroke weight (thickness) next to the stroke color option. To remove fill or stroke, you can select the “None” option, often represented by a white square with a red diagonal line, in the color options. You can switch between applying color to the fill or the stroke by clicking on the respective swatch to bring it to the front or by pressing the ‘X’ key.

    Q: What is the Magic Wand Tool used for? A: The Magic Wand Tool (Y) is used to select objects that have similar appearance attributes, such as the same fill color or stroke weight. Clicking on an object with the Magic Wand will select all other objects in your artwork that share similar properties. You can customize the selection criteria by double-clicking the Magic Wand tool icon.

    Q: What is the Pathfinder panel used for? A: The Pathfinder panel (Window > Pathfinder) provides a set of tools to combine and manipulate shapes in various ways. It can be used to unite shapes, subtract one shape from another, find the intersection of shapes, exclude overlapping areas, divide shapes, trim overlapping parts, merge shapes with the same color, crop shapes, and create outlines of objects.

    Q: What is the Offset Path function in Illustrator? A: The Offset Path function (Object > Path > Offset Path) creates a new path that is offset by a specified distance from the original path. You can create a path that is larger (outside) by using a positive offset value or smaller (inside) by using a negative offset value. This is useful for creating outlines, insets, or bleed areas for printing.

    Q: What are Guides used for in Illustrator? A: Guides are non-printing lines that help with alignment and layout in your artwork. You can create guides by showing the rulers (View > Rulers > Show Rulers) and then clicking and dragging from either the horizontal ruler (for horizontal guides) or the vertical ruler (for vertical guides) onto your artboard. Guides can be moved, and you can align objects to them. You can also precisely position guides using the Control bar when a guide is selected.

    Q: What is a Clipping Mask in Illustrator? A: A clipping mask is an object whose shape masks other artwork so that only areas that lie within the shape are visible. To create a clipping mask, you need a masking object on top of the objects you want to mask. Select all the objects and then go to Object > Clipping Mask > Make or right-click and choose Make Clipping Mask.

    Q: What is Drop Shadow in Illustrator? A: Drop Shadow is an effect (Effect > Stylize > Drop Shadow) that adds a shadow behind an object to give it depth. You can customize the shadow’s mode, color, opacity, offset (X and Y direction), and blur in the Drop Shadow dialog box.

    Q: How do I place an image in Illustrator? A: To place an external file (like an image) into your Illustrator document, go to File > Place. Select the image file and click “Place.” You can then click and drag on the artboard to size the placed image.

    Q: What is embedding an image in Illustrator? A: When you place an image in Illustrator, it can be either linked or embedded. A linked image maintains a connection to the original file. An embedded image becomes part of the Illustrator document itself, breaking the link to the original file. Embedding is done by selecting a linked image and clicking the “Embed” button in the Control bar. Embedding ensures the image will always be visible in your Illustrator file, even if the original file is moved or deleted.

    Q: What are Mockups and why are they used? A: Mockups are visual representations used to present designs in a realistic context. For example, a visiting card design can be placed onto a mockup of a hand holding a card or a card lying on a desk. Mockups are often created in separate software like Adobe Photoshop by placing the design onto a mockup template. They help clients visualize how the final product will look.

    Adobe Illustrator Basic Tools and Techniques

    Based on the information in the sources, let’s discuss the usage of basic tools in Adobe Illustrator:

    Basic Shapes Tools

    Illustrator provides several basic shape tools that serve as fundamental building blocks for more complex designs. These tools are usually grouped under the Rectangle Tool in the toolbar. To access them, you can click and hold on the visible shape tool icon.

    • Rectangle Tool (M): This tool allows you to draw rectangular shapes by clicking and dragging on the artboard. To create a perfect square, hold down the Shift key while dragging. You can also create a rectangle of a specific size by selecting the tool and clicking once on the artboard; a dialog box will appear where you can enter the desired width and height.
    • Rounded Rectangle Tool: This tool creates rectangles with rounded corners. Similar to the Rectangle Tool, you click and drag to draw. The roundness of the corners is predefined by the tool. You can also create a rounded rectangle with specific dimensions and corner radius by clicking once on the artboard after selecting the tool.
    • Ellipse Tool (L): This tool is used to draw elliptical shapes. To draw a perfect circle, hold down the Shift key while dragging. Like the Rectangle Tool, clicking once on the artboard after selecting the Ellipse Tool allows you to specify the width and height of the ellipse. A red line might appear in the center while drawing with the Shift key, indicating you are creating a perfect circle.
    • Polygon Tool: This tool allows you to draw polygonal shapes. After selecting the tool, click and drag on the artboard. While dragging, you can change the number of sides of the polygon by pressing the up and down arrow keys. Pressing the up key increases the number of sides, while the down key decreases it. You can create a triangle (minimum sides) this way. Holding Shift while dragging will constrain the rotation of the polygon.
    • Star Tool: This tool is used to draw star shapes. Similar to the Polygon Tool, you click and drag to create a star. You can change the number of points on the star by using the up and down arrow keys while dragging.

    Selection Tools

    These tools are crucial for selecting and manipulating objects you create.

    • Selection Tool (V): This is your primary tool for selecting entire objects. You can click on an object to select it. Once selected, handles (small squares) appear around the object. Dragging these handles allows you to resize the object. Moving the mouse cursor slightly outside a corner handle will reveal rotation handles, which you can use to rotate the object. Holding Shift during resizing from a corner maintains the object’s proportions, and holding Shift during rotation snaps the rotation to 45-degree increments.
    • Direct Selection Tool (A): This tool allows you to select individual anchor points on a path or shape. Anchor points are the points that define the shape of an object. By selecting individual or multiple anchor points (you can select multiple by holding Shift), you can move them, thus reshaping the object. When you select an anchor point with the Direct Selection Tool, you may also see handles extending from it. These handles control the curves of the paths connected to that anchor point. By dragging these handles, you can fine-tune the shape of curves. You can also use the Direct Selection Tool to round individual corners of a shape by clicking on the corner and dragging the appearing circular widget inwards. Holding Shift while dragging a corner widget allows you to round multiple selected corners simultaneously.
    • Lasso Tool (Q): This tool allows you to make freehand selections of anchor points or objects. You simply click and drag to draw a freeform shape around the areas or objects you want to select. Only the objects or anchor points fully or partially enclosed within the lassoed area will be selected.

    Drawing Tools

    These tools are primarily used for creating paths and more intricate shapes.

    • Pen Tool: The Pen Tool is a fundamental tool for creating precise and complex paths. It works by placing anchor points that are connected by path segments. Clicking with the Pen Tool creates straight path segments. To create curved paths, you click and drag, which creates direction handles that define the curve’s shape. You can adjust these handles to refine the curve. To create a sharp corner after drawing a curve, you can hold down the Alt key and click on the last anchor point to remove one of the direction handles.
    • Shaper Tool (Shift+N): This tool allows you to draw rough shapes, and Illustrator will attempt to recognize and convert them into precise geometric shapes. You can also use the Shaper Tool to merge overlapping shapes by drawing a scribble through them.

    Viewing and Navigation Tools

    These tools help you navigate and examine your artwork.

    • Zoom Tool (Z): This tool allows you to zoom in and out of your artwork. Select the tool and click on the artboard to zoom in. To zoom out, hold down the Alt key while clicking. You can also click and drag the Zoom Tool to zoom into a specific area. Double-clicking the Zoom Tool in the toolbar will fit your artboard to the window (Ctrl+0 is a shortcut for this). You can also control the zoom level using the dropdown menu in the status bar at the bottom of the window. Illustrator offers animated zoom for a smoother experience, which can be enabled in Edit > Preferences > Performance by checking the “Animated Zoom” option.
    • Hand Tool (H): While not explicitly detailed in the source, the Hand Tool is typically used to pan or move your view of the artboard, especially when you are zoomed in. You can temporarily activate the Hand Tool by holding down the Spacebar while using another tool.

    Color and Appearance

    • Fill and Stroke: When you draw a shape, it has a fill color (the inside color) and a stroke color (the outline color). You can see and change these colors in the Toolbar, the Color panel, or the Swatches panel. Click on the fill swatch or the stroke swatch to select which attribute you want to modify. Then, you can choose a color. The stroke weight (thickness of the outline) can also be adjusted. To remove the fill or stroke, select the corresponding swatch and then choose the “None” option (a white square with a red diagonal line). You can switch between applying color to the fill and the stroke by clicking on the active swatch or by pressing the ‘X’ key.
    • Eyedropper Tool (I): This tool allows you to sample the color (including fill, stroke, and other attributes) from an existing object and apply it to another selected object. Simply select the object you want to change, then select the Eyedropper Tool and click on the object with the color you want to sample.

    Selection Techniques

    • Single Selection: Click on an object with the Selection Tool (V) to select it.
    • Multiple Selection: Select multiple objects by holding down the Shift key while clicking on each object with the Selection Tool.
    • Group Selection: You can group multiple selected objects together using Ctrl+G (Object > Group). Once grouped, they behave as a single unit when selected and transformed. You can ungroup them using Ctrl+Shift+G (Object > Ungroup). The Group Selection Tool (nested under the Direct Selection Tool) allows you to select individual objects within a group without ungrouping. Double-clicking with the Selection Tool can also allow you to isolate and edit within a group.
    • Magic Wand Tool (Y): As mentioned earlier, this tool selects objects with similar attributes. You can adjust the tolerance for similarity by double-clicking the tool icon.
    • Select by Area: You can click and drag with the Selection Tool (V) to draw a selection marquee around multiple objects, selecting all objects fully or partially within the marquee.

    Understanding and practicing with these basic tools is essential for working effectively in Adobe Illustrator and building more complex designs, as highlighted throughout the sources when creating ribbons, chocolates, visiting cards, and infographics.

    Illustrator Shape Creation Techniques

    Based on the information in the sources and our previous discussion, here’s a breakdown of shape creation techniques in Adobe Illustrator:

    Creating Basic Geometric Shapes

    Illustrator offers a suite of basic shape tools, fundamental for building artwork. These are typically found grouped under the Rectangle Tool (M) in the toolbar [Me].

    • Rectangle and Rounded Rectangle: To draw a rectangle, select the Rectangle Tool and click and drag on the artboard [1, Me]. To create a perfect square, hold down the Shift key while dragging [1, Me]. Similarly, the Rounded Rectangle Tool creates rectangles with rounded corners using the same click-and-drag method [1, Me]. You can create a rectangle or rounded rectangle with specific dimensions by selecting the tool and clicking once on the artboard, which opens a dialog box for entering the width and height [1, Me]. For a rounded rectangle, this dialog also allows you to specify the corner radius.
    • Ellipse: Select the Ellipse Tool (L) and click and drag to draw an ellipse [1, Me]. Holding the Shift key while dragging will create a perfect circle [1, Me]. You can also specify the dimensions of an ellipse or circle by clicking once on the artboard after selecting the tool [1, Me].
    • Polygon: Choose the Polygon Tool, then click and drag on the artboard [1, Me]. While dragging, you can change the number of sides of the polygon by pressing the up and down arrow keys [1, Me]. Holding Shift constrains the rotation of the polygon as you draw [Me].
    • Star: Select the Star Tool and click and drag on the artboard [Me]. You can change the number of points on the star by pressing the up and down arrow keys while dragging [Me].

    Modifying Basic Shapes

    Once a basic shape is created, you can modify it in several ways:

    • Resizing and Rotating with the Selection Tool: With the Selection Tool (V), click to select a shape. Handles (small squares) will appear around it. Dragging these handles will resize the shape. Holding Shift while dragging a corner handle maintains the shape’s proportions [1, Me]. Moving the cursor slightly outside a corner handle reveals rotation handles, which allow you to rotate the shape. Holding Shift during rotation snaps it to 45-degree increments [1, Me].
    • Direct Selection Tool for Anchor Points and Corners: The Direct Selection Tool (A) allows you to manipulate individual anchor points of a shape [1, 2, Me]. Clicking on an anchor point selects it, and you can then drag it to reshape the path [1, Me]. When an anchor point is selected, direction handles may also appear, which you can drag to adjust the curves of the path segments connected to that point [2, Me]. The Direct Selection Tool can also be used to round corners individually or in groups. After selecting the corner(s), a circular widget appears, which you can drag inwards to round the corner [1, Me]. Holding Shift allows you to round multiple selected corners simultaneously [Me].
    • Shaper Tool for Intuitive Drawing: The Shaper Tool (Shift+N) provides a more intuitive way to create shapes by allowing you to draw rough approximations of geometric forms, which Illustrator then refines into precise shapes [3, Me]. This tool also enables you to merge overlapping shapes by drawing a scribble across them [3, Me].
    • Specifying Dimensions After Creation: You can also modify the dimensions of a selected shape after it has been drawn. With the shape selected and a shape tool active (like the Rectangle Tool), you can often see dimension fields in the Control panel at the top of the screen, where you can directly input the desired width and height [Me – based on general Illustrator knowledge, though not explicitly stated in the sources for post-creation modification].

    These techniques provide a solid foundation for creating and manipulating shapes in Adobe Illustrator, as demonstrated in the various design tasks outlined in the sources.

    Illustrator: Understanding Fill and Stroke

    Based on the information in the sources and our conversation history, here’s a discussion of color fill and stroke in Adobe Illustrator:

    Whenever you draw a basic shape in Illustrator, it inherently has two attributes: a fill color and a stroke color (which is also referred to as the outline color).

    Fill Color:

    • The fill color is the color that occupies the interior area of a closed path or shape.
    • You can change the fill color of a selected shape in several ways:
    • By using the Color panel.
    • By using the Swatches panel (referred to as “color options are available with it”).
    • By using the toolbar, where you can see the fill color swatch. Clicking on this swatch will open color options.
    • By using the Eyedropper tool to sample a color from existing artwork and apply it as the fill.
    • Illustrator provides various color modes and options for selecting fill colors.
    • You can also choose no fill for a shape, which will make the inside of the shape transparent. This option is usually represented by a “None” swatch in the color panels and toolbar.

    Stroke Color:

    • The stroke color defines the color of the outline or border of a path or shape.
    • Similar to the fill color, you can modify the stroke color of a selected shape using the Color panel, Swatches panel, and the stroke color swatch in the toolbar.
    • You can also choose no stroke for a shape, which will make the outline invisible. This option is also represented by a “None” swatch.

    Stroke Weight (Thickness):

    • In addition to the stroke color, you can also control the weight or thickness of the stroke using the Stroke panel. The higher the weight value, the thicker the outline will be. You can usually access the Stroke panel from the Window menu.

    Applying and Interacting with Fill and Stroke:

    • When you select a shape, the fill and stroke color swatches are visible in the toolbar. The active swatch (either fill or stroke) is usually displayed on top, indicating that any color changes you make will be applied to that attribute.
    • You can switch between the active fill and stroke swatches by clicking on the inactive swatch in the toolbar or by pressing the “X” key on your keyboard. This allows you to easily change either the fill or the stroke color of the selected object.
    • The Arrange menu allows you to control the stacking order of objects. This can be relevant when dealing with filled and stroked shapes that overlap.

    “None” Option:

    • The “None” color option is available for both fill and stroke. When you apply “None” to the fill, the interior of the shape becomes transparent. When you apply “None” to the stroke, the outline of the shape disappears.

    In the context of shape creation techniques we discussed earlier, understanding fill and stroke is crucial because every shape you create will have these attributes. You can then use the various methods described to customize their appearance according to your design needs, as seen in the ribbon and chocolate bar examples in the sources. For instance, the ribbon design utilizes both solid colors and gradients for the fill, and the chocolate design applies fill colors and later explores 3D effects that interact with these initial color choices.

    Adobe Illustrator Object Manipulation Techniques

    Based on the information in the sources and our conversation history, there are several techniques for object manipulation in Adobe Illustrator. These techniques allow you to move, resize, rotate, arrange, group, and otherwise modify objects within your artwork.

    Selecting Objects:

    The first step in manipulating any object is to select it. You can do this using the Selection Tool (V) [1, Me]. Simply click on an object to select it. To select multiple objects, you can either click and drag a selection marquee around them or Shift-click on each object you want to include in the selection [5, Me].

    Moving Objects:

    Once an object or multiple objects are selected, you can move them by clicking and dragging with the Selection Tool [1, 5, Me].

    Resizing Objects:

    To resize a selected object, use the Selection Tool to click and drag one of the handles that appear around the object’s bounding box [1, 3, Me].

    • Dragging a side handle will change the width or height independently.
    • Dragging a corner handle will change both the width and height proportionally.
    • To maintain the object’s original proportions while resizing with a corner handle, hold down the Shift key while dragging [1, 3, Me].

    Rotating Objects:

    With an object selected using the Selection Tool, move your cursor slightly outside one of the corner handles. The cursor will change to a curved arrow, indicating that you can now rotate the object by clicking and dragging [1, 3, Me].

    • Holding down the Shift key while rotating will snap the rotation to 45-degree increments [1, 3, Me].
    • The Reflect Tool (O) can also be used to create a mirrored copy of an object across a specified axis [7, Me]. You can access its options by double-clicking on the tool.

    Arranging Objects (Stacking Order):

    When you have multiple overlapping objects, you can control their stacking order using the Arrange menu (Object > Arrange). The options include:

    • Bring to Front: Moves the selected object to the top of the stack.
    • Bring Forward: Moves the selected object up one level in the stacking order.
    • Send Backward: Moves the selected object down one level in the stacking order.
    • Send to Back: Moves the selected object to the bottom of the stack.

    Grouping and Ungrouping Objects:

    Grouping allows you to treat multiple objects as a single unit [1, 5, 8, Me]. To group selected objects, go to Object > Group or use the shortcut Ctrl+G (Command+G on Mac). Once grouped, you can move, resize, and rotate the entire group as one.

    To ungroup a selected group, go to Object > Ungroup or use the shortcut Ctrl+Shift+G (Command+Shift+G on Mac). This will separate the objects back into individual elements. The Group Selection Tool allows you to select individual items within a group without ungrouping it entirely.

    Aligning Objects:

    The Align panel (Window > Align) provides options for aligning two or more selected objects relative to each other or to the artboard [9, Me]. You can align objects horizontally (left, center, right) and vertically (top, center, bottom). You can also distribute objects evenly with specified spacing. The “Align To:” option in the Align panel allows you to choose whether to align to the selection, the artboard, or a key object.

    Reflecting Objects:

    The Reflect Tool (O) allows you to create a mirrored copy of an object [7, Me]. Select the object, activate the Reflect Tool, and then click and drag across the axis you want to reflect the object over. Holding the Alt key while clicking will open the Reflect dialog box, allowing you to specify the axis and create a copy [7, Me].

    Other Manipulation Techniques:

    • The Direct Selection Tool (A), while primarily used for editing anchor points and path segments, can also be used to select and manipulate individual objects within a group (as mentioned earlier) or to move individual anchor points to reshape an object [7, Me].
    • The sources demonstrate using the Pen Tool to create and manipulate paths, which is a fundamental aspect of object creation and manipulation.
    • The concept of Offset Path (Object > Path > Offset Path) is introduced, which creates a new path that is offset by a specified distance from the original path, either inside or outside. This is a form of manipulating the shape and size of a path.
    • The Pathfinder panel (Window > Pathfinder) provides various options for combining, subtracting, intersecting, and dividing overlapping objects to create new shapes. These are powerful tools for manipulating the forms of your artwork.
    • Transformations like scaling, rotating, reflecting, shearing, and distorting can be accessed via the Object > Transform menu or by right-clicking on a selected object [Me – based on general Illustrator knowledge].

    These object manipulation techniques are essential for creating complex artwork and achieving precise control over your designs in Adobe Illustrator, as exemplified by the steps involved in creating the ribbon and chocolate bar designs in the provided sources.

    Adobe Illustrator: Understanding the Zoom Tool

    Based on the information in the sources, here’s a discussion of the Zoom functionality in Adobe Illustrator:

    The Zoom tool (Z) is a fundamental tool in Adobe Illustrator that allows you to magnify or reduce your view of the artwork on the artboard.

    Accessing the Zoom Tool:

    • You can select the Zoom tool by clicking on its icon in the toolbar. The icon typically resembles a magnifying glass.
    • The shortcut key for the Zoom tool is the “Z” key. Pressing “Z” on your keyboard will activate the Zoom tool.

    Methods of Zooming:

    • Click and Drag:With the Zoom tool selected, you can click and drag on the artboard to zoom in on a specific area.
    • If animated zoom is enabled (discussed below), dragging from left to right will zoom in, and dragging from right to left will zoom out.
    • Single Click and Hold:You can also single-click and hold the mouse button with the Zoom tool to continuously zoom in on the clicked area.
    • Zoom to Fit Artboard:The shortcut Ctrl + 0 (Command + 0 on Mac) allows you to quickly zoom to fit the active artboard within your window.
    • Zoom Levels in Interface:The current zoom level is displayed in the document tab, showing the percentage of zoom.
    • You can also find zoom controls and the current zoom level displayed in the status bar located at the bottom of the application window. You can often zoom in or out by clicking on or interacting with the zoom percentage in the status bar.

    Animated Zoom:

    • Illustrator offers an animated zoom feature that provides a smoother visual transition when zooming.
    • For animated zoom to function optimally, it relies on your system having a compatible graphics card and the necessary drivers installed.
    • You can enable or disable animated zoom in the Illustrator Preferences. To do this, go to Edit > Preferences > Performance. In the Performance settings, you will find an option labeled “Animated Zoom”. Make sure this option is ticked (enabled) to use the animated zoom functionality. If your system’s graphics card is not recognized, this option might be deactivated.

    Reversing Zoom Direction (Zoom Out):

    • To zoom out with the Zoom tool, you can press and hold the Alt key (Option key on Mac) while using the tool.
    • If you are using the click-and-drag method with animated zoom enabled, pressing Alt will reverse the direction; dragging left to right will zoom out, and right to left will zoom in.
    • Single-clicking with the Alt key held down will zoom out.

    In summary, Illustrator provides versatile zoom functionality through the dedicated Zoom tool and keyboard shortcuts. You can precisely control your view of the artwork for detailed work, and the animated zoom feature, when available, offers a smoother user experience. Understanding these different zooming methods allows for efficient navigation and manipulation of your designs, as is implicitly necessary when working on details in the ribbon or precisely placing elements in the chocolate bar and social media post examples from the sources.

    Adobe Illustrator Complete Course (7 Hours) in Hindi

    The Original Text

    Hello friends are you a best If you are searching for illustrator code then you You have come to the perfect video welcome back to Once Again to Your Graphic Designing Channel This is Ashish and you are watching Simplified [music] Tuts complete course of my previous college But you gave me so much love and support For which I thank you very much from my heart You guys liked my video very much And since then my They were demanding a lot that Sir we should get the same If you need another course on Adobe Illustrator You guys can read the complete course of Edo Illustrator Who is this course for This complete course is designed This course is for absolute beginners You do not need any previous knowledge to learn You don’t need it if you have ever done it before today Even if you haven’t opened Illustrator There is no problem, this course is I’m going to teach you from the very basics and People who have a little knowledge of the basics But they have advanced learning and techniques Even if they want to learn, the course is perfect for them This course is going to be taught in the traditional way I did not learn it in a little interesting way I will learn it so the video is a bit long if you are serious about graphic designing If you are interested in learning then this you can see the complete course what you will do in adobe.com logos Designing and creating cartoon characters flyer design business car design invitation card design letter head design brochure design book cover design certificate design social media ad design banner design mobile Designing UI Design and much more we use it for so much now After watching something you might feel that Illustrator is very difficult but it is Illustrator is not a very It is an easy software and in this video I am going to By making it even easier and more interesting I am going to teach you what you will learn in this In this course on Adobe Illustrator, we will You will learn how to create objects how to write text 2d restaurant design strawberry cream chocolate design Ribbon Design 3D Chocolate Design infographics design visiting car design ludo design social media post design pattern background design christmas candy design 3d text design abstract background design 3d rainbow design isometric building design ho ho main to I am tired of talking but you have so much to tell You are going to learn just one thing from this single video Now you can make a complete course like this inside You all know that there is a lot of time and It takes hard work so that’s why I first do this Placing the course in the youtube2 section But because of your love I was I couldn’t do that and now it’s for you I am offering this course for free, no money required I am not charging you anything but a small fee that’s one thing i would request of you Before watching this course, watch a video Please like and leave a sweet comment Do it and share this with at least one friend Please share the video so that it can be seen on youtube3 With the help of this video, more and more of them could reach children who were older There is no fee of lakhs of rupees in institutes After this course I can fill it for you adobe.com I will bring the course if you do it for free I want to become something by learning graphic designing and want to make a good earning So you can subscribe to this channel Career after learning graphic designing you guys know that graphic There is a huge demand for designing skills in the market There is more demand and its demand is now local The market is also increasing so if you If you learn a skill then earn money from it It might make things a little easier for you Top sectors where graphic designers work the demands are very high such as Brand Design Marketing & Advertising design packaging design web end user Interface Design Print & Publication Design lettering and text design Graphics Illustration Data Visualisation Infographic Design Why This Course Is This course is different from other courses because in this video, we By not studying Illustrator in the traditional way In an interesting and practical way We will learn different in this course you will learn to make designs and patterns which will You will also learn to make designs as well along with whatever tools are needed to create that design and the options being used You will also get to learn tools and options. You will go but you have to pay attention to one thing In this entire course, you will get this video There is no need to skip anywhere because How any option or tool works What is its working, I will tell you in detail I will also explain that thing in a design and I will not repeat its working to you again. I will do it in some other design because What if the video is longer? so if you skip the video and you missed that tool or option So how is the design going to be made in future You will not understand this complete To make access to the course easier, all Time stamp of topics and chapters will be provided to you will be found in the description box With the help of this you can learn any topic in this entire course. cover the topic anytime without any hassle You can easily see the details of this course To increase the practical I have used this In the description box of your video Gave links to all social media channels if so you can talk to me there And if you have any questions, you can you can ask me and I will as well I would like to tell you one more thing that you There were a lot of requests coming that Sir If we want a personal class from you then Very soon I will start online live classes also When I am starting, the kids who listen to me live If you want to take classes, take it directly from me He wants to read my message directly can do instagram2 I would like to introduce myself My name is Ashish and I have been here for the past 133 years Designing and Multimedia Development I am associated with many Indian and multinational Companies, Government departments and I have also worked for freelancing houses. If you have done it then let’s talk too much Gone are the talks here and there Keeping distractions aside, Ado Starting the creative journey of an illustrator If you want to purchase Illustrator, do you want to buy it? If you want it then you can visit their official website You can get it from here, for that you simply have to Go to the browser and search adobe.com I have already made it for you if you want it Go to my videos section can you see that video rector Things That Matter Versus Graphic Designing now what is a vector See, a vector is something where we This is how a straight line or path is drawn What is a raster where we have pixels If you design something through Our Adobe software is our There is vector base designing software and such If we talk about rester then our This is our raster based designing Now what are the vector software The files come as if it were our AI file EPS has been filed or if we use Coral If you are working on drawing then use Corel Draw The file is also from our vector base software A file is like this if we talk about raster If we do this, our JPG will become PNG. Whether it is GIF or PSD or Tip file All of this is ours Raster base graphic designing software Now there is a difference between the two files What are our vector files? yes she is quite good at illustrations and so on for our raster files They are good for photographs The file size of both is If we talk about the file size of vector then yes it is smaller in comparison to The file size of the raster is smaller than that of our vector There are files, you can zoom them as much as you want our files are not pixelated but raster files are those which are works on a pixel base so whenever If we zoom in on them then they will become pixelated. We start working on vector files you use it as your own for visiting us I want to make a card, I want to make a flyer, I want to make a logo have to be created for there while the raster file we use our own Good for editing photographs So, you must have understood this much that What are vector based software? What are raster base software? What is the difference between the two, now that it Our software is vector base graphic designing software is Illustrator is basically our software adobe.com so this is our vector base graphic designing software and its Inside we can design anything you want that is related to vectors such as logos Your books are now graphic novels. Gone are the newspapers and now comes flex designing Mobile AI or Mobile UI Designing is done, we have it all here you can design it and all Softwares are what we have adobe.com [music] How to install Illustrator on your PC For this we need some basic system Requirements are needed such as If we talk about our processor then The minimum processor we should have is It must be 64 bit even if it I am using intel’s 11 just like that If we talk about RAM then the minimum you need is 8GB RAM is required to use this software to the butt If it is recommendable then it is better If we talk about hard disk then you have You should have minimum 2GB space here You can use SSD on SSD what happens in your software which She is working, she becomes very fast like this If we talk about the resolution of the monitor If you do this then you want a minimum resolution of 1024 by 768 pixels. You can use a monitor, but you If we use more pixels than this Like 1920 or 1080 or more So that is a better thing for you, the more you will get to see good results If we talk about GPU then Here you can use minimum 1GB GPU. you can do it butt If you recommend it then it is quite good when you When you give good effects in 3D If you give effects here then yours is it software or your system Does not hang, does not lag [music] If you already have Illustrator in your PC it is installed then well and good but if you If you want to install it then you You can purchase from their official website for that you simply have to So this search page of theirs should open The website starts to open look here later you will find it The menu of Creativity and Design and You As soon as you click on this, you will see You can find the list of all the software here goes because I have work as an illustrator so I’ll click on Illustrator up and as soon as you click here So the separate page of Illustrator is It starts to open and after a while This page would have opened in front of you As soon as you click on the free tile here If you do it then see, you have everything here Instructions come as to how much it costs How long do you have the software for? You will get to use it for seven days remains free, after that you will have to pay $22.99 Monthly payment has to be made for this software to use it or you can use it You can also use it by making one time payment yes ok simply click on this as you like You will give me your email ID next etc. have to be entered, details have to be filled up There is a need to fill up the name etc. and You have to pay with your card you have to make online payment and then After that you can use this software you can do it because in my system it The software is already installed so I I’ll simply open it and go in your Start menu and here If I click on the software then it See our software here It has started to open and only a few You can download this software in seconds here It will open and come, see it here Our software is open whenever You will open Illustrator for the first time So its interface will look something like this going to be seen Let me tell you that I am here on the latest I am using the version which is exactly It arrived this year, in fact, just last month If it has come then I will download the same version here I am using if we are here for help go to the menu and I’ll show you my You can see more about Adobe Illustrator here. we will find that here I am using version 28.2 which is 64 bit software is fine so whenever If you open the software here You can see some interface here goes [music] The interface is very simple, some black You get to see this interface in color You can find some menus here for There are some options available for the new file To create as well as to download the app you can click here There is a menu available here There are options here, some will make you happy Presets are added to your new file to create it as if the letter was done post card became common and here You can also add more presets by clicking on More if we can see it then what do we do first? I am going to open a new file here. I’ll take it and after that we’ll go here to those Let’s clear the rest of the options as well if have you done any work before On Illustrator, here you will find Recent The files are also shown at the bottom because Right now I have fresh installed it I have done it for you then I have There is no new file or any The previous file is not showing up [music] so what do we do here I am here I click on new file and you can save the file Shortcut key to open a new file you can use control-n or You can also save the file by going into the File menu. If you can open it then like we are here If you click for new document then Here you will see a box opening Here we will get some presets Groups are visible as if on mobile There is a group, there is a web group, there is a print group Film and Video Group is an Art and There is an illustration group inside each group. There are lots of ready-made presets Just for example if I come on mobile So look here, I have made something for you The presets are visible if we go to View All If you click on it, see more here You can see a lot of presets are like this if we come to print See, you can make something in print also The presets are visible if we go to View If you click on it, you will see it here More presets visible What Presets Basically Are Presets are our predefined file sizes or the size of the files that contain our width their height their color mode in them How much do we have to bleed them here? What should be the orientation? Everything should be known in advance. it remains pre decided just for For example, suppose we click here Click on the letter under print So look at the size of this here The page size is the size of its artboard You can see the size here Similarly, if you accept us for website design If we want to do it then we will come on the web so here Look at the website you will find different You will see the sizes already created. If we are there then we don’t have to make those things We already have them again and again It remains set and we can use it Similarly if you want we can make your custom here We can also create presets for that What do we have to do simply here have to come and give the details of the preset happens here we have to give the name Suppose we give the name of the preset here Diya my new preset is ok and after that we You have to give its width and its height You can see the width and height here now It is available in pixels since we have The unit on the screen is selected by pixels If you want you can also view different units here You can choose, just for example we are here Click on it and you will see it here are points are picas are inches are feet You can use these from millimetre to centimetre If you can get something for printing You would like to create a document such as If it is a visiting card, a flyer or a brochure Then you can use millimetres or centimetres there. you can use it but if you flex Do you want to make a banner or something? Or are you looking to make a board outside? to install our units there They are in feet or feet and inches. people use like if we here If you choose centimeter then you You will see that here the value of width is equal to the height The value of everything is in centimeters here we come here converted into You can take the width as per your wish We can take the desired height, suppose we have here Its width is 11.5 cm and We have gained height Its 88.5 cm so now look here We can see this here in centimeters. it looks like we can take orientation here Whatever we document here What is the orientation of what you are going to create will it be in landscape or portrait This will be the first one you see This is our portrait mode and this is what happens after You can see this is our There is landscape mode, then here we Art Bolt option is given Art what is a board like if we had Kids who are already following me Watch my old coal draw videos if you have already done that then what used to happen there There used to be documents which were pages which We actually do our work at the top of the page Similarly in Illustrator, on the top of the page We do work, we call it art board if yes then we have it in our default document So you get the same art board but you If you want, their values ​​or their numbers we can increase it here if you want art board or three art boards or more We can also buy art boards as many as we want You need an artboard for your document You can page it inside here, we have I have given it three values ​​here. We will get three art boards here when We will also create a new document After that look here you will see bleeding Option is available to bleed what is bleed We have a margin area for any What we use to create the design Just for example, if we If we talk about visiting cards then visiting What happens in the card whenever we If you design a visiting card then design After doing this it gets printed. After that it is cut If finishing is done then cutting is done in finishing If some area of ​​the paper gets cut out The area which is being cut out is our actually design or our metro we bleed here so that it doesn’t cut area we leave bleed area The design is also on the inside and Our design also extends to the outside The designs that we have on the outside are comes out in our cutting and which Our bleed area is on the inside That’s where we put our text area. which should not be cut out and taken out, then it We can give you the bleed area here You have as much as you need here A lock option is coming if you use it If you unlock it, then you can unlock all four of them You can enter different values If we click here, then here See, here we are only looking at the top value. increasing while our bottom and right or The values ​​of the left are not changing but if we pull the lock back here If you click, you will see that our All the values ​​are coming out equal and if we If we increase any one value then our all the values ​​increase equally There will be some or there will be decrees as well, then see We have the option of color mode here that whatever document you are going to create what should be its color mode now color what is mode we have color mode here But there are two, one is RGB and one What happens to CM Y now? What happens to CM Y now? it means CM YK cyan magenta yellow and black it’s basically Our printing purposes are used whenever we are going to make something like this which we will take in print As if it was a visiting card or a flyer Is it a banner or a flex? is it okay or is there any such thing which we have to take for printing If you want then we can change its color mode to CM Y and RGB means red green and blue so whenever we do something like this we’re going to design something that we will not take it for printing but We will use it as a screen like that social media posts were made as if take it if we will use youtube2 because which we also have our screens, whether they are be it of mobile or computer it takes colors it takes RGB colors so we will do it in RGB color only we will design it so that we actually get the color have we put them there for us to see If I get it, okay, I’ll put it here I will just buy the RGB color and then Afterwards look at the raster effect here which is seen in PPI If pixels are per inch then how many do we need If you want to take inches per pixel, we can take it from here let’s say if we’re taking for the screen then we take 72 or if we want to take it for printing So then we would have taken 300 ppi there Okay so now let’s take medium here So we can use 150 ppi As soon as we are here we create If you click then you will see that whatever We have put up the details here Look, our document is based on theirs It will be created and come, see now Since I had selected three artboards So we got three art boards here. These are the red lines that you can see this was our bleed area because I let it bleed a little there That’s why it is outside our page it is coming okay and this is what you need to complete We call it getting an overview Work space, now we will understand further that what is it How to change your work space And what you see here right now We will also learn here that what is this how does it work okay so now since we Stop all these things from here and now you are at the top You can see it wherever you get the file It is edited, you can see all this it is what it is we call it Application bar just above the application bar The software we are using Its icon appears here, we have a home The button is visible and here we have all the menus are coming okay if we If we go towards this on the right side then we will get There is a find or search option here. and after that we will arrange it here The document option is coming and a switch Switch workspace option is coming and After that we will minimize here. Use Maximize and Close here as well you can do it after that you will see it here Our document tab is showing Whatever document we have created His type can be seen here What is the name of the document and how much percentage It is zoomed in and that is our mode Is that RGB or CM or is that yours It is visible here so what are we doing now Let’s select any one of the artboards If I zoom in, then for that we have The shortcut key used is Ctrl + 0 So look, we are on top of one of the art boards We can zoom in here now But we also understand other things like Here you see on the left side The tool bar is visible here where You can find all of our document tools here You will see it on the right side We can see all the panels here These are the panels we will use in the future How will we use each panel? We will also learn those things from everyone What do we do first, its work here Let’s change the space and see the work space what happens like let’s say your own there will be a house there is a room in the house there is a room in the room You arrange things the way you want where should we put the chair and where should we put the table Where to place the sofa Where to place the TV Where do I have to keep these things, you arrange them you do it so that those things are according to your convenience According to you, you will get the same Which Manu should be where, which one? Where should the panel be, which panel do we need Which panel do we need? We don’t need all of these You decide something about your work space As soon as you enter here you can see the work space If you click, you will see the work here A complete list of spaces is available As automation became essential The essential classic has become a painting Printing is done, web is done just for For example we click here on the web then what will your software do from the web Whatever is related, we need to use tools You will find all those tools here he will arrange it and give it to us just like this if we come here and we’re here on printing If you click here you will see Look, your options have changed The panels have been changed and Now you are getting the options that you any such thing is used to design what you want to print I would like to take it with me if you want You can even have your own custom work space can you make it, what can we do to make it You can do it simply click here Well, these are the options you get here. if you don’t find it here So for that you go to the Windows menu and Look here, you get the work space and here also you will get the same Options are now visible since I want to create a new workspace We can click on New Work Space here. we will do it and we have to submit our work Let us assume the name of the space and give it here Provides Simply Fide tuts and let’s do it here ok So this work space of ours has been created here. Now that the things which we used to live in are gone, If you want to arrange it, we can do it, accept it if we come over to the panels here So we don’t have a properties panel here. I want you to tick here, look it has been removed from here it has been removed from here We don’t even need a stroke panel here So we clicked here on stroke Look above, that panel has also been removed from here now what do we need we need here We need a brush panel of color here We need a pathfinder panel here If you want a panel, then whatever panel you need Look, you will see it here Now you can arrange these panels as you wish. You can decide as per your convenience where we are we have to keep it okay so let’s say we Here, close all these panes on here first. okay we went here we did it We closed it here, we closed this as well I closed it all so that I could Can I explain it to you in very basic terms? Here is all this, see, we have closed it here I have done it for you, now look here We have some panels open here. We can arrange these panels if we want You can go from one panel to another you can also link it, you can also add it like Now look, here’s a panel, this is a Our panel is visible here now. Inside this one panel, you will see three The different panels are visible as follows: Transform panel align panels and paths Finder panel if you need to separate these as well So what will you do, simply click here Do it with the mouse and drag it out here If you click here, you will see these panels also. We came here separated, in the same way we separated them too You can see all our panels if we have come in separate forms then the panel If we want to create groups then we simply What to do with the name of your panel You have to click on the top and move it We have to take it to some other panel As soon as you are there inside the group portion of you take it with you, look can you see it here you will find one in blue colour What does it mean that the border is visible? that whatever panel you leave here right now When you release your mouse cursor it will Your panel will be set up here. Look, it is like this, if we have to see the panel You need to attach it at the bottom like us Just click here and at the bottom If you bring it then you will see its bottom I can also see a blue line in it This means that as soon as you see it here If you release it then you can see it here It will come attached at the bottom and will be attached The advantage we get from this is that we can use it as a we can move together see this we have Attach this transform here as well Look what we have done now, look at it when If we move this too then all of our All the panels will move together if we click here Click on it and see it on Collex All of you come here and collect yourself we will go click here expand Everything expands together and comes on top of If we click on close here, we will go If you give it then all of them will be close together Even if they are closed, they will be done in some way like this So we can arrange our panels here now suppose I have this panel here If you want to keep it, look, I’ll come here I’ll keep it like this under this If you want to keep it then I will bring it here I will arrange the panels in this manner You can arrange it according to your needs, ok Suppose if I were to put this here as well So I’ll bring it here and click on it. It would have come here, let me keep it here yes i clicked here here Everything has been arranged as per your convenience from here you can place it inside the panel here But you see three lines As soon as you click here, whatever You have selected the panel from that panel Whatever options you get related to You can see it here inside three lines okay if we have here If you click on it, then see the options here we can get it if we click here So we are getting options here. In this way you can also use these options You can use it inside your panels Everything to use his options We will use it later but right now we are here some are understanding its basics that who where are these things located so that we can Now if it is easy for us to use If we come here, on the left side Look, you can find the toolbars here. Tool bars are where you can Enhance your designs using the tools Now we create these toolbars If we want we can pick them up here too We can put it here if we want. You can place it anywhere else here we can use it like this also if we close it we can By chance if it closes then it will affect us Where can I get it from? Simply contact us You have to go inside your Windows menu and Look here you can find the tool bar and Here you get two tools, the first is basic Second advance if you click on advance If you do then you will see many here I get to see the options, what am I I’ll bring it back here and I can back this up by clicking here If we arrange it here then advance what happens to us many more options are available [music] You can even have a custom toolbar if you want You can make it like what is custom made You can go here to the Windows toolbar And here is the new toolbar we are using Like click here to see us Here it is asking for the name of the new toolbar Look, I have given my name here. I have given the name Ashish and click here diya ok so you see this here you A new toolbar is now visible Anybody here now lets you see the tools I can’t find where to get the tools from now. If you click on these three dots, you will see You should have a list of all these open. The tool from this list will do the trick They are useful to you, you can pick them up and keep them for your you can put it above the tool bar, suppose we Here you have to use a pen tool, we call it a pen. Click on the tool and move it with the mouse what will you do by dragging it here You will try to place it by clicking Do it and by clicking you can bring it here place it just like this if we need more Suppose you have to come here with tools too We need to bring the rectangle tool here You choose it and you can bring it here Drag and drop it like this Here we have to bring the text tool and drag And I dropped it here, see this It’s okay if we need to bring some more tools Let’s assume we need to bring the rotate tool as well We brought it here and dragged and dropped it. I did it so what happened now see this Create your own personal custom tool It has come after doing this where we want to place it If you want to do it, you can keep it there, suppose I want to put it here I want to put it here Let me put it under it or do you want to keep it outside i can keep it there also I might want to place it somewhere else Let’s say I want to place it here. I can put this here as well so that tool You can put it wherever you want to keep it simp you can keep it in place ok If you want it from here you can also do kolappan so now like you Look, here are some tools that You will look down and there will be a small arrow It is visible in some but not even It can be seen as seen here I am not able to see it, not here So if you are able to see it where You can see the arrow here like If you right click with your mouse then You will be able to see the options inside We’ll go and see if we right click here I did it so I used the options inside it If you click here then the other things inside it There are also options, you will get to see them And you will also get to see its shortcut key. will go here you will see another arrow who is getting photos like you click here See what you can do if you want to You can be moved anywhere else Like I have kept it here, I have kept it here many times It happens that we need some tools again and again. We have to use it again and again If you have to go and click on it then for ease so we keep it nearby so we Release it from here in some way If you have taken it, look here it has come If you want, you can also turn it off from here. you can close it here at the top, this You can see the strip, this is called We are looking for Control Toolbar or Control Panel What happens in the control panel is that whatever We have selected the tool related to that You keep seeing options there let’s say we made a choice here rectangle so look here you will see this option We are getting to see it here you have chosen the selection ok so now you These options are available here We have chosen the gradient here. Look. Now you get gradient options here. Now we have chosen the zoom tool Look, you will see this option here. If yes then what is there in control panel The options keep changing whichever tool you choose whatever you do according to your work You can see the options here okay if we talk about this page here If we talk about it then look here, you will get this You are getting this art board You are getting this Later here this is what you will find in the gray area You can see this is our canvas What is in the canvas that we can see in the rest of the elements which is useful for us or we’ll use it later we can put them on our canvas Above the artboard we place things that We want to print whatever you make. Whatever you design, whatever you The same will happen in printing on top of the artboard If you look below you will see Here you can see the status bar. This is where you will get the option for zoom and rotation. whatever the rotation of your artboard is and If you have made as many art boards as you want You may need to switch to one of those artboards. If you want to do that, you can do that too by clicking here can you switch it let me know in seconds We have to go to the artboard, third art If you want to go on board, you can do that here too. you can easily do that, then see here We get selection selection means What happens is that whatever tool we choose here Whatever has been done, its name can be seen here Let’s say we clicked on zoom here. If we did this, we could see the zoom If you choose text here then see We are seeing the type here If you click on the pen here, you will see us You can see the name of the Pen Tool here. Whatever is going on, we have put it on the tool bar here We would have chosen whatever tool we chose You can see his name here If it remains then it will be something like this here can keep things organized [music] it’s ok now that you complete this of mine Can you see the interface, it’s something black Appears in color or gray You can also change this interface if you want. yes, as per your convenience you can do that What to do in Simply Edit menu has to come has to come on preferences And here you get the user interface If you click here you will see You will find brightness options here. Most of all we go here, there is light color like that you look to see something like this Then you will get a little medium here There is light, then you have medium dark here and then there is a dark one so whatever you see here Use whatever suits your eyes You can choose the one you like from here I assume here is medium dark here Let me choose and then see here There is also an option for UI, whichever you want here Click the pay tool or the menu that appears. How big do you want to scale you can decide here You can pay, see the preview here It is visible, look, it is as much as it is If you want you can make it larger Here are some of your user interface options: We are here, as soon as you click on OK If you do, look at whatever interface you had He will change and come in front of you [music] After that we will understand here Consult your data recovery whenever you want Do you do any work on your software? So many times it happens that our software Sudden shutdown or crashes If so, in that case our data will be lost. May our hours of hard work not be accomplished What do you do to prevent it from getting damaged We will use a recovery option here. you do that come here to the edit menu Go to preferences and here you will see You get the option of file handling Like if you click here then here look you might get to see some things Whenever you install new software on your PC If you install it in I will already have all this It remains set, if you want you can change it from here You can do it now from here, see our here Pay automatic save option is on from here If you turn it off, then your file it will not be saved automatically whenever you When you save it, it will be saved and its recovery will be possible Also it will not be created here meaning a backup file you will not be able to turn it on after making it here Do you always have to keep this backup, after how long If it is made then you can choose it from here like look here it is written 2 minutes After every two minutes your file will be Its recovery file is saved there. It will happen and come if you want, whichever path it is You can change that too from here If you click here then whatever you see here You will choose your folder from that folder Save the backup file of the above file. It will keep happening like this if you stay above the cloud you are working you want that your The file should be saved on the cloud as well So you can turn it on from here, so your The file is on the local system as well Also saved on cloud server Its timing will also keep happening, you can check it from here you can choose after how much time he will come Your file will be saved, do it from here, OK So the recovery file of your file is also there It will keep getting saved there so alright Friends, after understanding so much, I we keep moving our things forward And now we will understand some basic tools here. that can make our work easier look what you have here tools The bar is given, now there are many tools here These are all the tools which we will discuss one by one We will understand when we slowly design If you create then whatever is in that design our tools are going to be used or whatever The options are going to be used, we will use them there but there are some basic tools that We should already know about it So now let us understand that what is that basic What are the tools and how do they work? like just for example you You can find some basic shapes here If you see, click here, right click So look, here you will get some basic information When I get the shapes, what do I do? I’ll click on this arrow here. If I click, as soon as we click on this arrow Click here to see these basics you get a fly out of shapes now this You can customize the fly out as per your choice You can place it anywhere like I told you It was already mentioned, now look here Some basic shapes are given here as You’re given a rectangle with a rounded Given Rectangle Given Ellipse Now in what way can we make these and How can we make some basic changes in these let us first understand that thing just for For example, we take a rectangle here. and we took it and look here in this way tried to draw a rectangle shape Whenever you draw a shape, you Look at my bottom right side, you will see that The width and height of the shape can be seen it goes okay its just present what is the size of time and as soon as we When we release this, you will see that here There are some anchor points available and here But you can see something like a round circle as well Now I can see what these things would be and how to use them which you Look here, this one is in square shape you can see these shapes speak handles with the help of these handles we are within our shape, in its size we can make changes like we have assumed If we hold this handle then we can move it to the right We can increase or decrease it on the side just like this You can also increase or decrease it downwards You can also find a left mill on the top side but the ones in the corners If you hold on to these corner handles So you can corner your shape as you like the bottom there or the both right and left can be increased or decreased like if we grabbed the top so then we grabbed the top which is the top portion and which is on our left We have reduced both of these portions from here or you can increase it or decrease it It’s alright if you need to rotate your shape If you want to do this, you can move your mouse cursor As soon as you bring it a little above this handle If yes, you will find rotation handles here. and with the help of this you can shape your you can rotate it easily, what do you need to do You simply have to click here and After clicking you will see this Whatever angle you want to rotate, you also have to specify the angle It is coming in writing and displaying it there You can rotate it at that angle yes if you rotate it at 45° If you want to move then press the shift button on the keyboard You can press the as soon as you click on your keyboard If you press the shift button then the shape you have It starts rotating at 45° above and if you don’t press the shift key So you can use it free handed at any angle. you can rotate it up alright now here Look, you will find a round shape in the middle. The circle is visible, its work is Change the corners of our shape Now as soon as we click here You will notice that your rounded corners which are the corners of your rectangle they are starting to get rounded here See, the more we will see this We will bring our corners inside as many as we can it will come more rounded and at the And look here you will see a red color show what does red do now They cannot be more rounded than this Our corner as soon as you select it with your mouse If you are released from jail then see this The rectal shape was something like this It will come back readymade, okay I will bring it back alright now i will correct it with this much after all this isn’t the only way is to draw our rectangle shape If you want, you can place the rectangle shape here you have selected it so if you want to make your art A single click anywhere on the board Even if you do it, you will have it in this way The popup opens and here you Enter the width and height of your rectangle You can, just for example we have said here I gave it 5/5 and we did it, ok so see this for you A rectangle of 5/5 size comes out near you. It’s alright, I’ll delete it from here. Now let me give you some idea of ​​the corners here. where we talked about rounding By clicking this button we have clicked here The corner was rounded but if someone A situation comes where we have to We don’t have to round the corners together just need to round a corner or we We just need to round two corners how to do it what will you do for that It falls here, click on it and select it you have to do it as soon as you see this here If you click on the point, you will see your picture here Look here, its selection will be made and it will come And now if you drag it inwards If you do it then you will see that the only thing which is yours The shape is just that which is a corner Your round is coming here like this If you want then we clicked here and We pressed the shift button and clicked here as well. if you have done it then what do we have now Now if the points have been selected If we drag this then you can see it here Both these points can be rounded off only. You can use the remaining two points you have I won’t have any effect on them I will delete it like this and it will be like this Look here you can find one What is the Rounded Rectangle Tool? the corners you already have they remain rounded you see this something here This way you get the rest All properties are available same to same To make the size bigger or smaller you can do the same If you will use its rounded And even if you want to increase or decrease you can do it from here rest you can if you here a single and If you click then you will get rounded A popup of the rectangle will also open here. it will come there you can see its width The height and the radius of the corner Tell me here how much you want to pay you can also use a shortcut method what happens is that I will do it first delete like this and after deleting I looked it up again here I drew it like this now after drawing it Look, I just released my mouse cursor. I didn’t release my mouse cursor it is not there and we have suppressed it which is ours The up and down keys on the keyboard I used it first I pressed up As soon as we press the up key here You will see that your corners are more The rounds will start taking place and as soon as If we press the down key then your corners their corner radius is less If it starts to happen then it will be something like this You can also round your corners here You can do whatever you feel like We need to round up, you can do that alright look like this you would have got it here Ellipse Tool You can also create Ellipse Tool It could be something like this, see now what have I done I sifili only my Select the mouse cursor and click on a Lips are made but what do you think that it forms a perfect circle If you look at it, you might feel that it’s a perfect circle but if you look at this If you look at the values ​​of the shape You will see here this value and this The value is not equal, which means that our It is a circle, it is not a perfect circle, then there are many It often happens that we find a perfect circle If we wanted it, we would not have done it this way how can we make it or we Input the exact values ​​here copy the value in both then our it will form a shape or else we can use it what do i do with my shift button yes, I will delete it from here And after deleting it I will post it here I delete it from sorry and after deleting it I we’ve pressed our shift button now if we If you draw a shape here then you will see that In the center of your shape you will find a sorry me I will redo it the way we draw it You will see your shape by holding down shift You can see a line in the center of the there is one do you see two lines okay the red line is towards the middle this red The line is showing you that right now you are You are making a circle, a perfect circle your draw is happening okay if it’s like this Suppose I would leave Schiff’s So now you will see what I have to say here you have to apply it when you absolutely have to do this If you see a line then it means that you This is a perfect circle you are drawing. it’s alright in the same rectangle as well if you would have noticed when I I chose a rectangle, if I shift then you will see that our It’s a rectangle, look it’s perfectly square It will come into shape where you will find a The diagonal line is also visible The diagonal line is displaying to you that The shape you are drawing now is a The perfect square shape is yours to draw Okay, if you want, you can see it here You are also given a polygon that you can choose So we can draw polygons in this way ho only when drawing a polygon if you Subtracting the number of sides it has If you want to increase then you should do that which is your up and down You can increase or decrease it as you like press the up key here So whatever your number of corners is, will increase and as soon as you press the down key If you press it, then your number of corners will be Those will be your decrees okay minimum you you can make it on top of the triangle so that your A triangle will be formed here it’s fine with polygonal, same as yours Look, a star shape is also given here. Through which you can become a star if you If you click here on the star then See, this is how you can become a star here you can use the same up and down keys If you do it then the number of the star which is off There are corners, will they increase or decrease Now whenever you draw a shape So you must have noticed one thing in every shape Here you can see some anchor points How can we get these anchor points now? Let’s work from these anchor points To do this you have to use Direct Selection Tool that you get goes to the top of your toolbar Above the position whose shortcut key is A Look for this button whenever you install any software I only learn about illustrator I am not going to review every single software I am talking to you, if you want to keep it long term You have to carry it and handle it professionally If you want to work on it then you need to use shortcut keys You must remember that the software is fine there is a shortcut what happens if you do this The first thing you get is the confidence that you better on that software you can hold the command as well if you If you go for an interview somewhere then there also You may be asked for a shortcut so that Your skill can be measured by How much work do you know or not So, remember the shortcut thing. It will have many benefits for you So here your direct section tool its shortcut key is a button, if you want So by pressing the A button on your keyboard If you can choose it then see it as soon as We have chosen the Direct Selection Tool here. then you will see that here we have By highlighting the anchor points here I am coming as well, I will see you here These are the points of the rounded corners They are also coming to you highlighted here it’s obvious that if you pay on rounded If you click then your corners will appear Rounds will start happening at your place ok if you click on any one All of them will happen but if you By selecting any one point in particular you’ll round it up like if I were here Let me click and now if I round this If I do, only one corner is our round If it will happen then you can do it this way or Then if you see this anchor point so since right now my diak is here section tool is selected so now if I do this If I click on the anchor point, you will see That this was your anchor point, select it It has come now what can we do with it What can we do now with its help can I change the position of this anchor point I can change something, look at it this way Whenever you change the position of your anchor point If you make changes then those changes will happen in your shape When this starts happening, then look, we should change our shape into this keep me here is the anchor point or this one is the anchor point to me If you want to keep it here or keep it here then do this method what can we do with our shape We can make changes in it whenever you want Clicking on a single anchor point So look, you have an anchor point here. You will get some options related to it starts like you can see here You are getting the option of a handle that if you have chosen it like you are here When you click, whatever your anchor point is its corners here are smooth You start getting corners or rounded corners It will happen as soon as we see here Clicked and saw our corners You see, it starts getting rounded here. I have gone as well as you can see here two Handles are also available with the help of handles We can change the shape of our anchor points. Let me change it a little bit here Let me zoom in okay and now look at it With the help of this anchor point, we Look, what we see in this anchor point of yours We can control its handle from here. With the help of its handle we can change its shape You can control it here with any handle We will increase or decrease that shape of ours it will change just like this if I look at this If I increase or decrease the handle from here then See, this shape of ours will change, right? This is how we use this handle here we can also use this The handle is used mostly Or mostly we will learn this using pen tool So next when we learn the pen tool We also mention this handle in great detail there. I will try to learn and explain it to you Now how does this handle work? but since we are just starting to learn a bit about the basics We are moving ahead with basic understanding so that whatever we want in the future Create designs for us there I don’t want any problems or whatever I make So that you can understand the thing a little earlier We’ve got the basics covered here alright if I hit control 0 here then what will happen with control 0 that whatever Our selected page is our entire page. If it opens and comes here then it will look something like this Look at the way, we are here on top of it as well We can work now, this is our talk Basic Shapes of Basic Shapes Now whenever we draw any basic shape if we make it then it is obvious that we with him we get two atrils whether we Make any shape, put two arils in it As soon as you get your first Atrica Fill Color And the second treebo is its outline color Or look at the stroke color, try to change it for what we do is that whenever you You draw a shape and you select it If yes, then you can see both of those things here. You can get it here as well Color options are available with it Also if you come over here to its a panel Come to the color panel and look here as well You get color options here So you can go from any one of the three places. you can go and work on your colour Just for example I work from here So if I take it, then like we clicked here If you do this then you will see the fill color here You get a lot of options in these If you click on any one of these options So look at your fill color there, it’s like that it will be applied if I click on this here Let me click and see our fill color is like this will go just next to it, see you here The stroke color is available on the stroke It means outline here If we get the outline color then from here we They also want color inside their outline we can put it here suppose we have put it here If you buy a blue color then see what your The outline is here in blue And just next to it, look at you here But you get stroke numbers that your What should be the weight of the stroke What does weight mean, what is its thickness The more you wait for it, the better it should be increase the thickness of your outline or whatever its thickness is it remains the same It will keep increasing, we will take it from here If we take 9 points then look at our The thickness is quite high here It is alright so something like this here Whatever shapes we are in, I am only in this I am not talking about this star, I am also talking about the shape, if you If you want to fill it then you can fill it in that manner you can, or if you want to do that No, we don’t need a fill or an outline If they don’t want it then how will they do it for that You also come here in the same position and Look here, you get the option of nun as soon as you click on none here So whatever is your fill color here or whatever The outline color gets removed from there This is the non-color option which you will get every time You will find a place if you go here Look, here also you have non color option You get the option of non-color here too you get it look this but if you from here are you working if you are working from here or if you are working from here then you have to get a thing has to be noticed now if you look a little Look carefully here and this blue The portion is the box behind you is coming on top of it, coming on top of it what does it mean that right now if you do any of this You will also make changes, even if they are related to colour If yes then all those changes will be made to your outline will be above will not be above Phil because Phil, now look at yours pressed down. If it is there then we need to activate it We’ll have to click on that fee or Then you look here, there is a switch button You can use this as well or the shortcut key As soon as you press X on the keyboard, Even if you press the button, you will see the colors they get switched between each other, see Now look, if I pressed x here, you will What happened was that the fill color was on the top It has come now, what does it mean to come up that we will not make any changes in it right now look we’ll put some color in it or if We will make some other changes in it, color Will remove or apply gradient? Even if we do that, we will do it all in our film I assume it will apply, double click here If I do it, you will see that you have color here The panel will open and we will start from here If you take any one of your colors then see You will get the feel here just like this if Let me click on outline and see outline is activated now if I go here I will double click on it so now what we have here You will get the color for the outline Look, here no one is ours You can choose the outline color from here. and if you like colors then you can If you want to switch then you can simply click here Click and see what your colors will be are they switched here or else Even if you press the X button on your keyboard Your colors would also switch. okay so something like this here we I can also apply colors to it I will do it here, click on delete and delete After that I want to talk about another shape I would love for you to come down here Just go down to our basic shape So look, you will find some tools here too. we go to one of which is shape The shortcut key for the shell tool and shaper tool is shift4 look we got a straight line Or if we had a if we made the box then we got a perfect If you got a square shape then what to do with the shaper tool that we make a rough drawing and The software helps us to get it in a perfect shape He makes it and gives it to me but that is not all the work This means that we can do a lot more work You can, just for example, I am doing it right now Let me delete them and I will go back from here Let me take the shaper tool from here and we’ll look at it here Draw a triangle in this way I did it and came back in the same way we made another corner here the draw was made and the third draw was made Did you come prepared or did we put this thing here If you draw a rectangle this way then Look, this too has come ready, now whenever we If you make shapes like this then you can create different shapes you can draw however you want You can also merge shapes with each other can i do it a little bit First let me zoom it in and after zooming What you have to do next is you have to make a zigzag You have to create a line, see yours here Right now the tool is selected here and now I Here if a zigzag line is drawn in this manner Let me create it here, look at this, something like this then what will your software do with those It will join all the shapes together fine after joining what is that you are in it You can fill the color, go here Get any color of your choice here And you can fill color in it but that’s not all if you think that no I need changes in a particular shape If you want to do it then you can do that also with this tool With the help of this, if you come across this tool then Whatever shapes you create with the help of this tool like you just make a single click here Look, first of all, what is a single click? You will have the option of fill color here. We get what we felt here You will get the fill color option here as well. It is available but if you give it here you click, double click I’m here Look what I do here I click OK then double click what happened that the shape we had It will come after being selected and the shape What does being selected mean that now we can Make separate changes to a particular shape we could say for example we went here We have filled the color here, okay? We wanted to make the shape bigger or smaller, so we Using this method, you can make the shape bigger or smaller ok or should i triangle it If we don’t want it then we can put its shape here You can also convert it into any other shape See, if we follow this method then we can do this work also. We can do this here with the shaper tool So many good things can be done you can do it very easily whenever When you select a tool, look at the tool What happens to you after you are selected? There are some options available at the top such as As I have already discussed with you It is told here, see you one There is also an option for document setup if you click here then this You got all the options when you I had created a new document there, right? But you used to get options but if you want You can make changes here even after creating it Like if you need to change units so you can do that here or else if You have to make some changes in the bleed like that if you look now I’m going to put this here Let me cancel it, I’ll zoom it in a little bit If I take it out, you will see me bleeding here If you can see it in this bleed If you want to make any changes then you can do that from here. Can you agree that I have to bleed here is 0.1 and ok so look at your bleed It was converted to 0.1 cm and came This is the document setup option You get it here as well Also if you go inside the file menu You can also see the document setup here. You get the option of shortcut key I have to remember the control and write it down somewhere You have to create notes of all the shortcuts and you must remember that, okay so If I click here, look here The same is true for your document setup he was there and will come in the open, okay Later, look at the edit art board here as well. Option is coming regarding art board Now if we read further then there we will Will cover up the option that finally edit art How does the board option work properly So this is something of ours, first of all here it is basic We have talked about shapes, now if we talk about here is our zooming option, look at the zooming option This point is a very important point This happens whenever we work on any document If you do it, it is obvious that you should do it again and again you have to zoom or make it smaller This is also a technique, you can use this technique You can also use it and quite a lot You can bring good things in it like that if we talk about zoom then you see The zoom tool is available here, which The shortcut key is z button, you can simply type If you click here then you will see your zoom The tool gets selected here. Now let’s talk about zooming in Illustrator. There are also ways if we click here Click and drag slightly So look, you will get to see some zoom like this will go okay if I do this from right to left If I bring it then you can see the zoom out and if taken from left to right If I go then you will be able to see the zoom in If it goes like this we can zoom in as well We can zoom out or if we zoom in here Just single click on it and hold it down So what will happen if that much portion is zoomed there It will keep happening but it is possible that in your Here I am zooming out from left to right or who is left to right to left this the way I’m zooming in on you What is the reason if it is not working that is if your system has graphic card If you do not install this then this animated zoom app will help you in giving you the best experience. this is what we call animated zoom this won’t work in your case now if it is not working and if you have Even if the card is inserted, how can we use it You can activate it, for that you need to go to is inside the edit menu and here you will find The Preferences option goes to Preferences All our settings inside the option of There are options for our software, right? We have all those options here and Out of all these options, which one we have to click it is there we have to click here As we speak, here on performance You will see your performance by clicking on it Some options are available here Now you will go here and see this option what is visible what is visible Animated zoom already ticked That’s why our zoom work happened there if we remove this zoom it is doing this and let’s do it ok and now I’m going to leave from here I press the z button on my keyboard so that Our zoom will be activated and you will See our left to right here Nothing will zoom in or out now Here’s a selection of what’s happening Now this selection is coming in full swing The more we make, the bigger our portion should be It will be done in some way now, right? If we press the Alt button here then Then it will just start to reverse Now if we click here, look at Our design is zoomed out here If it starts happening then what will happen with the odd button What happens is that we reverse our function We can zoom in if we press the all button if we don’t press then we can zoom in here We can do this and if we press the Alt button we can zoom out from here okay this is You can use the zoom in and zoom out feature If you want, click here above your status bar Come on, you can get it here as well, right? Now look at what we have here at 300 Here we zoom in at above 800. Look, our current design is at 800 But it will zoom out and appear in this way You can also zoom in or out from here. I’m back here I go to preferences above edit I go to perform from here and I Let me turn on animated zoom here. Now since I look here at the graphics card I’m using it so I have it The option is coming open if you have If the graphic card is not installed then this option It will come to you deactivated. you can’t tick okay so now that’s it After the work is done we will do some more things let’s talk about like what we just did We have talked about it, we have learnt the shape how to fill color in it how to outline can apply it how can i apply fill color We learned a little about Zoom okay and here we have some selection Now let’s learn about the techniques What about the selection technique, such as One thing is normal that we clicked here If we do it then ours will get selected or Then we clicked on the deck section here if we do it then what happens to anyone You can select a particular shape it is, look at it this way or we have written it here If you clicked, in this way we can click on any one You can select a single shape And if you right click here You will see group selection here Now you also get the option of group What selection works Let’s delete it and what have we done here did a shape made a shape something like this And we created another one and here we have two more shapes Okay now why did I make so many shapes? Now you can understand the reason behind this I will go and select two of these shapes I pressed both the shift keys Control has been selected, what have you done? These two have become groups See now after grouping this I selected it and I I have selected this as well, now I have taken control I pressed yes again, now what happened again The groups are done, I selected this too then control ji after that we also I selected it, then pressed control, now what happened? In the end all of them come together in groups. went but there was a difference in having all these groups There is a small point that I have made to all of these I haven’t grouped them together but I I grouped the first two then I grouped the third then I took the fourth one then I I took the fifth one this way I made multiples times I have grouped so if we Here, go to the group section and we click here a single click what will you see that we select a particular object We can ungroup inside the group We don’t have to do any You can select the object and Assume you can make any changes above We need to move it here, so we will move it We can move it if we press the control key If you give it a try, we have handles here. because of which we know what we are We can make small and big, we can also make small and big you can also rotate it so if If we want to display the handle then you Simply press the Control button from your keyboard have to press Now there’s one more thing, if we double click here do i clicked here twice then you Look what you saw in two clicks that one two three we have three objects selected have these two come why haven’t they come because what we did was we did it first We made two, then we selected the third one now if we click here again so see you have the number of times I click I will do it as many times as I want There was that group, you can see the group will get it okay so it’s very simple If you click here, you will see an object It will be selected and click twice Both came, make three, the third one also came, four Do it, the fourth one has also come, do it, five, do it, the fifth one also it came in the sequence in which you grouped it you must have done that in that sequence, see yours Groups will start coming here and the group After doing this you can make changes on it. It can be of any size or colour yes or anyone else Atril win tool is also called magic win tool what do we do for what does Let’s delete this and do it with some new one Let us come to the example, for that we come Let’s go to our art board number three Look up, I put a design here It is like an elephant, I want to make it bigger If I do it then use this method to win Magic What does the tool do? What does Magic Win do? which is of the same appearance there are atrbeeks, their job is to choose them Let’s say we clicked on the Magic Bond and we clicked on this color here like click on this color here If you do this then wherever this color has been used Choose that color everywhere in your design. He will do it now see what we have chosen here selection tool and if we move it from here If you do this then see, you can see it right yes look at this you only need that colour which was He has been selected and has come here very soon The best thing is when you do something like this assume that you are working on a design If we wanted to change its color then We don’t have to choose each object one by one. Simply go here to win your magic I take the tool and after taking it I now Here we can choose any color we want. and that color is everywhere at the same time The change will come only on the color not only this it is on top of the outline as well It works on other properties as well How does value work on top of the outline? Here, let us delete it from here and We made a rectangle here. We made lips here We made a star here, made a star, okay what did i do after making all the I selected it and above all I what stroke did you do by applying four point diya what is the stroke of all now The stroke of selected or all It’s common but I didn’t do that. Copied two more objects from this If you want to copy with the help of Alt button If there is any object then you can press the Alt key you can use it ok just copied it and The outline that I had above is I changed it, what did I do I have scored two points, okay, now we are coming Over our magic wind and here we are what do you do, click on this option As soon as we double click on this option above If you do then you will have it here The proper window will open and now Inside the window, you can tell it that How do we have to use it we want to use it for fill do we need this for stroke color Do we need to use it or stroke it Now it is time to use it for weight since The example that I have taken here is I took a stroke to explain it to you For weight, here we are going to consider stroke weight. We will choose and remove the fill color from here. will give okay and as soon as we click here If you do it then you will see that this All four objects are those which stroke yes he has come after getting selected but These are the two objects below, which These are shapes, they did not come selected why because what did he do here which was the same atril, means which was the same for everyone He had a point only from those attributes The object is selected now here His stroke was different so this If we wanted, we would not have come after getting selected You could have done these on the basis of colour also. Look, here we have the colors of both of them I changed that, I went here and I changed it I have given some color here now We chose stroke color and stroke weight we removed the h and now if we put If you click on it then you will be able to see only this Two have been selected because only The stroke color in both of these is It is same in all the other colors but stroke is different If you want in this way then here By applying different things You have to do it for Phil, for the stroke I have to do it for weight I have to do it for opacity what does opacity mean Transparency is fine, we will understand this further about the thing so if that is to be done then that You can also do something from here, alright We can do so much work from here with its help there is one last one look here leso here There is also a tool called Lasso Tool. What does it do? Let me undo this here. Undo it. Let me take this here and go to undo it After that look we have this shape again It will come now why did I bring this shape because this shape is quite it has to be complicated okay so now if If we do it with the selection tool then we will not okay but if we go from here to the Choose the tool and then we will do it If we draw a path in this way, I have written path here It was made in this way, now what will it do? Your shapes which are coming inside this path he will select only those who are there will not select it ok so see this So in this way we can also use the Lasso tool here What does the Lasso tool do? Whatever our shape is covered inside the path it selects only that which is being Pretty much whatever our complexion is They are quite useful that we can use them for any Make a selection of particular shapes here Can so this is how we are here We have learned about the basics that’s how we have to give color, right How to create a shape or how to make a selection How to use the zoom tool It is ok to use it so friends Let’s go a little further and share some of our Now we will learn to create designs The first thing we’re going to make is You are going to create the design of this ribbon How do we create this ribbon design? You can do this inside your software whatever you need to create the ribbon design tools or whatever options we have to cover up We will cover that along with this video We will continue doing this so that when we further use these tools Use it and then you will understand it So don’t skip the video at all. If you want to do it, okay create this design The options we will cover in doing this are: Our options are the rectangle tool which we How to Add Your Anchor Points How are we doing direct selection? How will we use the tool Arrange a How will we use the option Color Here’s how we’ll use the Pickle tool We will use the Pay Group command to paste We will use these fronts to reflect We are going to use the option here we are using vape arc here We will learn about the rotate command here we will learn to use it and at the same time here Also use Gauss Blur and its modes We will learn here and then we will How to lock your designs We also have them here within this design Allright is going to cover so many options We are going to cover this one single design so don’t skip the video at all If you don’t do this then let’s move ahead with our design towards but before making the design I I would like to ask you a question, your question is By using which of these options You can switch the fill and stroke colors between yourself. You all can do it too, please give me your answer Whoever has the correct answer, post it in the comment section I’ll give it a hard time, I hope you will Everybody please answer this because I am going to A while ago I explained to you this was how we can make this work let’s go As we move towards our design, this is what we see You’re done at the top and bottom of your artboard First, we need to make the ribbon it will be rectangle so we will go to our Click on the Rectangle tool and then click here We can draw a rectangle like this okay because look here I have It may be coming with color already filled it is that something like this comes into you If the color doesn’t get filled then what will you do You will simply go to your place and get the colour done above the panel or above the switches and of these You can use any option to get this You have to fill any color, you have to fill red If you want to fill in blue, you can take the color here

    come on alright so I will put red color here If I feel it then see this we have The color has been filled here and it has come here Later I will put its beans down here I’ll make a copy, what will we do about it Here we will press the alt button and Using the shift key, we can move it down here. We have created another copy of this We’ll make it a little bit smaller After doing this I will zoom it a little. I will do it and now we have an anchor here If we need a point then how can we find the anchor point You have to go to the pen tool Right click on the top and you will see it here You can find the Add Anchor Point tool on You can simply click on it and you will Wherever you find the anchor on whichever path I have to add a point now what is the path which You can see the line, this is the path Our place is where you will find an anchor on the path If you want to add a point, you can simply do that Just click once and see what we have The anchor point has been added here, now this anchor Which tool do you use to work on points? we use it here You can use the Direct Selection Tool Click here and you can use it to You can choose the anchor point and After that you can move it to any place you want you can move it there ok What do we do with it after moving it? let us quietly bring it here and do something place it this way okay look here we have it here I have placed the ribbon, if you need a little If it looks thin then it doesn’t matter, we will Let’s widen it a bit, some ways like this and let’s make it a little bit bigger alright aa it looks perfect to me now Your object is coming upwards that we don’t need this If we want the object to be pointing downwards then how can we do it will bring it and select this object go to the menu and look here You get the option to arrange, what is arrange arranges two or more At what position should we place the objects who has to be put on top and who has to be put down We have to keep it to perform this We use the option now see We have a lot of options here it is like bringing us to the front Bringing it to the top forward means one Bring the step up send backward means one Taking a step back or send to back means place it at the bottom so what do we do now If we do this, we will pay it backwards, then this Look what happened to our object below. And we came to this place here Well, here we are using solid color. You can use it here if you want You can also use gradients instead what will we do for that you can tell me here click on gradient okay and here Look at this also you get gradient Panel If you don’t see the panel here If it is, then it doesn’t matter, you can go to Windows and Look here you get the gradient You can activate it from here also use the shortcut key control f9 you can and as soon as you click here You will see the gradient that you have Now what would be the gradient that would be applied Gradient is a combination of two or more colors Whatever we mix, that pattern This is what is formed is called our gradient now If you want to change the colors in these Like look here, black is coming here pe white is coming gradient is there if If you want to change this then what will you do? Click on the point and here you double click as soon as you double click here You will see the colors here The panel will open up and you will see If you want you can choose any color you want here you can get that color here or else If you want you can get the color from here also. Look what we did here is a little We have used red color here. We’ll bring it here in the middle, red okay the color is okay and we have a point here and if we click then what will happen that we one more node here and it will come together ok we click on this node again and We go over to the colors here and we’re going to lighten up. So let’s make it dark here, okay? so right now it looks perfect The color you are seeing here is the same color as ours If you want it on this side too then what can you do for it You can choose it by using the color picker here. There is an option, you choose here and you what should I do, bring it here and click or click here ok as you like You will see this color of yours by clicking here it will also get pasted and come alright now this is it If you want color here too then it’s okay Look here, we have given you colored Eye dropper you simply click on it and If you click here then what happens The color which you applied here with eye dropper With the help of the same colors can be applied here as well I will come back after finishing it, now there is so much work After all this work we are done We have a little more work to do here Can you take the pen tool here? We chose the Pen Tool and after selecting the Pen Tool Later here we’re going to do a shape If we draw then how will we draw the shape I clicked here, we clicked here I did a click here, we clicked here And with one click, we have done it here in this manner By doing this we created a shape here, now in this We have to fill the shape with some dark color. so what will we do, we will go here and Choose a little dark color here like this we will do allright and the object will go back Under Arrange and Send Backward in the menu Look, this has come to our back Let’s select them both with Control G we will control the group from which it is called group Shortcuts to Ctrl+Shift happens to ungroup us if You don’t need to use group and ungroup shortcut keys If you want to do it through option then it doesn’t matter You come here to the Object menu and here also Look, you can see the group and ungroup here. you get the option, okay now you have to do it what is it, have to select it old key what would you do with it with the help of a here You can copy what we have copied there is another way what do you do Select this and you will simply get your tool Come to the bar and click the reflect tool here You have to choose as you are here You will choose reflect tool, see yours here You will get the Pay Reflect tool You have to double click here as soon as you If you double click here, you will see This panel will open and now you will see how If we want to reflect on this then we have done it here We have chosen vertical, okay, and here we have but what did you do to this, click on copy given as soon as you copy it here So what will happen, see a copy of it here It will be ready and now you can simply Select it from here and do it in this way You can move here, see our A ribbon design has already been made It is a very simple design, we have presented it here Let’s keep it on top and copy it down Do ok same design and now we have this The shape which has the center, we have made it Selected it and now we go here Inside the Effects menu here we find goes to the warp option okay and here You get the option of Arc as soon as If you click on the arc here, you will see You can find a lot of styles here okay so here we have looked at the first Style is our choice, arc and how much bend You can choose what you want to do from here The higher the value input here, the The more you do whatever shape you have, the more If you come here after getting a band then here we will give you 15 rupees per buck okay so look at this We got something like this shape Is it right, you could have kept another one here above oh sorry let me shift it up a bit Let me take it and we will look at the ribbon on top here Let’s make another copy, okay, let’s go again. The one in the center is our shape Select it and go to Effects go on the warp go on the arc and now The value we will input here is We’ll input minus 15 if we add minus here If we do it, what will happen from the bottom side it will start coming okay it will Look here, I gave you -1 If you do ok then see where you got this design it’s coming from it’s coming from down below alright now what are we going to do with this a little bit Let’s select this, move it a little bit outside and brings it towards the outside After bringing it, we will put it here a little Let’s rotate it in some way like this Just like this we can delete this shape. let’s give the same we selected it and Here we have doubled up the reflect I clicked and copied it here. okay so look here make a copy of this It has come and we have seen the shape here I brought it and pasted it, okay, this thing is for me We should have done it here as well which we will do a little bit If we forgot then what can we do here Let’s select it a little bit here Let’s rotate it and we have placed it here I locked it and pasted it, okay and this Let us delete this also here. I double clicked on Reflect and then copied it. and now what have we done, we have copied it I brought it here and placed it here ok look at this We have three ribbons created here. have arrived So now after creating so much I want to get a little more creative with this How will I do that with this center We have selected the object here I made a copy of it at the bottom, click All Right Copy After doing that we go to our Where do we find gradient over gradient? We will find you, we clicked here over the gradient and look here at our There are also some pre-made gradients If they are there you can use them too if you want you can do it now what did i do here I have chosen black and white, now I have chosen black After choosing and white we What did you do here in one center and another took the gradient and both the sides These are gradients, we have created them by clicking here We made it white by double clicking on it. And what happened to us in the center, a little Grey colour has come into place, alright Now what did we do with this, we went into effects and after going into effect, what it does first I will remove the outline that is there. Let me give it to you so I selected it Removed the outline and here we go inside our effects menu and here we have You get the option of blur and motion blur So whatever you want us to do here How to apply blur, we can see it here Let’s see it according to our own way, it’s ok It shouldn’t be too much, not too little there shouldn’t be any then ok so look at our This blur has been applied here What Blur does is blur it a little bit. Gives any of our shapes or images We can also apply the above to any You can apply this to the object Look, we have a gradient here. It has come after applying, now this much has happened Later now we have to change its mode which It has a color mode, right? We don’t know its color If you want to change the mode then click on the color mode for that we will have to come for our appearance panel When you click on the Appearance panel above you will do it if you don’t see it here So you can go through the window and get yours We can go to the appearance panel and here we can see its You can change the mode, we have many If there are color modes, you can apply them here If you can then we will go to our opacity up because my gose is blurring me We want to apply opacity on it, so here we have Clicked on opacity and look here We have given modes we simply What will you do, click on dark mode here we will give it to you okay look at this here The mode has been applied in this way we have a mode coming up here and this We will keep it a little higher and then a little lower and We’ll go to our Object menu and select Arrange inside and send backward what will happen with that Look at this, a little bit towards the back you will feel lighter You will get to see a glow if you want it You can apply the same glow to these objects as well I can copy them here as well took it downwards ok you need the same color If you want to apply, select it here You click on the eye dropper and you will see this Click on the shape and see the item from there You will get it after applying here Now you can apply blur to anyone except To do this, go to effects, go to blur, then go to gauss Blur then okay okay see apply here it’s done and you get the simple object arrange send to back and we will put it here Wherever we want to place it, a little bit While doing this you will do the same thing here also You have to apply, repeat the same thing First select this eye dropper take a look click here see here This shape has come into being which is yours The gradient was applied and has arrived And now you just have to apply blur here. okay have to do it and arrange it a little We have to give this thing to you by making it here it’s alright, you should have opened it a little and look here we have all three ribbons, We have come ready, make it a little bigger let’s take this and so that it can be seen clearly and By placing it in the center of the page and a little If we enlarge it then look at these All three ribbons have come here very close I have made a very simple design in an easy way I have shown you the cover up first so that you easy to understand and within this design Whatever tools we’ve covered, whatever we’ve covered I have covered the options, I think you are clear If you have any doubt in your mind, If any question remains then for that You give me what is mine egramswaraj.gov.in I keep posting it you will find things there too okay So this is how we design this ribbon I hope that we can create You might like this design if you have you understood anything yet and you I got some information from my video So please like the video and subscribe the channel Subscribe who have already If you haven’t subscribed, move on On to our next design which is our 3D chocolate design is quite interesting There is a lot of new design in it as well There is something to learn so let’s move on So friends on to your next day design Move on to your next design The next design we are going to make is We will make this 3d chocolate design look You are very interesting and very attractive The design looks very simple the design is and I would like to tell you very I will teach you this thing in interesting I am going to move forward with this On the design side, how is this design Before I learn it, I will tell you my I would like to ask a second question Question number two is which of these are you A Perfect Choice Using Option You can draw square shapes very easily I have asked you a simple question first It has also been told that when we find our shape there I was in class 2 and I told you this there The thing was explained, so everyone gave their answer Do comment me in the comment section Whenever you give your answer then there Please mention the question number so that I can So that we can know that you have answered this which question is that for ok Let’s start this design of ours The options we are going to cover in design Let me tell you that in this design we We will cover up the split into grid About Options About Arrange Options What is Pen Tool in 3D & Material We will learn the basic functionality here Also what is Expanse Appearance And we will also learn how it works We are going to move forward with our design So friends, we have come to our side above the artboard and create this design To do this we will first need to our rectangle so we’ll go to our over the rectangle tool and go here Draw a rectangle like this okay let’s draw this rectangle After that I will give its size here So I’ll give this one a size of 550 pixels by about 240 pixels okay so look we have one here It has come in square shape, okay Here’s a look at some of the colors I’ve already tried I have chosen it carefully so that it takes less time for you Now if I have to pick up a color to explain it After doing this you have to fill it here then I told you about a tool for that. Eye dropper tool The same eye dropper tool we If you use it here then we will take ours To get the eye dropper we simply click here we will do it on our color okay now we what will you do another copy of this here what can we do to copy If you want you can do control c control v yes but if we have to do it with the mouse then We will press the alt button and type something like this drag and drop method here So look what will be our object? Now it will get copied and come inside me I want to fill this color so I will fill this as well Let me feel it, okay, that’s enough now. Now in the chocolate design you saw that There is a lot of chocolate inside that chocolate design all his bytes were coming in the form of If we want to create those bytes then how? We will see there are two ways of doing this, either So you choose the rectangle tool from here. Make a perfect square shape from here okay and the way you make it is After that you can keep it here Give it and copy it using the Alt key And with Control D we can multiple it here. We make copies but what happened in this case that look we are giving you our proper here Please see here I can’t find the size look here it’s going out okay so we How many by how many shapes do we need here We cannot decide that by this method So what do we do for him? I will first delete it from here. For that we will use split into what does it do with the grid option What Split Into Grid does is it do a or objects that have more than one Divides into multiple rows and columns At the same time, if we want, whatever is inside it Our columns are prepared and published every day. which come in the form of our shapes We come as squires to them too You can decide the height and width and The cutter space between them is also We can decide there how to do it well let us first understand the You have to apply that thing on the object We have to choose it first and then After we’re done we’ll go to our object menu Inside here you get the path option and look inside it you get This Split Into Grid you can click on it as soon as you see it here click here you will see you have one here A popup window will open, click here the first thing we are being asked is to cry and the second is what is in the column row that you How many numbers of roses you need you can tell here You can decide what we do here First activate the preview option from here so that whatever work we do If we keep getting the preview then we will post it here Whatever number is in the row, put three more We enter the number of the column Seven is fine, from here if you want, you can see their height You can take the end width differently but since I don’t want the proper square I like the shape Now after that see, it comes here What is a gutter gutter space that you need to place columns in the middle of each square sheep in the middle of how much space do you need how much space do you need Here we call it gutter space You can give as much as you want here Here look at the gutter space in this way You can give it like I have seen here If I have taken five pixels then I am five pixels only I will take it here also so that both are equal Let us get the same space here on this side Let’s do that, okay, and look, we have a In one go we get a perfect square shape The grid has been assembled, what will we do now? Select them all and press Control G let’s group it with okay let’s group it I’ll make it a little smaller after that I am a little light, not much, a little small I will do it now, what do I have to do now This shape has to be aligned to the center of this shape How will I do that for that we will use will do the alignment of the alignment method What does alignment do to you whenever you working with lots of objects If it happens then we will have to give them has to be properly aligned in between so that they look good in their proper way If alignment is possible then we will do it for that How to use the alignment option you will do it with whichever object If you want to align them, select both of them If you want, go to the Object menu and click here But you still get the option to align okay or if you look here above the control bar, you can see here Also above the application bar you will see here Alignment options are available as well Also if you go to the Windows menu then here You will also get a proper alignment panel. You get it as soon as you click here You will see you aligning yourself here I can see the options okay so I If you want to align with this then look here You are given the horizontal center of the center end vertical center Now, before this, there is one small thing that you need to know you have to pay attention here see now if I What will happen if I align this? Was our shape that was kept here The shape has shifted down a little bit, right? This one also slid a little bit and moved up a little bit It moved a bit up and that too a bit down The move has been made but what if we don’t want it We want this shape to be what we have He should remain in his actual position Just this shape below, Go to its position and make proper alignment If it happens, what should we do for it? we need this object that If they have to define it then how do they do it Whenever you select two objects Come to the alignment option and you will see this one Click on the object means this object But do you need any object that you want You have to make something which you have to keep fixed You choose it based on the position, The option of the object which is your key You can find it here as well Look here above the alignment panel. if this is also activated then the time to activate What does it mean that it is about to be activated Whatever alignments you apply later, Aligns to your object okay so we’ll center it here Let’s take it and we’ll center it from here as well. If you take it then look at this, it’s just in the center fit snugly inside the Now we will go here to its left space and its top space both If we have to equalize it then we do it I can zoom out both the sides by pressing the alt key. Makes it equal properly according to his own hmm okay after doing this much the whole Let’s select group with Control-G and after grouping I am I will make two copies of it here. Why am I buying two copies right now? You will know further that I will open this window I’ll close the alignment and my Let me select the object and now we We will make it inside a 3D shape, see the 3D what happens if the kids who use adobe Do you know about softwares? adobe.com Come to the close menu and see you here You can get 3D end material here Click as soon as you click here You will see here with a window open a panel will open up and come now you come to the object here and here Click on Inflate as soon as you are here What will happen if you click on inflate This will create depth in your design Now we will learn how to control this depth All its options are given to you here Okay, so all these options are one way There are ways to experiment with these things that you can do Change it according to your requirement and you You will see the results here alright then look at the preset here so here there are many angles There are different presets so I can choose here I’ll do an isometric top like we Click here to see us in this way You will get to see the design later We will take the material that we have from here you can choose so look here A lot of different materials are given Okay, you can choose that too from here. yes but I don’t want this here But we will only change its roughness What is there in it that I feel a little a bit maybe inside the design so I am here I will give you 0.13 or 14 whichever you want to give. You can see it according to your design You can see it a little here Now after that you come to the lighting You can control the lighting here Can you tell me how your lighting will come How much will it come from which side will all these things come If you can tell us here then we will publish it here I would increase the softness to about 91 its rotation around the point is i I’ll take some here sa approximated around 92 and whose There is a shadow, I want shadow on this then I will Let me apply shadow, see you here to see the shadows too You will get a lot of trouble if you want to control the shadow So you can shadow yourself from here Where is it needed, at what distance and everything You can tell me something here yes, after all this work is done you will get this If you want to render the design then you can do it here Come here and click on render See it as soon as you click on the render The software takes some time Render to add effect to your design to do and you will see this after some time See your design rendered here It will come, see how wonderful it is You can see the effect here Isn’t it exactly like the actual reality Our chocolate looks something like that to you This is what you can see here, all right So now if we select this then Whenever we select this, you will see All the options will be activated here. You can go here and make changes to it but if you think that it is not our When the work is done, reduce the file size to reduce and what is above it Rendering is happening repeatedly, try to reduce it for what we will do go to the object And here click on expand appearance As soon as we click on this we will what will happen to that which is here in 3d The properties that were there will be gone now this age This has become an image which we can say somewhere but you can also pick it up and place it, it’s ok So our work is done Now we’ve picked up another shape from here. basically we’re going to do a little Make some changes to create another effect here This is going to be 3D, we will control this as well If we group them together, we get the objects To inflate we click back Look, you can see the depth here. it will go and now I will see here its depth I reduce it a little bit I got 5 points here and what is the Volume before that i come to the preset above and its isometric top which I applied Let me see you again just like that You will see an effect whose volume is I also turn the volume down to about 50 on K You may see something like this around here The effect of chocolate will be seen after that we go to our material I applied its roughness on top here I take it around 0.12, it’s ok In lighting on top of lighting we find this when the intensity etc. goes away then you From here you can control how much you How much intensity do we have to maintain and how much softness do we have to maintain So I give the softness here at 95 around and what is its rotation is your light Then you can see where you are best looking okay so i will put that on here I take almost around 88 okay over 88 degrees So you should take a look at this thing By experimenting, find out where that thing hits you You are looking best, then simply I’ll go here and click on Shadow. I am here I need shadows and shadows too How much distance do you need from here? would choose I’m alright and now we’re here to render. as soon as you click See, it will take some time again and then See our design afterward here But it comes here perfectly rendered See how lovely the design looks to you Well it looks very cute to me Visually it selects it back we go to the object and back If you click on expand parence then Look, we have two chocolates here. the design has arrived I have this to decorate me a little I’ll make it a little bigger and I’ll place something here okay So this much work has been done so much work has been done later i need one more byte here To cut that, I’m going to draw a rectangle here. I will come here we will return back to each other We will draw a square shape and I will color it. I will change this color, I want it okay and now we can grab the pen from here Look at the tool, what does the Pen tool basically do? The Pen tool creates a path and lets you The pen tool is a very important tool. There is a illustrator inside you, understand it It is because of the pen tool that we know Give more preferences to Illustrator and because of this tool we can do a lot of Designs can be made by creating lots of illustrations. if possible then what shall we do here Simply click here as soon as you You will see a click here You will find a path like yours here you will click next you will click next it will come there as a path if you Drag the mouse after clicking If you do it, you will see that path, that curve It will start to form in some way like this okay and look you have two handles here You are getting that if you work on these handles If you want to do this on your path then you can do that too You can and how will the next path be formed Look, I am showing you a preview of that as well. that wherever you click, that path you will see something that looks like that If we don’t want this path like this and we We want a new one here again If you get the handle, if you get the new path then so what we’re going to do is press Alt on this anchor point If you click on the button, you will see this Your handle has been removed from here And now you can create a new path here could be some way like this okay so look here we go back here So we have created a shape here, now this shape After making this I will try to make both of these I select the shapes properties I come to my panel and here you will find You get some options like I mentioned earlier I am selecting both of them I select it and look here You get the option of pathfinder Look here, you get a minus What does front minus front do above The object punches the object below It gives you the option of clicking here Look, you may see something like this shape Now I will convert this also into 3D We have to do the same thing using the option We will go to the inflation from here Choose the isometric top and then Then I go to material here But I set the roughness to 0.12 When you go around the lighting, the lighting I too will slightly comment here as per my own I will keep it where I feel it is best takes ok the one who has softness is me If I need it, I increase the shadow I’ll also put a shadow here and this much What do we simply do after doing something If you click on render here, you will see This design of ours should also be rendered It will come true, see you perfect here A very beautiful little thing, I want to give you a byte Now I am getting this color I’ll put it aside here lightly sa here i will shift it up okay i need a background here so We’ll click on the rectangle here and here a square something like this draw a rectangular angle now inside it I will first tell you how to do a gradient fill I’ve already figured out how gradients work. Simply click on the gradient You can find the panel gradient here You can click here to see this You get to see colors if you want If you want to change then you can change it okay here I’ll put it a little bit here Now I choose the gradient as per my convenience This object is coming upwards And my designs are below, which If she is hidden then what will we do for her go to object, arrange it and end If you send it back then see this The object will now be placed at the bottom I am done with these colours I will delete this and then delete it I’ll make one here later. Square shape something like this square Draw a rectangle and inside it We do a color fill ok let’s take any light color or I Let me okay it from here and we are here let’s take this color from ok it looks a bit dark so I I also turn on the light for that I go over the colors and give it a little oomph Let’s choose a light color, it looks good now I am getting round its corners Let me do something like this and let’s go Write it above your text and here Are D Let’s make it a little bigger and After enlarging it, I will place it here I will change its colour If you want to make it dark brown then choose that color dark brown i have done it look isn’t it The younger one can do this too hmm d i will write it down chocolate c H O C L A T Chocolate A little bit of it let’s make it bigger and after making it bigger I would like to change its colour A little lighter color, I think it’s right It will be fine, I will group these two. And I need to bring it to the center of it. So we will select both of those objects We will create this text so we will do it here I will click and this becomes my key object And now we’re going to put this here quietly If you can bring it to the center, then bring it to the center for i will click here harijan align center or see it has come to the center If you press it a little bit here then Look, we have a really nice one The design has come ready, select it I will use control ji to make it full I do the screen from control zero and Look at this, this is how you can see this 3D You can create a very simple design it is quite interesting and quite We get realistic effects if I just showed you an example The next step of chocolate is that we can make lots of You are going to create designs in this course Later I will show you many more designs I will make it and show you mine One more thing I would like to say is that I am very Starting his live classes soon So those kids who want to join me Do you want to take personal class from me? If you want to learn something different then tell me you can message me you can contact me on instagram2 You can also read this video to know more. In the description box I have given you a I have also given the form, so the children who Are you interested and want to join my batch? If you want to do it then you should fill up that form you can do it ok so i hope you like this You must have understood something, we are increasing our Next move on to designing and learning to make it so friends i hope that now You can understand whatever we have studied till now Whatever feedback you have will be coming in. Please let me know in the comment section By doing this it helps me in the future when also i will create new videos then your The feedback received will be valued greatly by the fair So let’s move on to our next design on the side where we’re going to learn info Graphics design is something that we are very Let’s create something with our illustrator You can make many designs inside but One of them happens to be infographics now Infographics can take many forms But we will give one example of that in today’s In today’s video you are going to read this In this video, we are going to make The design of infographics is quite simple The design is quite attractive and the design is And we are going to learn a lot of new things from this. Use this design in your topic The topics that we are going to cover from Our topics are show and hide ruler About Polygonal Pathfinder About Distributors in Shape About the Pen Tool About Modes About drop shadows and gradients We will discuss some of these tools regarding colours. If we have already read them then what can we do We will read a little more in detail Okay, we will take the option cover from this. We will also cover those options which you have not covered If you are done then let’s move forward turn to design and create your own designs but before that i want to tell you again I would like to ask you a third question Your question is whether in the options given below Which is one such color mode that You all are not available in Illustrator Give me your answer in the comment section Remember whatever you comment Please mention your question number next Do it so that I can know which one you have what is the answer to the question Let’s move on to our next design and come to the top of your art board So here we come to our artboard. up top and first of all we have to use here There will be some guides to bring the guides for this we use our ruler if this The ruler that you see here if You are not getting the display in your illustrator So for that you simply go to your view menu Come on and go you Rulersongs Showing ok now to get the guides what we do simply click here let’s do it and in this way here can bring you guidelines from above If you want to bring it then you can bring it from above also The meaning of guide lines is something like this or We use guide lines when we You are creating a design and There we have to show something like this or we have to keep it for ourselves so that we Where and what are you going to do? So basically for our guidance we use guides Many times we use If you make a visiting card then visiting What matter do we have in the card and till where? We have guides for that too when we design books If we are doing it then we can also do book design People use gutter space to keep margins use the guides there for okay that’s the way we are here You can now apply the guides whenever you want here If you come with pay guides then you are like Just select this, look here The control bar that you have is Here you will see some options getting activated. now they come to you see here I am getting alignment options so we what to do simply place it horizontally When you click on align center then this Which is our guide, right at our page We will now be placed in the center I’ll show you right now why you’re doing this hmm next we will need the tool here It will look polygonal so we go back to our basics over the shapes and let’s take it here Here we can see the polygonal polygonal with the help of What will you do then? If you create a shape I pressed the shift button on my keyboard what will happen with the shift that this shape of ours It will be created from both sides equally and when Also if you create shapes then I will tell you I told you one thing that whenever you make any shape You are creating and now you click I haven’t left it in that case if you think Do we not have it here which is at its corners If you want to increase or decrease their numbers then What do we use the arrow keys for? As soon as we see here we use the up arrow Press the key and see our number of sides will increase and as soon as we click on the down arrow If we press the key then our number of sides will appear they will start to decrease Alright so look at it this way here Let’s draw a shape on it Now after drawing this shape we will call it what will you do, rotate it a little bit so I pressed the shift key back And we look at it here in this way it has been rotated a little bit from Let’s take the color here so that I can know Let’s see how many degrees it has rotated it’s right here, it’s right now, come to us It is eight sides and we need it here six sides so here we have their numbers let’s reduce it from here also we can see it here See, you get the slider and with its help here you can reduce its sides now Look, we made a shape here. Let us move a little to the side and here we are But we need another polygon and with its help what we’re going to do is draw a triangle here If you want to create it, then see, we have created one here A triangle has been created and we will also we can do it here in the center or else we Alignment option can also be used here you can do it okay let’s make it bigger yes we have centered it back in color let me change it a little bit I can tell the difference between the two all right it’s coming this way now this We have created the polygon by moving it upwards If it has to come then we will go for it and Bring to Front in Arrange in Menu look it will come back up we will put it I selected the center and made it alright I should make it a little bigger A little bit in this and a little bit wider too I will do it and I will center it back alright this looks exactly right now Let me have another look at what I do now if I copy then what to copy We will press the Alt key and select our object okay see we have The copy has come here in colour I’ll change it again a little bit if I know this differently then alright so this Done now we will select both and Now we will go to our properties and Here we find Pathfinder and here Look at it, it is written click to minus Like front we will click here to see what will happen to the object above will punch the object below and If you cut it, we will see something like this It will come in its shape again, now we will see it here But if you create some copies then I will put them here his I pressed Ctrl+D to repeat find the three variables for And no, we only keep five copies. ok i will choose them all and I’ll make it a little bigger Something like this and wider is fine too In this way, I have selected everyone right now. I did a group using control ji After doing this I did this and this which We have a red triangle, I chose both of them I did it and after choosing I went to Pat I went to finder and here you see a You get the option to divide the path The options in Finder are quite simple There are options that I have covered for you here as well. I will give you a small video here I will make it and give it to you so that you can have some Once this becomes clear I will come to the side here I am going here to explain it to you one shape and here again another shape is created so I can explain pathfinder to you I can do a lot of work, look very carefully this is a very useful thing for you Now look at what you can see here so we have two shapes one red one Black and red are on top ok i will make another copy of this So that we can explain it to you by giving examples again and again So I chose both of them and we went It is available here in Windows and here We have a panel of pathfinder and we I have opened it here, okay, now see We have all these options here Which is the first option of unite like as soon as we click what will happen both objects merging together into one will create a single object back to endu I will do the next option is given to us What will happen to the minus front such as I just told you that the one above The object is the one that marks the object below what will he do, he will punch me back I chose the third option, we have it what does intersect mean which is the common portion between the two What is this that you see in the middle? portion this is our intersect portion like What will happen if we click here? The common portion between us will be we’ll find it inside the intersect okay a I selected both of them again and Here you get the exclude Just your opposite from Option Intersect If we click here, see what The portion in the middle will be deleted will go and whatever other shapes we give I will give you an example here I am taking only two shapes but it is not like that You can also create a path using more than two shapes. If you can apply finder then what is that will do it see he deleted the middle one and He has kept the other two shapes back I am doing from end to select again We have the Kia Next here What does Divide Option do? as soon as you click here What did this person do that you can see I also applied the intersect option and I also applied your trim. But let me ungroup this one. Control I ungroup with shift and see this This has also been trimmed and yours in the middle The portion that was there was an intersect portion as well you are getting the right ending back and the next one that we have here There is a trim option like here What will happen to us if we click? the object is it will be trimmed look something like this right next to our The merge option is given here like When you click, you will see this getting merged Here I go, let me ungroup this control See this from Shiftz Now see what happened in the merge option what does that do is our overlap part which We have a hidden part, which is the hidden part? Look at your black portion If we have a hidden portion then what does the disease do? As soon as you click on merge here So this was your hidden portion here See if there is any outline here it will be cut off If it were there then we would have got it by cutting it here too The caste is fine and it makes a path for us If I had given it, then in this way we would have merged here You can use this option, see this I am teaching you all these options so I’m teaching you pretty quickly but If you want, you can watch individual videos of all of them are also available on my channel Simply go to the playlist and click there You will get a complete guide to Adobe Illustrator The playlist is available there, I told you Every option that could be there I have mentioned here I may have left it out or I may have given you too much detail you might not have explained it to me because I am here I am covering up the designs there All those options are explained in great detail so the kids who have covered up with a lot of detail If you want to see every part from that then you can follow my playlist alright and look here you get it An option to crop, as soon as you crop So what will that person in between do? He will crop the portion and give it to him I’m going to undo this ok Selected both and now see here But I am showing the outline as it is here What will happen if you click on the outline We just get the outline here. It will come, see it, you will see it here only If the outline is visible then what does it do? it provides you with an outline any object Okay, so these were some of our basic options. The Pathfinder comes back with its own So this was our design on the design now. what do we need here what do we need Whatever this portion of black is, portion in this we only see triangle It should come in a cut so how will we do it Select all and see here You have been given the option to divide as you like If you click here then this whole group will be here it is coming in you ungroup it with control shift and see what happens Look, all these shapes were different You will get it and the red part too we’re deleting from y okay and this See, you will find it different You will get everything separately here hey larat this is how we keep it here I selected them all and now We fill the color here but color What should I do before filling it? I’ll pick up a copy of these here Come on and now we’re going to use the pen here. As soon as we take the pen tool of the tool here So here we’ll draw a path, okay? This is how I drew a path here and after drawing the path I What do I do first? Group all of these together okay so this is different and the rest All are in one group, we have selected both Let’s do it and here we see an option The divide option is given here If you click OK then what will happen to it I’ll ungroup from here. So look at this now it has come to us separately I will delete it and that portion The black one is ours, we would have done this as well delete and select all from here I’ll group it now with Control-G. what is this group, it’s time to group Later I am going to change its color a little bit. Now I would like to color it a little grey. I’m keeping it okay and in grey color After placing this I will also post it here I will place it Alright, so much of our work is done Now it is the turn to fill color in all these In objects, I want to fill color in them I would like to see some colors here Take out the samples if you have them If there are no samples then you can use it as per your choice Go to the color panel and select the colors accordingly. You can remove it and apply any color you want So I use the shortcut here key i pressed here eye dropper and look here I have filled the color I did it again and pressed it for shape and We chose our second shape and this is how i have arranged all the shapes here We selected one by one and we got all the filled the colour So see, I filled color in all the shapes. It’s done, now after filling the color it looks like this This is the shape that we have created here no what do we do with this we select it and after selecting it we will Let’s make the color white. Okay, now let’s make it white. After that I get its opacity which is There is transparency above, that needs to be applied So from where will we apply it, simply you go here see you have the command here you can find it here over the bar You can simply select the opacity option here. If you reduce the opacity then I will I will make its opacity around 4344 I can see some effect like this here. It will be fine now after all this work is done I need to go ahead and do some more here If you want to apply then now we can choose here will do my pen tool okay so I’ve done this So I took the pen tool and we’re going to draw a path here. we will do it in this way, see i have shown the path I am doing Dr see this i did this path now inside this I fill in the color, so I put it here I have filled the same color and created the path After that I take it to the back side I want to go so I click on the object I will arrange it and send it back to you We have got something like this here Its color will go a little more I wanted to make it dark so I used black We have done the rehearsal, now again we are its copy will do it up here But after copying it I am here I will take the die section tool and what are its corners It is with their help that I can place them here I will do this, I will place it here as well, okay and again I will copy it here I will copy it, you have to keep it very carefully Here again I will choose the tool here deck selection and again i am here to help you I will apply it here in some way like this Again I have put a copy here There are notes on this, I can select them and post them here but some way like this okay so now my work is done After doing so much work I am here I have filled everything with black color I want to do this a little differently so so what are we gonna do I bought this one I chose, I went to Colors and we did this here I applied some other color, it’s ok So I’ll see here which one I like the color, I have that color here I will apply for this so I have chosen this also I went here and we painted some color here applied okay again we went here and We again applied some color on it okay so we have a pyramid something like this The shape has come into being now, what am I I do, I have selected all of these it is grouped with control g and After grouping, now we can choose here We will use the rectangle tool and create it here a rectangle shape it like this I will move towards After doing so much like this what will we get there are corners, i’ll round them off I want to make it bigger like this and again now I would like to have some copies of this I’ll make it with a little bit of overlap so we We’ll go here and overlap it a little bit Now let’s create a copy here. Again second copy from control D then third Give the fourth copy to everyone and give the fifth copy to everyone I choose together and where is the top I would bring it a little bit closer to it and to hide it we put it here Now look here, I am not hiding because there is a round circle here so no one Never mind, we’ll just go here, this one We will select the circle point and We’ll straighten it out here okay Look, after doing so much, he came back and chose everyone went to object went to arrange and send to back so that it goes backwards isn’t it like this from here and now what are we going to do with all these I will make it a little smaller, I will make it a little lighter I want to make it smaller then Control D here I’ll make it smaller again using D. Then with the help of control D, press it again like this Control D and then Control D again so look Here also we followed the same pattern It’s done, now I need some colours here. Gradient colors to apply If I want then what can we do for that You will simply choose your object go to your gradient and do a single If you click, you will see the color feel here you have come after doing it, now look here and let me know If you are seeing color notes then you can add the color in it If you want to keep it you just click on it and Here you can use an eye dropper or whatever You have to choose the color as per your choice you can get your color from here okay look here i have colored it like this I chose a little bit and I felt that If both have become dark, then it doesn’t matter no we go to colors and one more Let’s light a little bit, it’s fine now This is how I change the colors in all I will do it So look, we have all these colors here. You have filled it up, now we have to go here You have to apply shadow which is called So how do we get the drop shadow? In illustrator, they also understand it so what do I do I put them all here I will select it from this rather I have chosen this The entire object is selected And now we go into the effects and Here we get the styles Option and inside it you get drop Here’s what Shadow does It gives us a shadow by applying it You can find out here what the shadow mode should be. You can choose the color of the shadow from this You can choose whatever you want from here You can choose how much blur should be there inside How much opacity and its x can you tell what should be the y axis and y axis you can also choose so look here i have written something here The way this blur is applied is drop I have applied shadow here Let’s give it okay and look what we have Some such design has come into existence now If I had to write something here, So we could have written that too, what would we have done for that Simply choose your text tool and I would have written 01 here and here I would have changed its weight as per my convenience If you want to make me a little bigger than that Let’s make it bigger and change the colour So you can change the color also, no problem There is no issue with that, here we have it I have come back after writing P.V. I have to write something more. So I can write that there is nothing like that I write it here share this video ok reduce the size I will take it in size 50, I like it But I place myself at this point If you want to write two numbers then press the odd key I did that and made a copy of this, okay? I did this Rotu and here I got something If you want to change it, can you write something? subscribe this channel just like that we are here but point number three point number four point Number f is the same way we can mention it here. you can see it this way, I have pressed alt I made multiple copies by pressing the key You have created it and now you can see your You can write whatever you want as per your wish You can write it here or post it I am doing five I am doing six okay and also in the text whatever chance you get You can easily do the changes you want to make here Can you do something like this or better than this You can also create a complete design for me I have faith in you guys that you can do something with this You can make any design you want good yes you can send me yours You can get the design reviewed simply has to come to my Upload it on the channel there I will do any design you have I will review it, if there are any shortcomings I’ll tell you what else is there it is worth improving ok and i Hope you liked this thing, then move on Onward to our next design which is One Ludo design is going to be quite a lot There is an interesting design and much more to offer You are going to learn something new, especially if You want to learn about distributor So much about align panel in linux You are going to learn in that part It is quite interesting, I am also quite I’m excited to make that thing So let’s move ahead to teach people moving on to our next part so friends this We are going to make this Ludo part The design is quite attractive and very You will learn something from this design How can you make this design inside? ho as well as in making this design Our options will be used, those are our options also we will cover up in this we will cover those in Topics to be covered in this design Those topics inside are ours, split into About Grids Stroke Fill and Panel About Mask Transparency About the Repeat Option in Path Finder in Windows 10 About the Alignment Panel Brush Option so these are all the things we cover about and with the help of these we will make this design will create so let’s start and Let’s start designing this Ludo of yours So friends, we have arrived to design this are on top of their art board and play Ludo To create one, first go here we need a rectangle so we’ll go inside your shapes and choose here a rectangle tool and here’s a rectangle we draw it okay inside this we If we fill any one color then we Go here and choose any color of your choice. that we have felt this alright this much After working now because of Ludo what happens inside is that there are lots of different Rose and columns are made up of If it is in square shape then it will work Here we will use it to do this of the split grid option which I am going to tell you about I have already told you earlier, so for that we will go to your Object menu under Path inside and here we find split Into Great option and by going here We divide it into 15 rows and 15 columns we will do it ok so look at what we have Something like this design will be made and will cost this much Later we have to choose the 6 box column here. if you want to do it then six is ​​fine here and si only on the bottom side then doti cha pa 6 This is ours 6 select the whole box I did it, I went to properties and we I have done it here, unite it, okay What will we do after we unite? by selecting the one below 6 times also and click here We will unite the same thing on the left as well same here too Now we are left with the middle portion This is the portion that you can see in me okay so in the meantime we are all here Select all the shapes we have We will do it and we will do it here as well unite alright after all this work All the other shapes we have are us We will delete it, why are we doing this Now you will find out more It will be okay, we have kept only this much left I have deleted everything and now I have put this here The God chose the shape and what did we do with it did it here with control C and control F we copied now why use control f If it happens you guys tell me quickly comment in the section that we control f why you and then we use make it a little smaller After shortening it I took it from here We took the Direct Selection Tool and this is what we did We have given a note on rotation here We selected this and we placed it lightly here. I rotated it sorry I have to do it for everyone So I rotated them all like this Now it is rotating inwards for us If we don’t want this then we have to press the arrow keys Press it, look, we have some rotation like this too it will start coming in form okay look We have some such rotation inside I came by making a cut towards it, then from here we we took the ellipse and we have something here Drawing circles then drawing a circle again copy and another copy below it I selected all and grouped them with Control G. And now we have chosen this shape and We made this and what to make Later we centered it here ok so basically making this an object and after that we are in alignment You can use the option of your Now we have done so much work inside the shape What we’re going to do is fill some color here. If you take it then for that I first took the middle one Select the shapes with your color I went to the page and I chose green color here. I thought this colour looks fine This is its outline, I am keeping it right now Now we will remove this middle shape later we chose this also from here and chose After doing this we lightened it a little Tax okay i took some light here blue I took color in type and whatever it is If there is an outline, I will remove it. I went to the outline here and I went to the outline here. I marked it as none, now it’s left We have a middle shape, what will we do with it? What we did here was take a pen tool I took the Pen tool and with the help of the Pen tool Here we have used the sorry pen tool with the help of we drew a shape here some way like this So after I drew this shape, I This shape and the one below is our shape Selected both and went to properties Here we have the options of Pathfinder Hey I think no one is showing right now Never mind, we will go inside our windows And from here you will turn on your pathfinder okay and here we’re going to use divide The option is fine after dividing Look what happened now, these two groups came together I have selected both of them went to object went to arrange send to backed it up and then what did we do with it I ungrouped it, see what happened now It has become a different shape and it has become a different shape This is what we wanted, now we have to do something We selected the shape and applied the gradient on it. If you want to apply then we will go for it The gradient will appear here above the gradient and we will apply the gradient here and We took some color here secondly, here we take one side A little dark green The color is fine, I will take dark green color I was And we take one side with light green color So we chose this one and we brought it here I took the light green color so look at our Something like this came to me in the same color We have to apply it here as well so we have used this I selected the shape and went to the eye dropper And we clicked here to copy it. I did it and came back but now this is a dark colour I need it on my left side what we did was we chose this and our went to the gradient panel and look here You are given an option to reverse What does gradient do? It connects colors together I flip it, look how it clicked what happened it got flipped now we have seen this whole We chose it and what is its outline is what we have I removed it again so look at this too The outline got removed and this is what is inside There is a shape applied, remove the outline on it as well If you do it then look at all these feet now The outline came back after being removed and we got some Such a shape is visible now, it is coming are below down side what are we going to do We have these shapes only which L These are the shapes, we chose them and here we are but I went to my eye dropper and I have this here also applied green color but in this If the outline is not coming then we are surprised If you need an outline as well, we have provided the outline here I applied it and all the other shapes I had I have selected these as well, okay, and whatever is on these It looks a little colored to me We don’t want it dark, we want it light let’s try to bring some light here I’ll just plead a little here, okay? It’s okay now, our work is done Now after doing all this what do we simply do Let’s make another copy of this shape Control C Control F and apply here Let’s do a gradient but we need black and white gradient so we’ll go here Now you will choose black and white from this We flip the color here and This is the white color after flipping I will make it as per its opacity Zero and this black color has opacity I will do it at 50 ok and after doing this we will Let’s make it a little smaller, sorry the one below I also got a shape, I think someone has disturbed me no one else we will copy this y p and Let’s turn it back around, okay, look at this It has arrived and I will remove its outline Let me do something for you, look at this gradient It is visible above this and the same thing We need it on our left and right side too We will choose this and to choose this Later we will copy it here And if we rotate this, then here we have I clicked on it and rotated it then what did we do with both these objects selected it and made it an object and what did we do to it here it is right We have aligned it from the end bottom, so look It has started to look like a box But the color that is coming in the middle, this I want this color, no one is here Let’s apply some color like this here But we are able to see the color, okay now we What would you do? Delete all the rest of them. which we have achieved by working hard there once I have taken this whole thing now let’s choose it from here group with control g and that’s it We have created copies on this diya larat same thing we picked up here and If you copy it here then look at one like this I came here after doing this but I think this After making the whole thing I felt like This is the shade we have provided here It’s still dark so I’m here for a bit I would like to work harder to get it back I ungrouped it from and this is its black it’s color, I went here and this is its It is black in colour, which was priced at 50, I bought it Tax on 20 here I gave it but something has happened in the outline yet No problem, I will choose this fill And I’ll make it to 20 just like that I selected this one as well and also we did it on 20 okay now look at it it looks very light It is giving ok now control g to group made a copy below and give it below Again we copied it here ok for that and we have copied the same thing here I have also done it, get up and look, now we have this Now it has come in its form that we are here I had applied a gradient, right, that’s what we are going to do We will ungroup this and then pick it up Take a copy here and apply it here as well I will do it but look what happened here has gone down has hidden down for him What will we do to arrange and bring it? We will make it two front, look at us here right now A very slight gradient is visible Now if we want this joke in others too then we Let’s delete the rest and this whole we could have done this as well by grouping from here Are Copy ok look we have created a shape I have already done it and if we have to come here like this if we wanted to make anything, star etc. then we would do that we could have made it we took the star and sorry star we made it here we made this up pressed so that its number of corners it is there and if it increases a little bit then this much After doing this, we filled it here. diya with some light color and it By selecting it, we centered it This has come to the center, this much of work is ours okay it’s ok I would stop here okay so let’s make a stop here so we selected this gradient But when we went to it, we applied a center gradient to it I don’t want the opacity there so I made this one 100 and this one too I made it 100 here and this black one This is the color, we can change it a little here sa here But let’s bring some dark color in green okay in green and let’s put this one on here. Let’s take black or black or darker green whatever looks good something like this and this I turn a little towards this side so that a little bit of The green portion is there, look more at the black Our potion seems less, look we have some It has come in such a shape that now we are talking about it If we copy then what have we done with this Selected the whole group with Ctrl+G and we’ve got this down here Pasted it like this and rotated it Let’s take it, okay, look, it will rotate and come back If it went away then this one also became ours, we just Just what you have to do is to change the color We ungrouped this with Control G Again we just selected this and Here only what do we do with it, color If we change it, we have done it here I took red, okay red and this one which was green, this I will also make the green a little darker red. okay i’ll take it a little bit of dark red alright this is enough, I have to copy the same here also If I wanted it, I selected it and We did it here as well, we just needed to color it All you have to do is flip the color See this color has flipped and here also I want the same color in red only If needed, we delete the rest Because we will make a copy of them here So that we don’t have to work hard again and again And in just one we are the changes If you do then I will take this out as well I’ll take this out as well and I’ll If I raid here then what will we do? I chose this and here we go color me and we gave it a red color on this Larat we want red color here also So I also gave red to the outline removes it and now let’s bring it over here and I’m going to add a little bit of light red color to it here I will give you as I gave above na to this light Okay, okay, and now we have a copy here. and these are the beans that we planted By applying gradient here, What will you do by grouping them together? and after grouping I will make these copies If you do this then Look it’s done, I think this is what happened here This thing should have come here as well Right, now look here, there is color here too. also we want the same in similar matching so We chose this as well and went here that we gave it red The colour is fine, now see if it matches I think red is a little more dreadful If it is gone then let’s give it some light red now It looks okay, okay, so this is what happened It became perfect while selecting the whole we have grouped it again with control g We copied it and did it again I rotated it and we will place it here Let’s do it perfectly equal to this I think after showing the place he hasn’t come yet We can place it absolutely perfect here. Let’s take it okay and if something is missing No one is in alignment, they can do that too yes later we chose it again ungroup with control shift g and let’s change its color back now let me If we want to use blue in place of red then we have put take blue colour took it right and here’s what we do You can take a little bit of dark blue here. Or get some black ones in matching colour Whatever you find appropriate, you can do it here You can take it according to your convenience, whichever suits you I think I’ll buy some dark blue I will take it, okay again we have the same copy here but I will do the same thing that we did before I am repeating the thing again and again, everything is fine so that’s the same thing we have done here select the whole go here and take the blue colour Look at you, the color has come to us I thunk I have this object in the center I am not able to see it, I don’t know why I selected it I grouped the whole thing and now the center I feel like I was not in the center or I will ungroup this one and this one too I will group it and we will do this also If the center is fine now then this is also not in the center I will ungroup this as well and After selecting this also select the center sorry did you make it so that the center is correct now Sometimes it happens that some things are missed If it goes, it doesn’t matter, we will move ahead Now you can improve the same thing here as well I deleted them all and took out one copy He took this out as well, he took everything out And here also we use blue color Something like this and after blueing This was a dark coloured one I picked that up here in gradient type did it and placed it yes but after that I had to put it here outline which has been removed so here we go will go and black outline sorry sorry sorry Sorry I will take black and outline it in black I will apply it, it is coming just fine, it came fine So this is Miss Palace, but no object no we can fix it, first fix it hey kev choose it and here it is and now place this one here as well place it on giving ok It is perfect now, I have selected both We did Control G and again we copied it to Y. we made it again we brought it here and placed it I did this and I painted it a little light blue too. If I want to give it in colour then no one has said that I gave you light and color and here also I If we want to give it a blue color then we will go to gradient and instead of red, will we make it blue? So we chose this and we chose this color If you picked it up and placed it here then this also comes All right again one last copy control Yes, and we will make a copy of this as well, like this We rotated it and we put it here as well If we ungroup then simply we have done this What did we do with the control shifts? I have ungrouped it and what about here too If we change its color then we will will go back to our gradient and Now instead of blue we will use some yellow here or in orange type okay or I’m from here I can also take color so look here we have Yeah, I took some color like this, orange is okay and Here we have selected this note. so what did we do here yellow it I took it okay look we have some It will come in such a color that we have done the same for this also. and here also we have We applied gradient to it If I flip it, look here it looks something like this The flip has come back, now what will we do? We have chosen it and now we are here If we fill the color here then we will go inside our color and here we take a color will take the allright in some way So I also took a yellow color here Now we have to apply the same thing here as well If you want to do it then it doesn’t matter, we will do it too Let’s take it out a little bit here first and We’ll take this out a little bit as well. I ungrouped this and here also We fill here with the same color that we used I filled it here and this is what we have in the middle we remove these as well so that We will place them later and its We have kept a copy of this here which is available here But the outline has been removed so there is no we put an outline here we go we are in the outline and from here we are Just apply a black outline, that’s fine for everyone We selected the group and here we a copy of this And like this we have created a copy below also. All the copies have been created, we have created it here We placed it and we added some color in it If we fill it then we went here and we First So this color fill of ours, we have used this and later we went a little and lit it did something this way then look at our This also comes here as an object Now all the work is done, a little bit is left If the shape was out, I would check it. I am wondering where did he come out from? what will i do i delete them and After deleting them I will try to re-install them again copy of it from I will make it right now it is perfect right now is selected and arranged at the bottom there is some problem somewhere it’s alright, see, get everything arranged and come Now it’s over, our work is done now If we have to do something more in this, then that too we can do that for him what should we do Simply we go to the pen tool and After coming to the pen tool, its middle part is point is we will click here and this With the help of mid point we can create a shape here we will draw it in this way ok so much After this we will call this object Let’s select it and we have added it here If we want to make a copy then what will we do for it Here we will go to the Reflect option and double-click on it. We will click and we will do it here One copy is fine, so what will happen? See its It has come here as a copy You will place it here on your left side sorry on top of the right side and so much after doing that we will go to our i think It doesn’t seem even remotely equal to me right now if yes then what do we do for it here Let’s draw a line between these two We will select the object and put it here Let’s see the center point, what is this center Where is the point? Look, find it here. I go to its center so I Let me move a little bit forward here and this I also move a little forward and this The line was ours, let us delete it And now what we’re going to do is combine these two shapes We will select the group with Control G. We will do whatever shape is below, we want it then you can delete it and after grouping what are we going to do with this go here above the reflect and the horizontal one here will make a copy okay so come and make that copy it is gone and what will we do is rotate it Let’s take it back and ungroup it and We will also ungroup everything and change the color here. Let’s do it, I have to do it here green colour so that’s me from here green colour I’ll take it sorry I’ll go here it came up on the dropper green ok and then We took this shape and in it we took We took our orange yellow color and then we took it took this shape inside it blue color and last I took this shape and inside it red All around me there were some more colors If you want to decorate it a little more, then that’s okay No, let’s make another copy of this control-c control-f and press it lightly I will make it smaller after making it smaller I would place it here at the bottom and I’m going to make its color a little darker I will give it to you, it will come back made like this, okay Sam I will copy it here I will go arrange and send it to the front break I’ll do the front then again another copy and another copy four I copied it to this, I would have done it Am Rotate and I’ll align it here center and this one from the top and we also put this one here If you want to give a dark color then what should we do shall we go here first let’s color it I’ll take this one and then go and buy this one make it a little darker We will give it to him, now it’s

    his turn also rotate them both then set them by doing this make it so that the object looks like this First we align it in the center and then Let’s turn this to the right and then this too We chose here we went to give it blue and after giving the blue we gave it to I also added a little bit of dark blue here ok that much is clear then we chose this here as well rotate this too did i choose both of them and made this We created the object center first and then Aligned it with the bottom. Okay, choose this as well. did and here we have given it first Gave red color and later we chose it So I made it a little dark here Look, we have a design like this here. When it is ready, look we have this one The final design of Lado has come out Even a small thing is left here Here we have to make a P, we have to make one arrow each ok so how do we make it here You will simply go to your circle or ellipse sorry and here is the ellipses we draw here and after drawing the ellipse we will grab your deck selection tool from here and Here we will select this note and delete it. will give and from here choose this note and I will delete it, just see this portion It will remain and what will we do with it here I will swipe what after swiping It will come and its color will be mine let me make it black okay now here’s a We need arrows, so where will we get those arrows from? We will get it for that we go with our brushes So we’ll go to Windows here. We get the brushes, look we have them A whole panel comes full of brushes and If you go to your library here If you go for brushes then look here you will see you get the options for arrows okay so you See which arrow will work best for you It will be ok sorry you could have found these arrows here so look here i would see some arrows that’s what I feel is right I like this The first one looks fine, I tried it first I clicked on that one, it’s ok, everything else is closed let me make it a little smaller And after making it smaller we will put it here Some can place it in this way whether so can you put it here or if I need it If I want to change the color I can do it too If I want to add a little opacity to it So I can also apply opacity like I have set the opacity to y% or this Let’s make it 30 and increase it a little bit ok and i will copy this and rotate it sorry I would have rotated it and I want to get it flipped so flip it what will you do for this here either By right clicking on the top right click Look what will happen here Transformation options will appear and here But we can still reflect on it okay This is simply what we will do here some way like this we will get it flipped and we will do something like this also on this can put what it is in a way The path which is visible in the design, you If you are seeing things like this If we want to copy this then copy it here We took one design and placed it here Then I made another copy of this and rotated it here. and placed it here, and we did another one copied it here and rotated it as well press here So our work is done, okay It was posted here as well, I wanted to post it here If needed, we can rotate it or place it here let’s do it okay here’s a copy of it by rotating y and again one last copy here and this one too by rotating Look at this Larat, he has come as Hamas To give it a final touch of loo I went all over and after grouping I’m going to go over the rectangle and from here go and draw a rectangle shape okay and inside of this here’s a Something like this would fill the grey colour and making a copy of this, control c control f a little bit we’ve got a big shape and made it and inside it also we put a little A light coloured grey colour tax and we sent it send to back and Where did we send this guy below as well? I went to arrange and sent it backward and see this The thing came ready made here, it’s a little small The other person will have to do it for both of them I selected it and I changed the outline to If I remove it from here then look at our If this designing has come to you As we have made a cut here like this If we want a cut here as well or we want a cut here as well can we do all these cuts cuts If we can match them together then I will do this I ungroup the whole design We select this portion of ours and only this one and what do we do about it here If you do a flip then look at this ok now Look, here also the cut is coming in the same way Here also the cut is coming in the same way And it is coming here also like this, isn’t it just this I will also have to group the person and I’m going to go here and flip it over Now look at all my cuts which are on one side I am coming prepared and if we get a cut like this If you need it here too, we can provide it here too We can simply go to our pen tool inside and we are here by going Let’s draw a shape like this will take it ok and I’m going to go over it a little bit here I will give you a color sorry I go here yes, I gave it some color and I Let me lighten this color a little and go send backward again in tax arrangement I do it backwards is it ok or more I have to do it again, so once What should I do? I back it up completely huh I went all the way back look he hid now what should i do now I will do the front word, what will happen with that? It will happen soon, it has come ready like this I would bring the same thing here too yes it is there then look here I brought it So if you want, I think this also seems fine to me and there is nothing to be done about it Let’s make it a little smaller and look at our I pass a final one and save it. Look, we have a final Lodo design ready It has already been done so I hope you like this design It feels good to learn something new You must have come across this design till now If you like the video, please Like the video and share with your friends Share it friend, I think your friend too There will be those who will have to learn these things from you I am working hard for this so please share the video Share and comment if you have any questions So ask me exactly so let’s move on to the next one towards the design that we’re going to make a What is the design of visiting card? how can we design visiting card you are inside your illustrator so let’s go Let’s learn how we can make it so we will make this visiting card The design of the card is quite basic. But you will get to learn a lot from this A visiting card inside design What things should we consider before designing We have to take care of those things too We will discuss and share this visiting card Options to choose from for designing We will use tools for those things We are going to discuss this visiting above also The topics we are going to discuss inside the card Those are our topics, offset path About the Color Panel Drawing About Modes About Gradient About Drop Shadow in Place Image about and mockups now in these Some of the things we have already discussed If it has happened then what we have already discussed we will leave them behind and the things that we We don’t know about those things Let’s talk about cheese so let’s start but before that i want to ask you a question I would like to ask you and I hope that you Everybody will attend this question Because it is a very basic question Your question is about using the Pathfinder tool We can use one of the options given below On which option do you apply enough This is a good question and a very basic one All of you please comment your answer to me In the section, just keep in mind that whatever Before you get your answer, you must ask your question Please mention your number so that I know Who has answered which question correctly and what I did something wrong, let’s start over and make it first of all take your wishing card Whatever we need, we need it here Where do we get a rectangle shape? For that we will simply go to our rectangle above the tool and do a single click here I will give you this now see what he is asking here he is asking us that whatever you What should be the width of the rectangle I want and what should be his height but If you notice one thing here, Look here it is showing PX That means if we are talking about pixels then we The visiting card which needs to be made is made by us make it in mm or centimeter okay so I can do it from here I will cancel it and give my units to you Let’s change it and we’ll go for it inside your document setup option and Look here, you have been given the units You can change the units from here If possible I would have taken it from here in mm hmm okay then okay so what is it now All the units we have are MM I have now come converted into If you make a single click here, you will see Now we are coming here after writing in MM You get yours here Size 90 and whose height we take let’s take 55 alright So look, we have a rectangle here. It has come in shape So let me zoom in on this a little bit Look, now we have a visiting card It has reached the size of but now it is here But look, our work isn’t over yet When we design something that that we have to take to printing You have to print it on the machine later Finishing has to be done in it and after We have to deliver the finishing to the customer so while designing such things we should Take care of margins and bleeds there now what happens is bleed like Look here, this is the size we just took this is our final size which means The visiting card will go into the hands of the customer We have mentioned here what its size would be. It is done but still we have to trim it here And if safe area is not mentioned then See how I take it selected and after selecting we What you will do is go to your Object menu we will go inside and inside the path and here See you get the offset path what the option offset path does is that whatever Our path is either outside that path or within that path By creating another path inside the path so what will we do here Here we will mention those areas which we If you want to take it for cutting purpose then see me I will take 2.5 mm area here. Okay, so look, here we have this showing you the preview now this is what you The outside border is visible, this is our offset is the area of ​​the path which we have written here it has happened, you should have done it ok now what has happened to this path i want to tell you a little I change the color so that all the colors If I knew it differently, I would have taken it hmm from here the red color is fine and the ones in the middle I will take the blue colour from here alright and now we’ll make another copy of this inside so for that I’m back I will select the one in between The path to the blue one is selected I went in and went to Offset Path and now we’re here Those who were getting 2.5 value in positive now If we take it in negative here then we Simply put a minus here, then it’s ok Look, we have one on the inside as well I have come here in the form of a box I will change the color and make it green hmm okay now this green box that you see this is our safe area, safe area what is the meaning of in which we find our contain the text or the design that we want that it should not go into cutting which we want the design to be there whenever we make it So that is our base for our design If you stay a little inside then this is ours The area which is red is ours it will come out in the cutting okay and this is what The area that remains is our final area. If any part is left then here we will do our writing Allright will design the card So what do we do? We take it from here. Here we can use the Pen Tool and the Pen Tool draw a shape So here we have a shape something like this So we have drawn this shape like this did you alright Right now since this red color was selected by me So my butt is coming in the red outline We will change it later for that There is no problem and we are here But we will draw another shape with our pen tool. That’s why we went there and we made notes of the same here. choosing here Put a shape on it and draw what okay look we have two here you have drawn the shape and now this line is if the proper one is not coming above the other then that How will we get to see it? We will go to our in view and click here You can see the outline clearly here It can be seen that these two lines are for that they are not overlapping with each other what can we do we can simply contact any one Direct selection will select the object We will choose the tool and with its help we will go here I will fix this okay now let’s see if So I’m bringing this thing over here what is happening is that whatever is happening with a magnet the thing that gets attached is not here If we get it then what will we do for it will go inside our view and here which Our smart guides are available here We will tick it now what will happen now see what I am doing then as soon as I put this path on this I will bring them together near the path it will get attached automatically okay so our It becomes very easy to work as a designer To place any path above another path so look we have this one here The design is coming ready now here is one If you need more designs then we are here for that But let’s grab the Pen Tool again and we’re right here We will click on it one more time and the same thing we have done here clicked on pay path clicked here And we brought it here and closed it. Just look at this, our path has come exactly right okay now look we have this little one They have come in three shapes and are going back from inside View and from here Preview Mode If you turn it on from here then look at our Come back with the same design again Now let’s talk about something here To fill the colors, we first started with the top I selected the shape and look here We have already prepared some colours. So I will use these here Okay, so I’ve selected one of the shapes here. selected and we’re here to see the gradient If we are going to feel it then we will go to our over the gradient and from here we can see the gradient You will turn it on and simply click here I will do it but just see if I click on it So what will happen if you see a stroke here He will come looking up because right now he is here What is stroke? It is active. We are here to help You will activate it and then click we will do it and look here we have two When colors have arrived, what are we now, the black ones? in the place of We will take this dark red and what is here It is white, instead we can choose this color ok ok now how to bring these colors We will decide from here, we will go Simply above your gradient tool and here Whatever we need, wherever we need it, we get it from there we’ll put it there okay something like this A little more and I’ll place it here I take it ok If you want to fill the same color here as well then We selected this object and we I took the eye dropper here and I clicked on this color and it will be filled in here. It is gone but what do we need which we is there a dark portion or we need it here What will we do with this? Reverse it to Y The Dark went up and the Light came down Its outline is fine and if we want We can remove it but before that we will Filling an object with a color If you want, we will go to our go to this grey panel and from here We will choose a color and we will take it and we would have taken the other colour sorry ya ok So look, we have a color fill here. It’s done now if we want to upgrade the colours a bit If you want to do it down or left or right then we will do it. We can simply tell which thing reaches where If I had to bring it, I would have put it here yes ok something like this This work of ours is done, now all three of them it’s an outline, I’ll remove it I went to the outline and I did a nun here The outline of all three was removed and came to us This shape has formed near me, now this shape What we need is inside this path How will we bring them, we will select all three from here we cut it After that we select this red out box Or should we choose the red rectangle? will do it and look here you have modes Let’s see what the first mode is That is the normal mode in which we are working After that the mode that we get here is It comes in behind mode which means at the back side and it comes in a draw inside mode if we will choose it what does it mean Now whatever we do will be working on it That means all of them will be inside this box it won’t work on top of it, it will work inside of it So now I’ll press control v here. because I had already cut it We pressed control v here, so look. What happened here was this our design Look at that, pasted inside this shape It has arrived just fine, just what we needed, but Now if we need to do any work on this then we what do you do to take it back to normal mode Let’s come and now if we double click here If we do this then we will reach its isolated mode What does it mean to be isolated? will reach inside and to go inside it After that whatever work we have to do, we will do it you can work on top so look here I am If I double click I can see it is isolated I have come to the mode and now we are here You can do the work as per your convenience, If we want to change things here, we you can change it so I am going to put this design here I will bring it till here and we will take this also till here Let’s write it like this, okay, so look at our Now it has come as a design We have to fill color inside this also If you want to fill a background color then so what we will do is we simply go over it We will double click, look here we will will come in and now we will select it Simply take your fill from here and We take the eye dropper from here and here But simply see as soon as we click The background color here is also Come here feeling satisfied Now if I have a different background here And on this side we need a different background If you want we can do that too very easily Simply what we have to do is we go from here Choose the Pen Tool and select the Pen Tool With the help of this we can simply create a path here yes look this way okay make this path and inside the path we have taken whatever color we want If we want to feel something, we can do it, So what do we do here, let’s look at it a little bit Let’s move aside and take it from here From here I used a dropper and this is the color we Let’s fill it here, look in this way ok and after filling it I will I will quietly place it here, now see When I placed it, it came on top of it is coming which we do not need, then so what we’re going to do is go to the object If you go to arrange and do send to back then See what happens next by going behind him It will be placed and come back, there is no problem If I want some gradient I get some If you want to adjust the colours etc then I can do it the way I want Let me lower it a little bit here okay and this color is a little behind and this color is a little sa inside ya l l right so look i come out of it I go control-click outside look at we have this outside here It has come to this side, now we have to put our We can also put logos etc. Look people, I have kept one here just like this if yes then I will place it from here Here but right look we have a logo here He has come but he is hiding behind, so what if no we’ll go to object in arrange We will go and bring it to the front and here but these people came, okay I group it from here Inside this I want a gradient color If I want to feel this then there is no problem no i take it here with an eye dropper And simply if I click here then this Look, this color will be filled and will come now If I write something below etc., the company If there is any name etc. then write that down as well According to me I will simply write it here I give you design sorry capital In I will change the design and font from here so this is it if I want to bold You could have made it a bit bolder are fine and minimize it to this y and place it on this y I do the design and if I want to write something here then write Take the logo So basically this is our point to explain it to you. This means that you have placed the logo here. Tax gave ok Your logo will be placed on this display will go here if you want, whatever is behind You can mention your services I’ll put it here in services Website design logo design Printing Works Bulk SMS Anything You Enter according to your own So the digital marketing tutorial is something like this You can mention the services you want from us If yes, then I have made it smaller and I will light it and change its color from yellow to white takes okay now here if I get a line on this If you want to increase the spacing then you can increase that as well for that we have to go simply to our inside the character and look at you here If you get spacing then that spacing is you You can increase it as much as you want from here you can increase it from okay so look at that I I have kept it here, now see, whatever I I will work on this green border I will do it inside, whatever I have The text is outside this green border Everything should not go inside it If you want then look this is ours, back’s is ready The portion has become ours, now I am like this I’ll copy it okay who is it now who if it’s engaged I can keep borders etc if I want Or else I can make it nun like this, okay It is there but the larat is not visible in this manner and in this I group the whole thing like this Group is done with control G, now here also If we want to do something then what can we do for it Can yes i have selected this in my design and if I flip this over, would i go here for the flip From here I right click I go to Transform and click Reflect I will click then ok and our design will be done. It has come after doing a flip, now I am bringing it here But I’ll keep it, okay, this is our name. If it is written etc. then I will delete it. and what do I do with this logo I can simply choose it from here I will place it here okay if I get it exactly within the border If you want to tie it up then we can do that too simply we will choose both the things and then In we will create this object so that its To the green one and here It’s done from the top, then right here If this is done right, then it is absolutely right it will come here after getting aligned ok After that if I get the QR code here also If you want to apply it then we can apply it as well For this we will use the place command now Look what the place command does place With the help of command we can remove any external thing You can bring it inside Illustrator It can be an image or even a file. can basically do the work of importing this is it I will simply go inside the file and Here you get the place command and We have to bring the QR from here I will bring the code here simply like this Let me click and see this image now If the file is there then look here, what do you see? Look here, I can see a cross in the middle what does this cross mean that it is now The image we have is not an embedded image Now what does embedded image mean See, whenever we do something inside Illustrator If you bring something from outside then basically A link to what happens is maintained Now this image is maintained through the link This is where I got this from bye from the folder I brought it from By going to that folder I can see this image If I delete this then this image will appear from my file will also get deleted, meaning you will see this here If it stops being visible then what will we do for it what do we do simply with this image We simply embed it here Click on Embedded now look here This person who was coming in the form of a cross should be removed what has happened now is that whatever is yours now This is the image, if I go back to my original location I should also delete his name from there should I change its color, should I change anything? Should I make any effect on this file of yours? you are not going to get it so okay I make it smaller and smaller After doing this I will post it here I will place it here ok I have placed a lot of logos on the side too I gave it to you to explain but I will give it to you as well I’ll place it here, a little bit inside towards and this is the space we have left If we write the name etc. here then we What do you do here? Use your text tool Choose and write the name here Suppose I wrote it on Mark If I bowl out Mark Smith then I went to this I bolded the mark I have placed it here Well, I would have done it with white colour. hmm now it is the turn of their designation I copied this to here, same thing and I put the project on y I selected the manager and downloaded it from here Took it in regular font and made it smaller Gave okay and look a little higher these things both It is not aligned yet so I will lightly Look, I’ll bring this thing here as soon as I can It will align itself and come to you properly so here it is so here my turn has come I would have made both of them famous, I would have made them bigger yes, our name is now after the name There are some other things as well, such as If there is a mobile number and an address, then that Let’s assume that we mention this thing also I want to write the address here so we will go here put anything in the tooth Your address here and after that we can put your phone number above here phone number I write it down on plus 00 whatever your number is I will write it on here I take it 3 4 5 6 78 OK Mobile number is your address Done after that email id comes then if @ email.com gives us the website which Website Co is ok dude and look this thing is here now But we need some icon which we can add in front of it can apply some more to make it look better So look at that we have some here I also have some icons on it now this I’ll tell you where you get the icons from. hmm look if you search on g okay You will find many such websites. You can download these icons for free here You can, but we will learn a little later. also that if we don’t have to create these icons ourselves If we have to make it then how will we make it, we will also tell you that further We will discuss it in the videos but right now we I imported them readymade here it is done to make things a little easier If it becomes easy and quick then it will come I got our address and I Bhaiya I placed the address here at the back If it is hiding in the object then it doesn’t matter Gaya arrange gaya bring to front kar gave and this is our paid ad here all I select it and go to Arrange and bring it I do it to the front so that everything is on top Display us Yours is done here your phone number is here Email and yours is here website and this was your address right I align four things evenly so I selected all the icons and we clicked on center here Diya, everything comes aligned in the center It’s time to apply colours We can even color them, no problem no, everyone selected this color, we got this one If we want to do it then we took our eye like this dropper and clicked here so look The color has been filled on this as well, it’s ok no look we have visiting here The basic design of the card is ready hey look at these colors these are from me Let me move it to the side and look at this, this is our The front design came closer, I will group it I do it and it comes to us from the back design okay now you have this design I have made it but you can keep this design like this You do not represent yourself in front of the customer So let us take this a little further in a better way They are taken to the customer as if What happens when someone cooks food in your house? so what happens after cooking the food that whatever you have on top of it They say that things fall apart, like did you put coriander or some other things too The things started to look good to him It is like this that we have here also A visiting card has been made, it looks a little If we take you to a more improved way what shall we make of it shall we make of it Mockup Now where is mockup made Mockup we Make your own f clicked on the Q and we placed it here I named it Front and I posted it on YouTube We exported it, okay, we backed it up like this Selected the one with Export Selection went to and we named it here back and we exported it to y see Both these things have arrived after being exported I save my file as y and I Let me minimize it to this, now So we come to our Photoshop and Here we had our own image of him and who These were front images, we placed both of them here I will do it, I already have a mockup If it is ready then what do we do for it Let’s go to the top of the File menu here and we’ll Let’s open both files from here. So here is my front and here is my back I open the front from here Let me copy it and paste it here. I will do it ok and after pasting it I would slightly equate it to this would adjust it hmm it’s ok So here I am going to put it at par with this [music] I made an adjustment here. Okay. I will click on the tick on this I am okay and just like that my back image was I copy this from and I’ll put it here I will bring it and paste it and this too I’ll make it a little bigger on this, okay? and after enlarging this also I am here But I will click on OK and give it a I saved it and I posted it on here too. I saved it and I saved everything in it I will close it ok I turned them all off, look at our The map we had here is here Look, it has come ready, so something like this way we can send this file to your to the customer in front so that he can see He might feel a little better that after all he is visiting Things that are a presentation of the card it gets a little better see make one There is a different thing and something is presented doing something different is a different thing so whenever we We make the thing and send it to a customer So we make some mockups like this They make them and send them so that they so that they can understand things better alright So I hope you understood this thing that how will the visiting card be what to design and how do we get mockups We are going to create mockups When we discuss further, we will will read no, okay write it down, but I know Let me know how you like this design Let’s move on to our next design and So friends, let’s learn to make it next The design that we are going to make We’re going to create this inside Illustrator Designing a social media post multiple times You Media post design in many sizes too it is made such as okay so let’s start with that but First, I would like to ask you a question The question is which of the following color modes will suit you Which color mode is such that we Who else uses the monitor for? sa color mode is such that we use it in printer There are four options for this One of the four options is correct, whichever you choose I think this is the correct option, you can answer it you can also comment me in the comment box Whenever you submit your answer, please tell me before that Please mention your question number so that If I can find out, let’s get started Design your social media post First of all we need a document here We need to create it, for that we go above the new file and here we have a Document has been uploaded 1000 ba 1000 of pixels and its color mode is RGB here which is absolutely correct I am going to put it here I will simply create it, okay then Look, we have a page or an artboard It has been created and now it has brought us here But whatever you want first, you will want that a rectangle we’ll go for that our over to the rectangle tool and here’s a we will draw a rectangle okay it will be placed on page Let’s do it all right in the center so something look this way we have a It has come in the form of a rectangle and that design The ground that you can see here To make it we can simply choose from here we’ll do a rectangle again and here’s a We will draw a rectangle and from whose corner we’ll round these off okay and this With the help of shift, we can do this in 45 If you rotate it by one degree then you will see this We place one of these here Let’s take a copy in this manner and make a copy and let’s take it this way okay look I have made three copies of this. Let’s select all three and After selecting it, we will add a color to it. Let’s fill it up and we’ll go for it to go inside your colors and here Later any one color from here to something like this this way i think it looks good Let’s do it here, ok, look at this color I have come here with this feeling, now I am surprised that what is in it The outline is also coming, I don’t want that so I’m going to go to the outline here and I’ll make the outline none okay so this Our outline will be removed and come back at the end Then we need one ellipse here, so For that we will draw a circle here. ok let’s place it like this Let’s take the circle to place the circle Later we will also need a border inside it. If it is right for your understanding then it is for that What we do here is simply We have marked the border here for estimation. took it ok And is its position correct or not? If we want to see it then you can go to view menu Come and look at the outline view and see what you have This border which has been made, with this border you You should see where the circle is placed If you see it, you can do it here as per your convenience I can adjust this okay I’ll go back I go to the View menu and from here Let me turn on preview mode now If we want to fill a color inside it, then we will Suppose you fill any one color Let’s take a slightly different color, let’s say I I filled the black waller which outlines it or whatever its stroke is, I am telling it here Now I will do it for you and I will give you one more gift If you copy then use control c control v we copied sorry control c control let’s start with F so that just above this we came after getting our place and then what should we do we will do it a little smaller we will make it more no i will just do something a little small like this okay so now this big circle this was the outline of what we will do now If we want to make it white then first We will put an outline of it here because We’ll make the color here white, okay and I want the outline a little thick so I’ll go on my own stroke and from here we take the five point stroke no this is right give us here inside this If you want an image then how do you get the image? For that go to the File menu and here will go to place option and wherever Your images are there, we we will go to that place we will go here it is on the desktop and here we have images I had kept it somewhere, so here it is ours Images So from here we can import the image Let me import two images like this I will do it, the first image is here, the second image is here Look at both of them, make a cross here. it is coming okay so what will we do We will embed it, we have selected it and clicked on embedded here Then we selected this as well and here we have I clicked on embedded, ok embedded I will tell you first what happens if you do this I have met everyone who knows me quickly Comment and tell us the use of embedded Why do we do this on our image And what will we do with this image here? Let’s keep it a little bigger, let’s make something like this in this way and we’ll do it backwards So for that we are going to go to the object here will go to arrange and send backward send backward now look it happened behind I’ll have to do it one more time so look at this went back and now we get this image in this circle I have to bring it inside that’s why I have taken this image because the thing that you you have to bring it inside something you take things backwards okay so what are we going to do here We will select the option and go here or Simply right click and here See you get the make clipping If you click here on the mask, it will What happened to your image, that clipping? she came wearing a mask Basically the image has arrived, right, after that Look, we have this image here. Let’s make it a little bigger I think so big ok And we can copy another one of this here. will use it further on the outside Now we have to fill color in it inside this whole box so for that we Let’s go in our color and go here Later we choose a color here. okay i think this looks fine ok look Here this color has come to us, which this is a circle this circle is very exact It is coming in dark colour so I am very surprised If you don’t want dark circles then what will happen? We will reduce its opacity If you want we can see the opacity given here We can make the opacity around 50. but okay enter and outline what it is or what Its stroke is thin and thick will do it around 7 point so right now I Looks better than ever before Larat after that whichever company here If you want to put a logo, you can do it Simply what do I do or a person does something like this let me make it okay and here I have written this We took the color and we can put any name here Let’s say we took this diya travel logo is ok change its font If we take it then we changed its fit to y Or if you want to make it a bit bold then go bold as well We can do this by taking this font and what do you do let’s make it bold okay Well you could have made it a little bigger like this let’s place it on this okay both The line spacing between the two is less for me if you want to do something then what will you do for that We’ll go to our properties panel, then Here we can see the properties of the text It is found and we find it here line spacing or the spacing between okay so he should reduce it here If we want to do it then we can do it as much as we need According to this, we keep it at our place 12 Let’s keep a point on it alright a little bit here we will place it towards the front and This is its color, I can change it from here Let me whiten it, look, in this way If you want to put a logo here then I just gave you a reference That brother, you can place your logo here you can okay here is your travel logo come as If we want to write something here then it will be If you are there then you can write it down as well Let’s make the image smaller, so here we have something If you want to write then we can write it on this we wrote it down on Explore The The Word is Ok Explore the Word Sorry R We have to remove it, make it a bit bigger Let’s change the font, we have to change the font here If you want to keep this then we have chosen this font did it and at the same time we will do this one a little I don’t want bold here so this We’ll keep the light here and the line below we bold it okay so that we can What should you focus more on, that thing Here we can see clearly think we’ll place it here and After placing it I see its color change If you want to do it then just do the color of the world I will change that this color is ok and this is the color I will keep it white, so I will use it I would choose white I am a brave man, at least bring this much with us Let’s go a little bit and make it bigger There is a little bit more to do in this so here we go Draw a rectangle on the and the color we want to fill in this rectangle is we will do it and fill the same color but this I don’t want to fill the color, I want to stroke it If I have to take it then I will stroke it I will take it and the stroke is a little thick four point around alright now we have to remove this run from here if we want to do it then what will we do for it For this we will simply go to our pen tool And from here we will choose the anchor point tool and we chose this note or this anchor We selected the point and we clicked here As soon as you click on the cut path Look, this path here is cut Will it come to us now, we don’t have this point here If we want it then what will we do for it If you remove it then look at this here point or this was his note, this was the line Look, that has been removed now, this timeline has come we want this outline to be It can be converted as a shape, any shape If we need to convert the outline into a shape If so, we will understand what we will do for it what will you do for him simply You’ll go to the Object menu and here See, the option of expand is given as per your requirement You will just click on expand and then press OK see what this is gonna be now this is a This is no longer a stroke but yours This shape will behave exactly like an object So after this much we will take it lightly Let’s make it smaller and place it here Along with this, you will find something like this here You will get to see the design alright then ahead Let’s move on and some more down here. if we make it then first of all we will make a We will draw a rectangle shape in this way We’ll give you a pen tool here. And we will create a new note here or We will create a new anchor point and click it After creating, now we simply dik Make changes to its shape using the session tool If we can, then we have done it in this way here changed it ok If I want to make it smaller then do it You can place it wherever you want inside the object I go first now inside the view and from here my smart The guide on is absolutely correct and here also we have I placed it in some way like this Look, this has come to us in a shape I want to change its color so we Its color will be slightly white here It will not be even slightly dark grey It will be very light grey, we have seen its colour here I have chosen it, we are here Rectangle One We’ll take the rectangle tool and here We drew a rectangle, its outline that’s me here sorry its joe corners I’ll round it up a little bit A great gift, a copy of it here but there is another copy of this here it is fine The two copies will be made smaller a little bit. And the middle one is a little bigger The shape is perfect right in its corner we will place this also in its corner in place We will do it, okay, we will select all three let’s do a group after grouping what am i going to do is put it in the center I will align it, it will come after getting aligned Let’s ungroup it from Control again. Shift will ungroup it again ok Then here we take a circle, an ellipse and here’s a through ellipse here’s a Draw a circle, fill it with any color let’s take it so that we can get an idea, then here Look, we filled this color here Let’s place a copy and place it here did that again another copy of this and here we placed this okay so look We have got three things ready References are outlined in all three That’s why I have written all three here The outline is placed We will remove the fine outline later Right now we just made an outline for understanding so that finally we can see that my object From where to where is it alright Having done this much, now we have to move forward and after moving forward here we will If we want to write some text here then we will But let’s write some text, suppose we I took it this is my silver plan I would like to bold this here okay So this is our bold one, this is silver on this one. This is our plan, sorry, its a copy we will do this but this is our gold on this y here But there is some other plan, suppose there is a diamond here Now let us consider its features If we want to write something we can write just then For example I mean I am on this for my reference I am writing on this for Am hotel Booking tourist guide fix it with everyone and make it light I will light it so that my main heading It looks a little different from that and is smaller too we have placed it properly then again Neither did we make a copy here nor something here takes the points ok right passport a visa okay let’s say we have this You have increased your points copy this place It’s done and let’s copy this to here he has got so much trouble if the center What we have to do is that the text is our center if it is there or not then we can do it What will we do for him easily? Simply You will choose your text and your object We will choose it and we have centered it choose this also like this did i center it then again in the last I chose this and centered it too. So that’s it, now we’ll add color inside it Let’s fill it by selecting all three Here inside it we have seen some such color But I put it on, okay, now we have it here too If you want to place images then we go here inside our place option and here we Let’s import some images okay So the first image is this, the second image is this The third image is this, we have put all three of them here we embed it so that our image If something were to happen to her, then There is some difference beyond our main image it shouldn’t fall into place, okay what should we give to it Do let’s put a little bit on the back side and let’s make this a clipping mask, okay? So one image is done, now comes the turn of the second one Make the image a little bigger, back it up as well and by selecting both of them we have put them here Clipping Mask Clipping Mask After that if you feel that we I want to do some work in images, that is up and down If you want to do something then there is no problem you can do that ok like this To the right and last we have this image if so then keep that too Use the shortcut key I did it and this also came back, give this also I’ve done the clipping mask, okay, so all three But our images have been put on all three We have made a plan about it it’s done well here’s what I have If we want a symbol also then we can use the pen tool for that Let’s use it and use the pen tool here But we drew a symbol like this gave ok and its which makes it a little smaller it is light like this it is ok here Let’s copy all three of them did it and got a copy here Come okay n here copy it down and this is it We placed the same copy here as well. it’s working like a bullet it’s alright after all this I will do something about it and in ips we can do that here we can draw a circle on you can control a copy of this c Control F and make it a little bigger Let’s do the image that’s in the power clip Let’s go and release it and it We don’t need the image here so this image we removed it okay just the one that circle That was what we wanted, even the circle got deleted is not it I want this circle here I want it gonna just ok and I will change its color let me do something, this color is ok and we will do this also do the back side I’m alright, let’s change its mode so we have already filled it and After filling, we have to modify it in some way If we want to change then what will we do for that we’ll go to our atible and here We go and see its opacity or any If we want to change the mode then we can change it so we took this overlay and We have to take the color which we want, approximately around 70 ok so look it looks like this it is coming ok you should copy this hey sorry we have to copy this We have copied it here as well and one of the same We have got the copy here Okay, after doing that thing at all three places if after all this it is coming to us Suppose we need to make something else here Someone else wants to make some design for him For this we took the pen tool and with the pen tool we here at I drew some shape like this, okay and that shape We filled the color inside this and let’s push this one back as well on the side so we have control here We used the end button and we used it for this I placed an identical copy on top of it at the back let’s flip it here We went into transformation and here we have When you reflect, you will see that the thing flips It will be done and we have kept it here It was placed in this manner and we also Here But in this way we have kept this thing now You are going out, right, we will fix it right now Don’t be worried about taking it I’ll tell you how to do it right How do we understand the things that are going out now? I want to control it, okay so she’s leaving now let him go there is no problem and We can also get a copy of the same if you want then down here sorry u should have taken a copy of this downwards and here we have the gradient Let’s feel it just a little better to create and we have great color here I felt I needed to buy a color, so I I’ll buy this one and whatever other colour I want that too I’m taking this right now then I I will make it dark go to this Okay, I will make it darker and darker After doing it I need to light it a little You will find that this thing has become darker ahead let’s light it a little bit, okay So look at this, there is something like this color shade for me An all right copy of this is visible Let’s flip it over, I’m here for that Sorry I went to transform reflect on it okay look at this it’s okay

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • Human Nature and Religion by Allama Javed Ghamdi – Study Notes

    Human Nature and Religion by Allama Javed Ghamdi – Study Notes

    This Islamic theological discussion explores the concept of fitra, or human nature, as the foundation for knowledge and morality. The speakers examine how human nature, with its inherent capacity for both good and evil, influences various fields of study, including social sciences and religion. They argue that religious teachings build upon and refine pre-existing innate moral inclinations. The conversation analyzes how knowledge develops through observation, experience, and the ongoing refinement of human understanding. Ultimately, the speakers posit that religion provides divinely inspired guidance that complements and enhances humanity’s inherent moral compass.

    The Nature of Humanity: A Study Guide

    Quiz

    Instructions: Answer each question in 2-3 sentences.

    1. According to the text, what is the common ground between different philosophies, viewpoints, and religious inclinations?
    2. What is meant by “Fitrat,” according to the speaker, and why is understanding it crucial?
    3. How does the study of nature apply not just to humans but also to other aspects of existence, as described in the source?
    4. What role do sensory experiences and inner feelings play in the acquisition of knowledge?
    5. How does the speaker suggest humans develop moral and intellectual capacities, and how does this differ from the way animals or computers might learn?
    6. How does the source explain the concept of “shame” in connection to the story of Adam and Eve, and what does it reveal about human nature?
    7. According to the text, how do good and evil relate to human nature?
    8. How do individual differences in cultural expression and behavior relate to a universal human nature?
    9. What is the speaker’s perspective on how religious teachings relate to human nature?
    10. Why does the text suggest that prophets and revelations are necessary if humans possess a natural understanding of good and evil?

    Answer Key

    1. The common ground between different philosophies, viewpoints, and religious inclinations is their attempt to relate themselves to the fundamental nature of humanity. Although different in their individual arguments, they all seek to understand and define this shared human nature.
    2. “Fitrat,” as explained in the text, refers to the intrinsic nature of something, especially of a human being, as created by God. Understanding it is crucial because it serves as the basis for all knowledge, and any belief or knowledge is stronger when aligned with it.
    3. The study of nature applies to all things, including animals, objects, and even concepts. Understanding the nature of something involves examining its purpose, special qualities, and the methods used in its creation, encompassing everything from a mobile phone to the universe itself.
    4. Sensory experiences connect us to the external world while inner feelings connect us to our own internal state. This combination of external and internal data forms the basis of our knowledge, interpreted through intellectual processing.
    5. Humans develop moral and intellectual capacities by not just repeating and copying, but through an inherent ability to analyze and debate. Unlike a computer or parrot, a child can internalize basic concepts of good and bad and then independently apply them to new situations.
    6. The feeling of “shame,” in connection to the story of Adam and Eve, arises after the awareness of nakedness, indicating an inherent sense of modesty within human nature. It demonstrates that these feelings are not just externally imposed but are part of their intrinsic understanding of themselves.
    7. Good and evil, according to the text, are both present within human nature, with humanity having the potential for both. The capacity to choose between them is an integral part of what makes us human.
    8. Cultural expressions and behavioral differences are seen as regional variations within a broader universal human nature. The text argues for the existence of core human values that transcend cultural differences and are expressed in the same way everywhere, despite variations in surface expressions.
    9. Religious teachings, as portrayed, are a detailed explanation of the human nature already present in people. Religion provides a system for understanding and acting on these inherent characteristics in a way that aligns with divine guidance.
    10. The text suggests that while humans do possess an inherent understanding of good and evil, divine revelation through prophets is necessary to offer more detailed guidance and training for proper conduct, while also explaining the purpose and ultimate goal of our lives. It is suggested that, without this guidance, humans would have spent centuries to reach the level of understanding present in religious teachings.

    Essay Questions

    1. Discuss the significance of “Fitrat” (nature) as the foundation for all knowledge, and how it shapes our understanding of human behavior and existence. Explore the various levels of knowledge that are mentioned in the text, and analyze how they relate to each other.
    2. Evaluate the claim that human beings possess inherent moral and intellectual capacities. To what extent are these capacities innate, and how are they developed through learning, experience, and societal influences? Support your answer by using examples and observations drawn from the text.
    3. Analyze the relationship between religion and human nature, according to the source material. How does the text argue that religious teachings are rooted in the understanding of our fundamental being? In what way, if at all, is it suggested that religion is an imposition on or a corruption of human nature?
    4. Explore the concept of human tension as presented in the source, and discuss its role in the development of culture and civilization. How does this tension relate to the ongoing struggle between good and evil within human beings? Use the examples of respect for parents to help you explain.
    5. How does the text address the apparent contradiction between the presence of universal human nature and the diversity of human actions and cultures? In your analysis, discuss how various forms of knowledge (e.g., social sciences, religious teachings) are used to understand the relationship between the individual and the collective.

    Glossary

    • Bismillah Rahman Rahim: An Arabic phrase that means, “In the name of God, the Most Gracious, the Most Merciful,” often used to begin something.
    • Fitrat: The innate or inherent nature of something, especially in reference to human nature as created by God.
    • Jamaat: A community or group, often with a shared purpose or identity.
    • Aflak: The heavens or celestial bodies; the study of them.
    • Hadith: Sayings or actions of the Prophet Muhammad, used as a source of guidance in Islam.
    • Jabat: A word the text uses as an alternative way to refer to nature, or fate.
    • Mashe: Refers to the inclinations and tendencies of the human character.
    • Adar, Rasu, and Aqwaaba: Moral inclinations, as listed in the source material.
    • Mutaal is Nagji: A phrase used in the text to describe something as being studied, or seen as a point of discussion.
    • Mushahid: Observation or witnessing; a key component in the acquisition of knowledge, according to the source.
    • Phi (Induction): An intellectual process used to verify or to determine truth by collecting multiple perspectives and/or instances of the same thing.
    • Aqli Istam: Intellectual understanding or reasoning process.
    • Istam Baati: Inner knowledge that emerges from the mind.
    • Ilm Ifran: Insightful or spiritual understanding.
    • Kharij and Mashri: The ideas of what is exterior and interior, how these things influence feelings.
    • Ansar: A term meaning “helper,” and implying the core concepts of human nature as an aid to human life.
    • Taqwa: God-consciousness, piety, or awareness of one’s responsibilities before God.
    • Tabat Kha: A term related to purity, specifically of food and drink.
    • Akhlaq Aaliya: High morals, ethics.
    • Hifzoor: Keeping modesty, especially in reference to covering parts of the body.
    • Surah Ara: A chapter in the Quran.
    • Surah Noor: A chapter in the Quran.

    Human Nature and Divine Guidance

    Okay, here is a detailed briefing document analyzing the provided text:

    Briefing Document: Analysis of “Pasted Text”

    Introduction:

    This document analyzes a conversation, likely a recorded discussion, about the nature of human beings (“Fitrat”) and its relationship to knowledge, morality, religion, and the divine. The speakers explore how human nature, as understood through observation and experience, acts as a foundation for various forms of knowledge and how religion both acknowledges and refines it. The speaker most often referred to is Javed Ahmed Gadi.

    Key Themes and Ideas:

    1. The Universal Significance of Human Nature:
    • The discussion begins by emphasizing that every philosophy, viewpoint, and religious inclination attempts to understand human nature. This is viewed as a universal phenomenon.
    • “Every philosophy, every viewpoint, every religious inclination of the world declares itself to be similar by nature…”
    • Human nature is seen as the basis for all knowledge, because you cannot measure the world without understanding its maker.
    • The fundamental questions about human nature—its origins, purpose, and inherent capacities—are highlighted.
    • The idea that things are created with intention (by humans and by the divine) is used as a springboard for exploring “nature.”
    • The speaker emphasizes that when studying any created thing (animals, objects, humans), the focus is always on understanding its nature. This is described as “Fila ti fatar naha.”
    • “Whatever has been created has been done with some method, some style, some intention, some year.”
    • The study of human beings, including their behavior as individuals and their collective experiences, is essential for self-knowledge.
    1. “Fitrat” as Inherent Design:
    • “Fitrat” is described as the inherent design or principle upon which a thing is created by its creator. It is not merely an abstract concept but a set of rules and regulations inherent to human beings.
    • The Quranic phrase ‘fatar nasa alaha’, is used to emphasize this.
    • To understand something, one must understand the principle of its creation.
    • The importance of studying human nature, with the intention of suggesting how people should act, is emphasized.
    • Knowledge based on human nature has a strong foundation.
    • All forms of knowledge are rooted in this study of nature.
    1. Internal vs. External Knowledge and the Development of Concepts:
    • The discussion explores how knowledge is acquired and how concepts develop, questioning if they are learned externally or discovered internally through study.
    • The “creator” has placed intentions within beings that manifest over time.
    • The human creation of civilization, art, culture, books, etc., are examples of the manifestation of human nature. This would not have been possible by other creatures, such as dogs or cats, who do not have this inherent potential.
    • The human being is born with the capacity to learn, think, and develop morals, which is different from just mimicking behaviors. For example, children learn to apply concepts of good and bad beyond specific examples.
    • Human aesthetic sense is also an inherent quality.
    • Human senses connect with the external world, but also with the internal world of feelings, emotions, and self-awareness.
    • The communication of feeling (e.g. pain) is not just words, but a shared internal human experience.
    • Human intellect allows us to process and understand both internal and external data.
    1. The Role of Experience and Observation:
    • Knowledge develops through a combination of experience (“mushahid”) and observation. Experience and observation can be external, but also verbal (communication).
    • There is always the possibility of mistakes in observation or reflection, however, knowledge progresses through correction of these errors.
    • “Induction” (the testing and widespread application of observations) is necessary to achieve a more objective and accurate understanding of reality. This is an ongoing process.
    • This ongoing process of testing and verifying information is necessary for the expansion of human knowledge.
    • Through intellectual analysis and critical thinking, knowledge reaches a worthy state.
    1. The Internal Struggle of Good and Evil:
    • The concept of an inherent internal struggle within humans—the “courage of good and evil”—is highlighted.
    • This “courage” can lead humans to both good actions and evil actions.
    • Even those committing evil do not like to be the victims of that evil.
    • The community described in the Quran had lost sensitivity to these moral feelings. This does not mean, however, that they no longer possessed them.
    1. The Scope of “Fitrat” and the Foundation of Knowledge:
    • The “bravery” that Allah has given man can improve social, political, and worldly life, and all education has come from this.
    • This “Fitrat” is the base of human’s moral and intellectual existence.
    • All forms of knowledge, including science, social sciences, and the arts, are rooted in this inherent design of human beings.
    1. Religion as an Affirmation and Refinement of “Fitrat”:
    • The speaker asserts that Allah’s religion has been directly inspired into human nature, or Fitrat.
    • The religion received through prophets is a guidance inspired in the nature of humans.
    • Religion, as understood through the prophets, confirms the inherent human desire for worship, purity, and morality.
    • Religious practices (prayer, fasting, charity) are seen as an expression of humanity’s relationship with the divine.
    • The speaker says that religious content is based on four things: one’s relationship with God, purity of the body, correct diet, and high morals. All of these are present in human nature.
    • The religion refines it, that is, it comes and nurtures that seed of the Fitrat.
    • The Quran has revealed that this very human nature we are witnessing is the same one that was present in Adam.
    • Prophets are described not as creating human nature, but as coming to guide and cultivate it.
    • Prophethood is considered a blessing that ensures that a person is not left to go through an endless process of trial and error on their own before facing judgement.
    • It is through prophets that the knowledge of the Fitrat is converted into details.
    1. Adam’s Original Actions and the Revelation of Shame:
    • The story of Adam’s mistake and subsequent repentance in the Garden of Eden is reinterpreted.
    • It is argued that the feeling of shame and modesty was not imposed externally, but was a natural feeling that arose within Adam and Eve after their transgression.
    • The emphasis is on the internal realization of what should be covered, rather than the external order to cover it.
    • The Quran’s description of the incident is framed as an example of the innate nature of humans.
    • The specific commands of the Quran regarding dress code and modesty is not simply an external law, but rather a means of giving further detail to the manifestation of the Fitrat.
    1. The Ongoing Nature of the Discussion:
    • The conversation is presented as an ongoing investigation into the nature of human beings and their place in the world.
    • The speakers do not shy away from discussing the complexity of their ideas, including the origin of evil, the struggle of human will, and the nature of religious authority.

    Quotes of Particular Significance:

    • “Every philosophy, every viewpoint, every religious inclination of the world declares itself to be similar by nature, although all these viewpoints are different from each other and have their own individual… but they want to establish their relation with the nature of man.”
    • “This nature of man is interpreted as a bilam nature. Why is its subject so painful and important? How does this nature come into existence?”
    • “If you look carefully, whatever has been created has been done with some method, some style, some intention, some year.”
    • “The words of the Holy Quran Fila ti fatar naha, this is not related only to humans, the Jamaat also has a nature, the Prophet also has a nature…”
    • “When the creator of this universe created man, then on which principle was he born, ‘alaiha’ Unless you study what rules and regulations were followed, what time and place it happened, you will not have any knowledge about the human being.”
    • “See, the thing is that whenever you observe any creature, the creator of that being has created it with some special intentions and they are clearly present inside that being, they manifest with time.”
    • “The basic trait of a human being…that is, he has good qualities, he has morals, he is an intellectual existence…”
    • ” In fact, it does not take long before the differences between your likings and his likings start surfacing. If this is a thing to this extent, then this knowledge gets absorbed in a person. It has been done as if it is an inspiration within him…”
    • ” I also have senses; whatever goes on inside me, I express that as well. I see, I feel that too. Till today, whatever we have felt in our inner self, when we have expressed them, you have also immediately said that yes, I also feel the same way, then the feeling starts getting transferred to me.”
    • “…the feeling of modesty should be there only if you say pain in this way It is like he would be in a state of trouble, in a state of turmoil and then Allah would tell him to pick up the leaves and cover them. It is a beautiful example, it has not happened so much, the work has come into existence, a complete thing has come into existence.”
    • “My book Mizan must have come to your notice in which I have explained the life and times of my life While describing the outcome of the whole study, he has explained the entire religion, that is, the religion of Allah which has been received through the prophets. Humans also make religion and it is also made by studying the nature of humans.”
    • “Deen Allah This is the guidance of Tala which he first inspired in the nature of man. Now it is clear why I am saying this because this has been said by Allah himself, i.e. I did not say this on my own, it was said by Allah himself.”
    • “…the same nature was explained in detail. We started putting it in.”
    • “…it was necessary that if Allah has to answer me then I have to depart from this world today, Adam al-Salam also had to depart, he may live for 100 years or 1000 years, in any case I have to live and go before God If I have to answer then the education that was given in my nature had to be converted into details in my life for those details because I was about to be a part of the Quran that is why Allah guided me so Allah Ta’ala himself also says that this guidance I have done it, that is, after the ideological guidance, this is my favour.”
    • “Well then the picture is also such that it is thought that there was no one to interrupt nor was there any pure soul in him, brother And the Bhasas had gained an upper hand, well, and this happens many times, but all the people had died, so where did this fall of Lot come from, he was also the same, right?”

    Conclusion:

    The text presents a rich and complex discussion on human nature, its relationship with knowledge and religion, and the ongoing process of self-discovery. The conversation emphasizes that “Fitrat,” the inherent design of humanity, is a basis for knowledge, morality, and religious understanding. It highlights the importance of observation, experience, intellect, and the ongoing tension between good and evil in the human experience. The speaker uses these concepts to reinterpret religious narratives, and presents “Fitrat” as a key to understanding humanity’s relationship with the divine.

    Human Nature and Divine Guidance

    Frequently Asked Questions

    • Why is the study of human nature considered so fundamental across various philosophies and perspectives?
    • The study of human nature is seen as fundamental because it is the basis for understanding all created beings, their purpose, and how they function. Just as everything in the universe, from inanimate objects to animals, is understood by examining its unique characteristics and purpose, understanding human nature provides the foundation for understanding human behavior, societies, and even how humans relate to their Creator. This study allows us to understand how humans function, what motivates them, and how knowledge itself is acquired and shaped.
    • What does the concept of Fitrat (nature) signify, particularly in the Quranic context?
    • In the Quranic context, Fitrat (nature) refers to the inherent disposition with which God created humans. It is not merely a biological or psychological state but encompasses the moral and intellectual potential with which humans are endowed. The Quranic phrase “fatar nasa alaiha” signifies that humans are created with a fundamental nature that includes certain capacities and tendencies, and understanding this nature is crucial to human development and knowledge. It is the blueprint based on which the Creator created humans, and studying this blueprint is essential for acquiring knowledge about humans.
    • How does the concept of ‘nature’ relate to the acquisition of knowledge?

    The understanding of nature, be it of humans, animals, or any other aspect of creation, serves as the base for all knowledge. When studying anything, one examines its properties, how it functions, and its purpose. Knowledge is acquired by understanding these fundamental aspects. If knowledge is aligned with the nature of its subject, it gains a solid foundation; otherwise, it remains an unsubstantiated assertion. Whether it’s a lion or a mobile phone, understanding its nature is the foundation for our understanding of it.

    • Is human nature solely determined by external influences or does an inherent aspect of being exist?
    • While external influences such as language, culture, and education play a role, humans are not mere blank slates. They possess inherent capabilities and traits that emerge as they develop. These include moral inclinations (good/bad), an aesthetic sense (beauty/ugliness), and intellectual ability. External experiences reveal these predispositions but they are not created by it.
    • How do moral, intellectual, and aesthetic faculties manifest in a human being’s development?
    • Moral, intellectual, and aesthetic faculties are not just learned; they emerge naturally as a child develops. For example, the moral sense is innate. A child may begin to discern between good and bad after being taught a few examples and then they can independently apply these concepts to other situations. Similarly, aesthetic sense is apparent when they start showing a preference for beautiful things. The intellectual faculties manifest through a child’s ability to reason, question, and analyze. They are innate but develop with time and experience.
    • How does religious knowledge align with human nature according to the source?
    • Religious guidance, as given by prophets, aligns with human nature because it is divinely inspired and based on the inherent human disposition as created by Allah. The core elements of religion, like the worship of God, seeking purity of body and soul, and striving for high moral character ( akhlaq), resonate with these aspects of human nature. Thus, religious teachings do not contradict human nature but rather build upon and refine it. The nature was given first, and divine guidance came later to clarify it further.
    • What is the role of Taqwa (God-consciousness) and obedience in shaping human behavior, and how does it relate to human nature?
    • Taqwa, in this context, is not seen as something separate from human nature but rather as the ultimate aim of developing the inherent tendencies present in it. Practices like fasting, prayers, and other acts of obedience, are not simply arbitrary laws. They train and refine human nature and ultimately cultivate Taqwa. They are designed to elevate the person to a higher state of purity and moral excellence, making them more capable of realizing their true potential. This is similar to how athletes have to train their bodies to become better in their respective sports.
    • Why was prophethood necessary if humans already possess an inherent understanding of good and evil through their nature?
    • While humans are born with the inherent capacity to recognize right from wrong, prophethood was necessary to provide clear guidance, correct deviations, and offer a detailed framework for moral and spiritual development. It is similar to how a seed has the potential to sprout but needs a gardener to water and nourish it. Prophets help articulate the principles already within human nature and also provide a code of conduct to live up to the true potential of human nature. Prophethood, therefore, is considered a favor and a mercy that offers clarity and completeness to what humans are already predisposed towards. It is not a replacement for human intellect but is given so that human intellect is guided properly towards good.

    Human Nature and Divine Guidance

    Okay, here’s the timeline and cast of characters based on the provided text:

    Timeline of Main Events/Concepts Discussed

    1. Creation of Humanity: The discussion begins with the premise that all viewpoints consider human nature as fundamental. God created humans with specific intentions and qualities (“Fila ti fatar naha”) which define their nature. This nature is not limited to humans alone but applies to all things.
    2. Innate Knowledge/Fitra: Humans are born with an inherent understanding of their nature, which includes moral, intellectual, and aesthetic capabilities. This isn’t purely learned but is an innate potential.
    3. Development of Knowledge: The knowledge of human nature develops through experience and observation, both internal (feelings, sensations) and external (interactions with the world, learning). Knowledge is built upon this foundation, with language, etiquette, and training further shaping it.
    4. The interplay of innate ability and experience: The discussion highlights that humans are born with an ability to learn and improve, that the moral, aesthetic, and intellectual aspects of human beings are present from birth, with the capacity to grow and develop.
    5. Application of knowledge: Humans develop knowledge of the world through observations and experiences. They then build on this base through repeated observation, experimentation, and the induction of facts into established knowledge. This knowledge is not static but is always subject to revision through critical analysis.
    6. Moral Inclinations: Humans possess the potential for both good and evil, with the “courage” to choose between them. This capacity is part of their nature but can be influenced by desires and external factors.
    7. Religious Understanding: Religion is presented as guidance inspired by God within human nature. The core principles of religion include the relationship with God (through worship), bodily purity, and high morals. These principles are argued to be reflected in human nature.
    8. Prophethood: The concept of prophethood is introduced, with the idea that prophets (like Adam) were not ‘blank slates’ but were individuals whose human nature was aligned with the guidance they received from God. The revelation from God built upon the innate nature, like a gardener nurturing a seed.
    9. Adam and Eve’s transgression: The discussion brings up the story of Adam and Eve. When they ate the forbidden fruit, they felt a sense of shame, which is an example of an innate sense of morality. God does not arbitrarily impose morality, but it stems from within human beings, and the role of God and the prophets is to build upon this foundation.
    10. Dress and modesty: The feeling of shame was a manifestation of what was innate to them, thus they covered themselves with leaves. This was a foundational act, on which the future understanding of religious attire was founded.
    11. Ongoing Exploration of Human Nature: The discussion concludes with the recognition that the study of human nature is an ongoing process, requiring continuous analysis, and that human nature is complex, with both positive and negative aspects that can be shaped by individual and social forces.

    Cast of Characters with Bios

    • Mohammad Hasan Ilyas: The host of the program. He frames the discussion and poses questions to the guest. We know he is familiar with Islamic thought and is curious about the relationship between human nature and religious guidance.
    • Javed Ahmed Gadi: The main guest and subject of the interview. He is an intellectual, likely with a strong background in Islamic theology, philosophy, and comparative religion. He discusses the concept of human nature (“fitra”) from a religious perspective, incorporating both Quranic and philosophical arguments. He is shown to be able to articulate complex philosophical and theological points.
    • God (Allah): While not a character in the sense of a human being, God is a central figure in the discourse. God is presented as the creator of human nature, the source of religious guidance, and the ultimate judge. The text describes that God instilled “courage” (potential for both good and evil) in humans, and also reveals to them the details of religious practices.
    • Adam (Sayyedna Adam al-Salam): The first prophet of God and the first human being, Adam is presented as a figure who possessed the same innate human nature as we do. His story is used to demonstrate the link between innate human understanding and religious principles.
    • Prophets: (Mentioned Generally) This refers to a group of people who receive divine guidance and help to develop religious practices and morality. The text implies that all prophets built on the foundations of human nature, given by God.
    • Allama Iqbal: A poet, quoted to indicate that some things are universal to humanity, and others particular to certain contexts.

    Let me know if you have any other questions about this.

    Human Nature: Innate Qualities, Moral Inclination, and Knowledge Acquisition

    Human nature is a central concept in various philosophies and viewpoints, with each attempting to relate it to their own perspective [1]. The study of human nature is considered important and complex, with questions arising about its origin, its basis in individual abilities, and whether it is fundamentally innate or learned [1].

    Key aspects of human nature, according to the sources, include:

    • Innate Qualities: Human beings are created with specific intentions and qualities [2]. These inherent traits are not unique to humans, but also exist in other creatures [2, 3]. The nature of a thing is seen as a collection of its special qualities when viewed as a group [4].
    • Moral Inclination: Humans possess inherent moral inclinations including good qualities, morals, and intellectual capabilities [1, 3]. These traits begin to appear in childhood and develop over time [3].
    • Knowledge Acquisition: Humans have an inherent ability to learn, including language [2, 3]. Knowledge is gained through observation, experience, and reflection on both the external world and internal feelings [5, 6]. The knowledge that humans acquire is built upon a foundation of understanding the nature of things [7].
    • Fitra: The term “Fitra,” used in the Quran, refers to the principle upon which the creator made humans. It relates to understanding the rules, regulations, and circumstances under which a human being is born [4, 7].
    • Good and Evil: Human nature has the capacity for both good and evil, and humans have the power to choose between them [8].
    • Intellect: Humans are intellectual beings who process and analyze information, creating their own understanding of the world [6, 9]. This intellectual capacity allows them to form opinions and make judgments [3].

    The sources also discuss how human nature relates to religion and knowledge:

    • Religion: Religion is seen as a means for the moral development of human beings, building upon the inherent nature of humans [10]. Religious teachings include the importance of purity, worship, and morality, and these elements are also found in human nature [11, 12].
    • Knowledge of Nature: The study of human nature is essential for acquiring knowledge about the world and oneself [7]. Knowledge is gained through a process of observation, experience, and critical analysis [6, 13].
    • Prophethood: Prophethood is seen as a divine favor aimed at guiding humans toward their inherent potential [14, 15]. Prophets, starting with Adam, helped to explain and develop the details of human nature, as it was not an empty box but had the ability to sprout on its own [12, 16].
    • Human behavior and society: Human behavior and social sciences are born from understanding how human beings behave both individually and collectively. Knowledge of self emerges from the study of life and death, and this knowledge of self can be considered in the broader concept of human nature [4].

    The sources emphasize that human nature is a complex and multifaceted concept, with various factors contributing to its understanding.

    Fitra and the Foundation of Religious Inclination

    Religious inclination is a significant aspect of human nature, according to the sources, and is deeply connected to the concept of “Fitra” [1-3]. Here’s a breakdown of how the sources discuss this:

    • Religion as a Means for Moral Development: Religion is viewed as a path for the moral development of human beings, building upon their inherent nature [3]. The sources suggest that religious teachings are not arbitrary but are designed to resonate with the innate qualities and inclinations present in humans [3].
    • Connection to “Fitra”: The term “Fitra,” as used in the Quran, describes the principle upon which humans were created [2, 4]. This concept implies that humans have an inherent predisposition towards recognizing their creator and understanding the moral and ethical framework of existence [3].
    • Components of Religious Teachings: Religious teachings, according to the sources, consist of four key components [3, 5]:
    • Worship (Ibadah): This is the expression of the relationship between an individual and their Lord, which is developed through struggle, devotion, and support [5].
    • Purity: Maintaining purity of the body, including the food and drink consumed, is considered essential [5].
    • High Moral Character (Akhlaq Aaliya): The sources emphasize the importance of embodying the highest moral standards [5].
    • Relationship with God: The sources also discuss how the relationship with God is developed through worship, obedience, and support [5].
    • Universal Feelings: The feelings of cleanliness and the inclination towards morality are described as universal human feelings [5, 6]. Though expressions of these feelings may vary, the underlying inclination is present in all humans [6]. This suggests that the core principles of religion are not alien to human nature but are in fact deeply rooted in it [6].
    • Religion’s Foundation in Human Nature: Religion is seen as having its foundation within humans, with the key elements of religious teachings being present in human nature [6]. The sources suggest that religious knowledge is not separate from the knowledge inherent in human nature [7].
    • Prophets and Guidance: Prophets are seen as playing a key role in elaborating upon and guiding human nature [7]. They provide the details and practical applications of the inherent knowledge, acting as a gardener who nurtures the seeds of knowledge present within human nature [7]. This guidance is considered a divine favor, offering clarity and direction to humans in understanding and fulfilling their nature [8].
    • Accountability: Individuals are accountable for the inherent knowledge within their nature, and religious teachings provide the details and structure for this [9].

    In summary, the sources emphasize that religious inclination is a fundamental aspect of human nature, deeply rooted in the concept of “Fitra.” Religious teachings align with and develop the innate moral, ethical, and spiritual inclinations of humans [3, 6]. The role of religion and prophets is to provide guidance and clarity to the inherent human understanding of the world and one’s relationship with God [7, 8].

    The Creation of Knowledge

    Knowledge creation, according to the sources, is a multifaceted process that involves observation, experience, reflection, and critical analysis [1-6]. It is deeply intertwined with the understanding of human nature and the world around us [1, 2]. Here’s a detailed breakdown of the knowledge creation process, as described in the sources:

    • Foundation in Nature: Knowledge is built upon understanding the nature of things, whether it’s a physical object, a living being, or an abstract concept [1-3]. This involves identifying the special qualities, characteristics, and purpose of the subject being studied [1, 2].
    • Observation and Experience: Knowledge begins with observation and experience [5]. This involves using the senses to gather information about the external world [4, 7]. Experiences can be external, through direct interaction with the world, or internal, through introspection and reflection on one’s feelings [4, 5].
    • Reflection and Analysis: The information gathered through observation and experience is then subjected to intellectual analysis [4-6]. This involves processing, organizing, and interpreting the data [4]. Humans, being intellectual beings, have the capacity to evaluate and critique the information they receive [4, 6].
    • Induction: The process of induction is key to knowledge creation. This involves taking the knowledge that has been gathered through observation and experience and applying it on a larger scale [5, 6]. Induction involves looking for patterns and connections in the information to form a more general understanding [6].
    • Implementation and Verification: The knowledge gained through induction is then tested and verified through implementation [5, 6]. This involves putting the knowledge into practice and observing whether it holds true in different contexts [5]. The process is often repeated to refine the knowledge and correct errors [6].
    • Critical Analysis: A key part of knowledge creation is critical analysis [8]. This involves continually questioning and evaluating existing knowledge, looking for mistakes, and seeking more complete understanding [6, 8].
    • Mistakes and Corrections: The sources acknowledge that mistakes can occur at every level of the knowledge creation process, from observation to interpretation [6]. The repetition of observation and experimentation can help to correct these errors [6].
    • Subjectivity to Material Reality: Through the process of induction and implementation, subjective perception and current experience transforms into a material reality [5, 6]. This occurs when knowledge becomes widely accepted and seen as an objective truth [6].
    • Intellectual Processing: The intellect plays a crucial role in organizing and processing the information collected [6]. The intellect creates a framework for understanding the world by connecting the information, and this allows for the creation of a system of knowledge [6].
    • Expansion of Knowledge: As knowledge expands, the collection of facts and information also changes [6]. This leads to the further refinement and expansion of knowledge [6]. The pursuit of knowledge is ongoing, with the later stages of intellectual inquiry building on earlier findings [6].

    The sources emphasize that knowledge creation is not a passive process but an active one that requires intellectual engagement, critical analysis, and a willingness to learn from mistakes [4-6, 8]. It is also a cumulative process, with new knowledge building upon existing knowledge [5, 6]. The sources posit that human beings have an innate capacity to learn and understand, and the drive for knowledge creation is part of the human experience [1, 2, 4, 7].

    Moral Development: Nature, Nurture, and the Human Spirit

    Moral development is a significant theme in the sources, closely linked to human nature, religious inclination, and the process of knowledge creation. Here’s an overview of how moral development is discussed:

    • Innate Moral Inclination: Humans are born with an inherent moral compass, possessing good qualities, morals, and intellectual capabilities [1]. These qualities are not imposed from the outside but are part of human nature itself [1, 2]. This suggests that moral development is not simply a matter of learning from external sources, but also an unfolding of inherent potential.
    • Development Through Learning and Experience: Moral development is not static; it evolves over time through learning and experience [1]. As children grow, they learn to differentiate between good and bad and begin to apply moral principles to various situations [1]. The sources suggest this process involves a combination of internal reflection and external influences.
    • Role of Intellect: The development of morality is related to intellectual growth [1, 3]. As individuals develop their capacity to think and analyze, they also gain a deeper understanding of moral principles. The intellect helps individuals to evaluate their actions and to make informed moral decisions [3].
    • Influence of External Factors: Moral development is also shaped by external factors, including family, culture, and society [4]. For example, the sources describe how a child in Africa may develop different ideas of respect compared to a child in Delhi due to cultural norms [4]. This demonstrates that while humans have an innate moral sense, its expression can be influenced by environmental factors [4].
    • Connection to Religious Teachings: Religious teachings are considered a means for the moral development of human beings, building upon their inherent nature [5]. The sources emphasize that religion provides a framework for understanding and applying moral principles, guiding individuals towards ethical behavior [5, 6].
    • Purity as a Moral Concept: The sources emphasize the importance of purity, both physical and moral, in religious teachings, linking it to the concept of moral development [6]. This suggests that being morally upright involves maintaining purity of intention, action, and character [6, 7].
    • Universal Moral Values: The sources indicate that certain moral values, such as honesty, charity, and truthfulness, are recognized and valued universally [7]. This suggests that while there may be cultural differences in how these values are expressed, the underlying principles are common to all humanity.
    • The Capacity for Good and Evil: Human nature has the capacity for both good and evil, and moral development involves learning to choose good over evil [8]. This capacity is part of human nature and it is a constant struggle to choose the path of good [8].
    • Accountability: Individuals are held accountable for their moral choices, which underscores the importance of moral development [9].
    • The tension of human nature: The internal tension created by the capacity for both good and evil is what the sources describe as humanity, and from this tension comes culture and civilization [10].

    In summary, moral development, as presented in the sources, is a complex interplay between innate moral inclinations, intellectual growth, external influences, and religious teachings. It is a dynamic and ongoing process that involves a struggle to choose good over evil, and it is a fundamental aspect of what it means to be human.

    Divine Guidance and Human Nature

    Divine guidance is a central theme in the sources, closely tied to the concepts of human nature (“Fitra”), religious inclination, and moral development. The sources present divine guidance as a necessary component for human beings to fully realize their potential and understand their purpose [1, 2]. Here’s a detailed explanation of divine guidance, based on the sources:

    • Inspiration in Human Nature: The sources suggest that divine guidance is first inspired into the very nature of humans. This means that humans have an inherent understanding of the divine, and a predisposition to seek it. This is linked to the concept of “Fitra,” which is the inherent nature upon which humans were created [3, 4].
    • Prophethood as a Divine Favor: The sources emphasize that prophethood is a divine favor, and not a requirement for God [5]. Prophets are chosen by God to elaborate on and guide human nature. They act as messengers who clarify the inherent knowledge present in human nature, and provide the details of religious teachings [2].
    • Guidance Through Prophets: Prophets are presented as the means through which divine guidance is transmitted. They provide the practical applications of inherent knowledge, and nurture the human understanding of the divine. Prophets are like a gardener who comes and waters, nourishes, and trims the seed of inherent knowledge to make it grow [2].
    • Details of Religious Teachings: Divine guidance, as expressed through religious teachings, provides the details necessary for a moral and spiritual life. This includes aspects like worship, purity, and high moral character. These aspects are not imposed from the outside, but are connected to the inherent nature of human beings [1, 6].
    • Religion as Divine Guidance: The sources explain that religion, as revealed through the prophets, is the guidance of God. This guidance is not arbitrary, but rather, it is rooted in human nature. The purpose of religion is to bring out the inherent qualities and capabilities already present in humans [1].
    • Accountability and Divine Law: Humans are accountable to God based on the inherent knowledge placed within them [7]. Divine guidance helps in understanding and fulfilling this accountability. It is also important to note that this accountability exists in addition to the inherent capabilities humans have for creating knowledge [7].
    • Why Divine Guidance is Necessary: The sources pose the question: if humans have inherent knowledge, why is divine guidance through prophethood needed? The response is that humans, left to their own devices, take a very long time to acquire and implement knowledge, and can also make mistakes in the process. Divine guidance is needed to quicken the process and ensure that humans have a clear path.
    • The Example of Adam: The sources use the story of Adam to illustrate divine guidance. Adam, having made a mistake, received guidance from God, which led him to recognize his mistake and seek forgiveness. The story of Adam also highlights the innate feeling of modesty as an example of how humans are inherently aware of what is right and wrong.

    In summary, divine guidance is presented in the sources as an essential element in human existence, which is rooted in the inherent nature of humans. This guidance is provided through prophets and religious teachings and helps humans to understand their purpose, develop morally, and fulfill their accountability to God. It is a favor from God to humanity, that clarifies and quickens the acquisition of knowledge. The concept of divine guidance connects to many aspects of the human experience including, religious inclination, moral development, and knowledge creation.

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog