title
Full Stack Java Developer Course 2023 | Full Stack Java Developer Tutorial | Simplilearn

description
🔥 IITM Pravartak Professional Certificate Program In Full Stack Development - MERN (India Only): https://www.simplilearn.com/full-stack-developer-course-and-certification-iitm-pravartak?utm_campaign=SCE-FullstackIITM&utm_medium=DescriptionFF&utm_source=youtube 🔥Post Graduate Program In Full Stack Web Development: https://www.simplilearn.com/pgp-full-stack-web-development-certification-training-course?utm_campaign=FSJDFCFeb19&utm_medium=DescriptionFF&utm_source=youtube 🔥Caltech Coding Bootcamp(US Only): https://www.simplilearn.com/coding-bootcamp?utm_campaign=FSJDFCFeb19&utm_medium=DescriptionFF&utm_source=youtube This video on 'Full Stack Java Developer Full Course 2023' by Simplilearn will cover all the important topics such as Git, Core Java, Maven, HTML, Jenkins, CSS, Angular, SQL, and MongoDB with hands-on demos. In this full-stack Java developer tutorial, you will get complete knowledge about what full stack is and how Java is used in the field of web development. 00:00:00 Full Stack Java Developer Full Course 2023 00:06:26 Git Commands 01:06:18 Core Java Concepts 03:04:19 Maven Tutorial For Beginners 03:23:47 Jenkins 04:35:40 HTML & CSS Tutorial For Beginners 07:18:33 Angular Tutorial 09:24:51 SQL 09:52:26 MongoDB ✅Subscribe to our Channel to learn more about the top Technologies: https://bit.ly/2VT4WtH #FullStackJavaDevelopment #FullStackJavaDevelopmentCourse #FullStackJavaDeveloper #FullStackJavaDeveloperCourse #LearnFullStackJavaDevelopment #FullStackWebDevelopment #JavaFullStackCourse #JavaFullStackDeveloper #Simplilearn Who is a Full-Stack Developer? Let’s say you’re using your Instagram application. Every time you refresh, new content is loaded on your screen. You can like a picture, add new ones, search for profiles and do so much more. Although it provides a seamless user experience, there’s a lot that goes on in the backend. HTTP requests are made to the Instagram servers to retrieve and load information. This is facilitated with the help of backend frameworks. Typically every application consists of the front-end, the backend, and the database. A Full Stack Developer is associated with the creation of an application from its start to finish. He designs the front-end and the backend of an application while ensuring its efficiency, reliability, and other crucial features. ➡️ About Post Graduate Program In Full Stack Web Development This program will give you the foundation for building full-stack web apps using the Java programming language. You'll begin with the basics of JavaScript, and then venture into some of the more advanced concepts like Angular, Spring Boot, Hibernate, JSPs, and MVC. Now is the perfect time to get started on your career as a full-stack web developer! ✅ Key Features - Caltech CTME Post Graduate Certificate - Enrolment in Simplilearn’s JobAssist - Receive up to 25 CEUs from Caltech CTME - Simplilearn's JobAssist helps you get noticed by top hiring companies - Attend Masterclasses from Caltech CTME instructors - Live virtual classes led by industry experts, hands-on projects and integrated labs - Online Convocation by Caltech CTME Program Director - 20 lesson-end and 5 phase-end projects - Capstone Project in 4 domains - Caltech CTME Circle Membership - Build your own portfolio on GitHub ✅ Skills Covered - Agile - JAVA - Hibernate and JPA - Spring Core 50 - DevOps - HTML5 and CSS3 - AWS - JavaScript ES6 - Servlets - SOAP and REST - JSP 👉 Learn More At: https://www.simplilearn.com/pgp-full-stack-web-development-certification-training-course?utm_campaign=FSJDFCFeb19&utm_medium=Description&utm_source=youtube 🔥🔥 Interested in Attending Live Classes? Call Us: IN - 18002127688 / US - +18445327688

detail
{'title': 'Full Stack Java Developer Course 2023 | Full Stack Java Developer Tutorial | Simplilearn', 'heatmap': [], 'summary': 'This full stack java developer course 2023 covers a range of topics including git essentials, java programming, maven build tool, jenkins in devops, web development fundamentals, css techniques, angular framework, database commands, mongodb operations, and setup, offering comprehensive insights and practical guidance for learners.', 'chapters': [{'end': 378.913, 'segs': [{'end': 53.32, 'src': 'embed', 'start': 20.424, 'weight': 0, 'content': [{'end': 23.487, 'text': 'Hey guys, welcome to this full stack Java course.', 'start': 20.424, 'duration': 3.063}, {'end': 28.933, 'text': 'Java is one of the most popularly used languages for desktop app development.', 'start': 24.348, 'duration': 4.585}, {'end': 32.917, 'text': "And if you wish to learn Java full stack, then you're in the right place.", 'start': 29.673, 'duration': 3.244}, {'end': 37.481, 'text': "But before we begin, if you haven't subscribed to our channel already,", 'start': 33.777, 'duration': 3.704}, {'end': 41.085, 'text': 'make sure to hit the subscribe button and the bell icon to never miss an update.', 'start': 37.481, 'duration': 3.604}, {'end': 43.067, 'text': "So let's look at what's in store for you.", 'start': 41.645, 'duration': 1.422}, {'end': 53.32, 'text': "First we'll learn about version control systems like Git, followed by which we'll understand core Java concepts like operators, loops, inheritance,", 'start': 44.335, 'duration': 8.985}], 'summary': 'Java full stack course covering git and core java concepts.', 'duration': 32.896, 'max_score': 20.424, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC820424.jpg'}], 'start': 20.424, 'title': 'Full stack java course and java programming overview', 'summary': 'Introduces a full stack java course, emphasizing its relevance and popularity for desktop app development. it outlines course content including version control systems like git, core java concepts, maven, jenkins, and front-end development tools like html, css, and angular. additionally, it covers an overview of java programming, including its features, history, usage, and concepts such as platform independence, object-oriented programming, and oops concepts.', 'chapters': [{'end': 69.121, 'start': 20.424, 'title': 'Full stack java course overview', 'summary': 'Introduces a full stack java course, emphasizing its relevance and popularity for desktop app development, followed by an outline of the course content including version control systems like git, core java concepts, maven, jenkins, and front-end development tools like html, css, and angular.', 'duration': 48.697, 'highlights': ['The chapter introduces a full stack Java course, emphasizing its relevance and popularity for desktop app development, followed by an outline of the course content including version control systems like Git, core Java concepts, Maven, Jenkins, and front-end development tools like HTML, CSS, and Angular.', 'Java is one of the most popularly used languages for desktop app development.', 'The course will cover version control systems like Git, core Java concepts, Maven, Jenkins, and front-end development tools like HTML, CSS, and Angular.']}, {'end': 378.913, 'start': 69.501, 'title': 'Java programming overview', 'summary': 'Covers an overview of java programming, including its features, history, usage, and concepts such as platform independence, object-oriented programming, and oops concepts.', 'duration': 309.412, 'highlights': ['Java is a high-level programming language used in a distributed environment on the internet, popularly used in various applications like web, mobile, game development, and embedded systems. Java is a high-level programming language used in a distributed environment on the internet, popularly used in various applications like web, mobile, game development, and embedded systems.', 'Java is a computer-based programming language invented by James Gosling and Sun Microsystems in 1991, with three editions: Java Standard Edition, Java Enterprise Edition, and Java Micro Edition. Java is a computer-based programming language invented by James Gosling and Sun Microsystems in 1991, with three editions: Java Standard Edition, Java Enterprise Edition, and Java Micro Edition.', 'Java is platform independent, running on any machine due to compilation in bytecode, and features robustness, security, multi-threading, and portability while providing higher performance than other languages. Java is platform independent, running on any machine due to compilation in bytecode, and features robustness, security, multi-threading, and portability while providing higher performance than other languages.', 'Java follows object-oriented programming concepts like abstraction, encapsulation, inheritance, and polymorphism, making the code easier to understand and secure. Java follows object-oriented programming concepts like abstraction, encapsulation, inheritance, and polymorphism, making the code easier to understand and secure.', 'Java has features like garbage collectors, exception handling, and a bytecode format, simplifying and improving upon errors that occur in C and C++ languages. Java has features like garbage collectors, exception handling, and a bytecode format, simplifying and improving upon errors that occur in C and C++ languages.']}], 'duration': 358.489, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC820424.jpg', 'highlights': ['Java is one of the most popularly used languages for desktop app development.', 'The course will cover version control systems like Git, core Java concepts, Maven, Jenkins, and front-end development tools like HTML, CSS, and Angular.', 'Java is a high-level programming language used in a distributed environment on the internet, popularly used in various applications like web, mobile, game development, and embedded systems.', 'Java is a computer-based programming language invented by James Gosling and Sun Microsystems in 1991, with three editions: Java Standard Edition, Java Enterprise Edition, and Java Micro Edition.', 'Java is platform independent, running on any machine due to compilation in bytecode, and features robustness, security, multi-threading, and portability while providing higher performance than other languages.', 'Java follows object-oriented programming concepts like abstraction, encapsulation, inheritance, and polymorphism, making the code easier to understand and secure.', 'Java has features like garbage collectors, exception handling, and a bytecode format, simplifying and improving upon errors that occur in C and C++ languages.']}, {'end': 1768.355, 'segs': [{'end': 509.59, 'src': 'embed', 'start': 482.044, 'weight': 6, 'content': [{'end': 489.846, 'text': 'you get a command line utility using which you can fire up your git commands and ensure that you can bring up repositories.', 'start': 482.044, 'duration': 7.802}, {'end': 497.428, 'text': 'you can work with these repositories by adding files to it, committing changes to it and all those git commands would work perfectly well.', 'start': 489.846, 'duration': 7.582}, {'end': 501.589, 'text': 'so you can bring up a small repository and you can work with your repository using this git bash.', 'start': 497.428, 'duration': 4.161}, {'end': 509.59, 'text': 'But what does it take for you to share this repository with another user who has also got git bash installed on his system?', 'start': 502.045, 'duration': 7.545}], 'summary': 'A command line utility allows working with git repositories, but how to share with another user?', 'duration': 27.546, 'max_score': 482.044, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC8482044.jpg'}, {'end': 575.392, 'src': 'embed', 'start': 543.478, 'weight': 5, 'content': [{'end': 546.14, 'text': 'One is the cloud hosted one, which is the GitHub.com.', 'start': 543.478, 'duration': 2.662}, {'end': 553.567, 'text': 'And then the other one is an enterprise server, which comes as a black box that can be installed into your data centers.', 'start': 546.561, 'duration': 7.006}, {'end': 560.848, 'text': "So typically, organizations who don't want their source code to be put up on the cloud would go for this GitHub Enterprise servers,", 'start': 553.987, 'duration': 6.861}, {'end': 564.649, 'text': 'wherein they buy these servers, and these servers are hosted on their data centers.', 'start': 560.848, 'duration': 3.801}, {'end': 568.49, 'text': 'Other popular variant of the Git server is Bitbucket.', 'start': 565.229, 'duration': 3.261}, {'end': 575.392, 'text': 'This is from the famous Atlassian products and it integrates very well with all other Atlassian products like Jira.', 'start': 568.91, 'duration': 6.482}], 'summary': 'Github.com and github enterprise servers cater to different preferences, with the latter being chosen by organizations concerned about cloud storage, and bitbucket is a popular git server integrated with atlassian products.', 'duration': 31.914, 'max_score': 543.478, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC8543478.jpg'}, {'end': 693.598, 'src': 'embed', 'start': 667.798, 'weight': 1, 'content': [{'end': 672.799, 'text': 'so this is the https way of authenticating and sharing repositories.', 'start': 667.798, 'duration': 5.001}, {'end': 679.307, 'text': 'another popular way of sharing repositories or working with each other is called as SSH authentication.', 'start': 672.799, 'duration': 6.508}, {'end': 684.391, 'text': 'As many of you would know, SSH means nothing but creation of a private and a public key.', 'start': 679.708, 'duration': 4.683}, {'end': 689.595, 'text': 'A bunch of keys, public and private, are created on the client machine.', 'start': 684.872, 'duration': 4.723}, {'end': 693.598, 'text': 'While I create a keys, I will be asked for a passphrase.', 'start': 690.036, 'duration': 3.562}], 'summary': 'Using ssh authentication for sharing repositories involves creating public and private keys on the client machine.', 'duration': 25.8, 'max_score': 667.798, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC8667798.jpg'}, {'end': 740.051, 'src': 'embed', 'start': 714.692, 'weight': 0, 'content': [{'end': 719.916, 'text': 'So both HTTPS and SSH are popular ways of communicating with the Git server.', 'start': 714.692, 'duration': 5.224}, {'end': 721.377, 'text': 'Having said this,', 'start': 720.436, 'duration': 0.941}, {'end': 730.004, 'text': 'let me just get started by installing the git bash on my local system and then fire up some of these git commands and build up some repositories,', 'start': 721.377, 'duration': 8.627}, {'end': 731.525, 'text': 'make some changes in my repository,', 'start': 730.004, 'duration': 1.521}, {'end': 740.051, 'text': 'commit these changes and later use my github credential to connect to my github server and push my repositories out there.', 'start': 731.525, 'duration': 8.526}], 'summary': 'Using git, install git bash, build repositories, make changes, commit, and push to github.', 'duration': 25.359, 'max_score': 714.692, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC8714692.jpg'}, {'end': 1088.457, 'src': 'embed', 'start': 1059.548, 'weight': 2, 'content': [{'end': 1064.23, 'text': 'if I get into this folder, I see a bunch of directories and other configurations.', 'start': 1059.548, 'duration': 4.682}, {'end': 1070.613, 'text': 'if you see something called as a hooks directory, a couple of configuration files that are here in this directory,', 'start': 1064.23, 'duration': 6.383}, {'end': 1076.056, 'text': "all these relate to one or the other type of a client hook that can be enabled and there's info.", 'start': 1070.613, 'duration': 5.443}, {'end': 1076.916, 'text': "there's objects.", 'start': 1076.056, 'duration': 0.86}, {'end': 1081.932, 'text': 'this references a bunch of stuff that is there.', 'start': 1078.049, 'duration': 3.883}, {'end': 1083.033, 'text': 'so what is this folder?', 'start': 1081.932, 'duration': 1.101}, {'end': 1088.457, 'text': 'this is a magical git folder and this is created whenever a repository is initialized.', 'start': 1083.033, 'duration': 5.424}], 'summary': "The 'hooks' directory in the git folder contains client hook configurations for repository initialization.", 'duration': 28.909, 'max_score': 1059.548, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC81059548.jpg'}, {'end': 1391.708, 'src': 'embed', 'start': 1367.842, 'weight': 3, 'content': [{'end': 1375.764, 'text': 'now, if i run the git status command, it says modified this file, which is showing in red and it says you have one more file,', 'start': 1367.842, 'duration': 7.922}, {'end': 1376.925, 'text': 'which was an untracked file.', 'start': 1375.764, 'duration': 1.161}, {'end': 1378.705, 'text': 'all right.', 'start': 1376.925, 'duration': 1.78}, {'end': 1384.046, 'text': 'now, let me add both these files, because these are the changes that I want to incorporate.', 'start': 1378.705, 'duration': 5.341}, {'end': 1385.747, 'text': 'I would say git add dot.', 'start': 1384.046, 'duration': 1.701}, {'end': 1390.388, 'text': 'I run the git status command again and it says now this is a modified file.', 'start': 1385.747, 'duration': 4.641}, {'end': 1391.708, 'text': 'this is a new file.', 'start': 1390.388, 'duration': 1.32}], 'summary': 'Git status: 1 modified file, 1 new file', 'duration': 23.866, 'max_score': 1367.842, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC81367842.jpg'}, {'end': 1772.438, 'src': 'embed', 'start': 1741.415, 'weight': 7, 'content': [{'end': 1743.616, 'text': 'this was line that was added.', 'start': 1741.415, 'duration': 2.201}, {'end': 1751.837, 'text': 'if you look at the second commit, i added these lines.', 'start': 1743.616, 'duration': 8.221}, {'end': 1752.417, 'text': 'i made this.', 'start': 1751.837, 'duration': 0.58}, {'end': 1754.357, 'text': 'you know one line chain that was there.', 'start': 1752.417, 'duration': 1.94}, {'end': 1757.058, 'text': 'i also added this new file, which was not existing.', 'start': 1754.357, 'duration': 2.701}, {'end': 1767.274, 'text': 'these are the two commits that existed and, if you see the timestamp of the commit, this is the commit which was committed for 15 minutes ago.', 'start': 1757.058, 'duration': 10.216}, {'end': 1768.355, 'text': 'so what does this mean?', 'start': 1767.274, 'duration': 1.081}, {'end': 1772.438, 'text': 'is that the commit is the timestamp when we actually committed the code.', 'start': 1768.355, 'duration': 4.083}], 'summary': 'Two commits made, including a new file, and the latest commit occurred 15 minutes ago.', 'duration': 31.023, 'max_score': 1741.415, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC81741415.jpg'}], 'start': 379.594, 'title': 'Git essentials and repository management', 'summary': 'Covers essential git commands, installation, and configuration, emphasizing local repository management, git server interaction, and popular servers like github, bitbucket, and gitlab. it also discusses authentication, repository initialization, creating branches, understanding basic commands, and setting up and pushing repositories.', 'chapters': [{'end': 608.086, 'start': 379.594, 'title': 'Essential git commands and working with git servers', 'summary': 'Covers essential git commands, including installation and configuration, local repository management, and pushing changes to a git server. it also discusses the working model of git client-server, the importance of git branching and merging, and popular git servers like github, bitbucket, and gitlab.', 'duration': 228.492, 'highlights': ['Git is one of the most popular distributed version control tools. Git is highlighted as one of the most popular distributed version control tools.', 'GitHub.com is a cloud-hosted free service and provides free account registrations for anyone. GitHub.com is highlighted as a cloud-hosted free service with free account registrations.', 'GitLab provides a Git server and a runner for continuous integration, along with a community edition which is almost free of cost. GitLab is highlighted for providing a Git server, a runner for continuous integration, and a cost-effective community edition.', 'The chapter explains the working model of the Git client-server and the requirements for sharing repositories. The chapter explains the working model of the Git client-server and the requirements for sharing repositories.', 'The chapter discusses the importance of Git branching and merging as the killer features of the git distributed version control tool. The chapter discusses the importance of Git branching and merging as the killer features of the git distributed version control tool.']}, {'end': 933.003, 'start': 608.307, 'title': 'Git authentication and installation', 'summary': 'Discusses the process of registering on github.com, authenticating through https and ssh, installing git bash on windows, and configuring git settings, emphasizing the importance of correct global configurations and the installation process for git bash.', 'duration': 324.696, 'highlights': ['The chapter discusses the process of registering on github.com, authenticating through HTTPS and SSH, installing git bash on Windows, and configuring git settings, emphasizing the importance of correct global configurations and the installation process for git bash. The chapter covers registering on github.com, authenticating via HTTPS and SSH, installing git bash on Windows, and configuring git settings, emphasizing the importance of correct global configurations and the installation process for git bash.', 'The version of git bash used is 2.19.0, which is the latest version at the time of recording. The version of git bash used is 2.19.0, which is the latest version at the time of recording.', 'The git bash installation file is about 40 MB in size. The git bash installation file is about 40 MB in size.', 'The process involves setting the username and email ID as global configurations for git bash. The process involves setting the username and email ID as global configurations for git bash.']}, {'end': 1187.359, 'start': 933.003, 'title': 'Initializing git repository and creating master branch', 'summary': 'Details the process of initializing a git repository, creating a master branch, and the structure of the git folder, with insights into folder creation and branch management.', 'duration': 254.356, 'highlights': ["A folder is created to serve as the repository for multiple git repositories, with the creation of a folder named 'git_demo' and setting it as the base folder. Creation of base folder 'git_demo'", "The process of initializing a repository using the 'git init' command, resulting in the creation of a hidden '.git' folder and the default 'master' branch. Creation of hidden '.git' folder and default 'master' branch", "Explanation of the 'master' branch as the default branch created upon initializing a git repository, with insights into branch navigation and changes. Insight into the creation and navigation of the 'master' branch", "Creation of a file 'touchmaster.txt' within the repository using the 'touch' command, providing an alternative method for file creation. Creation of file 'touchmaster.txt' using the 'touch' command"]}, {'end': 1414.173, 'start': 1187.359, 'title': 'Understanding git commands', 'summary': 'Explains basic git commands like git status, git add, and git commit, showing how to add and commit files to a repository, with examples of creating, modifying, and committing files.', 'duration': 226.814, 'highlights': ['The chapter explains how to use git status to check the status of the repository, showing untracked files in red and staged files in green, providing a clear visual indication of the file status.', "It also covers the process of using git add to add files to the repository, with examples of adding specific files or using wildcards like 'git add dot' to add all files at once.", 'Furthermore, it demonstrates the git commit command, highlighting how to commit changes with a message, and checking the commit history using git log to view the commit ID, author, date, and commit message.']}, {'end': 1768.355, 'start': 1414.533, 'title': 'Git repository setup and push', 'summary': 'Explains how to set up a local git repository, push it to a github server, and link the local and remote repositories, detailing the commands and process involved in creating and pushing the repository and checking the commits.', 'duration': 353.822, 'highlights': ['The process of setting up a local Git repository and pushing it to a GitHub server is explained, including creating a placeholder for the repository on the server with the same name as the local repository and pushing the content from the local repository to the server. None', "The steps to link the local repository with the server URL using the 'git remote add' command are detailed, along with checking if the URL is added correctly. None", 'The process of pushing the local repository onto the server for the first time, including linking the upstream and the master branch to the server repository, and providing the necessary credentials, is explained. None', 'The details of the commits, including the added files, lines, and timestamps, are highlighted, providing insights into the commit history and changes made. 2 commits, with specific details of each commit']}], 'duration': 1388.761, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC8379594.jpg', 'highlights': ['GitLab provides a Git server, a runner for continuous integration, and a cost-effective community edition.', 'The chapter discusses the importance of Git branching and merging as the killer features of the git distributed version control tool.', 'The chapter covers registering on github.com, authenticating via HTTPS and SSH, installing git bash on Windows, and configuring git settings, emphasizing the importance of correct global configurations and the installation process for git bash.', 'The version of git bash used is 2.19.0, which is the latest version at the time of recording.', "A folder is created to serve as the repository for multiple git repositories, with the creation of a folder named 'git_demo' and setting it as the base folder.", "The process of initializing a repository using the 'git init' command, resulting in the creation of a hidden '.git' folder and the default 'master' branch.", 'The chapter explains how to use git status to check the status of the repository, showing untracked files in red and staged files in green, providing a clear visual indication of the file status.', "It also covers the process of using git add to add files to the repository, with examples of adding specific files or using wildcards like 'git add dot' to add all files at once.", 'The process of setting up a local Git repository and pushing it to a GitHub server is explained, including creating a placeholder for the repository on the server with the same name as the local repository and pushing the content from the local repository to the server.']}, {'end': 3977.49, 'segs': [{'end': 1956.857, 'src': 'embed', 'start': 1924.883, 'weight': 5, 'content': [{'end': 1932.426, 'text': "it prompts me for my password just to make sure that I've got the right kind of authentication to be adding a new key.", 'start': 1924.883, 'duration': 7.543}, {'end': 1934.662, 'text': 'so this one looks good.', 'start': 1932.981, 'duration': 1.681}, {'end': 1936.764, 'text': 'that means the keys were added successfully.', 'start': 1934.662, 'duration': 2.102}, {'end': 1941.327, 'text': 'let me check if my ssh keys are working well.', 'start': 1936.764, 'duration': 4.563}, {'end': 1951.493, 'text': 'so i do ssh, hyphen capital, t, i would say git at github.com.', 'start': 1941.327, 'duration': 10.166}, {'end': 1956.857, 'text': 'this is just to double check if my ssh keys are authenticated correctly.', 'start': 1951.493, 'duration': 5.364}], 'summary': 'Successfully added and checked ssh keys for authentication.', 'duration': 31.974, 'max_score': 1924.883, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC81924883.jpg'}, {'end': 2031.803, 'src': 'embed', 'start': 2006.754, 'weight': 13, 'content': [{'end': 2011.978, 'text': 'let me give a name for my repository and let me kind of initialize that with the readme file.', 'start': 2006.754, 'duration': 5.224}, {'end': 2015.06, 'text': 'I would call this my second repo.', 'start': 2011.978, 'duration': 3.082}, {'end': 2017.321, 'text': 'give some description.', 'start': 2015.06, 'duration': 2.261}, {'end': 2022.255, 'text': 'this is my second repo.', 'start': 2017.321, 'duration': 4.934}, {'end': 2030.281, 'text': 'that is created straight on the git server, on the github server to be precise.', 'start': 2022.255, 'duration': 8.026}, {'end': 2031.803, 'text': "it's a public repository.", 'start': 2030.281, 'duration': 1.522}], 'summary': "Initialized 'second repo' on github as a public repository.", 'duration': 25.049, 'max_score': 2006.754, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC82006754.jpg'}, {'end': 2255.495, 'src': 'embed', 'start': 2208.958, 'weight': 8, 'content': [{'end': 2217.66, 'text': 'in this case i have cloned an existing repository from the server, so when i clone i get the replica along with all references to my repository.', 'start': 2208.958, 'duration': 8.702}, {'end': 2221.381, 'text': "so i don't need to do anything more other than push the content.", 'start': 2217.66, 'duration': 3.721}, {'end': 2222.781, 'text': "i'll just say git push.", 'start': 2221.381, 'duration': 1.4}, {'end': 2225.702, 'text': 'to be on the safer side, i would say origin and master.', 'start': 2222.781, 'duration': 2.921}, {'end': 2232.123, 'text': 'ask me for the passphrase.', 'start': 2227.501, 'duration': 4.622}, {'end': 2234.465, 'text': 'okay, it pushed the content onto the server.', 'start': 2232.123, 'duration': 2.342}, {'end': 2237.226, 'text': 'let me see if the contents have come in here.', 'start': 2234.465, 'duration': 2.761}, {'end': 2239.787, 'text': 'okay, wonderful, I had only one commit.', 'start': 2237.226, 'duration': 2.561}, {'end': 2241.308, 'text': 'now I see my second commit.', 'start': 2239.787, 'duration': 1.521}, {'end': 2243.549, 'text': 'so what was added as a part of the second commit?', 'start': 2241.308, 'duration': 2.241}, {'end': 2245.49, 'text': 'it says a new file was added.', 'start': 2243.549, 'duration': 1.941}, {'end': 2247.751, 'text': 'all this line that never existed got added.', 'start': 2245.49, 'duration': 2.261}, {'end': 2251.573, 'text': 'this is the second file, the content, exactly what I pushed onto the server.', 'start': 2247.751, 'duration': 3.822}, {'end': 2255.495, 'text': 'now this completes the tutorial.', 'start': 2251.573, 'duration': 3.922}], 'summary': 'Cloned repository, pushed content, and confirmed commits for tutorial completion.', 'duration': 46.537, 'max_score': 2208.958, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC82208958.jpg'}, {'end': 2732.027, 'src': 'embed', 'start': 2687.466, 'weight': 4, 'content': [{'end': 2693.548, 'text': "however, do this activity only when you don't push your git repository to the server.", 'start': 2687.466, 'duration': 6.082}, {'end': 2700.391, 'text': 'one other most powerful and useful command while undoing or resetting the history is something called as revert.', 'start': 2693.548, 'duration': 6.843}, {'end': 2703.093, 'text': 'this is a safe way of undoing some things.', 'start': 2700.391, 'duration': 2.702}, {'end': 2706.234, 'text': 'remember what i talked about when exactly you can do a reset.', 'start': 2703.093, 'duration': 3.141}, {'end': 2710.27, 'text': "It's only when your changes are local and it has not been pushed to the repository.", 'start': 2706.667, 'duration': 3.603}, {'end': 2732.027, 'text': "Take this scenario wherein let's say I have a Git server and I have the changes which are C1, C2, C3 and possibly C4.", 'start': 2710.65, 'duration': 21.377}], 'summary': 'Revert is a safe way of undoing changes in git history, ensuring it has not been pushed to the repository.', 'duration': 44.561, 'max_score': 2687.466, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC82687466.jpg'}, {'end': 3243.392, 'src': 'embed', 'start': 3216.472, 'weight': 12, 'content': [{'end': 3223.577, 'text': 'so let me name my branch as bangalore branch, blr branch, and this created a branch,', 'start': 3216.472, 'duration': 7.105}, {'end': 3228.379, 'text': "but i don't see any changes in the folder structure or in the file that exists here.", 'start': 3223.577, 'duration': 4.802}, {'end': 3229.86, 'text': "i've just created this branch.", 'start': 3228.379, 'duration': 1.481}, {'end': 3239.891, 'text': "so if at all i do a git branch, i see these two branches and whatever star means, i'm currently in this master branch.", 'start': 3229.86, 'duration': 10.031}, {'end': 3243.392, 'text': 'so let me go ahead and get into the blr branch.', 'start': 3239.891, 'duration': 3.501}], 'summary': "Created a new branch 'blr' but no changes in file or folder structure observed.", 'duration': 26.92, 'max_score': 3216.472, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC83216472.jpg'}, {'end': 3787.548, 'src': 'embed', 'start': 3749.035, 'weight': 0, 'content': [{'end': 3754.518, 'text': "so i would say git branch, and i'm presently in the master branch, so i can go ahead and delete the other branch.", 'start': 3749.035, 'duration': 5.483}, {'end': 3756.68, 'text': 'so git branch, hyphen d, bangalore branch.', 'start': 3754.518, 'duration': 2.162}, {'end': 3760.732, 'text': 'All right, this got rid of our bandwidth branch locally.', 'start': 3758.311, 'duration': 2.421}, {'end': 3766.816, 'text': "If at all I do a git branch hyphen v, it shows there's only one branch as of now.", 'start': 3762.213, 'duration': 4.603}, {'end': 3774.1, 'text': "However, this branch would still exist on the server because server doesn't know anything about the changes that we've done.", 'start': 3767.316, 'duration': 6.784}, {'end': 3777.722, 'text': 'We need to specifically push our changes onto the server.', 'start': 3774.861, 'duration': 2.861}, {'end': 3782.305, 'text': 'Okay, there are two branches still here.', 'start': 3780.564, 'duration': 1.741}, {'end': 3787.548, 'text': 'So let me go ahead and push these changes so that the branch gets deleted from the server as well.', 'start': 3782.725, 'duration': 4.823}], 'summary': "Deleted 'bangalore' branch locally and pushed changes to server, reducing branches to one.", 'duration': 38.513, 'max_score': 3749.035, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC83749035.jpg'}], 'start': 1768.355, 'title': 'Git essentials', 'summary': 'Includes tutorials on ssh configuration, undoing git history, branching, and repository management in git. it covers creating ssh keys, connecting to github server, undoing committed changes, managing branches, and merging branches in git.', 'chapters': [{'end': 2401.715, 'start': 1768.355, 'title': 'Git ssh configuration tutorial', 'summary': "Covers the creation of ssh keys, connecting to the github server via ssh, creating and cloning a repository on the server, and pushing changes to the server using ssh. it includes details on command usage, such as 'git init', 'git add', 'git commit', 'git status', 'git log', 'git remote add origin', 'git push -u origin master', and 'git clone'.", 'duration': 633.36, 'highlights': ["The tutorial demonstrates the creation of SSH keys for connecting to the GitHub server, including the generation of a pair of private and public keys using the command 'ssh-keygen' with the RSA mechanism and specifying an email ID, as well as adding the public key to the GitHub server for authentication. The tutorial emphasizes the process of creating SSH keys, specifying the RSA mechanism, and adding the public key to the GitHub server for authentication.", "The process of cloning a repository from the server to the local drive using the 'git clone' command with the SSH URL is explained, including the establishment of an exact replica of the server repository and checking the successful authentication of SSH keys. The tutorial covers the detailed steps of cloning a repository using the 'git clone' command, establishing an exact replica of the server repository, and verifying the successful authentication of SSH keys.", "A recap of essential Git commands is provided, such as 'git init' for initializing a repository, 'git add .' for adding files, 'git commit -m' for committing changes with a message, 'git status' for obtaining file status, 'git log' for viewing commit history, 'git remote add origin' for linking a local repository to a server, 'git push -u origin master' for pushing contents to the server, and 'git clone' for making a fresh copy of a server repository onto the local system. The tutorial offers a comprehensive summary of important Git commands, encompassing the initialization of a repository, adding files, committing changes, obtaining file status, viewing commit history, linking a local repository to a server, pushing contents to the server, and making a fresh copy of a server repository onto the local system."]}, {'end': 2710.27, 'start': 2401.715, 'title': 'Undoing git history', 'summary': 'Explains the process of undoing or modifying committed changes in a git repository, covering the commands git reset and git revert with practical examples, emphasizing the importance of caution when changes have been pushed to the server.', 'duration': 308.555, 'highlights': ['The git reset command allows going back in history and retaining changes without commit messages, using the --soft option to keep file changes, demonstrated by modifying commit histories and creating a new commit with rewritten history. The git reset command with the --soft option allows going back to a specific snapshot in history while retaining changes without commit messages, demonstrated by modifying commit histories, getting rid of specific commits, and creating a new commit with rewritten history.', 'Emphasizes the importance of caution when modifying committed changes that have been pushed to the server, advising to perform these actions only when changes are local and have not been pushed to the repository. Emphasizes the importance of caution when modifying committed changes that have been pushed to the server, advising to perform these actions only when changes are local and have not been pushed to the repository to avoid adverse effects on other collaborators.', 'Explains the revert command as a safe method for undoing changes, highlighting its usefulness in situations where changes have already been pushed to the repository. Explains the revert command as a safe method for undoing changes, highlighting its usefulness in situations where changes have already been pushed to the repository and providing a safe way of undoing things.']}, {'end': 3064.835, 'start': 2710.65, 'title': 'Git revert and branching in git', 'summary': 'Explains the importance of not going back in history in git and emphasizes the use of git revert to undo a commit by adding a new commit, and then delves into the efficient branching system in git compared to other version control tools.', 'duration': 354.185, 'highlights': ['Git revert command is used to undo a commit by adding a new commit, ensuring the history moves forward instead of going back, allowing collaborative users to progress without being affected by the undoing process. The git revert command is highlighted as a method to undo a commit by adding a new commit, ensuring that the history moves forward instead of going back. This allows collaborative users to progress without being affected by the undoing process.', 'Importance of not going back in history and instead adding a new commit to undo something, as it affects collaborative users and their progress in the repository. The importance of not going back in history and instead adding a new commit to undo something is emphasized, as it affects collaborative users and their progress in the repository.', "Git's efficient branching system involves creating lightweight, movable pointers instead of creating complete copies or subsets of the repository, making branches very inexpensive in Git compared to other version control tools. The explanation of Git's efficient branching system is provided, highlighting the creation of lightweight, movable pointers instead of complete copies or subsets of the repository, making branches very inexpensive in Git compared to other version control tools."]}, {'end': 3569.765, 'start': 3065.255, 'title': 'Managing git branches and repositories', 'summary': 'Explains the process of creating and managing branches in git, including creating, switching, committing, and pushing branches, with a demonstration of a repository creation and branch management.', 'duration': 504.51, 'highlights': ['The process of creating and managing branches in Git, including creating, switching, committing, and pushing branches, with a demonstration of a repository creation and branch management. Covers the entire process of branch creation, management, and repository demonstration, providing a comprehensive overview of the Git workflow.', 'Demonstration of creating a repository with specific branches and adding files to the repository. Shows the practical demonstration of creating a repository, adding files, and initializing branches, illustrating the initial steps of repository setup.', 'Explanation of creating a new branch, adding files to the branch, and switching between branches. Describes the process of creating a new branch, adding files to it, and switching between branches, outlining the fundamental actions for branch management.']}, {'end': 3977.49, 'start': 3569.765, 'title': 'Git branching and merging', 'summary': "Covers the process of creating, merging, and deleting branches in git, emphasizing the commands 'git branch' for creating a new branch, 'git merge' for merging branch contents, and 'git branch -d' for deleting a branch, highlighting the importance of merging and deleting branches after completing tasks to maintain an organized repository.", 'duration': 407.725, 'highlights': ['The command to merge the contents of any new branch into a master branch would be git merge and the name of the branch, facilitating the process of integrating changes from a new branch into the master branch.', 'The command to delete those branch locally is git branch -D and the name of the branch, providing a method to delete branches from the local repository.', 'The command to do that is git push origin --delete and the name of the branch, which deletes the branch from the server, aiding in maintaining an organized repository by removing unnecessary branches from the server.', 'To create a new branch, you issue a command git branch the name of the branch, automatically creating a new branch from the existing branch, enabling the creation of new branches for parallel development and experimentation.']}], 'duration': 2209.135, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC81768355.jpg', 'highlights': ["The tutorial covers the detailed steps of cloning a repository using the 'git clone' command, establishing an exact replica of the server repository, and verifying the successful authentication of SSH keys.", "The tutorial demonstrates the creation of SSH keys for connecting to the GitHub server, including the generation of a pair of private and public keys using the command 'ssh-keygen' with the RSA mechanism and specifying an email ID, as well as adding the public key to the GitHub server for authentication.", 'The tutorial offers a comprehensive summary of important Git commands, encompassing the initialization of a repository, adding files, committing changes, obtaining file status, viewing commit history, linking a local repository to a server, pushing contents to the server, and making a fresh copy of a server repository onto the local system.', 'The git reset command with the --soft option allows going back to a specific snapshot in history while retaining changes without commit messages, demonstrated by modifying commit histories, getting rid of specific commits, and creating a new commit with rewritten history.', 'Emphasizes the importance of caution when modifying committed changes that have been pushed to the server, advising to perform these actions only when changes are local and have not been pushed to the repository to avoid adverse effects on other collaborators.', 'Explains the revert command as a safe method for undoing changes, highlighting its usefulness in situations where changes have already been pushed to the repository and providing a safe way of undoing things.', 'The git revert command is highlighted as a method to undo a commit by adding a new commit, ensuring that the history moves forward instead of going back. This allows collaborative users to progress without being affected by the undoing process.', 'The importance of not going back in history and instead adding a new commit to undo something is emphasized, as it affects collaborative users and their progress in the repository.', "The explanation of Git's efficient branching system is provided, highlighting the creation of lightweight, movable pointers instead of complete copies or subsets of the repository, making branches very inexpensive in Git compared to other version control tools.", 'Covers the entire process of branch creation, management, and repository demonstration, providing a comprehensive overview of the Git workflow.', 'Shows the practical demonstration of creating a repository, adding files, and initializing branches, illustrating the initial steps of repository setup.', 'Describes the process of creating a new branch, adding files to it, and switching between branches, outlining the fundamental actions for branch management.', 'The command to merge the contents of any new branch into a master branch would be git merge and the name of the branch, facilitating the process of integrating changes from a new branch into the master branch.', 'The command to delete those branch locally is git branch -D and the name of the branch, providing a method to delete branches from the local repository.', 'The command to do that is git push origin --delete and the name of the branch, which deletes the branch from the server, aiding in maintaining an organized repository by removing unnecessary branches from the server.', 'To create a new branch, you issue a command git branch the name of the branch, automatically creating a new branch from the existing branch, enabling the creation of new branches for parallel development and experimentation.']}, {'end': 5895.232, 'segs': [{'end': 4124.401, 'src': 'embed', 'start': 4095.475, 'weight': 13, 'content': [{'end': 4099.859, 'text': 'For example, if you have created a collection which should accept strings,', 'start': 4095.475, 'duration': 4.384}, {'end': 4107.765, 'text': 'then you can only insert strings in that collection and it will not allow you to add a number or an integer into that collection.', 'start': 4099.859, 'duration': 7.906}, {'end': 4109.986, 'text': "So it's a strongly type checking language.", 'start': 4108.145, 'duration': 1.841}, {'end': 4113.288, 'text': "So when you run your program, it's a two-step process in Java.", 'start': 4110.567, 'duration': 2.721}, {'end': 4119.975, 'text': 'you compile the program and then you execute the program, which we also call as interpretation.', 'start': 4113.868, 'duration': 6.107}, {'end': 4124.401, 'text': 'so you have a java compiler and you have a java interpreter.', 'start': 4119.975, 'duration': 4.426}], 'summary': 'Java enforces strong type checking and uses a two-step process: compilation and interpretation.', 'duration': 28.926, 'max_score': 4095.475, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC84095475.jpg'}, {'end': 4160.743, 'src': 'embed', 'start': 4133.13, 'weight': 9, 'content': [{'end': 4141.733, 'text': "it's a really important feature and if you talk about the languages prior to java, like c or c plus plus, they did not offer this capability,", 'start': 4133.13, 'duration': 8.603}, {'end': 4153.176, 'text': 'and this capability made java really popular because it could automatically find the unused objects and variables and remove them from the memory to free up memory space for the program execution.', 'start': 4141.733, 'duration': 11.443}, {'end': 4160.743, 'text': 'it also provides multi-threading support, which means that you can build multi-threading applications, like a gaming application,', 'start': 4153.696, 'duration': 7.047}], 'summary': "Java's automatic memory management and multi-threading support made it popular, enabling it to remove unused objects and variables to free up memory space and build multi-threading applications.", 'duration': 27.613, 'max_score': 4133.13, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC84133130.jpg'}, {'end': 4221.744, 'src': 'embed', 'start': 4197.402, 'weight': 17, 'content': [{'end': 4204.329, 'text': 'Again, if you take the example of programming languages like C or C++, you had the concept of pointers,', 'start': 4197.402, 'duration': 6.927}, {'end': 4213.718, 'text': 'and we witnessed a lot of scenarios and a lot of incidents where there was a memory leakage happening in the production application,', 'start': 4204.329, 'duration': 9.389}, {'end': 4217.061, 'text': 'which was really a bad experience for the organizations.', 'start': 4213.718, 'duration': 3.343}, {'end': 4221.744, 'text': 'so java removed the concept of pointers totally from its programming language.', 'start': 4217.581, 'duration': 4.163}], 'summary': 'Java removed pointers to prevent memory leakage incidents.', 'duration': 24.342, 'max_score': 4197.402, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC84197402.jpg'}, {'end': 4326.458, 'src': 'embed', 'start': 4305.142, 'weight': 0, 'content': [{'end': 4315.291, 'text': "and that's what brings the platform independence concept of java that you can write the program once on any platform and once you have the bytecode available,", 'start': 4305.142, 'duration': 10.149}, {'end': 4318.915, 'text': 'then you can run this program on any other platform of your choice.', 'start': 4315.291, 'duration': 3.624}, {'end': 4326.458, 'text': 'okay, so that was about how the java program execution works and how the platform independence is actually achieved.', 'start': 4319.676, 'duration': 6.782}], 'summary': 'Java enables writing programs once and executing them on any platform, achieving platform independence.', 'duration': 21.316, 'max_score': 4305.142, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC84305142.jpg'}, {'end': 4579.693, 'src': 'embed', 'start': 4553.277, 'weight': 8, 'content': [{'end': 4557.851, 'text': 'when you go to a bank to open an account, there are multiple types of accounts.', 'start': 4553.277, 'duration': 4.574}, {'end': 4559.712, 'text': 'there can be a savings account.', 'start': 4557.851, 'duration': 1.861}, {'end': 4562.094, 'text': 'it can be a type of current account.', 'start': 4559.712, 'duration': 2.382}, {'end': 4567.898, 'text': 'there can also be a different offering for personal account and commercial account, such as for businesses.', 'start': 4562.094, 'duration': 5.804}, {'end': 4572.142, 'text': 'then you may also have loan accounts which are having different kind of properties.', 'start': 4567.898, 'duration': 4.244}, {'end': 4579.693, 'text': 'so all of these types of accounts are still technically accounts and they will share some similar properties.', 'start': 4572.142, 'duration': 7.551}], 'summary': 'Banks offer various types of accounts, including savings, current, personal, and commercial accounts, with different properties.', 'duration': 26.416, 'max_score': 4553.277, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC84553277.jpg'}, {'end': 5111.212, 'src': 'embed', 'start': 5080.681, 'weight': 1, 'content': [{'end': 5083.362, 'text': "Now let's look at how do we invoke this particular class.", 'start': 5080.681, 'duration': 2.681}, {'end': 5089.485, 'text': 'So for that, I have a simple class name as inheritance demo, which has a public static void main method.', 'start': 5083.982, 'duration': 5.503}, {'end': 5093.306, 'text': 'And then I am initializing the mountain by class.', 'start': 5090.025, 'duration': 3.281}, {'end': 5097.788, 'text': "I'm supplying three values as 20, 10, and 1.", 'start': 5093.326, 'duration': 4.462}, {'end': 5099.969, 'text': 'So the 20 goes to start height.', 'start': 5097.788, 'duration': 2.181}, {'end': 5103.811, 'text': 'The 10 here goes to start speed.', 'start': 5100.85, 'duration': 2.961}, {'end': 5111.212, 'text': "and one here goes to gear or the start gear, and that's how i'm setting the values.", 'start': 5104.87, 'duration': 6.342}], 'summary': 'Demonstrating class invocation with start values: 20, 10, and 1.', 'duration': 30.531, 'max_score': 5080.681, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC85080681.jpg'}, {'end': 5153.366, 'src': 'embed', 'start': 5124.637, 'weight': 5, 'content': [{'end': 5126.918, 'text': "and then let's try to access the gear property.", 'start': 5124.637, 'duration': 2.281}, {'end': 5129.979, 'text': 'remember, gear is not directly available in the mountain bike class,', 'start': 5126.918, 'duration': 3.061}, {'end': 5136.07, 'text': "but i'm still able to do mountain bike dot gear Because child class can access the parent's class properties.", 'start': 5129.979, 'duration': 6.091}, {'end': 5139.754, 'text': 'Similarly, the same thing goes for speed as well.', 'start': 5136.991, 'duration': 2.763}, {'end': 5143.497, 'text': 'And seat height is the local property of this particular class, mountain bike.', 'start': 5140.214, 'duration': 3.283}, {'end': 5145.259, 'text': 'So it will anyways be accessible.', 'start': 5143.737, 'duration': 1.522}, {'end': 5153.366, 'text': 'So I can access all the properties of the base class and the child class itself seamlessly without any differentiation.', 'start': 5145.779, 'duration': 7.587}], 'summary': 'Child class seamlessly accesses parent and local properties.', 'duration': 28.729, 'max_score': 5124.637, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC85124637.jpg'}, {'end': 5428.523, 'src': 'embed', 'start': 5401.171, 'weight': 2, 'content': [{'end': 5407.274, 'text': "Not exactly, not literally, but that's the basic idea of this root word, which is called encapsulation.", 'start': 5401.171, 'duration': 6.103}, {'end': 5415.778, 'text': 'So encapsulation basically means to restrict accessing the properties of a class to the outside world.', 'start': 5407.594, 'duration': 8.184}, {'end': 5425.341, 'text': 'If you want to protect the properties of your class, how do you do that? You do that with the help of the concept called encapsulation.', 'start': 5416.259, 'duration': 9.082}, {'end': 5428.523, 'text': 'So here, this is a sort of a security feature.', 'start': 5425.702, 'duration': 2.821}], 'summary': 'Encapsulation restricts access to class properties, providing a security feature.', 'duration': 27.352, 'max_score': 5401.171, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC85401171.jpg'}, {'end': 5682.196, 'src': 'embed', 'start': 5656.946, 'weight': 7, 'content': [{'end': 5664.109, 'text': "That's the second thing which you need to do to implement correct form of encapsulation on your object.", 'start': 5656.946, 'duration': 7.163}, {'end': 5668.31, 'text': 'That is to provide the getter methods with the right visibility.', 'start': 5664.589, 'duration': 3.721}, {'end': 5671.283, 'text': 'You want to make them public so that anybody can call them.', 'start': 5668.72, 'duration': 2.563}, {'end': 5676.069, 'text': 'But since you are governing, which is what is written inside the method,', 'start': 5671.644, 'duration': 4.425}, {'end': 5682.196, 'text': 'you have full control on what kind of exposure you want to give for this particular property.', 'start': 5676.069, 'duration': 6.127}], 'summary': 'Implement correct encapsulation by providing public getter methods for full control over property exposure.', 'duration': 25.25, 'max_score': 5656.946, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC85656946.jpg'}, {'end': 5794.31, 'src': 'embed', 'start': 5766.798, 'weight': 6, 'content': [{'end': 5769.939, 'text': 'This method is not going to return anything, so it is going to be void.', 'start': 5766.798, 'duration': 3.141}, {'end': 5775, 'text': 'Then you write the name of the method, which starts with set, and then the property name in camel case.', 'start': 5770.519, 'duration': 4.481}, {'end': 5781.085, 'text': 'And then you provide the new value, which is the value, which should be, which should be the new value.', 'start': 5775.5, 'duration': 5.585}, {'end': 5784.266, 'text': 'And this is the value which should replace the existing value.', 'start': 5781.225, 'duration': 3.041}, {'end': 5794.31, 'text': 'So whatever new value you want to supply, you supply that as the argument of the setter methods for set name for set age or for set address.', 'start': 5784.667, 'duration': 9.643}], 'summary': 'Explanation of method for setting new values in object properties.', 'duration': 27.512, 'max_score': 5766.798, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC85766798.jpg'}], 'start': 3977.49, 'title': 'Java programming and inheritance', 'summary': 'Provides an overview of java programming language, its features, and versatility, explains java program execution and platform independence, and delves into understanding and implementing inheritance in object-oriented programming using java, showcasing examples and use cases.', 'chapters': [{'end': 4305.142, 'start': 3977.49, 'title': 'Java programming language overview', 'summary': 'Provides an overview of the popular java programming language, created in 1991 and publicly released in 1995, highlighting its features including platform independence, object-oriented nature, strong type checking, automatic garbage collection, multi-threading support, and security, and outlining the process of writing, compiling, and running a java program, emphasizing its versatility across different platforms and applications.', 'duration': 327.652, 'highlights': ["Java is a platform-independent language, enabling programs to be run on any platform once compiled. Java's platform independence allows for the execution of programs on different platforms after compilation, contributing to its versatility and wide application usage.", "Java is an object-oriented programming language, with objects enabling program execution and data exchange. The object-oriented nature of Java revolves around objects facilitating program execution and communication, emphasizing the language's fundamental structure.", 'Java provides strong type checking, ensuring adherence to variable data type contracts. The strong type checking feature of Java enforces strict adherence to variable data type contracts, enhancing program reliability and error prevention.', 'Java includes automatic garbage collection, freeing up memory space by removing unused objects and variables. Automatic garbage collection in Java aids in efficiently managing memory resources by identifying and eliminating unused objects and variables, contributing to enhanced program performance.', 'Java offers multi-threading support, enabling the creation of parallel applications with different threads. The multi-threading capability of Java facilitates the development of parallel applications, allowing for concurrent execution of different tasks, enhancing performance and responsiveness.', "Java ensures security by default through the absence of pointers, eliminating memory and reference leaks. Java's security features are bolstered by the absence of pointers, mitigating the risk of memory and reference leaks, thereby enhancing the overall robustness and reliability of Java programs."]}, {'end': 4530.879, 'start': 4305.142, 'title': 'Java program execution and anatomy', 'summary': 'Explains the platform independence of java, the components of jdk, jre, and jvm, and their roles in program execution and platform compatibility, with examples and use cases.', 'duration': 225.737, 'highlights': ['The platform independence concept of Java allows a program to be written once and run on any platform, achieved through bytecode and compatibility with different platforms.', 'The Java Development Kit (JDK) includes components such as Java Runtime Environment (JRE), Java Virtual Machine (JVM), class libraries, and supporting libraries, which work together to ensure smooth program execution.', 'The Java Virtual Machine (JVM) provides the virtual environment for program execution, supported by runtime libraries such as rt.jar and other supporting libraries like Java math package, ensuring the program runs smoothly.', 'The JRE automatically kicks in to run the dot class file, and it provides the required runtime libraries and other libraries referred to in the program, ensuring the program runs inside the Java virtual machine.', 'The use case of compiling a program on a Windows machine using JDK and then running the dot class file on another machine by only installing the JRE demonstrates the flexibility and compatibility of Java programs across different platforms.']}, {'end': 5042.366, 'start': 4530.879, 'title': 'Understanding inheritance in object oriented programming', 'summary': 'Explains the concept of inheritance in object-oriented programming, using the examples of bank accounts and bicycles to illustrate how classes can share similar properties and behaviors, while also demonstrating differentiality, and how child classes extend properties and behaviors from parent classes.', 'duration': 511.487, 'highlights': ['Inheritance concept in object-oriented programming The chapter emphasizes the importance of inheritance in object-oriented programming, highlighting how it allows multiple classes to share similar properties and behaviors, providing a clear understanding of the concept.', 'Examples of bank accounts and bicycles to illustrate inheritance The examples of bank accounts and bicycles effectively illustrate how classes can share similar properties and behaviors, while also demonstrating differentiality, and how child classes extend properties and behaviors from parent classes.', "Identification of is a relationship for inheritance The explanation of how to identify the 'is a' relationship in requirements to spot the usage of inheritance, providing a practical method for recognizing when inheritance can be applied.", 'Application of inheritance through parent-child class relationship The chapter explains the relationship between parent and child classes in inheritance, emphasizing how child classes extend properties and behaviors from the parent class, and how the inheritance hierarchy can go as deep as needed.', 'Implementation of inheritance in Java using the extends keyword The detailed explanation of how to implement inheritance in Java using the extends keyword, along with practical examples, provides a clear understanding of the technical aspects of inheritance.']}, {'end': 5331.763, 'start': 5042.806, 'title': 'Java inheritance basics', 'summary': 'Discusses java inheritance, demonstrating how a child class inherits properties and methods from a base class, including the use of access modifiers like protected, and showcases how to invoke the child class and access its properties and methods.', 'duration': 288.957, 'highlights': ['Child class inherits properties and methods from the base class The child class, mountain bike, can access all the properties and methods from the base class, bicycle, showcasing the concept of inheritance.', 'Demonstration of invoking the child class and accessing its properties and methods The process of initializing the mountain bike class with specific values and accessing its properties and methods, like gear, speed, and applying brakes, is explained in detail.', 'Usage and impact of access modifiers like protected The impact of using the protected access modifier in inheritance is demonstrated, showing how it allows properties to be accessible in child classes, and the error caused by changing a property from protected to private is showcased.']}, {'end': 5895.232, 'start': 5332.389, 'title': 'Inheritance and encapsulation in java', 'summary': 'Covers the concepts of inheritance and encapsulation in java, emphasizing the importance of encapsulating properties of a class to protect them from the outside world and the implementation of getters and setters with examples in a student class.', 'duration': 562.843, 'highlights': ["Encapsulation means restricting access to the properties of a class from the outside world, achieved by using the 'private' keyword and implementing getter and setter methods. Encapsulation restricts access to class properties using the 'private' keyword, ensuring that only the class itself can access the properties, and then provides controlled access to the properties through getter and setter methods.", 'The concept of encapsulation is inspired by the idea of packing a lot of things inside a small capsule, similar to restricting access to class properties through encapsulation. The concept of encapsulation is inspired by the idea of packing many things inside a small capsule, similar to the practice of restricting access to class properties through encapsulation.', 'Getters and setters are essential in encapsulation to provide controlled access to the properties of a class, ensuring that legitimate consumers have access while illegitimate ones do not. Getters and setters are crucial in encapsulation to provide controlled access to class properties, allowing legitimate consumers access while preventing illegitimate access.', 'Smart IDEs like Eclipse can automatically generate getter and setter methods for class properties, simplifying the implementation process. Smart IDEs like Eclipse can automatically generate getter and setter methods for class properties, simplifying the implementation process and saving time.']}], 'duration': 1917.742, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC83977490.jpg', 'highlights': ["Java's platform independence allows for the execution of programs on different platforms after compilation, contributing to its versatility and wide application usage.", 'Java ensures security by default through the absence of pointers, eliminating memory and reference leaks.', 'Java offers multi-threading support, enabling the creation of parallel applications with different threads.', 'Java includes automatic garbage collection, freeing up memory space by removing unused objects and variables.', 'Java provides strong type checking, ensuring adherence to variable data type contracts.', 'The platform independence concept of Java allows a program to be written once and run on any platform, achieved through bytecode and compatibility with different platforms.', 'The Java Development Kit (JDK) includes components such as Java Runtime Environment (JRE), Java Virtual Machine (JVM), class libraries, and supporting libraries, which work together to ensure smooth program execution.', 'The JRE automatically kicks in to run the dot class file, and it provides the required runtime libraries and other libraries referred to in the program, ensuring the program runs inside the Java virtual machine.', 'Inheritance allows multiple classes to share similar properties and behaviors, providing a clear understanding of the concept.', 'Examples of bank accounts and bicycles effectively illustrate how classes can share similar properties and behaviors, while also demonstrating differentiality.', "The explanation of how to identify the 'is a' relationship in requirements to spot the usage of inheritance provides a practical method for recognizing when inheritance can be applied.", 'The detailed explanation of how to implement inheritance in Java using the extends keyword, along with practical examples, provides a clear understanding of the technical aspects of inheritance.', 'Child class inherits properties and methods from the base class, showcasing the concept of inheritance.', 'The process of initializing the mountain bike class with specific values and accessing its properties and methods, like gear, speed, and applying brakes, is explained in detail.', 'The impact of using the protected access modifier in inheritance is demonstrated, showing how it allows properties to be accessible in child classes.', "Encapsulation restricts access to class properties using the 'private' keyword, ensuring that only the class itself can access the properties, and then provides controlled access to the properties through getter and setter methods.", 'The concept of encapsulation is inspired by the idea of packing many things inside a small capsule, similar to the practice of restricting access to class properties through encapsulation.', 'Getters and setters are crucial in encapsulation to provide controlled access to class properties, allowing legitimate consumers access while preventing illegitimate access.', 'Smart IDEs like Eclipse can automatically generate getter and setter methods for class properties, simplifying the implementation process and saving time.']}, {'end': 7849.454, 'segs': [{'end': 6552.979, 'src': 'embed', 'start': 6522.642, 'weight': 8, 'content': [{'end': 6527.443, 'text': 'This is the power of inheritance because in inheritance, remember how it works.', 'start': 6522.642, 'duration': 4.801}, {'end': 6535.846, 'text': 'When you call, when you initialize a particular child object, referencing it with the parent object, see the references of the parent class,', 'start': 6527.963, 'duration': 7.883}, {'end': 6537.346, 'text': 'and the object is of the child class.', 'start': 6535.846, 'duration': 1.5}, {'end': 6539.707, 'text': 'So, whenever you do it like this,', 'start': 6537.786, 'duration': 1.921}, {'end': 6547.209, 'text': "first the default constructor because I'm calling the default constructor here the default constructor of the circle class will get called,", 'start': 6539.707, 'duration': 7.502}, {'end': 6547.889, 'text': 'which will go here', 'start': 6547.209, 'duration': 0.68}, {'end': 6552.979, 'text': "Remember I told you that Java provides the default constructor automatically if you don't provide it.", 'start': 6548.496, 'duration': 4.483}], 'summary': 'Explains the concept of inheritance and default constructors in java.', 'duration': 30.337, 'max_score': 6522.642, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC86522642.jpg'}, {'end': 6740.57, 'src': 'embed', 'start': 6712.594, 'weight': 13, 'content': [{'end': 6721.899, 'text': 'so polymorphism is a very generic concept, which means that a particular object can take multiple form.', 'start': 6712.594, 'duration': 9.305}, {'end': 6723.56, 'text': "let's not even call it as object.", 'start': 6721.899, 'duration': 1.661}, {'end': 6725.041, 'text': "let's make it more generic.", 'start': 6723.56, 'duration': 1.481}, {'end': 6728.643, 'text': 'a particular entity can take multiple forms.', 'start': 6725.041, 'duration': 3.602}, {'end': 6736.148, 'text': 'if any entity in java exhibits that kind of behavior, then we say that polymorphism is in action.', 'start': 6728.643, 'duration': 7.505}, {'end': 6740.57, 'text': 'That entity can be a class or an object or even a method.', 'start': 6736.428, 'duration': 4.142}], 'summary': 'Polymorphism in java allows entities to take multiple forms, be it class, object, or method.', 'duration': 27.976, 'max_score': 6712.594, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC86712594.jpg'}, {'end': 6944.677, 'src': 'embed', 'start': 6902.176, 'weight': 2, 'content': [{'end': 6910.878, 'text': 'in the third case, at line 15, i again use the same multiply name, the method name, but this time the return type becomes double,', 'start': 6902.176, 'duration': 8.702}, {'end': 6918.913, 'text': 'and this method accepts two double arguments and returns the result of the multiplication of these double values.', 'start': 6911.411, 'duration': 7.502}, {'end': 6924.854, 'text': 'so the method name is same, but the arguments vary and also the return type may also vary.', 'start': 6918.913, 'duration': 5.941}, {'end': 6928.635, 'text': "that's the basic premise of how you implement method overloading.", 'start': 6924.854, 'duration': 3.781}, {'end': 6934.756, 'text': 'so whenever you want to implement it, keep the method name same, vary the arguments and the return types,', 'start': 6928.635, 'duration': 6.121}, {'end': 6938.097, 'text': "and after that i'm just created a public static void main method.", 'start': 6934.756, 'duration': 3.341}, {'end': 6941.053, 'text': 'here i have initialize the class.', 'start': 6938.097, 'duration': 2.956}, {'end': 6944.677, 'text': 'here, this particular class itself method, overloading demo,', 'start': 6941.053, 'duration': 3.624}], 'summary': 'Illustrating method overloading with same name, varied arguments, and return types', 'duration': 42.501, 'max_score': 6902.176, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC86902176.jpg'}, {'end': 7344.519, 'src': 'embed', 'start': 7316.846, 'weight': 0, 'content': [{'end': 7320.147, 'text': 'A normal method is called instance method because it belongs to the object.', 'start': 7316.846, 'duration': 3.301}, {'end': 7322.548, 'text': 'You can call the method on the object.', 'start': 7320.487, 'duration': 2.061}, {'end': 7325.186, 'text': 'static methods are called by class.', 'start': 7323.004, 'duration': 2.182}, {'end': 7328.408, 'text': 'so you say class name, dot, static method name.', 'start': 7325.186, 'duration': 3.222}, {'end': 7333.732, 'text': 'but when you, when you call instance methods, you just call object name, dot, instance method name.', 'start': 7328.408, 'duration': 5.324}, {'end': 7335.313, 'text': 'so that is the basic difference.', 'start': 7333.732, 'duration': 1.581}, {'end': 7338.015, 'text': 'the static methods belong to the class.', 'start': 7335.313, 'duration': 2.702}, {'end': 7344.519, 'text': 'once you have defined a static method, the same static method will be available to all the objects of the class,', 'start': 7338.015, 'duration': 6.504}], 'summary': 'Instance methods belong to object, static methods belong to class', 'duration': 27.673, 'max_score': 7316.846, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC87316846.jpg'}, {'end': 7807.431, 'src': 'embed', 'start': 7778.945, 'weight': 3, 'content': [{'end': 7784.85, 'text': 'supply the value as 1, and then I want to see what would be the new speed after applying the brakes.', 'start': 7778.945, 'duration': 5.905}, {'end': 7788.013, 'text': "So let's see what happens when we run this particular code.", 'start': 7785.391, 'duration': 2.622}, {'end': 7793.478, 'text': 'So if I run this code, after applying the brakes, the speed becomes 39.', 'start': 7788.393, 'duration': 5.085}, {'end': 7796.7, 'text': 'Before applying the brakes, the speed was 50.', 'start': 7793.478, 'duration': 3.222}, {'end': 7799.703, 'text': 'So what happened here is 50 minus 1.', 'start': 7796.7, 'duration': 3.003}, {'end': 7802.045, 'text': 'Basically, this logic is getting executed here.', 'start': 7799.703, 'duration': 2.342}, {'end': 7807.431, 'text': '50 minus 1 minus 10, which becomes 39.', 'start': 7802.929, 'duration': 4.502}], 'summary': 'After applying brakes, speed decreased from 50 to 39.', 'duration': 28.486, 'max_score': 7778.945, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC87778945.jpg'}], 'start': 5896.092, 'title': 'Java encapsulation, abstraction, and inheritance', 'summary': "Delves into encapsulation and abstraction in java, covering control over class properties, implementation using 'abstract' keyword, extension of abstract classes for multiple child classes, method overloading and overriding, and dynamic object binding, providing comprehensive insights into java programming concepts.", 'chapters': [{'end': 5960.25, 'start': 5896.092, 'title': 'Encapsulation and abstraction in java', 'summary': 'Covers the concept of encapsulation in java, emphasizing the control over class properties including visibility, initialization, and access. it also introduces the concept of abstraction as the act of hiding details of an object from the outside world.', 'duration': 64.158, 'highlights': ['Encapsulation provides full control over class properties including visibility, initialization, and access.', 'Abstraction involves hiding details of an object from the outside world.', 'Next session will cover the topic of abstraction in Java.']}, {'end': 6291.052, 'start': 5960.55, 'title': 'Abstraction in java', 'summary': "Explains the concept of abstraction in java, where the whole machinery of a car and its components are used as an analogy to illustrate the abstraction process, and it introduces the implementation of abstraction in java using the 'abstract' keyword for classes and methods.", 'duration': 330.502, 'highlights': ["The chapter explains the concept of abstraction using the analogy of a car's machinery, highlighting how different components work together to speed up, and how the concept of abstraction in Java is implemented using the 'abstract' keyword for classes and methods. ", "It introduces the implementation of abstraction in Java using the 'abstract' keyword for classes and methods, highlighting that an abstract class cannot be instantiated but can be subclassed, and an abstract method is declared without an implementation, with the responsibility of providing a concrete implementation lying on the child classes. ", 'The chapter also illustrates the process of creating an abstract class in Java and extending it to create child classes, highlighting that Java will force the child classes to provide the implementation of the abstract methods, and if not done, it will throw an error. ']}, {'end': 6612.715, 'start': 6291.052, 'title': 'Abstract class and inheritance', 'summary': 'Discusses the concept of abstract classes and inheritance in java, demonstrating the extension of abstract classes to create multiple child classes with their own implementations, and showcasing the automatic calling of parent class constructors during object initialization.', 'duration': 321.663, 'highlights': ['The chapter explains the extension of abstract classes to create multiple child classes, circle and rectangle, with their own implementations of drawing and resizing methods. The demonstration involves creating child classes, circle and rectangle, extending the abstract class and providing their own implementations of drawing and resizing methods.', 'It illustrates the process of initializing objects using abstract classes, where the type of object determines the type of methods being called, and demonstrates the usage of abstract classes to achieve polymorphism. The chapter demonstrates how the type of object determines the type of methods being called, showcasing the usage of abstract classes to achieve polymorphism.', 'The chapter highlights the automatic calling of parent class constructors during object initialization, showcasing how Java automatically initializes the parent class when creating child objects. The chapter emphasizes the automatic calling of parent class constructors during object initialization, demonstrating how Java automatically initializes the parent class when creating child objects.']}, {'end': 7163.093, 'start': 6612.715, 'title': 'Understanding method overloading in java', 'summary': 'Discusses abstract classes, polymorphism, and method overloading in java, highlighting the limitations of abstract classes, the use of interfaces for multiple inheritance, and the concept and implementation of method overloading in java, emphasizing the importance of careful usage due to potential confusion.', 'duration': 550.378, 'highlights': ["Abstract classes cannot be instantiated explicitly and do not support multiple inheritance in Java. Java abstract classes cannot be instantiated explicitly and do not support multiple inheritance, which causes the 'diamond problem.'", 'Polymorphism in Java allows a particular entity to take multiple forms and can be exhibited by methods through method overloading. Polymorphism in Java allows a particular entity to take multiple forms, where the method overloading concept enables a method to have the same name but varying arguments and return types.', 'Method overloading in Java allows the use of the same method name with varying return types and number and types of arguments, enhancing flexibility but requiring cautious usage due to potential confusion. Method overloading in Java allows the use of the same method name with varying return types and number and types of arguments, but its extensive usage is cautioned due to potential confusion.']}, {'end': 7597.475, 'start': 7163.093, 'title': 'Method overriding in java', 'summary': 'Discusses method overriding in java, explaining its rules and concepts, including the use of inheritance, the difference between instance and static methods, and provides an example of method overriding in a parent-child class relationship.', 'duration': 434.382, 'highlights': ['Method overriding is used together with the concept of inheritance. Explains that method overriding is closely related to the concept of inheritance, emphasizing the dependency between the two concepts.', 'Rules for method overriding are presented in a tabular structure, including scenarios where method overriding is successful or results in a compilation error. Provides a detailed explanation of the rules for method overriding, outlining the scenarios where method overriding is successful and where it results in a compilation error.', 'The difference between instance and static methods is explained, including the limitations of overriding static methods from the superclass. Elaborates on the distinction between instance and static methods, highlighting the limitations of overriding static methods from the superclass in Java.', "An example of method overriding is demonstrated using a parent class 'bicycle' and a child class 'mountain bike', showcasing the implementation of overridden methods and their impact on the behavior of the classes. Provides a detailed example of method overriding using the 'bicycle' and 'mountain bike' classes, illustrating the impact of overridden methods on the behavior of the classes."]}, {'end': 7849.454, 'start': 7597.695, 'title': 'Method overriding and dynamic binding', 'summary': 'Explains method overriding and dynamic object binding, demonstrating how to override methods in a child class, utilize dynamic binding, and access superclass variables in a child class, resulting in specific speed manipulations in a bicycle and mountain bike scenario.', 'duration': 251.759, 'highlights': ['The chapter highlights the concept of method overriding, emphasizing that it allows a class to provide its own implementation of methods, giving flexibility in choosing which methods to override and demonstrating this using a mountain bike example.', 'It explains the concept of dynamic object binding, showing how a mountain bike object can be initialized with a reference of bicycle, governing the variables and methods usage based on the right-hand side, and accessing superclass variables in the child class through inheritance.', 'The detailed explanation of speed manipulation in the mountain bike scenario is illustrated, including the application of brakes to reduce speed from 50 to 39, and subsequent speeding up to increase speed from 39 to 59, showcasing the practical application of method overriding and dynamic binding.']}], 'duration': 1953.362, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC85896092.jpg', 'highlights': ['Encapsulation provides full control over class properties including visibility, initialization, and access.', 'Abstraction involves hiding details of an object from the outside world.', "The chapter explains the concept of abstraction using the analogy of a car's machinery, highlighting how different components work together to speed up, and how the concept of abstraction in Java is implemented using the 'abstract' keyword for classes and methods.", "It introduces the implementation of abstraction in Java using the 'abstract' keyword for classes and methods, highlighting that an abstract class cannot be instantiated but can be subclassed, and an abstract method is declared without an implementation, with the responsibility of providing a concrete implementation lying on the child classes.", 'The chapter also illustrates the process of creating an abstract class in Java and extending it to create child classes, highlighting that Java will force the child classes to provide the implementation of the abstract methods, and if not done, it will throw an error.', 'The chapter explains the extension of abstract classes to create multiple child classes, circle and rectangle, with their own implementations of drawing and resizing methods.', 'Abstract classes cannot be instantiated explicitly and do not support multiple inheritance in Java.', 'Polymorphism in Java allows a particular entity to take multiple forms and can be exhibited by methods through method overloading.', 'Method overloading in Java allows the use of the same method name with varying return types and number and types of arguments, enhancing flexibility but requiring cautious usage due to potential confusion.', 'Method overriding is used together with the concept of inheritance.', 'Rules for method overriding are presented in a tabular structure, including scenarios where method overriding is successful or results in a compilation error.', 'The difference between instance and static methods is explained, including the limitations of overriding static methods from the superclass.', "An example of method overriding is demonstrated using a parent class 'bicycle' and a child class 'mountain bike', showcasing the implementation of overridden methods and their impact on the behavior of the classes.", 'The chapter highlights the concept of method overriding, emphasizing that it allows a class to provide its own implementation of methods, giving flexibility in choosing which methods to override and demonstrating this using a mountain bike example.', 'It explains the concept of dynamic object binding, showing how a mountain bike object can be initialized with a reference of bicycle, governing the variables and methods usage based on the right-hand side, and accessing superclass variables in the child class through inheritance.', 'The detailed explanation of speed manipulation in the mountain bike scenario is illustrated, including the application of brakes to reduce speed from 50 to 39, and subsequent speeding up to increase speed from 39 to 59, showcasing the practical application of method overriding and dynamic binding.']}, {'end': 8839.456, 'segs': [{'end': 7984.241, 'src': 'embed', 'start': 7956.677, 'weight': 2, 'content': [{'end': 7971.697, 'text': 'then you write catch and you put braces and you write the exception type which this block of code might throw or the exception type which you are interested in catching.', 'start': 7956.677, 'duration': 15.02}, {'end': 7978.719, 'text': 'you might not be interested in catching all the different exceptions, but only a few ones based on your business requirements.', 'start': 7971.697, 'duration': 7.022}, {'end': 7984.241, 'text': 'so whatever exception type you want to catch, you are going to catch it like this.', 'start': 7978.719, 'duration': 5.522}], 'summary': 'Catch exceptions using try-catch block based on business requirements.', 'duration': 27.564, 'max_score': 7956.677, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC87956677.jpg'}, {'end': 8041.222, 'src': 'embed', 'start': 8000.78, 'weight': 0, 'content': [{'end': 8008.125, 'text': 'you can decide what to do with that exception whether you want to log that exception or whether you want to re-throw that exception,', 'start': 8000.78, 'duration': 7.345}, {'end': 8013.047, 'text': 'whether you want to embed some error code or get an error code out of it,', 'start': 8008.125, 'duration': 4.922}, {'end': 8016.81, 'text': 'or convert that exception into a business or custom exception of your own choice.', 'start': 8013.047, 'duration': 3.763}, {'end': 8018.951, 'text': "So it's up to you what you want to do with that.", 'start': 8017.23, 'duration': 1.721}, {'end': 8022.653, 'text': 'But catch block will be able to catch that arithmetic exception.', 'start': 8019.611, 'duration': 3.042}, {'end': 8030.314, 'text': 'Similarly, you can specify as many exception types to be caught as you want and keep adding more and more catch blocks.', 'start': 8024.13, 'duration': 6.184}, {'end': 8034.557, 'text': 'Remember that these catch blocks work in a sequential fashion.', 'start': 8031.275, 'duration': 3.282}, {'end': 8041.222, 'text': 'So if an exception occurs here, it will first go to this particular block to match the exception type.', 'start': 8035.318, 'duration': 5.904}], 'summary': 'Handling exceptions gives flexibility: log, re-throw, embed error code, or convert to custom exception. multiple catch blocks in sequential fashion can be used to catch specified exception types.', 'duration': 40.442, 'max_score': 8000.78, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC88000780.jpg'}, {'end': 8741.84, 'src': 'embed', 'start': 8718.571, 'weight': 4, 'content': [{'end': 8726.596, 'text': 'HashSet provides some additional features to the set, which is that in this case, the elements would be accessed in a random fashion.', 'start': 8718.571, 'duration': 8.025}, {'end': 8733.08, 'text': 'They will not be accessed in a fixed sequence, rather they will be accessed in a random fashion.', 'start': 8726.916, 'duration': 6.164}, {'end': 8735.094, 'text': 'hence the name has set.', 'start': 8733.493, 'duration': 1.601}, {'end': 8741.84, 'text': 'So if you read about this particular class in the documentation, it will basically cover all the things which I just described.', 'start': 8735.595, 'duration': 6.245}], 'summary': 'Hashset allows random access to elements, providing additional features to a set.', 'duration': 23.269, 'max_score': 8718.571, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC88718571.jpg'}, {'end': 8810.747, 'src': 'embed', 'start': 8778.897, 'weight': 1, 'content': [{'end': 8782.66, 'text': 'How do we operate upon a HashSet using different utility methods?', 'start': 8778.897, 'duration': 3.763}, {'end': 8787.403, 'text': 'So, as you can see, I have created a class here which is called HashSetDemo.', 'start': 8783.461, 'duration': 3.942}, {'end': 8789.525, 'text': "There's a public static void main method.", 'start': 8787.724, 'duration': 1.801}, {'end': 8793.704, 'text': 'And then at line number 10, you will see that I have created the hash set.', 'start': 8789.983, 'duration': 3.721}, {'end': 8797.605, 'text': 'And again, it starts with a concrete class here, which says hash set.', 'start': 8794.244, 'duration': 3.361}, {'end': 8802.005, 'text': 'And you can obviously write it as set as well, which will also work fine.', 'start': 8797.965, 'duration': 4.04}, {'end': 8805.126, 'text': 'So we write the set type as string.', 'start': 8802.385, 'duration': 2.741}, {'end': 8810.747, 'text': 'So this particular set is going to hold only and only string objects and nothing else.', 'start': 8805.406, 'duration': 5.341}], 'summary': 'Demonstrating hashset operations with string objects.', 'duration': 31.85, 'max_score': 8778.897, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC88778897.jpg'}], 'start': 7849.454, 'title': 'Java exception handling', 'summary': 'Covers method overriding, try-catch blocks, finally blocks, handling different types of exceptions, catching multiple exception types, using hashset, and demonstrates examples of file handler and database connection.', 'chapters': [{'end': 8018.951, 'start': 7849.454, 'title': 'Java exception handling', 'summary': 'Demonstrates the concept of method overriding and introduces exception handling in java using try and catch blocks, explaining the syntax and purpose to handle different types of exceptions in programming code.', 'duration': 169.497, 'highlights': ['The chapter explains the power of method overriding and how it can be used to override behavior in the base class.', 'The chapter provides an introduction to exception handling in Java using try and catch blocks, emphasizing the importance of enclosing application code in a try catch block to handle exceptions.', 'The syntax and purpose of the try catch block are detailed, highlighting the process of enclosing suspicious or non-suspicious code in the try block and catching specific exception types in the catch block.']}, {'end': 8232.237, 'start': 8019.611, 'title': 'Understanding try-catch and finally blocks', 'summary': 'Explains the use of try-catch and finally blocks in exception handling, demonstrating the sequential functioning of catch blocks, the ability to catch multiple exception types, and the purpose of the finally block for executing cleanup operations, with examples of handling file handler and database connection.', 'duration': 212.626, 'highlights': ['The chapter explains the sequential functioning of catch blocks, demonstrating the ability to catch multiple exception types and the use of the pipe operator to combine exceptions, reducing the need for multiple catch blocks. The catch blocks work in a sequential fashion, allowing the specification of multiple exception types to be caught and the use of the pipe operator to combine exceptions, reducing the need for multiple catch blocks.', 'The purpose of the finally block is clarified, emphasizing its role in performing cleanup operations, such as closing file handlers and database connections, ensuring execution regardless of the occurrence of exceptions in the try block. The finally block is used for performing cleanup operations, such as closing file handlers and database connections, ensuring execution regardless of the occurrence of exceptions in the try block.', 'The structure and composition of a complete try-catch-finally block are detailed, highlighting the arrangement of try block, catch blocks, and finally block, and the possibility of using try-finally without catch block for executing cleanup operations. The structure and composition of a complete try-catch-finally block is detailed, including the arrangement of try block, catch blocks, and finally block, and the possibility of using try-finally without catch block for executing cleanup operations.']}, {'end': 8839.456, 'start': 8233.991, 'title': 'Handling exceptions and using hashset in java', 'summary': 'Demonstrates handling exceptions with try, catch, and finally blocks, showcasing the re-throwing of exceptions and nested try blocks, followed by a demonstration of hashset in java, highlighting its unique features and utility methods.', 'duration': 605.465, 'highlights': ['The chapter demonstrates the usage of try, catch, and finally blocks to handle exceptions, with a demonstration of re-throwing exceptions and nested try blocks, showcasing the flow of exception handling and the importance of finally block execution. The demonstration showcases handling exceptions using try, catch, and finally blocks, emphasizing the re-throwing of exceptions and nested try blocks.', 'The demonstration also includes a detailed explanation of HashSet in Java, highlighting its properties of maintaining unique elements, random access, and acceptance of null elements, along with utility methods for adding, removing, and checking elements. The chapter provides an overview of HashSet in Java, emphasizing its uniqueness property, random access, acceptance of null elements, and utility methods for managing elements.']}], 'duration': 990.002, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC87849454.jpg', 'highlights': ['The chapter demonstrates the usage of try, catch, and finally blocks to handle exceptions, showcasing the flow of exception handling and the importance of finally block execution.', 'The chapter explains the power of method overriding and how it can be used to override behavior in the base class.', 'The chapter provides an introduction to exception handling in Java using try and catch blocks, emphasizing the importance of enclosing application code in a try catch block to handle exceptions.', 'The chapter explains the sequential functioning of catch blocks, demonstrating the ability to catch multiple exception types and the use of the pipe operator to combine exceptions, reducing the need for multiple catch blocks.', 'The purpose of the finally block is clarified, emphasizing its role in performing cleanup operations, such as closing file handlers and database connections, ensuring execution regardless of the occurrence of exceptions in the try block.', 'The chapter provides an overview of HashSet in Java, emphasizing its uniqueness property, random access, acceptance of null elements, and utility methods for managing elements.']}, {'end': 11048.252, 'segs': [{'end': 9466.219, 'src': 'embed', 'start': 9435.718, 'weight': 1, 'content': [{'end': 9441.943, 'text': 'And in the natural order of sequence, A will always come before B and B will always come before C.', 'start': 9435.718, 'duration': 6.225}, {'end': 9446.007, 'text': 'So it will automatically apply that sorting and will present the result to you.', 'start': 9441.943, 'duration': 4.064}, {'end': 9452.689, 'text': "If you're using a custom class here, let's say your own student class or your own customer class or your own account class.", 'start': 9446.365, 'duration': 6.324}, {'end': 9459.414, 'text': 'in that case that account class or student class or customer class needs to tell Java how to sort elements.', 'start': 9452.689, 'duration': 6.725}, {'end': 9466.219, 'text': 'And for that, you need to write comparable and comparator implementations, which we will cover in detail in the future sessions.', 'start': 9459.955, 'duration': 6.264}], 'summary': 'In java, natural order applies to sorting, requiring custom classes to implement comparable and comparator implementations.', 'duration': 30.501, 'max_score': 9435.718, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC89435718.jpg'}, {'end': 9937.835, 'src': 'embed', 'start': 9903.502, 'weight': 2, 'content': [{'end': 9905.604, 'text': 'And we will talk about that in a future session.', 'start': 9903.502, 'duration': 2.102}, {'end': 9912.949, 'text': 'But for now, you can understand that hash map and tree map are non-thread safe and hash table are thread safe.', 'start': 9905.904, 'duration': 7.045}, {'end': 9919.267, 'text': 'There is another class which is coming out from the HashMap class which is called LinkedHashMap.', 'start': 9913.544, 'duration': 5.723}, {'end': 9923.749, 'text': 'And LinkedHashMap, as the name shows, it will basically carry two properties.', 'start': 9919.527, 'duration': 4.222}, {'end': 9930.652, 'text': 'It will carry the property of HashMap where the elements are stored or displayed or accessed in random order.', 'start': 9924.369, 'duration': 6.283}, {'end': 9937.835, 'text': 'And at the same time, it is also providing the linked property of the linked list where the sequence is maintained.', 'start': 9931.272, 'duration': 6.563}], 'summary': 'Hashmap and treemap are non-thread safe, hashtable is thread safe. linkedhashmap combines properties of hashmap and linked list.', 'duration': 34.333, 'max_score': 9903.502, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC89903502.jpg'}, {'end': 10741.775, 'src': 'embed', 'start': 10720.769, 'weight': 0, 'content': [{'end': 10731.217, 'text': 'So these are the data types which the Java is already aware of on how to sort them like integers, doubles, floats, strings, etc.', 'start': 10720.769, 'duration': 10.448}, {'end': 10735.339, 'text': 'But there can be a case where you have your custom key.', 'start': 10731.657, 'duration': 3.682}, {'end': 10739.013, 'text': 'this particular a key is your own custom class.', 'start': 10735.339, 'duration': 3.674}, {'end': 10741.775, 'text': 'if that is the behavior or if that is the scenario,', 'start': 10739.013, 'duration': 2.762}], 'summary': 'Java can sort built-in data types like integers, doubles, floats, and strings. custom keys, like your own custom class, can also be sorted.', 'duration': 21.006, 'max_score': 10720.769, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC810720769.jpg'}], 'start': 8839.456, 'title': 'Understanding java collection classes', 'summary': 'Covers the functionalities of hashset and treeset including methods like add, contains, remove, and iteration process. it also introduces treemap and its sorting behavior, and explains the concept of maps in java, including hashmap, treemap, linkedhashmap, and hashtable.', 'chapters': [{'end': 9040.796, 'start': 8839.456, 'title': 'Understanding hashset add method', 'summary': 'Explains the behavior of the add method in hashset, showing that it rejects duplicate elements and maintains the uniqueness property of sets, demonstrated by adding and checking elements in a hashset.', 'duration': 201.34, 'highlights': ['The add method in HashSet returns a boolean value, where true indicates successful addition and false indicates rejection of the element. The add method in HashSet returns a boolean value, where true indicates successful addition and false indicates rejection of the element.', 'Demonstration of adding duplicate elements to a HashSet showed that the set rejects duplicate elements and maintains the uniqueness property. Demonstration of adding duplicate elements to a HashSet showed that the set rejects duplicate elements and maintains the uniqueness property.', 'Observing the output after adding duplicate elements revealed that the HashSet maintained the original element and rejected the duplicate addition. Observing the output after adding duplicate elements revealed that the HashSet maintained the original element and rejected the duplicate addition.']}, {'end': 9595.365, 'start': 9040.796, 'title': 'Set methods in java', 'summary': 'Covers the functionalities of hashset, including the contains method to check element existence, remove method to eliminate elements, and iteration process, with a demonstration on maintaining uniqueness and ordering. it further introduces treeset, emphasizing its usage for maintaining natural ordering, uniqueness property, and lack of synchronization, while highlighting the need for sorting algorithm in custom classes. the session concludes with a comparison of hashset and treeset behavior.', 'duration': 554.569, 'highlights': ["The contains method of the HashSet class is used to find if an element exists in the set or not, returning true or false based on the element's presence. The contains method of the HashSet class is utilized to determine the existence of an element within the set, providing a true or false output based on the element's presence.", 'The remove operation of the HashSet is demonstrated, showcasing the successful removal of an element and the resulting modified hash set. The remove operation of the HashSet is exemplified, displaying the successful elimination of an element and presenting the modified hash set.', 'The iteration process of the hash set is illustrated, showcasing the printing of items and the functionality of the iteration similar to list implementations. The iteration process of the hash set is depicted, demonstrating the printing of items and the functionality of the iteration, akin to list implementations.', 'The chapter introduces TreeSet, emphasizing its usage for maintaining natural ordering of elements and ensuring uniqueness, while highlighting its lack of synchronization in multi-threaded environments. The chapter introduces TreeSet, underscoring its role in preserving natural element ordering and uniqueness, and highlighting its unsuitability for multi-threaded environments due to the lack of synchronization.', "The demonstration showcases the automatic maintenance of the natural order of elements by the TreeSet, based on the type's predefined sorting algorithm. The demonstration highlights the automatic preservation of the natural order of elements by TreeSet, utilizing the type's predefined sorting algorithm."]}, {'end': 10095.863, 'start': 9595.725, 'title': 'Introduction to java maps', 'summary': 'Introduces the concept of maps in java, explaining the need for key-value arrangement, the hierarchy and properties of map framework, and the differences between its implementation classes such as hashmap, treemap, linkedhashmap, and hashtable.', 'duration': 500.138, 'highlights': ['Map framework provides a key-value arrangement for storing information in Java programs, such as maintaining a company database with employee ID mapped to employee names. The need for a key-value arrangement in Java programs is exemplified by the requirement to store a company database with employee ID mapped to employee names.', 'Map interface ensures keys are unique and uses the Set class to store keys and the List class to store values, while the HashMap class provides random access and does not maintain insertion order. The Map interface ensures the uniqueness of keys and uses Set to store keys and List to store values. Additionally, the HashMap class provides random access and does not maintain insertion order.', 'The TreeMap class offers sorted representation based on keys, while the LinkedHashMap class maintains insertion order and provides a linked property of the linked list for ordered access. The TreeMap class offers a sorted representation based on keys, while the LinkedHashMap class maintains insertion order and provides a linked property of the linked list for ordered access.', 'HashMap, TreeMap, and LinkedHashMap are the most popular map implementation classes in Java, with Hashtable being thread-safe but slower due to single-thread access. HashMap, TreeMap, and LinkedHashMap are the most popular map implementation classes, with Hashtable being thread-safe but slower due to single-thread access.']}, {'end': 10625.184, 'start': 10096.484, 'title': 'Hashmap overview and usage', 'summary': 'Provides an overview of hashmap, demonstrating its initialization, adding elements, retrieving size, checking for key presence, and iterating over keys and entries, with examples and explanations, covering key-value arrangements and utility methods, such as put, size, contains key, get, key set, and entry set.', 'duration': 528.7, 'highlights': ['The chapter provides an overview of HashMap, demonstrating its initialization, adding elements, retrieving size, checking for key presence, and iterating over keys and entries, with examples and explanations, covering key-value arrangements and utility methods, such as put, size, contains key, get, key set, and entry set. Covers the key aspects of the chapter, including the basic overview of HashMap, key-value arrangements, and utility methods such as put, size, contains key, get, key set, and entry set.', 'The program adds three entries to the map (A, 10), (B, 20) and (C, 30), showcasing the key-value arrangement and the syntax for adding elements. Demonstrates the syntax and process for adding elements to the HashMap, including specific entries and their corresponding values.', 'The size of the map is printed as three after adding the entries, demonstrating the use of the size method. Demonstrates the use of the size method to retrieve and print the size of the map after adding the entries.', 'The contains key method is used to check for the presence of a key in the map, and the get method is then employed to fetch the corresponding value, demonstrating the key-value retrieval process. Explains and demonstrates the process of checking for key presence using contains key method and fetching the corresponding value using the get method.', 'The chapter demonstrates iterating over the keys using the key set method and printing the key-value pairs, showcasing the iteration process and the use of enhanced for loop syntax. Demonstrates the iteration over keys using the key set method and printing the key-value pairs using enhanced for loop syntax.', 'The entry set method is used to iterate over all the entries in the map, showcasing a more direct way to access and iterate over key-value pairs compared to using the key set method and separate get operations. Explains and demonstrates the use of entry set method to directly access and iterate over all the key-value pairs in the map.']}, {'end': 11048.252, 'start': 10625.524, 'title': 'Understanding treemaps in java', 'summary': 'Focuses on understanding treemaps in java, highlighting its natural sorting behavior for different data types like integers and strings, and how to provide custom sorting implementation for user-defined classes.', 'duration': 422.728, 'highlights': ['The TreeMap automatically sorts keys in a natural order, demonstrated with integer and string keys, providing consistent sorted access to map elements.', 'By providing custom implementations, users can define sorting behaviors for their own classes when using TreeMap.', "The TreeMap's behavior of automatically applying natural sorting order for strings and integers is demonstrated by switching the positions of keys and values, showing consistent output sequence regardless of iterations."]}], 'duration': 2208.796, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC88839456.jpg', 'highlights': ['The TreeMap class offers sorted representation based on keys, while the LinkedHashMap class maintains insertion order and provides a linked property of the linked list for ordered access.', 'HashMap, TreeMap, and LinkedHashMap are the most popular map implementation classes in Java, with Hashtable being thread-safe but slower due to single-thread access.', 'The chapter provides an overview of HashMap, demonstrating its initialization, adding elements, retrieving size, checking for key presence, and iterating over keys and entries, with examples and explanations, covering key-value arrangements and utility methods, such as put, size, contains key, get, key set, and entry set.', 'The TreeMap automatically sorts keys in a natural order, demonstrated with integer and string keys, providing consistent sorted access to map elements.']}, {'end': 12159.243, 'segs': [{'end': 11149.736, 'src': 'embed', 'start': 11127.697, 'weight': 3, 'content': [{'end': 11136.083, 'text': 'So if you are going you can pretty much make a jar file, var file or er file any kind of a package mechanism you can follow for your maven there.', 'start': 11127.697, 'duration': 8.386}, {'end': 11142.788, 'text': "So to download the dependencies we don't have to actually go to the official website of each and every software.", 'start': 11136.704, 'duration': 6.084}, {'end': 11147.312, 'text': 'You can easily get the dependencies of each and every third party binaries.', 'start': 11143.229, 'duration': 4.083}, {'end': 11149.736, 'text': 'on the mvnrepository.com.', 'start': 11147.975, 'duration': 1.761}], 'summary': 'Maven allows easy packaging and dependency download from mvnrepository.com.', 'duration': 22.039, 'max_score': 11127.697, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC811127697.jpg'}, {'end': 11245.165, 'src': 'embed', 'start': 11171.063, 'weight': 0, 'content': [{'end': 11177.475, 'text': 'if you visit, you will be able to download, go through all the jar files, dependent jar files, as in dependencies,', 'start': 11171.063, 'duration': 6.412}, {'end': 11180.778, 'text': 'which you require for your current project right.', 'start': 11177.475, 'duration': 3.303}, {'end': 11183.4, 'text': 'so now, what exactly is a maven all about?', 'start': 11180.778, 'duration': 2.622}, {'end': 11185.482, 'text': "so let's see on that part.", 'start': 11183.4, 'duration': 2.082}, {'end': 11194.989, 'text': 'so Maven is a popular open source build tool which is developed by the Apache group, and the primary ownership of this tool is to build,', 'start': 11185.482, 'duration': 9.507}, {'end': 11197.51, 'text': 'publish and deploy several projects at once.', 'start': 11194.989, 'duration': 2.521}, {'end': 11204.354, 'text': 'Maven is written in Java and it can be used to build projects written in C Sharp, Scala, Ruby etc.', 'start': 11198.111, 'duration': 6.243}, {'end': 11212.859, 'text': 'So apart from Java these are the different programming languages or the tools which is supported by the Maven here for performing the build activity.', 'start': 11204.694, 'duration': 8.165}, {'end': 11218.073, 'text': 'So the tool is used for build and management of any kind of a job-based project.', 'start': 11213.539, 'duration': 4.534}, {'end': 11228.477, 'text': 'It simplifies the day-to-day work of a Java developer and helps them to automate most of the compilation or build perspective tasks on the projects.', 'start': 11218.253, 'duration': 10.224}, {'end': 11237.762, 'text': "Now, Maven is a kind of a BOM-based project, so it's also known as a project-object model,", 'start': 11231.619, 'duration': 6.143}, {'end': 11241.943, 'text': 'and it focuses on simplification and standardization of the building process.', 'start': 11237.762, 'duration': 4.181}, {'end': 11245.165, 'text': 'In the process, it takes care of all the followings here.', 'start': 11242.444, 'duration': 2.721}], 'summary': 'Maven is an open source build tool by apache, simplifying project management and supporting multiple languages.', 'duration': 74.102, 'max_score': 11171.063, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC811171063.jpg'}, {'end': 11362.298, 'src': 'embed', 'start': 11332.2, 'weight': 6, 'content': [{'end': 11333.841, 'text': "That's the way that how it's present there.", 'start': 11332.2, 'duration': 1.641}, {'end': 11339.643, 'text': 'And the particular remote repository is something which you can store on any remote machine or remote server.', 'start': 11334.301, 'duration': 5.342}, {'end': 11343.845, 'text': 'And the central repository is something which you can have it onto the internet.', 'start': 11340.103, 'duration': 3.742}, {'end': 11351.808, 'text': 'So usually the central repositories is something in which we can actually host our different kind of dependencies and the jar files over there.', 'start': 11343.865, 'duration': 7.943}, {'end': 11357.974, 'text': 'local repository on the machine of the developer where the project material is saved.', 'start': 11354.23, 'duration': 3.744}, {'end': 11362.298, 'text': 'so all the particular dependencies jar file will be available on your local machine.', 'start': 11357.974, 'duration': 4.324}], 'summary': 'Remote and central repositories store project dependencies and jar files on remote and local machines.', 'duration': 30.098, 'max_score': 11332.2, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC811332200.jpg'}, {'end': 11561.991, 'src': 'embed', 'start': 11531.588, 'weight': 5, 'content': [{'end': 11536.911, 'text': 'then Maven will try to download it from the central repository and cache it into your local repository.', 'start': 11531.588, 'duration': 5.323}, {'end': 11541.986, 'text': 'But first of all it will look on into the local repository and if it is not present in local,', 'start': 11537.264, 'duration': 4.722}, {'end': 11545.428, 'text': 'then only it will go to the remote or the central repository.', 'start': 11541.986, 'duration': 3.442}, {'end': 11548.869, 'text': 'Then we have build life cycles and phase and goals there.', 'start': 11546.588, 'duration': 2.281}, {'end': 11554.772, 'text': 'So build life cycles consists of the sequence of build phases and each build phase consists of sequence of goals here.', 'start': 11548.909, 'duration': 5.863}, {'end': 11561.991, 'text': 'Now, each goal is responsible for performing a specific task when a phase is running all the goals related to that phase.', 'start': 11555.447, 'duration': 6.544}], 'summary': 'Maven caches dependencies, follows build life cycles, phases, and goals for specific tasks.', 'duration': 30.403, 'max_score': 11531.588, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC811531588.jpg'}, {'end': 12017.278, 'src': 'embed', 'start': 11984.387, 'weight': 8, 'content': [{'end': 11986.508, 'text': 'In Maven, you can easily add new dependencies.', 'start': 11984.387, 'duration': 2.121}, {'end': 11989.529, 'text': 'So you must write the particular dependencies in the perm file.', 'start': 11986.548, 'duration': 2.981}, {'end': 11992.59, 'text': 'So if you feel that you want to download some particular dependencies,', 'start': 11989.849, 'duration': 2.741}, {'end': 11998.313, 'text': 'so all you have to do is that you have to put that dependency into the specific perm.xml file there.', 'start': 11992.59, 'duration': 5.723}, {'end': 12003.595, 'text': 'And depending on that, the execution will be really performed and executed as such here.', 'start': 11998.713, 'duration': 4.882}, {'end': 12006.273, 'text': "So, let's talk about the demo now.", 'start': 12004.752, 'duration': 1.521}, {'end': 12011.896, 'text': "So, let's see that how exactly we can go for this demo and we can perform the various kind of automations.", 'start': 12006.333, 'duration': 5.563}, {'end': 12017.278, 'text': 'So, this is the virtual machine which we have here on which the Maven is already installed.', 'start': 12013.496, 'duration': 3.782}], 'summary': 'In maven, adding dependencies to the perm file enables easy execution of automations in the virtual machine.', 'duration': 32.891, 'max_score': 11984.387, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC811984387.jpg'}, {'end': 12108.192, 'src': 'embed', 'start': 12078.976, 'weight': 11, 'content': [{'end': 12081.137, 'text': 'so if you want to configure, you can provide that details.', 'start': 12078.976, 'duration': 2.161}, {'end': 12085.399, 'text': 'otherwise you can perform or whatever the setup you want to perform.', 'start': 12081.137, 'duration': 4.262}, {'end': 12086.9, 'text': "now here it's asking for the version.", 'start': 12085.399, 'duration': 1.501}, {'end': 12088.741, 'text': 'so which kind of version you want to follow?', 'start': 12086.9, 'duration': 1.841}, {'end': 12090.762, 'text': "so I'm going to follow like five here.", 'start': 12088.741, 'duration': 2.021}, {'end': 12092.643, 'text': "so I'll press five.", 'start': 12090.762, 'duration': 1.881}, {'end': 12094.124, 'text': 'then a group ID which is there.', 'start': 12092.643, 'duration': 1.481}, {'end': 12097.206, 'text': "so it's basically a kind of a group mechanism.", 'start': 12094.124, 'duration': 3.082}, {'end': 12100.508, 'text': 'so I can say, like calm, not simply learn.', 'start': 12097.206, 'duration': 3.302}, {'end': 12102.789, 'text': "so that's a value which I am providing here.", 'start': 12100.508, 'duration': 2.281}, {'end': 12103.449, 'text': 'artifact ID.', 'start': 12102.789, 'duration': 0.66}, {'end': 12108.192, 'text': 'I can make it like a sample project or something like that.', 'start': 12103.449, 'duration': 4.743}], 'summary': "Configuring version 5, group id 'calm', and artifact id 'sample project'", 'duration': 29.216, 'max_score': 12078.976, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC812078976.jpg'}], 'start': 11048.252, 'title': 'Maven build tool and process', 'summary': 'Provides an introduction to maven, an open source build tool that simplifies java development, facilitates download of project dependencies, and automates compilation tasks. it also covers maven repositories, build process, and plugins, emphasizing their functions and importance in customizing builds for different environments.', 'chapters': [{'end': 11262.902, 'start': 11048.252, 'title': 'Understanding maven build tool', 'summary': 'Introduces maven, an open source build tool used for simplifying day-to-day work of java developers, facilitating download of project dependencies, and automating compilation tasks, supporting various programming languages.', 'duration': 214.65, 'highlights': ['Maven simplifies day-to-day work of Java developers and helps automate most compilation tasks Maven simplifies the day-to-day work of Java developers and helps them to automate most of the compilation or build perspective tasks on the projects.', 'Maven is used to build and manage job-based projects, supporting various programming languages Maven is used for build and management of any kind of a job-based project. It can be used to build projects written in C Sharp, Scala, Ruby etc.', 'Maven focuses on simplification and standardization of the building process, including builds, dependencies, and distribution releases Maven is a BOM-based project, also known as a project-object model, focusing on simplification and standardization of the building process. It takes care of builds, dependencies, reports, distribution releases, and mailing list.']}, {'end': 11491.107, 'start': 11262.902, 'title': 'Understanding maven repositories and basic concepts', 'summary': 'Explains the three types of maven repositories - local, remote, and central, and their functions, along with the basic concepts of maven, such as the project object model (pom) and its xml file, which contains project information and versioning details.', 'duration': 228.205, 'highlights': ['Maven repositories are classified into three types: local, remote, and central, serving as locations for storing and accessing JAR files and dependencies. The chapter highlights the three types of Maven repositories - local, remote, and central - and their functions as locations for storing and accessing JAR files and dependencies.', 'The Project Object Model (POM) in Maven consists of an XML file containing project details, build automation instructions, and versioning information. The chapter emphasizes the importance of the Project Object Model (POM) in Maven, which contains project details, build automation instructions, and versioning information.', 'Maven searches for the POM file in the current directory and proceeds with the build process if found, emphasizing the significance of the POM file as a build script. The chapter emphasizes that Maven searches for the POM file in the current directory and proceeds with the build process if found, highlighting the significance of the POM file as a build script.']}, {'end': 11649.952, 'start': 11491.107, 'title': 'Understanding maven build process', 'summary': 'Explains the maven build process, including dependencies, build life cycles, build profiles, and their importance in customizing the build for different environments.', 'duration': 158.845, 'highlights': ['Maven build process involves managing dependencies, including downloading and caching them from the central repository if not present locally.', 'Build life cycles consist of build phases and goals, with each goal responsible for performing a specific task during a phase.', 'Build profiles enable customization of the build process for different environments, allowing for specific configurations and automation.']}, {'end': 12159.243, 'start': 11651.893, 'title': 'Maven plugins and build automation', 'summary': 'Discusses the use of maven plugins for automating basic tasks like compilation and jar file creation, the architecture of maven, the build lifecycle, and the advantages of using maven, emphasizing its simplification of project building and management, performance improvement, automatic dependency handling, and easy access to information.', 'duration': 507.35, 'highlights': ['Maven simplifies project building and management processes, increasing performance and automating the task of downloading jar files and dependencies. Apache Maven simplifies processes like building, documentation, releasing, and distribution, increasing project performance, and automating the task of downloading jar files and other dependencies.', 'Maven provides easy access to required information and allows developers to build projects in different environments without worrying about infrastructure. Maven provides easy access to all the required information and makes it easy for a developer to build a project in different environments without worrying about infrastructure.', 'The Maven build lifecycle consists of default, clean, and site phases, each handling project deployment, cleaning, and creation of project site documentation. The Maven build lifecycle includes default, clean, and site phases that handle project deployment, cleaning, and creation of project site documentation.', 'The build lifecycle involves different phases such as compile, test compile, test, package, integration test, verify, install, and deploy, ensuring a comprehensive build automation process. The build lifecycle includes phases like compile, test compile, test, package, integration test, verify, install, and deploy, ensuring a comprehensive build automation process.', 'Maven allows for easy addition of new dependencies by specifying them in the pom.xml file, enabling seamless execution and integration of required dependencies. Maven allows for easy addition of new dependencies by specifying them in the pom.xml file, ensuring seamless execution and integration of required dependencies.']}], 'duration': 1110.991, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC811048252.jpg', 'highlights': ['Maven simplifies day-to-day work of Java developers and helps automate most compilation tasks', 'Maven is used to build and manage job-based projects, supporting various programming languages', 'Maven focuses on simplification and standardization of the building process, including builds, dependencies, and distribution releases', 'Maven repositories are classified into three types: local, remote, and central, serving as locations for storing and accessing JAR files and dependencies', 'The Project Object Model (POM) in Maven consists of an XML file containing project details, build automation instructions, and versioning information', 'Maven searches for the POM file in the current directory and proceeds with the build process if found, emphasizing the significance of the POM file as a build script', 'Maven build process involves managing dependencies, including downloading and caching them from the central repository if not present locally', 'Build life cycles consist of build phases and goals, with each goal responsible for performing a specific task during a phase', 'Build profiles enable customization of the build process for different environments, allowing for specific configurations and automation', 'Maven simplifies project building and management processes, increasing performance and automating the task of downloading jar files and dependencies', 'Maven provides easy access to required information and allows developers to build projects in different environments without worrying about infrastructure', 'The Maven build lifecycle consists of default, clean, and site phases, each handling project deployment, cleaning, and creation of project site documentation', 'The build lifecycle involves different phases such as compile, test compile, test, package, integration test, verify, install, and deploy, ensuring a comprehensive build automation process', 'Maven allows for easy addition of new dependencies by specifying them in the pom.xml file, enabling seamless execution and integration of required dependencies']}, {'end': 13279.084, 'segs': [{'end': 12277.968, 'src': 'embed', 'start': 12233.891, 'weight': 4, 'content': [{'end': 12243.835, 'text': 'What began as a hobby project by a developer working for Sun Microsystems way back in early or mid 2000s has gradually and eventually evolved into very,', 'start': 12233.891, 'duration': 9.944}, {'end': 12246.416, 'text': 'very powerful and robust automation servers.', 'start': 12243.835, 'duration': 2.581}, {'end': 12252.117, 'text': 'It has a wide adoption since it is released under MIT license and is almost free to use.', 'start': 12246.894, 'duration': 5.223}, {'end': 12257.56, 'text': 'Jenkins has a vast developer community that supports it by writing all kinds of plugins.', 'start': 12252.758, 'duration': 4.802}, {'end': 12264.765, 'text': 'Plugins is the heart and soul of Jenkins because using plugins, one can connect Jenkins to anything and everything under the sun.', 'start': 12258.041, 'duration': 6.724}, {'end': 12270.068, 'text': "With that introduction, let's get into what all will be covered as a part of this tutorial.", 'start': 12265.465, 'duration': 4.603}, {'end': 12277.968, 'text': 'I will get into some of the prerequisites required for installing Jenkins post which I will go ahead and install Jenkins on a Windows box.', 'start': 12270.663, 'duration': 7.305}], 'summary': 'Jenkins, developed in the mid-2000s, has wide adoption, vast plugin support, and is freely available under the mit license.', 'duration': 44.077, 'max_score': 12233.891, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC812233891.jpg'}, {'end': 12359.772, 'src': 'embed', 'start': 12334.504, 'weight': 5, 'content': [{'end': 12340.81, 'text': 'whenever there is any notifications that has to be sent out as a part of either build going bad, or build being good,', 'start': 12334.504, 'duration': 6.306}, {'end': 12344.093, 'text': 'or build being propagated to some environment and all these scenarios,', 'start': 12340.81, 'duration': 3.283}, {'end': 12348.196, 'text': 'you would need the continuous integration servers to be sending out notifications.', 'start': 12344.093, 'duration': 4.103}, {'end': 12353.461, 'text': 'so I will get into a little bit details of how to configure Jenkins for sending out emails.', 'start': 12348.196, 'duration': 5.265}, {'end': 12359.772, 'text': 'I will also get into scenario where I would have a web application, a Maven based Java web application,', 'start': 12353.461, 'duration': 6.311}], 'summary': 'Configure jenkins for sending notifications and maven based java web application', 'duration': 25.268, 'max_score': 12334.504, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC812334504.jpg'}, {'end': 12541.71, 'src': 'embed', 'start': 12514.431, 'weight': 2, 'content': [{'end': 12517.272, 'text': 'with the subtle changes in terms of user administration, if at all.', 'start': 12514.431, 'duration': 2.841}, {'end': 12520.972, 'text': "you're launching it through any other web server which will take care of the user administration.", 'start': 12517.272, 'duration': 3.7}, {'end': 12525.934, 'text': "Otherwise, all the commands or all the configuration or the way in which I'm going to run this demo,", 'start': 12521.253, 'duration': 4.681}, {'end': 12528.594, 'text': 'it is going to be same across any of these installations.', 'start': 12525.934, 'duration': 2.66}, {'end': 12529.334, 'text': 'All right.', 'start': 12529.054, 'duration': 0.28}, {'end': 12535.696, 'text': 'So the prerequisites for running Jenkins, as I mentioned earlier, Jenkins is nothing but a simple web application that is run in Java.', 'start': 12529.494, 'duration': 6.202}, {'end': 12541.71, 'text': 'So all that it needs is Java, preferably JDK 1.7 or 1.8.', 'start': 12535.876, 'duration': 5.834}], 'summary': 'Jenkins requires java (jdk 1.7 or 1.8) and consistent administration across web server installations.', 'duration': 27.279, 'max_score': 12514.431, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC812514431.jpg'}, {'end': 12827.138, 'src': 'embed', 'start': 12802.799, 'weight': 1, 'content': [{'end': 12809.364, 'text': "If at all you run a war file, depending upon the user ID with which you're running a war file, the Jenkins folder, there's a .", 'start': 12802.799, 'duration': 6.565}, {'end': 12812.667, 'text': 'jenkins folder that gets created inside the user home directory.', 'start': 12809.364, 'duration': 3.303}, {'end': 12820.453, 'text': 'So, in case you have any need wherein you want to backup your Jenkins or you want Jenkins installations to get into some specific directories,', 'start': 12812.967, 'duration': 7.486}, {'end': 12824.896, 'text': 'go ahead and set this Jenkins home variable accordingly before you even begin your installation.', 'start': 12820.453, 'duration': 4.443}, {'end': 12827.138, 'text': "For now, I don't need to do any of these things.", 'start': 12825.096, 'duration': 2.042}], 'summary': 'Running a war file creates a .jenkins folder in the user home directory, requiring jenkins home variable setup for specific directories.', 'duration': 24.339, 'max_score': 12802.799, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC812802799.jpg'}, {'end': 12923.105, 'src': 'embed', 'start': 12892.656, 'weight': 3, 'content': [{'end': 12895.498, 'text': "If at all you're running as a war file, you would see that in your logs.", 'start': 12892.656, 'duration': 2.842}, {'end': 12898.32, 'text': 'All right.', 'start': 12898.1, 'duration': 0.22}, {'end': 12902.583, 'text': 'So this is a simple hash key that gets created every time when you do a Jenkins installation.', 'start': 12898.34, 'duration': 4.243}, {'end': 12906.205, 'text': 'So as a part of the installation, it just asks you to do this.', 'start': 12903.223, 'duration': 2.982}, {'end': 12910.888, 'text': 'So if that is not correct, it will crib about it.', 'start': 12907.786, 'duration': 3.102}, {'end': 12912.109, 'text': 'But this looks good.', 'start': 12910.948, 'duration': 1.161}, {'end': 12913.61, 'text': "So it's going ahead.", 'start': 12912.809, 'duration': 0.801}, {'end': 12916.732, 'text': 'All right.', 'start': 12916.512, 'duration': 0.22}, {'end': 12919.363, 'text': 'one important part during the installation.', 'start': 12917.142, 'duration': 2.221}, {'end': 12923.105, 'text': 'So you would need to install some recommended plugins.', 'start': 12920.124, 'duration': 2.981}], 'summary': 'Jenkins installation requires creating a hash key and installing recommended plugins.', 'duration': 30.449, 'max_score': 12892.656, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC812892656.jpg'}, {'end': 12966.26, 'src': 'embed', 'start': 12939.713, 'weight': 0, 'content': [{'end': 12943.515, 'text': 'So just go ahead and blindly click that install recommended plugin.', 'start': 12939.713, 'duration': 3.802}, {'end': 12951.937, 'text': 'So if you see there is a whole lot of plugins which are bare essential plugins that is required for Jenkins in order to run properly.', 'start': 12943.535, 'duration': 8.402}, {'end': 12957.838, 'text': 'So Jenkins as a part of the installation would get all these plugins and then install it for you.', 'start': 12952.417, 'duration': 5.421}, {'end': 12960.979, 'text': 'This is a good combination to kind of begin with.', 'start': 12958.558, 'duration': 2.421}, {'end': 12966.26, 'text': 'And mind you, at this moment Jenkins needs lots of bandwidth in terms of network.', 'start': 12961.339, 'duration': 4.921}], 'summary': 'Installing recommended plugins for jenkins is essential for proper functioning. jenkins requires significant network bandwidth.', 'duration': 26.547, 'max_score': 12939.713, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC812939713.jpg'}], 'start': 12159.723, 'title': 'Maven and jenkins in devops', 'summary': 'Covers maven project dependency management, including executing build commands, generating jar files, and enabling customization. it also explains jenkins installation and configuration, covering prerequisites, user administration, job scheduling, connecting with github, email notifications, deploying a maven-based java web application, master-slave configuration, and using plugins for backup. additionally, it includes setting up jenkins prerequisites, such as java version and ram requirements, detailed steps for installing jdk 1.8, setting environment variables, downloading and installing jenkins, configuring jenkins home, installing recommended plugins, and configuring smtp server for email notifications.', 'chapters': [{'end': 12216.657, 'start': 12159.723, 'title': 'Maven project dependency management', 'summary': 'Explains how to manage dependencies in a maven project, execute build commands, and generate jar files in the target directory, enabling customization and flexibility.', 'duration': 56.934, 'highlights': ['You can add custom dependencies to the default JUnit dependency in a Maven project, providing flexibility and customization options.', "Executing 'MVN clean install' in a Maven project generates jar files in the target directory, facilitating the build process and demonstrating the outcome of the project execution.", 'The process allows for adding or modifying dependencies based on the project requirements, enabling adaptability and customization for the final project result.']}, {'end': 12529.334, 'start': 12217.625, 'title': 'Jenkins installation and configuration', 'summary': 'Covers the installation and configuration of jenkins, including prerequisites, user administration, job scheduling, connecting with github, email notifications, deploying a maven-based java web application, master-slave configuration, and using plugins for backup.', 'duration': 311.709, 'highlights': ['Jenkins is a popular continuous integration server with wide adoption, released under MIT license, and supported by a vast developer community. Jenkins is widely adopted due to being released under MIT license and having a vast developer community.', 'The chapter covers prerequisites, user administration, job scheduling, connecting with GitHub, email notifications, deploying a Maven-based Java web application, master-slave configuration, and using plugins for backup. The chapter covers a wide range of topics from prerequisites to master-slave configuration and backup using plugins.', 'Jenkins can be installed on Windows or Linux as a service, by downloading a generic war file, or by running it attached to a Java web server. Jenkins can be installed on Windows or Linux as a service, by downloading a generic war file, or by running it attached to a Java web server.']}, {'end': 13279.084, 'start': 12529.494, 'title': 'Setting up jenkins: prerequisites and installation', 'summary': 'Covers the prerequisites for running jenkins, including java version and ram requirements, detailed steps for installing jdk 1.8, setting environment variables, downloading and installing jenkins, configuring jenkins home, installing recommended plugins, and configuring smtp server for email notifications.', 'duration': 749.59, 'highlights': ["Jenkins requires Java, preferably JDK 1.7 or 1.8, and 2GB RAM for recommended installation. The prerequisites for running Jenkins include Java version and RAM requirements, with JDK 1.8 being installed and set in the environment variable 'java home.'", 'Detailed steps for downloading and installing JDK 1.8 are provided, including setting environment variables and verifying the installation. The detailed steps for downloading and installing JDK 1.8, setting environment variables, and verifying the installation are outlined.', 'Instructions for downloading and installing Jenkins, as well as setting up the Jenkins home variable, are described. The process of downloading and installing Jenkins, along with setting up the Jenkins home variable, is explained.', 'The importance of installing recommended plugins and configuring the SMTP server for email notifications is emphasized. The emphasis on installing recommended plugins and configuring the SMTP server for email notifications is highlighted as important steps in the Jenkins installation process.']}], 'duration': 1119.361, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC812159723.jpg', 'highlights': ["Executing 'MVN clean install' in a Maven project generates jar files in the target directory, facilitating the build process and demonstrating the outcome of the project execution.", 'The process allows for adding or modifying dependencies based on the project requirements, enabling adaptability and customization for the final project result.', 'You can add custom dependencies to the default JUnit dependency in a Maven project, providing flexibility and customization options.', 'Jenkins is a popular continuous integration server with wide adoption, released under MIT license, and supported by a vast developer community.', 'The chapter covers prerequisites, user administration, job scheduling, connecting with GitHub, email notifications, deploying a Maven-based Java web application, master-slave configuration, and using plugins for backup.', 'Jenkins can be installed on Windows or Linux as a service, by downloading a generic war file, or by running it attached to a Java web server.', 'Jenkins requires Java, preferably JDK 1.7 or 1.8, and 2GB RAM for recommended installation.', 'Detailed steps for downloading and installing JDK 1.8 are provided, including setting environment variables and verifying the installation.', 'Instructions for downloading and installing Jenkins, as well as setting up the Jenkins home variable, are described.', 'The importance of installing recommended plugins and configuring the SMTP server for email notifications is emphasized.']}, {'end': 14463.399, 'segs': [{'end': 13407.584, 'src': 'embed', 'start': 13377.364, 'weight': 4, 'content': [{'end': 13380.947, 'text': 'I need to specify the JDK location of this out here this way.', 'start': 13377.364, 'duration': 3.583}, {'end': 13390.415, 'text': "Okay, since I already have the JDK installed and I've already put in the Java home directory, or rather the environment variable correctly,", 'start': 13382.529, 'duration': 7.886}, {'end': 13391.276, 'text': "I don't need to do it.", 'start': 13390.415, 'duration': 0.861}, {'end': 13395.117, 'text': 'Git, if at all I want the Jenkins server to Use Git.', 'start': 13391.876, 'duration': 3.241}, {'end': 13402.101, 'text': 'Git is a, you know, command dash or the command prompt for running Git and connecting to any other Git server.', 'start': 13395.558, 'duration': 6.543}, {'end': 13407.584, 'text': 'So you would need Git to be, you know, installed on that particular system and set the path accordingly.', 'start': 13402.461, 'duration': 5.123}], 'summary': 'Jdk and git setup required for jenkins server.', 'duration': 30.22, 'max_score': 13377.364, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC813377364.jpg'}, {'end': 13448.494, 'src': 'embed', 'start': 13421.812, 'weight': 2, 'content': [{'end': 13431.062, 'text': "In case you don't configure it, Jenkins runs, it will not be able to find these tools for building your task and it'll crib about it.", 'start': 13421.812, 'duration': 9.25}, {'end': 13431.562, 'text': "that's good.", 'start': 13431.062, 'duration': 0.5}, {'end': 13433.544, 'text': "i don't want to save anything.", 'start': 13431.562, 'duration': 1.982}, {'end': 13434.344, 'text': 'manage Jenkins.', 'start': 13433.544, 'duration': 0.8}, {'end': 13436.245, 'text': 'let me see what else is required.', 'start': 13434.344, 'duration': 1.901}, {'end': 13439.488, 'text': 'yes, configure global security.', 'start': 13436.245, 'duration': 3.243}, {'end': 13445.211, 'text': "all right, the security is enabled and if you see, by default it's the security.", 'start': 13439.488, 'duration': 5.723}, {'end': 13448.494, 'text': 'access control is set to Jenkins own user database.', 'start': 13445.211, 'duration': 3.283}], 'summary': 'Without configuration, jenkins will not find tools for tasks; default security uses jenkins user database.', 'duration': 26.682, 'max_score': 13421.812, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC813421812.jpg'}, {'end': 13892.935, 'src': 'embed', 'start': 13861.87, 'weight': 0, 'content': [{'end': 13862.63, 'text': 'Let me save this.', 'start': 13861.87, 'duration': 0.76}, {'end': 13867.554, 'text': "And how do I check whether it gets triggered every minute or not? I just don't do anything.", 'start': 13863.231, 'duration': 4.323}, {'end': 13869.175, 'text': "I'll just wait for a minute.", 'start': 13867.994, 'duration': 1.181}, {'end': 13876.88, 'text': "And if at all everything goes well, Jenkins would automatically trigger my second job in a minute's time from now.", 'start': 13869.935, 'duration': 6.945}, {'end': 13882.608, 'text': "This time around, I'm not going to trigger anything.", 'start': 13880.566, 'duration': 2.042}, {'end': 13883.768, 'text': 'Look, there you see.', 'start': 13882.668, 'duration': 1.1}, {'end': 13885.89, 'text': "It's automatically got triggered.", 'start': 13884.449, 'duration': 1.441}, {'end': 13892.935, 'text': 'If I go in here, yep, second job that gets triggered automatically.', 'start': 13887.892, 'duration': 5.043}], 'summary': 'Jenkins triggers second job automatically after one minute.', 'duration': 31.065, 'max_score': 13861.87, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC813861870.jpg'}, {'end': 14080.747, 'src': 'embed', 'start': 14055.228, 'weight': 5, 'content': [{'end': 14060.17, 'text': 'So let me go into, yes, global security.', 'start': 14055.228, 'duration': 4.942}, {'end': 14064.812, 'text': 'And I would see this role-based strategy showing up now.', 'start': 14061.571, 'duration': 3.241}, {'end': 14065.913, 'text': 'All right.', 'start': 14065.693, 'duration': 0.22}, {'end': 14070.355, 'text': 'So this comes in because of my installation of my role-based plugin.', 'start': 14065.933, 'duration': 4.422}, {'end': 14076.045, 'text': 'So this is what I would want to enable because I already have my own database set up.', 'start': 14070.762, 'duration': 5.283}, {'end': 14080.747, 'text': "And for the authorization part, in the sense that who can do what I'm going to install?", 'start': 14076.185, 'duration': 4.562}], 'summary': 'Implementing role-based strategy for global security and authorization.', 'duration': 25.519, 'max_score': 14055.228, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC814055228.jpg'}, {'end': 14266.02, 'src': 'embed', 'start': 14235.355, 'weight': 1, 'content': [{'end': 14240.998, 'text': 'I would just want him to read a job or check, you know, have read-only access to the job.', 'start': 14235.355, 'duration': 5.643}, {'end': 14244.94, 'text': "Run No, I don't want him to give him any particular role.", 'start': 14241.118, 'duration': 3.822}, {'end': 14247.876, 'text': 'access which will allow him to run any jobs.', 'start': 14245.535, 'duration': 2.341}, {'end': 14250.576, 'text': 'view configure yeah, possibly.', 'start': 14247.876, 'duration': 2.7}, {'end': 14252.737, 'text': 'create, yeah, delete.', 'start': 14250.576, 'duration': 2.161}, {'end': 14253.957, 'text': "i don't want read.", 'start': 14252.737, 'duration': 1.22}, {'end': 14257.598, 'text': 'yes, definitely, and this is the specific role.', 'start': 14253.957, 'duration': 3.641}, {'end': 14258.758, 'text': "so what i'm doing?", 'start': 14257.598, 'duration': 1.16}, {'end': 14266.02, 'text': "i'm just creating a global role called developer and i'm giving him very, very limited roles,", 'start': 14258.758, 'duration': 7.262}], 'summary': "Creating a global role named 'developer' with limited access to job functions.", 'duration': 30.665, 'max_score': 14235.355, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC814235355.jpg'}, {'end': 14348.001, 'src': 'embed', 'start': 14318.923, 'weight': 6, 'content': [{'end': 14322.984, 'text': 'Okay, so this is the admin with which I kind of configured or brought up the system.', 'start': 14318.923, 'duration': 4.061}, {'end': 14325.925, 'text': 'And developer1 is a user that I have configured.', 'start': 14323.064, 'duration': 2.861}, {'end': 14329.886, 'text': 'So still have not set any rules for this particular user yet.', 'start': 14326.405, 'duration': 3.481}, {'end': 14331.996, 'text': 'So I would go to manage Jenkins.', 'start': 14330.296, 'duration': 1.7}, {'end': 14337.858, 'text': 'I would say manage and assign roles.', 'start': 14333.597, 'duration': 4.261}, {'end': 14339.498, 'text': 'I would say assign roles.', 'start': 14338.338, 'duration': 1.16}, {'end': 14348.001, 'text': "Okay, so if you see what I'm going to do now is assign a role that is specific to that particular developer.", 'start': 14342.659, 'duration': 5.342}], 'summary': 'Configured admin and user roles for developer1 in jenkins.', 'duration': 29.078, 'max_score': 14318.923, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC814318923.jpg'}, {'end': 14459.537, 'src': 'embed', 'start': 14429.352, 'weight': 3, 'content': [{'end': 14432.653, 'text': "he doesn't want to give developer any administrative rights.", 'start': 14429.352, 'duration': 3.301}, {'end': 14441.716, 'text': 'so the rights that he set out by creating a developer role and anybody who is tagged, any user who is tagged as a part of this developer role,', 'start': 14432.653, 'duration': 9.063}, {'end': 14445.993, 'text': 'would get the same kind of permissions, And these permissions can be, you know, fine grained.', 'start': 14441.716, 'duration': 4.277}, {'end': 14448.394, 'text': 'It can be a project specific permissions as well.', 'start': 14446.373, 'duration': 2.021}, {'end': 14452.415, 'text': 'But for now, I just demonstrated the high level permission that I had set in.', 'start': 14448.434, 'duration': 3.981}, {'end': 14459.537, 'text': 'Let me quickly log out of this user and get back as the admin user because I need to continue with my demo.', 'start': 14453.075, 'duration': 6.462}], 'summary': 'Developer role created with specific permissions, project-specific, demonstrated high-level permission.', 'duration': 30.185, 'max_score': 14429.352, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC814429352.jpg'}], 'start': 13279.591, 'title': 'Configuring jenkins and role-based access', 'summary': 'Covers configuring email notifications, setting up global tools, creating simple jobs, and installing role-based access plugin in jenkins. it includes lowering gmail security, specifying jdk, git, gradle, and maven, using own database, executing windows batch commands, automating job triggers, and creating a developer role with limited privileges.', 'chapters': [{'end': 13492.439, 'start': 13279.591, 'title': 'Configuring email and global tools in jenkins', 'summary': 'Covers configuring email notifications for jenkins by lowering the security level of a gmail account and setting up global tools in jenkins for continuous integration, including specifying jdk, git, gradle, and maven.', 'duration': 212.848, 'highlights': ['Configuring email notifications by lowering the security level of a Gmail account and setting up global tools in Jenkins for continuous integration. The chapter covers configuring email notifications for Jenkins by lowering the security level of a Gmail account and setting up global tools in Jenkins for continuous integration, including specifying JDK, Git, Gradle, and Maven.', 'The importance of setting up global tools in Jenkins for continuous integration, such as specifying JDK, Git, Gradle, and Maven, to enable Jenkins to build the appropriate code. The chapter emphasizes the importance of setting up global tools in Jenkins for continuous integration, such as specifying JDK, Git, Gradle, and Maven, to enable Jenkins to build the appropriate code.', 'Explanation of how to configure a Gmail account for email notifications and the significance of specifying tools like JDK, Git, Gradle, and Maven for building tasks. The chapter explains how to configure a Gmail account for email notifications and emphasizes the significance of specifying tools like JDK, Git, Gradle, and Maven for building tasks.']}, {'end': 13997.954, 'start': 13492.439, 'title': 'Setting up jenkins and creating simple jobs', 'summary': 'Covers setting up jenkins with own database, creating simple jobs using freestyle projects, executing windows batch commands, and automating job triggers every minute. additionally, it explains the installation of role-based access plugin for controlling server access.', 'duration': 505.515, 'highlights': ['Setting up Jenkins with own database and authorization methods, creating simple jobs using freestyle projects, and executing Windows batch commands. N/A', 'Automating job triggers every minute and demonstrating the powerfulness of the automation server. Job triggered automatically at specific time', 'Installation of role-based access plugin for controlling server access and creating rules for user authorization. Plugin installation and user authorization rules creation']}, {'end': 14463.399, 'start': 13998.714, 'title': 'Installation of role-based access plugin', 'summary': 'Details the installation of a role-based access plugin in jenkins, creating a developer role with limited privileges, and assigning the role to a specific user, ultimately demonstrating the restricted permissions of the assigned user.', 'duration': 464.685, 'highlights': ['A role-based access plugin was installed in Jenkins to control user access and permissions. The chapter focuses on the installation and setup of the role-based access plugin in Jenkins, emphasizing the importance of restarting Jenkins after significant installations.', 'A developer role was created with limited permissions such as read-only access and restrictions on job creation and configuration. The chapter outlines the creation of a developer role with restricted permissions, including read-only access, limitations on job creation, configuration, and execution, aimed at maintaining controlled access for developers.', "The specific user 'developer1' was assigned the created developer role, demonstrating the restricted permissions upon logging in as the assigned user. The chapter illustrates the assignment of the developer role to the user 'developer1', showcasing the limited privileges and permissions granted to the assigned user upon logging in, ensuring controlled access and restricted capabilities."]}], 'duration': 1183.808, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC813279591.jpg', 'highlights': ['Configuring email notifications for Jenkins by lowering the security level of a Gmail account and setting up global tools for continuous integration, including specifying JDK, Git, Gradle, and Maven.', 'Emphasizing the importance of setting up global tools in Jenkins for continuous integration, such as specifying JDK, Git, Gradle, and Maven, to enable Jenkins to build the appropriate code.', 'Demonstrating the powerfulness of the automation server by automating job triggers every minute.', 'Installing the role-based access plugin for controlling server access and creating rules for user authorization.', 'Focusing on the installation and setup of the role-based access plugin in Jenkins, emphasizing the importance of restarting Jenkins after significant installations.', 'Outlining the creation of a developer role with restricted permissions, including read-only access, limitations on job creation, configuration, and execution, aimed at maintaining controlled access for developers.', "Illustrating the assignment of the developer role to the user 'developer1', showcasing the limited privileges and permissions granted to the assigned user upon logging in, ensuring controlled access and restricted capabilities."]}, {'end': 16525.864, 'segs': [{'end': 16151.078, 'src': 'embed', 'start': 16125.739, 'weight': 0, 'content': [{'end': 16134.065, 'text': "so i'm saying, in the same folder where there is agent.jar, i'm going to launch this a particular agent java, hyphen, jar, agent.jar, jnlp.", 'start': 16125.739, 'duration': 8.326}, {'end': 16135.826, 'text': 'this is the url of my server.', 'start': 16134.065, 'duration': 1.761}, {'end': 16140.77, 'text': 'in case the server and client are on different locations or different ips, you have to specify the ip address.', 'start': 16135.826, 'duration': 4.944}, {'end': 16143.292, 'text': 'all this anyway would show up.', 'start': 16140.77, 'duration': 2.522}, {'end': 16151.078, 'text': 'and then the secret, and you know the root folder of your jenkins or the slave node.', 'start': 16143.292, 'duration': 7.786}], 'summary': 'Launching agent.jar with specific configurations for server connection and secret.', 'duration': 25.339, 'max_score': 16125.739, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC816125739.jpg'}, {'end': 16466.065, 'src': 'embed', 'start': 16441.311, 'weight': 7, 'content': [{'end': 16448.896, 'text': "it can kind of slow down your Jenkins instance because it's it's in the process of copying few of those things and if the files are being changed at that moment,", 'start': 16441.311, 'duration': 7.585}, {'end': 16450.776, 'text': "it's a little bit problematic for Jenkins.", 'start': 16448.896, 'duration': 1.88}, {'end': 16456.54, 'text': 'so typically you backup your servers only when there is very less load or typically try, to you know,', 'start': 16450.776, 'duration': 5.764}, {'end': 16460.623, 'text': 'bring it to a shut down kind of a state and then take a backup.', 'start': 16456.54, 'duration': 4.083}, {'end': 16461.043, 'text': 'all right.', 'start': 16460.623, 'duration': 0.42}, {'end': 16463.424, 'text': "so I'm gonna back up all these things.", 'start': 16461.043, 'duration': 2.381}, {'end': 16466.065, 'text': "you know, I don't want to exclude anything else.", 'start': 16463.424, 'duration': 2.641}], 'summary': 'Backup process can slow down jenkins, backup during low load or shutdown state', 'duration': 24.754, 'max_score': 16441.311, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC816441311.jpg'}], 'start': 14464.079, 'title': 'Jenkins integration and automation', 'summary': 'Covers jenkins integration with plugins, git, maven, and deployment automation, as well as setting up distributed build servers, delegating jobs to agents, and backing up configurations, providing comprehensive guidance and examples for seamless integration and automation.', 'chapters': [{'end': 14657.108, 'start': 14464.079, 'title': 'Jenkins plugins and integrations', 'summary': 'Discusses how jenkins relies on a wide range of plugins for connecting to various platforms and tools, highlighting the significance of plugins in enabling integrations, with examples and use cases, emphasizing their role in supporting different technologies and services.', 'duration': 193.029, 'highlights': ['Jenkins relies on a wide range of plugins for connecting to various platforms and tools, emphasizing the significance of plugins in enabling integrations. The chapter underscores the pivotal role of plugins in Jenkins, which enable connections to different platforms and tools, showcasing their essentiality in facilitating integrations.', 'The chapter provides examples and use cases of how plugins support different technologies and services, such as connecting to AWS, Docker, Bitbucket, Maven, JDK, MSBuild, GitHub, SonarQube, and more. It highlights specific examples where plugins are crucial, including connecting to AWS, Docker, Bitbucket, Maven, JDK, MSBuild, GitHub, SonarQube, underscoring the diverse range of technologies and services supported by plugins.', 'Emphasizing the role of plugins in enabling integrations, with examples and use cases, showcasing their significance in supporting different technologies and services. The chapter reiterates the importance of plugins in facilitating integrations, presenting examples and use cases to illustrate their critical role in supporting various technologies and services.']}, {'end': 15178.927, 'start': 14657.108, 'title': 'Integrating jenkins with git and maven', 'summary': 'Explains the process of integrating jenkins with git to pull source code and build a java application, followed by the setup of a maven-based web application on jenkins and configuring a tomcat server for deployment.', 'duration': 521.819, 'highlights': ['Jenkins integrates with Git to pull source code and build Java applications by specifying source code management, connecting to GitHub, and executing build steps like javac and java. Explains the process of integrating Jenkins with Git and building a Java application using Jenkins.', 'Setting up a Maven-based web application on Jenkins involves ensuring the availability of Maven and Tomcat servers, configuring Maven environment variables, and modifying Tomcat server settings to avoid port clashes. Details the process of setting up a Maven-based web application on Jenkins and configuring Maven and Tomcat servers.']}, {'end': 15709.526, 'start': 15178.927, 'title': 'Automating maven deployment with jenkins', 'summary': 'Details the process of setting up a jenkins job to automate the deployment of a maven web application, including configuring the job, installing necessary plugins, and deploying the application to a tomcat server, while explaining the concept of distributed build or master-slave configuration in jenkins.', 'duration': 530.599, 'highlights': ["The process involves setting up a Jenkins job to automate the deployment of a Maven web application, including configuring the job, installing necessary plugins, and deploying the application to a Tomcat server. The job includes running Maven targets such as 'mvn package' to create a war file and using the 'deployment to container' plugin to deploy the war file onto the Tomcat server.", 'The concept of distributed build or master-slave configuration in Jenkins is explained, highlighting the benefits of distributing the load on the Jenkins server and delegating jobs to other machines or slaves based on triggers or specific build configurations for different operating systems.', 'The need for master-slave configuration is exemplified with use cases involving building projects on different operating systems such as Windows, Linux, and Mac OS, emphasizing the flexibility and support provided by the master-slave concept in Jenkins.']}, {'end': 16206.527, 'start': 15709.826, 'title': 'Setting up a distributed build server', 'summary': 'Explores setting up a distributed build server using jenkins, including configuring a master-slave setup, provisioning a slave node, and connecting it to the master, with emphasis on java network launch protocol (jnlp) as the launch method.', 'duration': 496.701, 'highlights': ['Configuring a master-slave setup The Jenkins server is configured with proper authorizations and users configurations to delegate jobs and control other systems, allowing for a distributed build server setup.', 'Provisioning a slave node The process of provisioning a slave node involves configuring it on the server, setting security parameters, and defining the launch method, with specific emphasis on using Java Network Launch Protocol (JNLP).', 'Connecting the slave to the master using JNLP The method of connecting the master and slave involves enabling the JNLP port, configuring the master and server to communicate using JNLP, and launching the agent on the slave using the JNLP URL and security credentials.']}, {'end': 16525.864, 'start': 16206.887, 'title': 'Delegating jobs to agents and backing up jenkins configuration', 'summary': 'Discusses how to delegate a job to an agent in jenkins, ensuring a job runs on a specific node, and using a backup plugin to safeguard jenkins configurations, emphasizing the importance of backing up jenkins and providing a step-by-step guide for using the backup plugin.', 'duration': 318.977, 'highlights': ['The concept of master-slave configuration in Jenkins, demonstrating how to delegate a job to an agent to execute it on a specific node and showcasing the successful execution of the job. Demonstrates the concept of master-slave configuration in Jenkins, showing how to delegate a job to an agent to execute it on a specific node and highlighting the successful execution of the job.', 'The importance of backing up Jenkins configurations to safeguard against failures or crashes, and the step-by-step guide for using a backup plugin to create a backup in zip format, including considerations for server load and file changes during backup. Emphasizes the importance of backing up Jenkins configurations to safeguard against failures or crashes, providing a step-by-step guide for using a backup plugin to create a backup in zip format, including considerations for server load and file changes during backup.']}], 'duration': 2061.785, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC814464079.jpg', 'highlights': ['The chapter underscores the pivotal role of plugins in Jenkins, which enable connections to different platforms and tools, showcasing their essentiality in facilitating integrations.', 'The chapter provides examples and use cases of how plugins support different technologies and services, such as connecting to AWS, Docker, Bitbucket, Maven, JDK, MSBuild, GitHub, SonarQube, and more.', 'Jenkins integrates with Git to pull source code and build Java applications by specifying source code management, connecting to GitHub, and executing build steps like javac and java.', 'Setting up a Maven-based web application on Jenkins involves ensuring the availability of Maven and Tomcat servers, configuring Maven environment variables, and modifying Tomcat server settings to avoid port clashes.', 'The process involves setting up a Jenkins job to automate the deployment of a Maven web application, including configuring the job, installing necessary plugins, and deploying the application to a Tomcat server.', 'The concept of distributed build or master-slave configuration in Jenkins is explained, highlighting the benefits of distributing the load on the Jenkins server and delegating jobs to other machines or slaves based on triggers or specific build configurations for different operating systems.', 'Configuring a master-slave setup The Jenkins server is configured with proper authorizations and users configurations to delegate jobs and control other systems, allowing for a distributed build server setup.', 'Provisioning a slave node The process of provisioning a slave node involves configuring it on the server, setting security parameters, and defining the launch method, with specific emphasis on using Java Network Launch Protocol (JNLP).', 'Connecting the slave to the master using JNLP The method of connecting the master and slave involves enabling the JNLP port, configuring the master and server to communicate using JNLP, and launching the agent on the slave using the JNLP URL and security credentials.', 'The concept of master-slave configuration in Jenkins, demonstrating how to delegate a job to an agent to execute it on a specific node and showcasing the successful execution of the job.', 'The importance of backing up Jenkins configurations to safeguard against failures or crashes, and the step-by-step guide for using a backup plugin to create a backup in zip format, including considerations for server load and file changes during backup.']}, {'end': 20227.288, 'segs': [{'end': 16919.427, 'src': 'embed', 'start': 16880.943, 'weight': 0, 'content': [{'end': 16887.967, 'text': "So I'm going to add a p tag and say this is the paragraph tag.", 'start': 16880.943, 'duration': 7.024}, {'end': 16902.091, 'text': 'After this, let me add a simple h2 tag which is another heading tag and say this is the second heading.', 'start': 16892.931, 'duration': 9.16}, {'end': 16908.537, 'text': 'Now you can also add line breaks which are helpful from time to time.', 'start': 16902.111, 'duration': 6.426}, {'end': 16914.322, 'text': 'If you want to provide a single line break in your content, you can do so by adding the tag.', 'start': 16909.097, 'duration': 5.225}, {'end': 16919.427, 'text': 'So here let me just add one for better understanding.', 'start': 16914.983, 'duration': 4.444}], 'summary': 'Demonstrated adding p tag, h2 tag, and line breaks for better understanding.', 'duration': 38.484, 'max_score': 16880.943, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC816880943.jpg'}, {'end': 17161.652, 'src': 'embed', 'start': 17127.354, 'weight': 11, 'content': [{'end': 17129.756, 'text': 'It means it will select all the P elements on the page.', 'start': 17127.354, 'duration': 2.402}, {'end': 17133.898, 'text': 'It will style all the P elements to the central aligned having blue color.', 'start': 17130.376, 'duration': 3.522}, {'end': 17136.04, 'text': 'This is a CSS Selector.', 'start': 17134.899, 'duration': 1.141}, {'end': 17138.6, 'text': 'It is set to P.', 'start': 17137.239, 'duration': 1.361}, {'end': 17141.081, 'text': 'This means it will select all the P elements on the page.', 'start': 17138.6, 'duration': 2.481}, {'end': 17144.583, 'text': 'It will style all the P elements to be center aligned having blue color.', 'start': 17141.541, 'duration': 3.042}, {'end': 17147.084, 'text': "Let's look at what it looks on a page.", 'start': 17145.583, 'duration': 1.501}, {'end': 17153.808, 'text': 'So, as you can see, all the elements are centrally aligned with a text color blue.', 'start': 17149.105, 'duration': 4.703}, {'end': 17161.652, 'text': 'CSS ID Selector The ID Selector uses the ID attribute of an HTML element to find the specific element.', 'start': 17155.188, 'duration': 6.464}], 'summary': 'Css selector selects all p elements, styles them centrally aligned with blue color. id selector uses html element id attribute to find specific element.', 'duration': 34.298, 'max_score': 17127.354, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC817127354.jpg'}, {'end': 17201.578, 'src': 'embed', 'start': 17174.513, 'weight': 4, 'content': [{'end': 17177.594, 'text': 'So, here we have used the hash para1.', 'start': 17174.513, 'duration': 3.081}, {'end': 17181.876, 'text': 'So, all the rules will be applied to the HTML element with ID equal to para1.', 'start': 17178.174, 'duration': 3.702}, {'end': 17183.756, 'text': 'So, this is an ID selector.', 'start': 17182.336, 'duration': 1.42}, {'end': 17187.898, 'text': 'It will be applied to all the HTML element with ID is equal to para1.', 'start': 17184.757, 'duration': 3.141}, {'end': 17194.732, 'text': 'As you can see, it is applied to the element having the id paraben and all the other elements are defaultly styled.', 'start': 17188.698, 'duration': 6.034}, {'end': 17196.694, 'text': 'CSS class selector.', 'start': 17195.593, 'duration': 1.101}, {'end': 17201.578, 'text': 'The class selector finds the element with a specific class set by the HTML class attribute.', 'start': 17197.254, 'duration': 4.324}], 'summary': 'Using hash para1, applying rules to html element with id para1. explaining id and class selectors.', 'duration': 27.065, 'max_score': 17174.513, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC817174513.jpg'}, {'end': 17266.108, 'src': 'embed', 'start': 17235.918, 'weight': 2, 'content': [{'end': 17238.639, 'text': 'The universal selector selects all the elements on a style sheet.', 'start': 17235.918, 'duration': 2.721}, {'end': 17241.14, 'text': 'As you can see, it is denoted by a star mark.', 'start': 17239.319, 'duration': 1.821}, {'end': 17246.078, 'text': 'All the elements inside our web page will be centrally aligned and the color will be set to blue.', 'start': 17241.676, 'duration': 4.402}, {'end': 17250.78, 'text': 'As you can see, all the elements are centrally aligned and the colors are set to blue.', 'start': 17246.819, 'duration': 3.961}, {'end': 17255.903, 'text': 'CSS Group Selector In style sheets, there are often elements using the same style.', 'start': 17251.481, 'duration': 4.422}, {'end': 17258.224, 'text': 'To minimize the code, you can group selectors.', 'start': 17256.323, 'duration': 1.901}, {'end': 17261.446, 'text': 'To group the selectors, separate each selectors with a comma.', 'start': 17258.764, 'duration': 2.682}, {'end': 17266.108, 'text': 'Here, we have grouped selectors for H1, H2 and P.', 'start': 17261.766, 'duration': 4.342}], 'summary': 'The universal selector selects all elements, and group selectors minimize code by applying the same style to multiple elements.', 'duration': 30.19, 'max_score': 17235.918, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC817235918.jpg'}, {'end': 17308.366, 'src': 'embed', 'start': 17280.313, 'weight': 1, 'content': [{'end': 17285.974, 'text': 'As you can see, so all the elements of P, H2 and H3 are centrally aligned and colored to red.', 'start': 17280.313, 'duration': 5.661}, {'end': 17290.596, 'text': 'In this video, we will discuss what is the box model and its various properties.', 'start': 17286.514, 'duration': 4.082}, {'end': 17294.296, 'text': 'We will also do an example to understand the box model better.', 'start': 17291.576, 'duration': 2.72}, {'end': 17296.157, 'text': "So, let's get started.", 'start': 17295.337, 'duration': 0.82}, {'end': 17303.625, 'text': 'Every element that can be displayed on a webpage is comprised of one or more rectangular boxes.', 'start': 17299.423, 'duration': 4.202}, {'end': 17308.366, 'text': 'CSS box model typically describes how these rectangular boxes are laid out on a webpage.', 'start': 17304.285, 'duration': 4.081}], 'summary': 'Video discusses box model properties, aligned elements, and css layout.', 'duration': 28.053, 'max_score': 17280.313, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC817280313.jpg'}, {'end': 18548.801, 'src': 'embed', 'start': 18521.119, 'weight': 6, 'content': [{'end': 18527.223, 'text': 'is basically a layout mode or model that provides an easy and clean way to arrange the items within a container.', 'start': 18521.119, 'duration': 6.104}, {'end': 18532.908, 'text': 'If you are using a CSS for a while, you must have used the old block model,', 'start': 18528.604, 'duration': 4.304}, {'end': 18539.593, 'text': 'where you assign width in terms of percentage or fixed width and then use the float to arrange the items on the page.', 'start': 18532.908, 'duration': 6.685}, {'end': 18543.957, 'text': 'Suppose for example, you want to arrange 3 boxes in a row.', 'start': 18540.514, 'duration': 3.443}, {'end': 18548.801, 'text': 'Then you have to enter everything manually from width, height and to padding.', 'start': 18545.018, 'duration': 3.783}], 'summary': 'Css flexbox simplifies arranging items in a container, replacing old block model.', 'duration': 27.682, 'max_score': 18521.119, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC818521119.jpg'}, {'end': 18653.235, 'src': 'embed', 'start': 18621.736, 'weight': 5, 'content': [{'end': 18626.14, 'text': 'which will help us to understand which items we are referring to when we style our elements individually.', 'start': 18621.736, 'duration': 4.404}, {'end': 18644.087, 'text': "Let's just save the file and see how it looks on a page.", 'start': 18641.485, 'duration': 2.602}, {'end': 18651.173, 'text': 'Now if you save the file, you can see we have the box because I have already applied some of the styles to these flexbox items.', 'start': 18645.288, 'duration': 5.885}, {'end': 18653.235, 'text': "Let's just see the styling.", 'start': 18651.994, 'duration': 1.241}], 'summary': 'Styling applied to flexbox items, resulting in visible changes.', 'duration': 31.499, 'max_score': 18621.736, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC818621736.jpg'}, {'end': 18980.852, 'src': 'embed', 'start': 18957.427, 'weight': 3, 'content': [{'end': 18967.375, 'text': 'As you can see, inside my HTML, I have the two paragraph tags and I have a formatting with a background color of cyan color and font size 30 pixels.', 'start': 18957.427, 'duration': 9.948}, {'end': 18971.927, 'text': 'As you can see, this looks like something like this on the page.', 'start': 18969.045, 'duration': 2.882}, {'end': 18976.329, 'text': 'The very first property we are going to discuss is the display block property.', 'start': 18973.007, 'duration': 3.322}, {'end': 18980.852, 'text': 'The block display values make an element a block element.', 'start': 18977.99, 'duration': 2.862}], 'summary': 'Html contains two paragraph tags with cyan background and 30px font size. discussing the display block property.', 'duration': 23.425, 'max_score': 18957.427, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC818957427.jpg'}], 'start': 16528.004, 'title': 'Learning web development fundamentals', 'summary': 'Covers learning html, css, and javascript basics, understanding the css box model and grid layout, flexbox layout basics, css display and positioning, and css grid vs flexbox, providing a comprehensive overview of web architecture, basic elements, functionalities, and layout techniques.', 'chapters': [{'end': 16654.419, 'start': 16528.004, 'title': 'Learning html basics in 10 minutes', 'summary': 'Introduces the basic web architecture, html, css, javascript, and the essential elements of web architecture including the front end, back end, and ip address.', 'duration': 126.415, 'highlights': ['The chapter introduces the basic web architecture, including the front end, back end, and IP address. It explains the essential elements of web architecture, such as the website (front end), server (back end), and IP address.', 'The chapter provides an overview of HTML, CSS, and JavaScript, and their role in web development. It covers the quick introduction to basic web architecture, understanding of HTML, the role of CSS, and going through JavaScript.', "The chapter explains the process of hosting a website on a server and the server's role in managing website data and facilitating user interaction. It details the process of hosting a website on a server, along with the server's role in managing website data and facilitating user interaction."]}, {'end': 17279.393, 'start': 16656.777, 'title': 'Html, css, and javascript basics', 'summary': 'Introduces html, css, and javascript, detailing their functionalities and usage, covering html structure, css selectors, and basic styling, and explaining how to create and style html elements, and the different types of css selectors.', 'duration': 622.616, 'highlights': ['HTML is the most widely used markup language for developing and structuring web pages on the internet. HTML is the fundamental markup language for web pages, widely used on the internet.', 'CSS is a design language used for making web pages look more beautiful and presentable. CSS is a design language aimed at enhancing the visual appeal of web pages.', 'JavaScript is a powerful interpreted language targeted for web development, used for making web pages interactive and bringing them to life. JavaScript is a powerful language for web development, enabling interactivity on web pages.', 'The chapter covers important HTML tags used to develop a web page, explaining their functionalities and usage. The chapter explains important HTML tags used in web development.', 'CSS selectors allow you to select and style HTML elements based on their id, classes, types, attributes, and value of attributes. CSS selectors enable styling HTML elements based on various criteria.']}, {'end': 18458.851, 'start': 17280.313, 'title': 'Understanding css box model and css grid layout', 'summary': 'Delves into understanding the css box model and its properties, including content, padding, border, and margin areas. it also covers an example of applying the box model to a webpage. additionally, it explores the features and basic terminologies of the css grid layout, along with a hands-on demonstration of creating a grid layout with columns, rows, and item positioning.', 'duration': 1178.538, 'highlights': ['The chapter delves into understanding the CSS box model and its properties, including content, padding, border, and margin areas. It explains the layout of rectangular boxes on a webpage, defining properties such as content, padding, border, and margin, and their dimensions.', 'The chapter covers an example of applying the box model to a webpage, demonstrating the impact of padding, border, and margin on the layout. It provides a hands-on example of creating a box with specific properties, adjusting padding, border, and margin, and visualizing their effects on the webpage layout.', 'Additionally, it explores the features and basic terminologies of the CSS Grid layout, along with a hands-on demonstration of creating a grid layout with columns, rows, and item positioning. It discusses the features of the CSS Grid layout, including fixed and flexible track sizes, precise item placement, and control of overlapping content, and introduces basic terminologies such as grid lines, columns, rows, and grid cells.']}, {'end': 18934.33, 'start': 18472.022, 'title': 'Flexbox layout basics', 'summary': 'Describes the basics of flexbox layout, including its properties and their application, such as creating flex containers and items, aligning elements, and overriding item properties, enabling dynamic layout for websites.', 'duration': 462.308, 'highlights': ['Flexbox model provides an easy and clean way to arrange items within a container, replacing the old block model and offering flexibility in adjusting item width and height. Flexbox is a layout mode that provides an easy and clean way to arrange items within a container, replacing the old block model, offering flexibility in adjusting item width and height.', "Creating a flex container involves using the 'display: flex' property, enabling items to align centrally and adjust according to the browser size. Creating a flex container involves using the 'display: flex' property, enabling items to align centrally and adjust according to the browser size.", "The properties 'justifyContent' and 'alignItems' are used to style elements on the main and cross axes, providing options for centering and spacing between items. The properties 'justifyContent' and 'alignItems' are used to style elements on the main and cross axes, providing options for centering and spacing between items.", "The flexibility of item properties, such as 'flex-grow' and 'alignSelf', allows for customization of item sizing and alignment within the container. The flexibility of item properties, such as 'flex-grow' and 'alignSelf', allows for customization of item sizing and alignment within the container."]}, {'end': 19601.214, 'start': 18935.871, 'title': 'Css display and positioning', 'summary': 'Covers the css display property, explaining the block, inline, and inline-block values, and the css positioning property, detailing static, fixed, relative, and absolute positioning, each with practical examples and their effects on element positioning.', 'duration': 665.343, 'highlights': ["The CSS display property controls the layout of the element on the page, with default values of block, inline, and inline-block, affecting the element's behavior, positioning, and line breaks. CSS display property behavior, default values, impact on element positioning and line breaks.", "The CSS position property allows defining the position of an element on a web page using static, fixed, relative, and absolute values, with each value affecting the element's positioning and normal flow on the page. CSS position property usage, available values, impact on element positioning and normal flow.", 'The absolute positioning removes the element from the document flow and positions it relative to the first parent element with a position other than static, while the fixed positioning places the element fixed on the browser window and unaffected by scrolling. Effects of absolute and fixed positioning, their behavior relative to the document flow and scrolling.']}, {'end': 20227.288, 'start': 19610.444, 'title': 'Css grid vs flexbox', 'summary': 'Explains the differences between css grid and flexbox layouts, with practical examples and code demonstrations, highlighting their main features and use cases.', 'duration': 616.844, 'highlights': ['CSS Grid allows developers to construct custom grids with more flexibility and control than ever before. CSS Grid offers more flexibility and control for constructing custom grids.', 'Flexbox layout pattern makes it easier to design flexible and effective layouts. Flexbox simplifies the design of flexible and effective layouts.', 'The grid is used for creating a more complex and organized layout on your pages. CSS Grid is used for creating complex and organized layouts on web pages.', "To work with the CSS grid layout, you have to add display grid property to your element. The 'display: grid' property is used to work with the CSS grid layout.", 'The flexbox layout is useful in allocating and aligning the spaces among the items in a grid container. Flexbox is useful for allocating and aligning spaces within a grid container.', 'Flexbox is about positioning elements in a one-dimensional area. Flexbox is focused on positioning elements in a one-dimensional area.', "The background image property specifies an image to use as a background of an element. The 'background image' property specifies the background image for an element.", 'The image is repeated so it covers the entire element. By default, the image is repeated to cover the entire element.', "The background repeat property has values like 'no repeat', 'repeat x', and 'repeat y' which control how the image is repeated on the page. The 'background repeat' property controls how the background image is repeated on the page."]}], 'duration': 3699.284, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC816528004.jpg', 'highlights': ['The chapter provides an overview of HTML, CSS, and JavaScript, and their role in web development.', 'HTML is the most widely used markup language for developing and structuring web pages on the internet.', 'CSS is a design language used for making web pages look more beautiful and presentable.', 'JavaScript is a powerful interpreted language targeted for web development, used for making web pages interactive and bringing them to life.', 'The chapter delves into understanding the CSS box model and its properties, including content, padding, border, and margin areas.', 'The chapter covers an example of applying the box model to a webpage, demonstrating the impact of padding, border, and margin on the layout.', 'Flexbox model provides an easy and clean way to arrange items within a container, replacing the old block model and offering flexibility in adjusting item width and height.', "The CSS display property controls the layout of the element on the page, with default values of block, inline, and inline-block, affecting the element's behavior, positioning, and line breaks.", "The CSS position property allows defining the position of an element on a web page using static, fixed, relative, and absolute values, with each value affecting the element's positioning and normal flow on the page.", 'CSS Grid allows developers to construct custom grids with more flexibility and control than ever before.', 'Flexbox layout pattern makes it easier to design flexible and effective layouts.', 'The grid is used for creating a more complex and organized layout on your pages.', 'The background image property specifies an image to use as a background of an element.', 'The image is repeated so it covers the entire element.', "The background repeat property has values like 'no repeat', 'repeat x', and 'repeat y' which control how the image is repeated on the page."]}, {'end': 23531.264, 'segs': [{'end': 20876.126, 'src': 'embed', 'start': 20848.073, 'weight': 3, 'content': [{'end': 20852.837, 'text': 'To really get a great understanding of how it works, you just have to open your editor and start experimenting on it.', 'start': 20848.073, 'duration': 4.764}, {'end': 20857.861, 'text': "Okay, so now let's go back to our code and learn about the animation property.", 'start': 20854.458, 'duration': 3.403}, {'end': 20861.818, 'text': 'So, here we have the animation named MyFrames.', 'start': 20859.557, 'duration': 2.261}, {'end': 20865.921, 'text': 'The animation name should be as same as keyframes name to work it properly.', 'start': 20862.859, 'duration': 3.062}, {'end': 20870.283, 'text': 'The animation duration specifies for how long we want our animation to last.', 'start': 20867.041, 'duration': 3.242}, {'end': 20871.784, 'text': 'In this case, 2 seconds.', 'start': 20870.703, 'duration': 1.081}, {'end': 20876.126, 'text': "Let's just change this to say 10 seconds.", 'start': 20872.765, 'duration': 3.361}], 'summary': 'Experiment in the editor to understand animation. set animation duration to 10 seconds.', 'duration': 28.053, 'max_score': 20848.073, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC820848073.jpg'}, {'end': 20973.886, 'src': 'embed', 'start': 20931.758, 'weight': 0, 'content': [{'end': 20950.137, 'text': "Let's change it to something say 5.", 'start': 20931.758, 'duration': 18.379}, {'end': 20952.678, 'text': 'As you can see, after the count of 5, the animation stops.', 'start': 20950.137, 'duration': 2.541}, {'end': 20955.019, 'text': 'We will set it back to infinite.', 'start': 20953.618, 'duration': 1.401}, {'end': 20962.542, 'text': 'Animation running state can be paused or the running state.', 'start': 20960.121, 'duration': 2.421}, {'end': 20967.844, 'text': 'In this video, we are going to background everything there is to know about the CSS animation.', 'start': 20963.162, 'duration': 4.682}, {'end': 20973.886, 'text': 'CSS animations make it possible to animate transitions from one CSS style configuration to another.', 'start': 20968.604, 'duration': 5.282}], 'summary': 'Css animation allows transitions between css styles. example: stopping animation after count of 5.', 'duration': 42.128, 'max_score': 20931.758, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC820931758.jpg'}, {'end': 21933.045, 'src': 'embed', 'start': 21903.251, 'weight': 1, 'content': [{'end': 21909.775, 'text': 'A CSS hover effect is a style technique where the user interacts with an element, with a pointing device, but it does not necessarily activates it.', 'start': 21903.251, 'duration': 6.524}, {'end': 21913.721, 'text': 'It is triggered when the user hovers over an element with a pointing device.', 'start': 21910.72, 'duration': 3.001}, {'end': 21916.261, 'text': "Now let's jump to an example.", 'start': 21915.061, 'duration': 1.2}, {'end': 21922.023, 'text': 'In this example, we will create the hover effect which will look something like this.', 'start': 21918.602, 'duration': 3.421}, {'end': 21924.783, 'text': 'We have different hover effects for all the buttons.', 'start': 21922.663, 'duration': 2.12}, {'end': 21933.045, 'text': "So let's get started and see how you can make this all by yourself.", 'start': 21929.904, 'duration': 3.141}], 'summary': 'Css hover effect is a technique triggered by user interaction, creating different effects for buttons.', 'duration': 29.794, 'max_score': 21903.251, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC821903251.jpg'}, {'end': 22136.095, 'src': 'embed', 'start': 22108.783, 'weight': 4, 'content': [{'end': 22111.804, 'text': 'The top property affects the vertical position of a positioned element.', 'start': 22108.783, 'duration': 3.021}, {'end': 22114.926, 'text': 'The left property affects the horizontal position of a positioned element.', 'start': 22112.305, 'duration': 2.621}, {'end': 22118.727, 'text': 'The transform property applies a 2D or 3D transformation to an element.', 'start': 22115.426, 'duration': 3.301}, {'end': 22121.969, 'text': 'This property allows you to rotate, scale and move the elements.', 'start': 22119.188, 'duration': 2.781}, {'end': 22127.171, 'text': 'As you can see the elements are now in place.', 'start': 22125.51, 'duration': 1.661}, {'end': 22129.012, 'text': "Now let's format the buttons.", 'start': 22127.951, 'duration': 1.061}, {'end': 22136.095, 'text': 'Set the position to relative.', 'start': 22134.954, 'duration': 1.141}], 'summary': 'Css properties like top, left, and transform allow for precise element positioning and transformation.', 'duration': 27.312, 'max_score': 22108.783, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC822108783.jpg'}], 'start': 20228.208, 'title': 'Adding and using css animations and effects', 'summary': 'Demonstrates adding images with text to a webpage, setting text color to red and aligning it to the center, and learning to add colors to a page using different methods. it also covers the basics of colors in css, including hex and rgb formats, nearly 140 standard color names supported by html, and demonstrates how to add colors to a webpage using color names, rgb values, and hex codes. additionally, it delves into css animation properties, transition property, and creating hover effects using html and css.', 'chapters': [{'end': 20304.807, 'start': 20228.208, 'title': 'Adding color and text to webpage', 'summary': 'Demonstrates adding an image with text to a webpage, setting the text color to red and aligning it to the center, and learning how to add colors to a page using different methods.', 'duration': 76.599, 'highlights': ['The tutorial covers adding an image with text to a webpage, which is centrally aligned and has the text color set to red.', 'It demonstrates setting the background size to cover and background repeat to no repeat for the image on the webpage.', 'The chapter teaches different methods of adding colors to a webpage.']}, {'end': 20825.355, 'start': 20305.368, 'title': 'Understanding colors in css', 'summary': 'Covers the basics of colors in css, including hex and rgb formats, with nearly 140 standard color names supported by html, and demonstrates how to add colors to a webpage using color names, rgb values, and hex codes. it also introduces keyframes in css and explains their syntax and usage.', 'duration': 519.987, 'highlights': ['The chapter covers the basics of colors in CSS, including hex and RGB formats, with nearly 140 standard color names supported by HTML.', 'Demonstrates how to add colors to a webpage using color names, RGB values, and hex codes.', 'Introduces keyframes in CSS and explains their syntax and usage.']}, {'end': 21404.937, 'start': 20828.837, 'title': 'Css animation properties', 'summary': 'Covers css animation properties including animation name, duration, timing function, keyframes, and fill mode, exemplified through an example of moving a child element within a parent element using css animation, highlighting the impact of these properties on the animation.', 'duration': 576.1, 'highlights': ['Animation Duration The animation duration property defines how long time an animation should take to complete, with the default value being 0 seconds.', "Keyframes Keyframes are used to define the animation name and determine the animation's appearance between the values 0% and 100%, with specific transformations and states specified at various percentages.", 'Animation Fill Mode The animation fill mode property, when set to forward, ensures that the element remains in the final state of the animation once it is completed, preventing it from reverting to the original state.', 'Animation Properties The chapter provides an overview of various animation properties such as animation name, duration, timing function, keyframes, and fill mode, emphasizing their role in creating and controlling CSS animations.']}, {'end': 21883.68, 'start': 21405.678, 'title': 'Css animation and transition', 'summary': 'Explains the use of the animation property to create complex animations on a web page, and the transition property to add simple animations, highlighting the use of transition duration, transition property, transition timing function, and transition delay in creating different effects.', 'duration': 478.002, 'highlights': ["The animation iteration count property specifies the number of times an animation should be played, and by setting it to 3, the animation will repeat three times. Setting the animation iteration count property to 3 specifies that the animation should be played three times, providing a quantifiable measure of the animation's repetition.", 'The animation direction property set to alternate causes the animation to play forwards and then backwards in alternate cycles, resulting in a noticeable visual effect. Setting the animation direction property to alternate creates a visual effect where the animation plays forwards and then backwards in alternate cycles, enhancing the user experience.', 'The transition duration property specifies the time, in milliseconds or seconds, for a transition effect to complete, such as changing the color of a box over a specified time period. The transition duration property defines the time taken for a transition effect to complete, allowing for precise control over the duration of the animation, such as changing the color of a box over a specific time period.', 'The transition property sets the CSS properties to which a transition effect should be applied, enabling the creation of specific effects like rotating a box when hovered over. The transition property allows the specification of CSS properties to which a transition effect should be applied, facilitating the creation of specific effects, such as rotating a box when hovered over.', 'The transition timing function property specifies the speed curve of the transition effect, with options like ease, linear, ease in, and ease out, each providing a distinct visual transition effect. The transition timing function property defines the speed curve of the transition effect, offering options like ease, linear, ease in, and ease out, each contributing to a distinct visual transition effect.']}, {'end': 23531.264, 'start': 21884.36, 'title': 'Creating css hover effects', 'summary': 'Discusses how to create hover effects using html and css, including adding hover effects to buttons and creating 3d hover effects on images, with a focus on transforming elements and adding transitions and animations.', 'duration': 1646.904, 'highlights': ['Creating hover effects for buttons Explains the process of adding hover effects to buttons, including setting properties like position, color, width, and height, resulting in smooth transitions and engaging user experience.', 'Designing 3D effects on images Describes the steps for creating 3D effects on images, including using properties like translate, scale, skew, and opacity to achieve a layered 3D hover effect on images, enhancing visual appeal.', 'Utilizing transform and perspective properties Discusses the usage of transform properties like translate, rotate, and scale, along with the perspective property to create 3D transformations on images, improving the depth and perspective of the visual elements.']}], 'duration': 3303.056, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC820228208.jpg', 'highlights': ['The chapter provides an overview of various animation properties such as animation name, duration, timing function, keyframes, and fill mode, emphasizing their role in creating and controlling CSS animations.', 'Demonstrates how to add colors to a webpage using color names, RGB values, and hex codes.', 'The tutorial covers adding an image with text to a webpage, which is centrally aligned and has the text color set to red.', 'The chapter teaches different methods of adding colors to a webpage.', 'The animation direction property set to alternate causes the animation to play forwards and then backwards in alternate cycles, resulting in a noticeable visual effect.', 'Explains the process of adding hover effects to buttons, including setting properties like position, color, width, and height, resulting in smooth transitions and engaging user experience.']}, {'end': 26290.218, 'segs': [{'end': 23629.139, 'src': 'embed', 'start': 23601.24, 'weight': 0, 'content': [{'end': 23605.903, 'text': 'After that, you will work on the code to create the basic navigation bar using HTML and CSS.', 'start': 23601.24, 'duration': 4.663}, {'end': 23608.885, 'text': 'So let us begin by discussing what is navigation bar.', 'start': 23606.704, 'duration': 2.181}, {'end': 23616.209, 'text': 'A navigation bar is a graphical user interface intended to aid the user in accessing the information.', 'start': 23611.086, 'duration': 5.123}, {'end': 23618.731, 'text': 'It is usually placed at the top of the page.', 'start': 23616.93, 'duration': 1.801}, {'end': 23621.873, 'text': 'A navigation bar needs standard HTML as the base.', 'start': 23619.411, 'duration': 2.462}, {'end': 23625.655, 'text': 'Navigation bars can be created either vertically or horizontally.', 'start': 23622.693, 'duration': 2.962}, {'end': 23629.139, 'text': 'What makes a navigation bar so important?', 'start': 23627.338, 'duration': 1.801}], 'summary': 'Create basic navigation bar using html and css, essential for accessing information.', 'duration': 27.899, 'max_score': 23601.24, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC823601240.jpg'}, {'end': 24011.549, 'src': 'embed', 'start': 23974.915, 'weight': 1, 'content': [{'end': 23977.357, 'text': 'And for the background size, I will set it to the cover,', 'start': 23974.915, 'duration': 2.442}, {'end': 23981.879, 'text': "which is going to adjust it to the image screen and it's going to cover the whole background of our web browser.", 'start': 23977.357, 'duration': 4.522}, {'end': 23994.587, 'text': 'Keep the font family as Arial.', 'start': 23993.346, 'duration': 1.241}, {'end': 24008.067, 'text': "Let's see what it looks like at this stage.", 'start': 24005.885, 'duration': 2.182}, {'end': 24011.549, 'text': 'You can see we have a background image and the font is changed to Arial.', 'start': 24008.407, 'duration': 3.142}], 'summary': 'Setting background size to cover adjusts image to screen, covering whole background. font family kept as arial.', 'duration': 36.634, 'max_score': 23974.915, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC823974915.jpg'}, {'end': 25144.306, 'src': 'embed', 'start': 25097.861, 'weight': 9, 'content': [{'end': 25101.262, 'text': "First, let's change this text here.", 'start': 25097.861, 'duration': 3.401}, {'end': 25109.105, 'text': "We'll keep it to click here to see the effect.", 'start': 25104.323, 'duration': 4.782}, {'end': 25113.006, 'text': 'We keep this part as same.', 'start': 25111.545, 'duration': 1.461}, {'end': 25116.328, 'text': 'And instead of over here, we will use the active pseudo class.', 'start': 25113.706, 'duration': 2.622}, {'end': 25120.051, 'text': 'So we type active and we keep the background clear to cyan.', 'start': 25116.368, 'duration': 3.683}, {'end': 25132.28, 'text': "Let's text align this H1 to the center.", 'start': 25129.658, 'duration': 2.622}, {'end': 25137.985, 'text': 'When you refresh and go back.', 'start': 25136.804, 'duration': 1.181}, {'end': 25144.306, 'text': 'So You see, here it is, click here to see the effects.', 'start': 25140.807, 'duration': 3.499}], 'summary': "Changing text to 'click here' with active pseudo class and cyan background, aligning h1 to center.", 'duration': 46.445, 'max_score': 25097.861, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC825097861.jpg'}], 'start': 23531.264, 'title': 'Css techniques and responsive design', 'summary': 'Covers css navigation bar creation, advanced css features, use of calc and animation, and css media queries for responsive web design, emphasizing techniques, tricks, and features to enhance user experience and create responsive layouts.', 'chapters': [{'end': 24264.27, 'start': 23531.264, 'title': 'Creating a css navigation bar', 'summary': 'Covers the importance of navigation bars on webpages, their design using html and css, and the significance of a well-designed navigation bar in enhancing user experience.', 'duration': 733.006, 'highlights': ['Navigation bars are crucial for website design as they allow users to quickly visit any section within the website, enhancing user experience. A well-designed navigation bar is an important part of the user experience, as it allows users to quickly visit any section within the website, enhancing user experience.', 'The tutorial demonstrates creating a basic navigation bar using HTML and CSS, with a focus on standard HTML as the base and the creation of submenus. The tutorial demonstrates creating a basic navigation bar using HTML and CSS, focusing on standard HTML as the base and the creation of submenus.', 'The chapter emphasizes the significance of a well-designed navigation bar in keeping users on the site to explore further, contributing to a positive user experience. The chapter emphasizes the significance of a well-designed navigation bar in keeping users on the site to explore further, contributing to a positive user experience.']}, {'end': 24859.028, 'start': 24264.67, 'title': 'Css tricks and techniques', 'summary': 'Introduces css tricks including blend mode for images with different colors, creating clipping regions for specific shapes, animating elements with keyframes, and adding smooth transitions between colors using css gradients.', 'duration': 594.358, 'highlights': ['CSS blend mode allows blending images with different colors and setting blend mode properties such as normal, multiply, darken, lighter, or screen. The CSS blend mode property enables blending images with different colors using modes like normal, multiply, darken, lighter, or screen.', 'Creating clipping regions for specific shapes using the CSS clip path property and adjusting the height, width, color, position, and Z index to display the clipped image. The CSS clip path property is used to create clipping regions for specific shapes by adjusting the height, width, color, position, and Z index.', 'Animating elements using keyframes and specifying different colors at various points of animations to create a blink effect. CSS allows animating almost every property using keyframes and specifying different colors at various points of animations to create a blink effect.', 'Adding smooth transitions between colors using CSS gradients and generating gradient values from websites like cssgradient.io. The CSS gradient property allows adding smooth transitions between colors and generating gradient values from websites like cssgradient.io.']}, {'end': 25587.101, 'start': 24859.928, 'title': 'Advanced css features', 'summary': 'Covers advanced css features including css pseudo classes like hover and active, pseudo elements like first letter and before, and creating a css loader to show the page loading animation.', 'duration': 727.173, 'highlights': ['The chapter covers advanced CSS features including CSS pseudo classes like hover and active, pseudo elements like first letter and before, and creating a CSS loader to show the page loading animation. This provides a comprehensive overview of the topics covered in the transcript, highlighting the advanced CSS features.', "CSS pseudo class 'hover' is used to add a special effect to an element when the mouse pointer is over it. It explains the functionality of the CSS pseudo class 'hover' and its usage in adding special effects to elements.", "CSS pseudo class 'active' represents an element that has been activated by the user, either by pointing or touchscreen device. This highlight details the functionality of the CSS pseudo class 'active' and its representation of user-activated elements.", "CSS pseudo element 'first letter' applies style to the first letter of the first line of a block-level element. This explains the application of the CSS pseudo element 'first letter' in styling the first letter of block-level elements.", "CSS pseudo element 'before' can be used to insert content before the content of an element. It describes the usage of the CSS pseudo element 'before' in inserting content before the element's content.", 'CSS loader is an animation that shows the visitor about the page when it is loading, helpful when a page takes some seconds to load the page content. It explains the purpose of CSS loader as an animation to indicate page loading, especially useful for longer loading times.']}, {'end': 25870.228, 'start': 25595.319, 'title': 'Use of calc and animation in css', 'summary': 'Covers the use of the calc function to determine left margin, setting the border radius, using the transform origin function, defining keyframes for animation, and adjusting animation properties to create a synchronized loader.', 'duration': 274.909, 'highlights': ['The CALC function is used to determine the left margin, using the formula CALC, 50% and minus 1 EM, allowing for dynamic layout adjustments.', "Keyframes are defined for the animation 'rotate', setting the initial transform to 0 degrees and the complete 360 degrees at 100% to create a smooth rotation effect.", 'Different classes are defined with animation delays ranging from 0.1 to 0.5 seconds and unique background colors, ensuring synchronized appearance of elements in the loader.', 'The transform origin property is utilized with the values 1.3em and 2em, enabling the change in position of transformed elements and 2D transformations along the X and Y axis.', "The animation properties are set to 'rotate', with an infinite iteration count and a duration of 2 seconds for a continuous rotation effect."]}, {'end': 26290.218, 'start': 25870.368, 'title': 'Css media queries for responsive web design', 'summary': 'Explains the concept of responsive web design, emphasizing the importance of css media queries and demonstrating their usage to create a responsive web layout, featuring examples with specific pixel widths for different device types.', 'duration': 419.85, 'highlights': ['The importance of CSS media queries in responsive design CSS media queries play a crucial role in adapting website layouts to various devices, such as tablets, mobile devices, and TVs, ensuring a seamless user experience.', "Demonstration of creating a responsive web layout using CSS media queries with specific pixel widths for different device types The tutorial features examples of setting specific pixel width ranges and using corresponding CSS code to display different content based on the device's width, providing a practical illustration of responsive web design.", "Explanation of media queries and their usage to customize website presentation based on device type The explanation delves into the use of media queries to tailor the website's presentation according to the device's general type, such as mobile, desktop, or tablet, with the CSS code applied when the media query conditions are met."]}], 'duration': 2758.954, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC823531264.jpg', 'highlights': ['Covers css navigation bar creation, advanced css features, use of calc and animation, and css media queries for responsive web design, emphasizing techniques, tricks, and features to enhance user experience and create responsive layouts.', 'CSS media queries play a crucial role in adapting website layouts to various devices, such as tablets, mobile devices, and TVs, ensuring a seamless user experience.', "Demonstration of creating a responsive web layout using CSS media queries with specific pixel widths for different device types The tutorial features examples of setting specific pixel width ranges and using corresponding CSS code to display different content based on the device's width, providing a practical illustration of responsive web design.", 'The tutorial demonstrates creating a basic navigation bar using HTML and CSS, with a focus on standard HTML as the base and the creation of submenus.', 'The chapter covers advanced CSS features including CSS pseudo classes like hover and active, pseudo elements like first letter and before, and creating a CSS loader to show the page loading animation.', 'The CSS blend mode property enables blending images with different colors using modes like normal, multiply, darken, lighter, or screen.', 'CSS allows animating almost every property using keyframes and specifying different colors at various points of animations to create a blink effect.', 'The importance of a well-designed navigation bar in keeping users on the site to explore further, contributing to a positive user experience.', "CSS pseudo class 'hover' is used to add a special effect to an element when the mouse pointer is over it.", 'The CALC function is used to determine the left margin, using the formula CALC, 50% and minus 1 EM, allowing for dynamic layout adjustments.']}, {'end': 27945.413, 'segs': [{'end': 26482.157, 'src': 'embed', 'start': 26456.25, 'weight': 13, 'content': [{'end': 26461.333, 'text': 'Now, these single-page applications are basically applications that get loaded just once.', 'start': 26456.25, 'duration': 5.083}, {'end': 26464.174, 'text': 'So, the main page gets loaded onto your browser.', 'start': 26462.013, 'duration': 2.161}, {'end': 26469.116, 'text': 'So, any further interactions does not lead to loading of subsequent pages.', 'start': 26464.614, 'duration': 4.502}, {'end': 26474.219, 'text': 'Anything that has to be done further is just an addition to the already loaded page.', 'start': 26469.677, 'duration': 4.542}, {'end': 26478.288, 'text': 'So these single page applications are primarily developed using Angular.', 'start': 26474.679, 'duration': 3.609}, {'end': 26482.157, 'text': "Moving ahead, let's look at the features of Angular.", 'start': 26478.93, 'duration': 3.227}], 'summary': 'Single-page applications load once, no subsequent page loads; developed primarily using angular.', 'duration': 25.907, 'max_score': 26456.25, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC826456250.jpg'}, {'end': 26770.489, 'src': 'embed', 'start': 26725.665, 'weight': 3, 'content': [{'end': 26732.731, 'text': "Dependency injection Angular allows you to write modular services and have them injected wherever they're needed.", 'start': 26725.665, 'duration': 7.066}, {'end': 26737.062, 'text': 'This greatly improves the testability and reusability of the same.', 'start': 26733.621, 'duration': 3.441}, {'end': 26740.242, 'text': "Don't worry if you can't wrap your head around these topics.", 'start': 26737.382, 'duration': 2.86}, {'end': 26743.203, 'text': "We're going to discuss them further in the coming videos.", 'start': 26740.642, 'duration': 2.561}, {'end': 26746.144, 'text': 'Next advantage is testing.', 'start': 26744.583, 'duration': 1.561}, {'end': 26750.224, 'text': 'Angular has been built from the ground up with testability in mind.', 'start': 26746.464, 'duration': 3.76}, {'end': 26753.925, 'text': 'You can literally test every part of your application.', 'start': 26750.984, 'duration': 2.941}, {'end': 26763.267, 'text': 'Comprehensive Angular is a full-fledged framework and provides out-of-the-box solutions for server communication, routing, and more.', 'start': 26754.845, 'duration': 8.422}, {'end': 26767.087, 'text': 'Lastly, we have excellent browser compatibility.', 'start': 26764.386, 'duration': 2.701}, {'end': 26770.489, 'text': 'Angular is cross-platform and browser compatible.', 'start': 26767.708, 'duration': 2.781}], 'summary': "Angular's dependency injection enhances testability and reusability. it also offers comprehensive testing and browser compatibility.", 'duration': 44.824, 'max_score': 26725.665, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC826725665.jpg'}, {'end': 26827.763, 'src': 'embed', 'start': 26794.983, 'weight': 1, 'content': [{'end': 26798.926, 'text': 'It was built on JavaScript and completely based on controllers.', 'start': 26794.983, 'duration': 3.943}, {'end': 26801.668, 'text': 'Next release was Angular 2.', 'start': 26799.286, 'duration': 2.382}, {'end': 26804.95, 'text': 'Now this incorporated the component-based approach,', 'start': 26801.668, 'duration': 3.282}, {'end': 26811.234, 'text': 'wherein the entire UI was divided into several components and lastly integrated to give the final logic.', 'start': 26804.95, 'duration': 6.284}, {'end': 26813.618, 'text': 'Next was Angular 4.', 'start': 26812.057, 'duration': 1.561}, {'end': 26815.118, 'text': 'It included router updation.', 'start': 26813.618, 'duration': 1.5}, {'end': 26820.74, 'text': 'Angular CLI or Command Line Interface 1.0 was introduced, however, not deployed.', 'start': 26815.598, 'duration': 5.142}, {'end': 26827.763, 'text': 'In this release, the Angular CLI was optimized and commands like ng-update and ng-add were added.', 'start': 26821.621, 'duration': 6.142}], 'summary': 'Angular evolution: angular 2 introduced component-based approach, angular 4 added router updation and optimized angular cli.', 'duration': 32.78, 'max_score': 26794.983, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC826794983.jpg'}, {'end': 26925.04, 'src': 'embed', 'start': 26849.11, 'weight': 0, 'content': [{'end': 26853.292, 'text': 'Now, this completely switched to the IV renderer as a default compiler.', 'start': 26849.11, 'duration': 4.182}, {'end': 26858.996, 'text': "Now that we've learned about the pros of using Angular, let's look at some of the limitations of Angular.", 'start': 26853.773, 'duration': 5.223}, {'end': 26863.559, 'text': 'First up is a steep learning curve.', 'start': 26861.758, 'duration': 1.801}, {'end': 26870.724, 'text': 'Now, since Angular is a complete full-fledged framework, it becomes difficult for learners to begin with.', 'start': 26863.879, 'duration': 6.845}, {'end': 26878.458, 'text': 'You need to be acquainted with simple topics and then move on to more advanced topics to become proficient in this language.', 'start': 26871.516, 'duration': 6.942}, {'end': 26881.619, 'text': 'Next up is limited SEO options.', 'start': 26879.418, 'duration': 2.201}, {'end': 26888.321, 'text': 'Now, Angular offers limited SEO options and poor accessibility to search engine crawlers.', 'start': 26882.339, 'duration': 5.982}, {'end': 26891.252, 'text': 'with verbose and complex.', 'start': 26889.551, 'duration': 1.701}, {'end': 26897.398, 'text': 'Now a common issue faced by the Angular community is the verbosity of the framework.', 'start': 26891.873, 'duration': 5.525}, {'end': 26901.801, 'text': 'It also poses to be complex compared to other front-end tools.', 'start': 26898.118, 'duration': 3.683}, {'end': 26904.484, 'text': 'And lastly, migration.', 'start': 26902.962, 'duration': 1.522}, {'end': 26908.227, 'text': 'Now one of the drawbacks of Angular is poor migration.', 'start': 26904.984, 'duration': 3.243}, {'end': 26914.052, 'text': 'Now it becomes difficult to port legacy code to Angular-style architecture.', 'start': 26909.028, 'duration': 5.024}, {'end': 26920.739, 'text': 'Also, with each new release, it is painful to upgrade and a lot of them are not backward compatible.', 'start': 26914.938, 'duration': 5.801}, {'end': 26925.04, 'text': "Next up, let's look at the Angular learning curve.", 'start': 26922.06, 'duration': 2.98}], 'summary': 'Angular has a steep learning curve, limited seo options, verbosity, and migration challenges.', 'duration': 75.93, 'max_score': 26849.11, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC826849110.jpg'}, {'end': 27141.485, 'src': 'embed', 'start': 27100.747, 'weight': 11, 'content': [{'end': 27106.171, 'text': 'And it includes a bunch of files and installs all the necessary dependencies for the Angular application.', 'start': 27100.747, 'duration': 5.424}, {'end': 27112.208, 'text': 'So this could take a while.', 'start': 27111.107, 'duration': 1.101}, {'end': 27121.915, 'text': "So once you've created your application, to run it, first change the directory.", 'start': 27116.311, 'duration': 5.604}, {'end': 27126.239, 'text': "So let's say cd hello world.", 'start': 27122.396, 'duration': 3.843}, {'end': 27131.523, 'text': 'And now use the command ng serve.', 'start': 27128.781, 'duration': 2.742}, {'end': 27141.485, 'text': "Now once it's compiled, you need to go to your browser and type in localhost 4200.", 'start': 27132.643, 'duration': 8.842}], 'summary': "Installing dependencies for angular app may take a while. use 'ng serve' command to run, then access via localhost:4200.", 'duration': 40.738, 'max_score': 27100.747, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC827100747.jpg'}], 'start': 26290.818, 'title': 'Angular framework and components', 'summary': 'Covers the introduction, features, and advantages of the angular framework, including its purpose, architecture, key functionalities, and support for web, desktop, and mobile platforms. it also discusses the prerequisites for learning angular, creating an angular application, and introduces angular components, explaining their role as building blocks and features such as creation using typescript classes and decorators.', 'chapters': [{'end': 26692.106, 'start': 26290.818, 'title': 'Angular framework overview', 'summary': 'Covers the introduction and features of the angular framework, including its purpose, architecture, and key functionalities such as data binding and testing, explaining its advantages in developing single-page applications and its support for web, desktop, and mobile platforms.', 'duration': 401.288, 'highlights': ['Angular is an open-source JavaScript framework maintained by Google, designed specifically for single-page applications and providing advantages in terms of structure, scalability, and maintainability. Angular is an open-source JavaScript framework maintained by Google, designed specifically for single-page applications. It offers advantages in terms of structure, scalability, and maintainability.', 'The chapter provides an overview of the key features of Angular, including the document object model, TypeScript, data binding, and testing, highlighting their relevance in web development. The chapter provides an overview of the key features of Angular, including the document object model, TypeScript, data binding, and testing, highlighting their relevance in web development.', 'The architecture of Angular is explained as a full-fledged MVC framework, with a strong opinion on structuring applications and offering bi-directional data flow, updating the real DOM. The architecture of Angular is explained as a full-fledged MVC framework, with a strong opinion on structuring applications and offering bi-directional data flow, updating the real DOM.', 'Angular uses two-way data binding, allowing changes made in the UI element to be reflected in the corresponding model state and vice versa, facilitating connectivity between the view and model data via the controller. Angular uses two-way data binding, allowing changes made in the UI element to be reflected in the corresponding model state and vice versa, facilitating connectivity between the view and model data via the controller.', 'TypeScript, although not mandatory, is highly recommended for developing Angular applications as it offers better syntactic structure, making the code base easier to understand and maintain. TypeScript, although not mandatory, is highly recommended for developing Angular applications as it offers better syntactic structure, making the code base easier to understand and maintain.']}, {'end': 27307.913, 'start': 26693.608, 'title': 'Advantages of angular and prerequisites', 'summary': 'Discusses the advantages of angular, including custom components, dependency injection, testing, and browser compatibility, as well as the prerequisites for learning angular, and the process of creating an angular application. it also touches on the limitations of angular, the learning curve, and companies using angular.', 'duration': 614.305, 'highlights': ['Angular provides custom components that enable building reusable pieces with rendering logic. Angular allows building custom components for packing functionality with rendering logic into reusable pieces.', 'Dependency injection in Angular improves testability and reusability. Angular enables writing modular services with dependency injection, enhancing testability and reusability.', 'Angular is built with testability in mind and allows testing every part of the application. Angular is designed for testability, allowing comprehensive testing of every part of the application.', 'Angular is cross-platform and browser compatible, running on various browsers and platforms. Angular ensures cross-platform and browser compatibility, running on Chrome, Firefox, Safari, and various platforms.', 'Companies like Nike, Forbes, Google, HBO, Sony, and Upwork use Angular. Top-tier companies such as Nike, Forbes, Google, HBO, Sony, and Upwork use Angular for their applications.']}, {'end': 27945.413, 'start': 27308.905, 'title': 'Angular components overview', 'summary': 'Introduces angular components, explaining their role as building blocks, features such as creation using typescript classes and decorators, and the incorporation of components into a web application. it also demonstrates the creation of a text component and an image component, highlighting the use of selectors and templates.', 'duration': 636.508, 'highlights': ['Components are the building blocks of an application, forming a hierarchy and belonging to the ng module. Components are described as the fundamental elements of an application, with a root component branching out into others, and they must be part of the ng module to be utilized.', "Creation of a text component using ng-gc command creates four different files, including HTML, CSS, .ts, and spec.ts, and updates app.module.ts. The process of creating a text component involves executing the 'ng-gc' command, resulting in the creation of four associated files and the update of the app.module.ts file.", 'Incorporating the created text component into the final render involves copying the selector to the final component.html file. Incorporating the newly created text component into the final render requires copying the selector to the final component.html file.', 'The component decorator accepts a metadata object, including properties such as selector, template, templateUrl, styles, and styleUrls. The component decorator accepts a metadata object containing properties like selector, template, templateUrl, styles, and styleUrls, which provide essential information about the component.', 'Creation of an image component involves using the ng-gc command, adding an image file to the assets folder, and incorporating the image component into the final render. The creation of an image component entails using the ng-gc command, adding an image file to the assets folder, and integrating the image component into the final render.']}], 'duration': 1654.595, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC826290818.jpg', 'highlights': ['Angular is an open-source JavaScript framework maintained by Google, designed specifically for single-page applications and providing advantages in terms of structure, scalability, and maintainability.', 'The architecture of Angular is explained as a full-fledged MVC framework, with a strong opinion on structuring applications and offering bi-directional data flow, updating the real DOM.', 'Angular uses two-way data binding, allowing changes made in the UI element to be reflected in the corresponding model state and vice versa, facilitating connectivity between the view and model data via the controller.', 'TypeScript, although not mandatory, is highly recommended for developing Angular applications as it offers better syntactic structure, making the code base easier to understand and maintain.', 'Angular provides custom components that enable building reusable pieces with rendering logic.', 'Dependency injection in Angular improves testability and reusability.', 'Angular is built with testability in mind and allows testing every part of the application.', 'Angular is cross-platform and browser compatible, running on various browsers and platforms.', 'Companies like Nike, Forbes, Google, HBO, Sony, and Upwork use Angular.', 'Components are the building blocks of an application, forming a hierarchy and belonging to the ng module.', 'Creation of a text component using ng-gc command creates four different files, including HTML, CSS, .ts, and spec.ts, and updates app.module.ts.', 'Incorporating the created text component into the final render involves copying the selector to the final component.html file.', 'The component decorator accepts a metadata object, including properties such as selector, template, templateUrl, styles, and styleUrls.', 'Creation of an image component involves using the ng-gc command, adding an image file to the assets folder, and incorporating the image component into the final render.']}, {'end': 29994.01, 'segs': [{'end': 28954.734, 'src': 'embed', 'start': 28920.461, 'weight': 0, 'content': [{'end': 28921.721, 'text': 'Next up is JSON values.', 'start': 28920.461, 'duration': 1.26}, {'end': 28926.003, 'text': 'So form value can be generated using the form.value object.', 'start': 28922.141, 'duration': 3.862}, {'end': 28931.624, 'text': 'Form data is exported as JSON values when the submit method is called.', 'start': 28926.803, 'duration': 4.821}, {'end': 28937.506, 'text': 'Lastly, basic HTML validations can be used to validate the form fields.', 'start': 28932.864, 'duration': 4.642}, {'end': 28940.987, 'text': 'In the case of custom validations, directives can be used.', 'start': 28938.046, 'duration': 2.941}, {'end': 28945.468, 'text': 'So arguably, this method is the simplest way to create an Angular form.', 'start': 28941.587, 'duration': 3.881}, {'end': 28948.33, 'text': 'So moving on to reactive approach.', 'start': 28946.789, 'duration': 1.541}, {'end': 28954.734, 'text': 'Now this approach is a programming paradigm revolving around data flows and propagation of change.', 'start': 28948.81, 'duration': 5.924}], 'summary': 'Generating form values using form.value object, exporting form data as json, using basic html and custom validations, and implementing a reactive approach in angular.', 'duration': 34.273, 'max_score': 28920.461, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC828920461.jpg'}, {'end': 29412.512, 'src': 'embed', 'start': 29374.43, 'weight': 4, 'content': [{'end': 29381.515, 'text': 'Now this directive when added into the input tag will provide form controls to every input field.', 'start': 29374.43, 'duration': 7.085}, {'end': 29386.398, 'text': "Alright, so here let's just go ahead and say ng-model.", 'start': 29382.295, 'duration': 4.103}, {'end': 29388.299, 'text': 'That is it.', 'start': 29387.839, 'duration': 0.46}, {'end': 29393.859, 'text': 'So let me just copy this and paste it for every other field.', 'start': 29389.88, 'duration': 3.979}, {'end': 29402.405, 'text': 'Alright, let me save this and back in my browser.', 'start': 29398.182, 'duration': 4.223}, {'end': 29412.512, 'text': 'let me inspect, and here you can see different types of classes like ng-untouched, ng-pristine, ng-valid are added.', 'start': 29402.405, 'duration': 10.107}], 'summary': 'Directive adds form controls to input fields with ng-model, resulting in ng-untouched, ng-pristine, and ng-valid classes.', 'duration': 38.082, 'max_score': 29374.43, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC829374430.jpg'}, {'end': 29816.444, 'src': 'embed', 'start': 29733.42, 'weight': 1, 'content': [{'end': 29739.784, 'text': 'So to do that, you need to access these objects like errors, or invalid or touched.', 'start': 29733.42, 'duration': 6.364}, {'end': 29744.687, 'text': 'All of these properties or objects need to be accessed.', 'start': 29740.144, 'duration': 4.543}, {'end': 29747.569, 'text': "For that, we'll have to create a template variable.", 'start': 29745.248, 'duration': 2.321}, {'end': 29751.432, 'text': 'And then this variable is assigned to this object.', 'start': 29748.41, 'duration': 3.022}, {'end': 29767.824, 'text': "So back in our VS code, Let's create a variable, let me call it name and let's say ngModel.", 'start': 29752.132, 'duration': 15.692}, {'end': 29776.589, 'text': 'Alright, here the variable name receives the control object.', 'start': 29772.587, 'duration': 4.002}, {'end': 29788.503, 'text': 'So here back in my browser, when I submit again without the first name, you can see that the invalid property is set to true correct?', 'start': 29777.57, 'duration': 10.933}, {'end': 29794.248, 'text': 'So this helps us use this property to alert the user with the help of a simple if logic.', 'start': 29788.824, 'duration': 5.424}, {'end': 29814.463, 'text': "So, back in my VS code, let me create another div tag within which I mention ng-if, within which i'm going to use a simple if logic.", 'start': 29795.069, 'duration': 19.394}, {'end': 29816.444, 'text': "so let's say ng.", 'start': 29814.463, 'duration': 1.981}], 'summary': 'Access and assign template variable to objects for user alert', 'duration': 83.024, 'max_score': 29733.42, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC829733420.jpg'}], 'start': 27945.913, 'title': 'Angular framework fundamentals', 'summary': 'Covers fundamental concepts of angular including dependency injection, component data retrieval, forms, and form validation. it includes practical demonstrations and emphasizes key implementation details.', 'chapters': [{'end': 28433.511, 'start': 27945.913, 'title': 'Angular dependency injection', 'summary': 'Discusses the concept of dependency injection in angular, covering its implementation, benefits, drawbacks, and a practical demonstration of using services and injecting them into classes.', 'duration': 487.598, 'highlights': ['Dependency Injection Benefits Dependency injection keeps the code flexible, testable, and mutable, allowing classes to inherit external logic without creating their own, and benefits directives, pipes, and components.', 'Drawbacks of Not Using Dependency Injection The traditional method of not using dependency injection results in inflexible code and unsuitability for testing, causing chain reactions when dependencies change.', "Dependency Injection as a Pattern Dependency injection is a coding pattern where a class receives dependencies from an external source, overcoming the drawbacks of not using dependency injection by moving the definition of dependencies from inside the constructor to the constructor's parameters.", 'Practical Demonstration of Dependency Injection with Services A demonstration is provided on how dependency injection can be used with services and injected into classes to delegate tasks and ensure a good user experience.']}, {'end': 28706.485, 'start': 28433.991, 'title': 'Angular component data retrieval', 'summary': 'Explains the process of retrieving employee data in an angular component, including creating methods to retrieve data, importing and declaring service, and binding methods to buttons for displaying information on the ui.', 'duration': 272.494, 'highlights': ['The chapter explains the process of retrieving employee data in an Angular component, including creating methods to retrieve data, importing and declaring service, and binding methods to buttons for displaying information on the UI.', "The methods 'get info from service class two, one, and three' are created to retrieve employee data and add it to the 'info received' array.", "The chapter demonstrates the use of dependency injection by importing and declaring the 'records.service' in the component.ts file.", "Three arrays, 'info received one, two, and three,' are created to receive the employee data sent from the service.", 'Buttons are created for three different employees, and the data is retrieved from the service and displayed on the UI when the user clicks on the button.']}, {'end': 29031.272, 'start': 28707.525, 'title': 'Angular forms and dependency injection', 'summary': 'Explains how to create a custom html tag for a component, add it to the main component, and utilize dependency injection to display employee details with buttons and form information in angular, emphasizing the two types of form building approaches supported: template-driven and reactive, with details on form controls and group control.', 'duration': 323.747, 'highlights': ['The chapter explains how to create a custom HTML tag for a component, add it to the main component, and utilize dependency injection to display employee details with buttons and form information in Angular. Demonstrates the process of creating a custom HTML tag, adding it to the main component, and using dependency injection to display employee details with buttons and form information in Angular.', 'Emphasizes the two types of form building approaches supported: template-driven and reactive, with details on form controls and group control. Provides detailed information on the two types of form building approaches supported by Angular: template-driven and reactive, and explains form controls and group control.', 'Describes the template-driven approach, its features, and how it uses multiple module classes to provide controls. Explains the template-driven approach in Angular, including the use of multiple module classes to provide controls and the features of this approach.', 'Details the reactive approach as a programming paradigm revolving around data flows and propagation of change, and its elimination of the anti-pattern of updating the data model via two-way data binding. Provides detailed information on the reactive approach as a programming paradigm revolving around data flows and the elimination of the anti-pattern of updating the data model via two-way data binding.', 'Explains form control and its utility in enabling validation of input fields, with instances created for each input field to check values and attributes like touched, untouched, dirty, pristine, valid, and invalid. Details the utility of form control in enabling validation of input fields, including the creation of instances for each input field to check values and attributes like touched, untouched, dirty, pristine, valid, and invalid.']}, {'end': 29572.794, 'start': 29033.054, 'title': 'Angular forms: form group and user registration form', 'summary': 'Explains how to create a user registration form using angular forms, including importing the forms module, creating form groups for fields such as first name, last name, email id, and password, adding the ngmodel directive for form controls, binding the ngsubmit property, and generating javascript representation with ngform.', 'duration': 539.74, 'highlights': ['The chapter explains how to create a user registration form using Angular forms. It includes importing the forms module, creating form groups for fields such as first name, last name, email ID, and password, and adding the ngModel directive for form controls.', 'The form group returns true if all the controls are valid and provides validation errors if there are any. This indicates the functionality of the form group in Angular forms, ensuring all controls are valid and providing validation errors when necessary.', 'Importing the forms module from angular forms in the main app.module.ts file is demonstrated. This step is shown to import the forms module from Angular forms in the main app.module.ts file, a crucial step in using Angular forms.', 'The process of creating form groups for fields such as first name, last name, email ID, and password is explained. It details the creation of form groups for each field in the user registration form, providing a clear understanding of the form structure.', 'Adding the ngModel directive for form controls and its impact on recognizing form tags and adding relevant classes are discussed. The addition of the ngModel directive in Angular forms and its effect on recognizing form tags and adding classes like ng-untouched, ng-pristine, ng-valid are explained.']}, {'end': 29994.01, 'start': 29574.694, 'title': 'Form validation in angular', 'summary': 'Demonstrates form validation in angular, including using properties like required, minlength, and maxlength to validate input fields, leveraging form control objects to ensure field validation, and displaying error messages based on different conditions. additionally, it showcases the use of nested if conditions for customized form validation messages.', 'duration': 419.316, 'highlights': ['The chapter demonstrates form validation in Angular It explains the process of form validation in Angular, showcasing various techniques and features to ensure the accuracy of input data.', 'using properties like required, minLength, and maxLength to validate input fields It shows how to utilize properties like required, minLength, and maxLength to enforce specific validation rules for input fields, ensuring that the form data meets the specified criteria.', 'leveraging form control objects to ensure field validation The transcript illustrates the utilization of form control objects, such as errors, invalid, and touched, to validate input fields and provide feedback to the user based on the validation status.', "displaying error messages based on different conditions It demonstrates the display of error messages tailored to different conditions, such as displaying 'first name required' when the field is empty and 'sorry, short first name' when the length is insufficient.", 'showcases the use of nested if conditions for customized form validation messages It showcases the use of nested if conditions to customize form validation messages, providing tailored feedback to the user based on specific validation criteria.']}], 'duration': 2048.097, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC827945913.jpg', 'highlights': ['Practical Demonstration of Dependency Injection with Services A demonstration is provided on how dependency injection can be used with services and injected into classes to delegate tasks and ensure a good user experience.', 'The chapter explains how to create a custom HTML tag for a component, add it to the main component, and utilize dependency injection to display employee details with buttons and form information in Angular. Demonstrates the process of creating a custom HTML tag, adding it to the main component, and using dependency injection to display employee details with buttons and form information in Angular.', 'The chapter demonstrates form validation in Angular It explains the process of form validation in Angular, showcasing various techniques and features to ensure the accuracy of input data.', 'The chapter explains how to create a user registration form using Angular forms. It includes importing the forms module, creating form groups for fields such as first name, last name, email ID, and password, and adding the ngModel directive for form controls.', 'The chapter explains the process of retrieving employee data in an Angular component, including creating methods to retrieve data, importing and declaring service, and binding methods to buttons for displaying information on the UI.']}, {'end': 31518.674, 'segs': [{'end': 30186.584, 'src': 'embed', 'start': 30158.803, 'weight': 2, 'content': [{'end': 30166.129, 'text': 'Now, these services hold valuable business logic and can also be used to interact with the backend.', 'start': 30158.803, 'duration': 7.326}, {'end': 30176.156, 'text': 'Now, for example, if you want to make Ajax calls, you can have methods to those calls in the service and then use it as a dependency in files.', 'start': 30166.809, 'duration': 9.347}, {'end': 30182.941, 'text': 'And as mentioned earlier, it can be used to share data among several components.', 'start': 30178.098, 'duration': 4.843}, {'end': 30186.584, 'text': 'In Angular, services are singleton.', 'start': 30184.242, 'duration': 2.342}], 'summary': 'Angular services are singleton and hold valuable business logic, used for ajax calls and sharing data.', 'duration': 27.781, 'max_score': 30158.803, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC830158803.jpg'}, {'end': 31012.935, 'src': 'embed', 'start': 30982.759, 'weight': 3, 'content': [{'end': 30987.381, 'text': "So similarly, we'll have to do the same for the other two records as well.", 'start': 30982.759, 'duration': 4.622}, {'end': 30991.662, 'text': 'Let me just make this look better.', 'start': 30989.321, 'duration': 2.341}, {'end': 30992.082, 'text': 'All right.', 'start': 30991.722, 'duration': 0.36}, {'end': 30997.724, 'text': "So what I'm going to do is I'm just going to paste the same twice.", 'start': 30992.762, 'duration': 4.962}, {'end': 31004.086, 'text': "And here I'm going to just change the names.", 'start': 31000.902, 'duration': 3.184}, {'end': 31005.467, 'text': "I'll say 2 here.", 'start': 31004.206, 'duration': 1.261}, {'end': 31011.253, 'text': 'And this is again for employee 2.', 'start': 31006.228, 'duration': 5.025}, {'end': 31012.935, 'text': "And I'm going to change this as well.", 'start': 31011.253, 'duration': 1.682}], 'summary': 'Creating duplicate records for two employees.', 'duration': 30.176, 'max_score': 30982.759, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC830982759.jpg'}, {'end': 31093.927, 'src': 'embed', 'start': 31071.946, 'weight': 0, 'content': [{'end': 31081.715, 'text': 'Alright so now the last part of the use case that we discussed was to add another detail that is the employee detail in the record.', 'start': 31071.946, 'duration': 9.769}, {'end': 31089.122, 'text': "Alright so for that we'll have to take input from the user and in our case we're taking the location.", 'start': 31082.396, 'duration': 6.726}, {'end': 31093.927, 'text': "Now we're also adding the same location for all three employees.", 'start': 31089.743, 'duration': 4.184}], 'summary': 'To enhance the use case, the employee detail of location is added and set the same for all three employees.', 'duration': 21.981, 'max_score': 31071.946, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC831071946.jpg'}, {'end': 31426.703, 'src': 'embed', 'start': 31393.086, 'weight': 4, 'content': [{'end': 31399.213, 'text': 'and what this method does is that it just pushes the information or the data into the arrays.', 'start': 31393.086, 'duration': 6.127}, {'end': 31406.416, 'text': "So since I'm going to be pushing the same information into all of these arrays, that is, info1, info2, and info3,,", 'start': 31400.194, 'duration': 6.222}, {'end': 31412.358, 'text': "I'm just gonna say this.info1.push of info.", 'start': 31406.416, 'duration': 5.942}, {'end': 31420.741, 'text': 'All right, and the same for the other two arrays as well.', 'start': 31414.199, 'duration': 6.542}, {'end': 31426.703, 'text': 'Let me just change these, all right.', 'start': 31420.761, 'duration': 5.942}], 'summary': 'Method pushes data into arrays info1, info2, and info3.', 'duration': 33.617, 'max_score': 31393.086, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC831393086.jpg'}], 'start': 29994.49, 'title': 'Angular services and forms', 'summary': 'Covers angular services overview, benefits, and usage, emphasizing their role in sharing code and interacting with the backend. it also includes a hands-on demo for creating employee details list and discusses service dependency injection. additionally, the chapter explains creating and updating forms in html, binding with angular, and utilizing template variables.', 'chapters': [{'end': 30211.929, 'start': 29994.49, 'title': 'Angular services overview', 'summary': 'Covers the usage and benefits of angular services, including their role in sharing code, interacting with the backend, and their singleton nature, emphasizing that they can be registered as part of a module or a component.', 'duration': 217.439, 'highlights': ['Angular services allow for sharing the same piece of code and injecting other services as dependencies, promoting code reusability and modularity.', "Services can interact with the backend, such as making Ajax calls, and share data among multiple components, enhancing the application's functionality and efficiency.", 'Angular services are singleton, ensuring only a single instance is created and used across the entire application, optimizing resource utilization and consistency.']}, {'end': 30641.43, 'start': 30212.796, 'title': 'Angular services demo', 'summary': 'Discusses creating an angular services demo, including creating employee details list, displaying employee information, adding employee details, creating components and services, and initializing employee records, with the goal of understanding angular services hands-on.', 'duration': 428.634, 'highlights': ['Creating employee details list and displaying employee information The demo involves creating a database of three employees and displaying their information on the browser, including name, employee ID, and email ID.', "Creating components and services The chapter covers creating an 'e-info' component for employee information and generating a service named 'data' to manage the employee records and information retrieval.", 'Initializing employee records The process of initializing employee records is demonstrated, including creating arrays for employee information, retrieving the information through methods, and creating a service method to return the employee records.']}, {'end': 31118.355, 'start': 30642.011, 'title': 'Angular service dependency injection', 'summary': 'Explains the process of injecting a service into an angular component to retrieve employee information and create ui, including creating providers array, accessing service instance, binding methods with buttons, and displaying employee details in the ui.', 'duration': 476.344, 'highlights': ['The service instance is created and used to perform particular tasks when the component is created The chapter emphasizes that the service instance is created and utilized for specific tasks when the component is created, ensuring efficient functionality.', "Retrieving the information of the first employee using the getInfo1 method and storing it in the infoReceived1 array The transcript specifies the retrieval of the first employee's information using the getInfo1 method and storing it in the infoReceived1 array, indicating the practical application of the service for data retrieval.", 'Creating UI by using ngFor directive to loop over records and display employee details It explains the process of creating the UI by utilizing the ngFor directive to loop over records and display employee details, enabling efficient UI development.']}, {'end': 31518.674, 'start': 31118.355, 'title': 'Angular forms update', 'summary': 'Explains how to create a form in html, bind it with angular using ng-model and ngform, and update the information into records, including creating methods to add and update information and utilizing template variables.', 'duration': 400.319, 'highlights': ['Creating a form in HTML and binding it with Angular using ng-model and ngForm The speaker explains the process of creating a form in HTML and binding it with Angular using ng-model and ngForm, providing step-by-step instructions.', 'Creating a method to update information into records The speaker describes the creation of a method called updateInfoMethod in the component.ts file to update information into the records, with the use of a template variable and the ngForm directive.', 'Explanation of the add info method in the service file The speaker explains the add info method in the service file that pushes the information or data into the arrays info1, info2, and info3, and returns the updated info1 array.']}], 'duration': 1524.184, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC829994490.jpg', 'highlights': ['Angular services allow for sharing the same piece of code and injecting other services as dependencies, promoting code reusability and modularity.', "Services can interact with the backend, such as making Ajax calls, and share data among multiple components, enhancing the application's functionality and efficiency.", 'Angular services are singleton, ensuring only a single instance is created and used across the entire application, optimizing resource utilization and consistency.', 'Creating employee details list and displaying employee information The demo involves creating a database of three employees and displaying their information on the browser, including name, employee ID, and email ID.', 'The service instance is created and used to perform particular tasks when the component is created The chapter emphasizes that the service instance is created and utilized for specific tasks when the component is created, ensuring efficient functionality.', 'Creating a form in HTML and binding it with Angular using ng-model and ngForm The speaker explains the process of creating a form in HTML and binding it with Angular using ng-model and ngForm, providing step-by-step instructions.']}, {'end': 33868.965, 'segs': [{'end': 31579.611, 'src': 'embed', 'start': 31550.174, 'weight': 7, 'content': [{'end': 31555.656, 'text': 'Bootstrap is a powerful toolkit, basically a collection of HTML,', 'start': 31550.174, 'duration': 5.482}, {'end': 31561.859, 'text': 'CSS and JavaScript tools for creating and building responsive web applications and pages.', 'start': 31555.656, 'duration': 6.203}, {'end': 31568.142, 'text': 'It is a free and open-source project based on GitHub and originally created by Twitter.', 'start': 31562.439, 'duration': 5.703}, {'end': 31579.611, 'text': 'Now, to put it more easily, Bootstrap is a giant collection of handy reusable bits of code written in HTML, CSS, and JavaScript.', 'start': 31569.246, 'duration': 10.365}], 'summary': 'Bootstrap is a free, open-source toolkit for responsive web apps, built by twitter and available on github.', 'duration': 29.437, 'max_score': 31550.174, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC831550174.jpg'}, {'end': 31670.338, 'src': 'embed', 'start': 31640.495, 'weight': 2, 'content': [{'end': 31643.838, 'text': "So let's see how to embed Bootstrap into Angular.", 'start': 31640.495, 'duration': 3.343}, {'end': 31646.684, 'text': 'Now there are two ways to do it.', 'start': 31644.943, 'duration': 1.741}, {'end': 31652.447, 'text': 'First up is by using the Bootstrap CDN or the Content Delivery Network.', 'start': 31647.525, 'duration': 4.922}, {'end': 31660.032, 'text': 'Now this enables users to load CSS, JavaScript, and images remotely from its servers.', 'start': 31653.208, 'duration': 6.824}, {'end': 31663.934, 'text': 'The other method is to use Bootstrap NPM.', 'start': 31660.992, 'duration': 2.942}, {'end': 31670.338, 'text': 'Bootstrap, jQuery, and other packages and frameworks can be installed via the command prompt.', 'start': 31664.414, 'duration': 5.924}], 'summary': 'Embed bootstrap into angular using cdn or npm for remote loading and installation.', 'duration': 29.843, 'max_score': 31640.495, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC831640495.jpg'}, {'end': 31747.001, 'src': 'embed', 'start': 31696.063, 'weight': 3, 'content': [{'end': 31699.086, 'text': "So here I've created a simple blog.", 'start': 31696.063, 'duration': 3.023}, {'end': 31703.844, 'text': "for simply learn and i've added the simply learn logo.", 'start': 31699.941, 'duration': 3.903}, {'end': 31708.508, 'text': "i've also written a few lines about simply learn and what they offer.", 'start': 31703.844, 'duration': 4.664}, {'end': 31717.235, 'text': "i've also mentioned their tagline, and when you scroll down, you can see that i've mentioned the different courses they're offering,", 'start': 31708.508, 'duration': 8.727}, {'end': 31726.776, 'text': 'and when you click on the more info button, it navigates to the official page that gives you the overview for that particular course.', 'start': 31717.235, 'duration': 9.541}, {'end': 31733.098, 'text': 'So this is for Lean Six Sigma, the same for full stack web development as well.', 'start': 31727.456, 'duration': 5.642}, {'end': 31738.159, 'text': 'And the same for the last one that is cybersecurity.', 'start': 31734.278, 'duration': 3.881}, {'end': 31745.041, 'text': "And finally, I've added a simple video here to just make it more beautiful.", 'start': 31738.179, 'duration': 6.862}, {'end': 31747.001, 'text': "So I've added a simple video.", 'start': 31745.281, 'duration': 1.72}], 'summary': 'Created blog for simply learn with courses in lean six sigma, full stack web development, and cybersecurity, including video.', 'duration': 50.938, 'max_score': 31696.063, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC831696063.jpg'}, {'end': 31816.268, 'src': 'embed', 'start': 31780.791, 'weight': 0, 'content': [{'end': 31790.879, 'text': "So for that, I'm going to just go ahead and say bootstrap blog template.", 'start': 31780.791, 'duration': 10.088}, {'end': 31795.643, 'text': "And I'm just going to click on the first link that I get.", 'start': 31792.72, 'duration': 2.923}, {'end': 31800.266, 'text': 'And here you can choose the template that you like.', 'start': 31796.824, 'duration': 3.442}, {'end': 31803.449, 'text': "So I'm just going to look for more templates here.", 'start': 31800.947, 'duration': 2.502}, {'end': 31808.793, 'text': 'And the one that we are going to choose is.', 'start': 31805.21, 'duration': 3.583}, {'end': 31814.267, 'text': 'Oh yeah, this one, which is small businesses.', 'start': 31811.906, 'duration': 2.361}, {'end': 31816.268, 'text': 'So you can go ahead and click on that.', 'start': 31814.768, 'duration': 1.5}], 'summary': 'Selecting a bootstrap blog template for small businesses.', 'duration': 35.477, 'max_score': 31780.791, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC831780791.jpg'}, {'end': 32138.888, 'src': 'embed', 'start': 32095.706, 'weight': 1, 'content': [{'end': 32098.048, 'text': 'Let me just add the CSS file as well.', 'start': 32095.706, 'duration': 2.342}, {'end': 32100.77, 'text': "That's bootstrap.min.css.", 'start': 32098.068, 'duration': 2.702}, {'end': 32105.213, 'text': "I'm just going to copy the relative path and just provide it here.", 'start': 32101.07, 'duration': 4.143}, {'end': 32114.68, 'text': 'Let me just change these to forward slash.', 'start': 32105.233, 'duration': 9.447}, {'end': 32122.883, 'text': 'Okay, so we have our custom style sheet.', 'start': 32120.222, 'duration': 2.661}, {'end': 32136.407, 'text': "So what I'm going to do is I'm just going to copy this and just paste it in our and then you can just paste it here.", 'start': 32123.043, 'duration': 13.364}, {'end': 32138.888, 'text': 'All right.', 'start': 32138.468, 'duration': 0.42}], 'summary': 'Adding the bootstrap.min.css file and custom style sheet to the project.', 'duration': 43.182, 'max_score': 32095.706, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC832095706.jpg'}, {'end': 32524.309, 'src': 'embed', 'start': 32487.477, 'weight': 12, 'content': [{'end': 32490.18, 'text': "we're going to display something else over here.", 'start': 32487.477, 'duration': 2.703}, {'end': 32490.6, 'text': 'all right.', 'start': 32490.18, 'duration': 0.42}, {'end': 32495.864, 'text': "so let's go back to our vs code to customize and display the final output.", 'start': 32490.6, 'duration': 5.264}, {'end': 32503.355, 'text': "so here the first thing that i'm going to be doing is changing the message.", 'start': 32496.972, 'duration': 6.383}, {'end': 32505.976, 'text': "here i'm going to display simply learn.", 'start': 32503.355, 'duration': 2.621}, {'end': 32510.839, 'text': 'for that in our navbar component.', 'start': 32505.976, 'duration': 4.863}, {'end': 32524.309, 'text': "let's go to the html code and here, instead of start bootstrap, let me just type in simply learn, All right.", 'start': 32510.839, 'duration': 13.47}], 'summary': "Customizing and displaying 'simply learn' in the navbar component of vs code.", 'duration': 36.832, 'max_score': 32487.477, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC832487477.jpg'}, {'end': 32859.36, 'src': 'embed', 'start': 32815.911, 'weight': 6, 'content': [{'end': 32822.493, 'text': 'So once you click on the more info button, it will automatically navigate to this page.', 'start': 32815.911, 'duration': 6.582}, {'end': 32824.733, 'text': 'All right.', 'start': 32824.314, 'duration': 0.419}, {'end': 32826.553, 'text': 'So let me save this.', 'start': 32825.694, 'duration': 0.859}, {'end': 32830.976, 'text': "Next up, I'm going to do the same for the other two courses as well.", 'start': 32827.655, 'duration': 3.321}, {'end': 32839.398, 'text': 'So it says postgraduate program in full stack development.', 'start': 32830.996, 'duration': 8.402}, {'end': 32844.227, 'text': "And then we're going to mention the duration and the cohort.", 'start': 32841.364, 'duration': 2.863}, {'end': 32858.398, 'text': 'So let me paste that and also provide a line break and then link.', 'start': 32844.487, 'duration': 13.911}, {'end': 32859.36, 'text': 'I have it here.', 'start': 32858.619, 'duration': 0.741}], 'summary': 'Demonstrating navigation to course pages and adding program details.', 'duration': 43.449, 'max_score': 32815.911, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC832815911.jpg'}, {'end': 32960.199, 'src': 'embed', 'start': 32935.894, 'weight': 5, 'content': [{'end': 32944.36, 'text': "So what I'm going to do is I'm just going to get the code to add a video from Google and then I'm going to provide the source,", 'start': 32935.894, 'duration': 8.466}, {'end': 32946.3, 'text': 'which is going to be the video that I would want to display.', 'start': 32944.36, 'duration': 1.94}, {'end': 32951.142, 'text': "So I've received the code.", 'start': 32949.582, 'duration': 1.56}, {'end': 32952.744, 'text': "I'm just going to paste it here.", 'start': 32951.523, 'duration': 1.221}, {'end': 32956.778, 'text': 'so you can get the code on google.', 'start': 32954.176, 'duration': 2.602}, {'end': 32958.898, 'text': 'so go ahead and just paste that.', 'start': 32956.778, 'duration': 2.12}, {'end': 32960.199, 'text': 'also for the source.', 'start': 32958.898, 'duration': 1.301}], 'summary': 'Adding code to display a google video source.', 'duration': 24.305, 'max_score': 32935.894, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC832935894.jpg'}, {'end': 33244.801, 'src': 'embed', 'start': 33220.995, 'weight': 11, 'content': [{'end': 33230.076, 'text': 'And similarly with home, once you click on it, some new information gets added and the URL changes with a slash home appended.', 'start': 33220.995, 'duration': 9.081}, {'end': 33233.896, 'text': 'Alright, so this is the main objective of our application.', 'start': 33230.816, 'duration': 3.08}, {'end': 33237.197, 'text': "So to create it, let's head back to our VS code.", 'start': 33234.417, 'duration': 2.78}, {'end': 33244.801, 'text': "Alright, so here I've created a folder called demo underscore angular and I've created a file called demo routing.", 'start': 33237.538, 'duration': 7.263}], 'summary': 'Creating an application with a folder named demo_angular and file demo_routing.', 'duration': 23.806, 'max_score': 33220.995, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC833220995.jpg'}, {'end': 33375.536, 'src': 'embed', 'start': 33343.14, 'weight': 10, 'content': [{'end': 33345.781, 'text': "I've pasted the code for the navigation bar.", 'start': 33343.14, 'duration': 2.641}, {'end': 33364.474, 'text': "And back in my app.component.html file, I'll just remove all the unwanted code here and just specify the custom HTML tag for my navbar.", 'start': 33350.18, 'duration': 14.294}, {'end': 33368.436, 'text': 'So let me just create one here.', 'start': 33365.955, 'duration': 2.481}, {'end': 33371.934, 'text': 'All right, let me save this.', 'start': 33370.854, 'duration': 1.08}, {'end': 33375.536, 'text': "Let me just run the application and see if it's displaying correctly.", 'start': 33372.214, 'duration': 3.322}], 'summary': 'Code for navigation bar pasted, custom html tag specified, application run to check display.', 'duration': 32.396, 'max_score': 33343.14, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC833343140.jpg'}], 'start': 31518.674, 'title': 'Angular bootstrap integration and ui components', 'summary': 'Explains integrating bootstrap into angular, creating ui components, adding course information and routing, covering key concepts and providing practical guidance, including the process of embedding bootstrap, creating navigation bar, and configuring routes for a seamless user experience.', 'chapters': [{'end': 31816.268, 'start': 31518.674, 'title': 'Understanding bootstrap in angular', 'summary': 'Explains the concept of angular services and the integration of bootstrap into angular, highlighting its advantages and the process of embedding it, and demonstrates the creation of a blog using angular bootstrap, showcasing different elements such as logo, courses, video, and youtube channel link.', 'duration': 297.594, 'highlights': ['Bootstrap is a powerful toolkit for creating responsive web applications and pages, with advantages including a responsive grid, automatically resizing images based on screen size, various components like navigation bars, and excellent documentation. Bootstrap is a powerful toolkit for creating responsive web applications and pages, offering advantages such as a responsive grid, automatically resizing images based on screen size, and various components like navigation bars. It also provides excellent documentation.', 'The process of embedding Bootstrap into Angular can be done using the Bootstrap CDN or Bootstrap NPM, with the tutorial demonstrating the embedding using NPM and emphasizing the importance of understanding the concept through a demo. Bootstrap can be embedded into Angular using the Bootstrap CDN or Bootstrap NPM, with the tutorial demonstrating the embedding using NPM and emphasizing the importance of understanding the concept through a demo.', "The demonstration of creating a blog using Angular Bootstrap involves adding elements such as the company logo, course details, video, and a link to the company's YouTube channel, showcasing the practical application of Angular Bootstrap. The demonstration of creating a blog using Angular Bootstrap involves adding elements such as the company logo, course details, video, and a link to the company's YouTube channel, showcasing the practical application of Angular Bootstrap."]}, {'end': 32175.42, 'start': 31816.909, 'title': 'Angular component integration', 'summary': 'Demonstrates the process of integrating html, css, and javascript dependencies in an angular project, including the installation and embedding of jquery and bootstrap using npm, and updating the angular.json file to include the references, culminating in the incorporation of the html code into the component.html file.', 'duration': 358.511, 'highlights': ['The process of installing jQuery and Bootstrap using npm is emphasized for integrating the necessary dependencies. The transcript highlights the installation of jQuery and Bootstrap using npm for integrating dependencies, ensuring the availability of the required JavaScript files for the Angular project.', 'The detailed steps to embed jQuery and Bootstrap references in the angular.json file are provided, illustrating the process of updating the build section with the relative paths to the JavaScript files. The transcript details the process of updating the angular.json file to include the references to Bootstrap and jQuery, providing the specific steps for embedding the relative paths to the JavaScript files in the build section.', 'The addition of the CSS file, specifically bootstrap.min.css, and the procedure for embedding it in the angular.json file is outlined. The transcript outlines the addition of the CSS file, bootstrap.min.css, and illustrates the procedure for embedding it in the angular.json file, contributing to the comprehensive integration of dependencies in the Angular project.']}, {'end': 32753.746, 'start': 32179.502, 'title': 'Creating ui components', 'summary': 'Discusses creating four components for the navigation bar, introduction, courses, and footer, including adding specific code to each component and customizing the ui with changes in text, images, and styling.', 'duration': 574.244, 'highlights': ['Creating four components for the UI: navigation bar, introduction, courses, and footer. The speaker plans to create four components for the UI, including a navigation bar, introduction, courses, and footer, and mentions the process of creating each component.', 'Adding specific code to each component and customizing the UI. The speaker discusses adding specific code to each component, including the navigation bar, introduction, courses, and footer, and customizing the UI with changes in text, images, and styling.', 'Customizing the UI with changes in text, images, and styling. The speaker demonstrates customizing the UI by changing text, adding images, and applying styling, such as adjusting font size, to enhance the visual appearance of the components.']}, {'end': 33272.851, 'start': 32753.746, 'title': 'Adding course information and implementing routing in angular', 'summary': 'Details the process of adding course information to the courses component, including postgraduate programs in lean six sigma, full stack development, and cybersecurity, along with their durations and reference links, as well as embedding a video and youtube channel link. it also explains the basics of routing in angular, highlighting its role in creating single-page applications, providing an excellent user experience, and dynamically loading new content.', 'duration': 519.105, 'highlights': ['The chapter details the process of adding course information to the courses component, including postgraduate programs in Lean Six Sigma, full stack development, and cybersecurity, along with their durations and reference links, as well as embedding a video and YouTube channel link. The chapter outlines the steps to add information for postgraduate programs in Lean Six Sigma, full stack development, and cybersecurity to the courses component, providing details such as durations and reference links.', 'The chapter also explains the basics of routing in Angular, highlighting its role in creating single-page applications, providing an excellent user experience, and dynamically loading new content. The chapter elaborates on the basics of routing in Angular and its significance in creating single-page applications, offering an enhanced user experience, and dynamically loading new content.']}, {'end': 33556.97, 'start': 33273.43, 'title': 'Angular navbar and components', 'summary': 'Covers setting up the app module, creating a navbar component, incorporating bootstrap code, and generating components for login and home, along with displaying the content. the chapter provides guidance on importing the app routing module, creating a navbar component, integrating bootstrap code, and generating components for login and home.', 'duration': 283.54, 'highlights': ['The chapter provides guidance on importing the app routing module. Importing the app routing module is essential for setting up the app module.', 'The chapter explains the process of creating a navbar component and incorporating Bootstrap code. Creating a navbar component and integrating Bootstrap code is crucial for developing the navigation bar.', 'The chapter demonstrates the generation of components for login and home, along with displaying the content. Generating components for login and home, and displaying the content, is a key aspect of the tutorial.']}, {'end': 33868.965, 'start': 33557.67, 'title': 'Configuring routes and navigation', 'summary': 'Covers configuring routes for the application using the app-routing-module.ts file, creating paths for login and home components, linking routes to buttons in the navbar using router link and router link active directives, and utilizing the router outlet directive to specify where components are to be displayed, resulting in a simple navigation bar with different options and successful execution in the browser.', 'duration': 311.295, 'highlights': ["Creating paths for login and home components in the routes array The transcript discusses creating paths for login and home components in the routes array, with 'login' and 'home' as the path values, and their respective components being the login component and home component.", 'Linking routes to buttons in the navbar using router link and router link active directives The chapter explains the usage of router link and router link active directives to link routes to buttons in the navbar, specifying the path and CSS classes to be applied when the router link is active.', "Utilizing the router outlet directive to specify where components are to be displayed It delves into the utilization of the router outlet directive to specify where components are to be displayed, allowing for the content of the home and login components to be displayed in the browser based on the user's interaction."]}], 'duration': 2350.291, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC831518674.jpg', 'highlights': ['Bootstrap offers a responsive grid, image resizing, and various components like navigation bars.', 'Embedding Bootstrap into Angular can be done using Bootstrap CDN or Bootstrap NPM.', 'Demonstration of creating a blog using Angular Bootstrap involves adding company logo, course details, video, and YouTube link.', 'Installing jQuery and Bootstrap using npm is emphasized for integrating necessary dependencies.', 'Detailed steps to embed jQuery and Bootstrap references in the angular.json file are provided.', 'Addition of bootstrap.min.css and embedding it in the angular.json file is outlined.', 'Creating four UI components: navigation bar, introduction, courses, and footer.', 'Adding specific code to each component and customizing the UI with changes in text, images, and styling.', 'Details the process of adding course information to the courses component, including postgraduate programs in Lean Six Sigma, full stack development, and cybersecurity.', 'Explains the basics of routing in Angular and its significance in creating single-page applications and dynamically loading new content.', 'Guidance on importing the app routing module and creating a navbar component with Bootstrap code.', 'Generation of components for login and home, along with displaying the content.', 'Creating paths for login and home components in the routes array.', 'Linking routes to buttons in the navbar using router link and router link active directives.', 'Utilizing the router outlet directive to specify where components are to be displayed.']}, {'end': 35504.621, 'segs': [{'end': 34454.101, 'src': 'embed', 'start': 34342.808, 'weight': 1, 'content': [{'end': 34357.778, 'text': 'now we will add another attribute that would be address with data type where care.', 'start': 34342.808, 'duration': 14.97}, {'end': 34363.362, 'text': 'next we would add the attribute item.', 'start': 34357.778, 'duration': 5.584}, {'end': 34366.584, 'text': 'that would be the item purchased with data type where care.', 'start': 34363.362, 'duration': 3.222}, {'end': 34372.681, 'text': 'next would be the price.', 'start': 34371.48, 'duration': 1.201}, {'end': 34405.533, 'text': "okay, for price we will make it as float and let's shift this to next line and now we'll execute this command.", 'start': 34372.681, 'duration': 32.852}, {'end': 34410.234, 'text': 'yeah, you can see that the table is created.', 'start': 34405.533, 'duration': 4.701}, {'end': 34413.195, 'text': 'now we have to insert values into it.', 'start': 34410.234, 'duration': 2.961}, {'end': 34432.032, 'text': "for that we'll write a command insert into customers values and i have all the records written in the notepad.", 'start': 34413.195, 'duration': 18.837}, {'end': 34440.616, 'text': 'so i will copy these and paste it here.', 'start': 34432.032, 'duration': 8.584}, {'end': 34442.776, 'text': 'these are 20 records.', 'start': 34440.616, 'duration': 2.16}, {'end': 34446.358, 'text': 'like all the attributes, they are in the order.', 'start': 34442.776, 'duration': 3.582}, {'end': 34449.319, 'text': 'so we have written all the records in the order.', 'start': 34446.358, 'duration': 2.961}, {'end': 34452.56, 'text': 'only, like customer id, that would be 101.', 'start': 34449.319, 'duration': 3.241}, {'end': 34454.101, 'text': 'customer name, that would be joseph.', 'start': 34452.56, 'duration': 1.541}], 'summary': 'Adding attributes like address, item, and price with specified data types, then creating a table and inserting 20 records with specific attributes.', 'duration': 111.293, 'max_score': 34342.808, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC834342808.jpg'}, {'end': 35420.028, 'src': 'embed', 'start': 35378.913, 'weight': 0, 'content': [{'end': 35399.09, 'text': 'comma address from table name and group by accordingly with address.', 'start': 35378.913, 'duration': 20.177}, {'end': 35401.432, 'text': 'here the comma will not come.', 'start': 35399.09, 'duration': 2.342}, {'end': 35403.594, 'text': 'yeah, this is the command.', 'start': 35401.432, 'duration': 2.162}, {'end': 35410.72, 'text': 'select count, customer id, comma address from customers, group by address.', 'start': 35403.594, 'duration': 7.126}, {'end': 35414.663, 'text': 'when we will execute this command, yeah, we will get this table.', 'start': 35410.72, 'duration': 3.943}, {'end': 35415.364, 'text': 'that would be.', 'start': 35414.663, 'duration': 0.701}, {'end': 35420.028, 'text': 'these are the different addresses and these are the number of times,', 'start': 35415.364, 'duration': 4.664}], 'summary': "The command selects customer ids and counts based on addresses from the 'customers' table.", 'duration': 41.115, 'max_score': 35378.913, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC835378913.jpg'}], 'start': 33869.445, 'title': 'Database commands and functions', 'summary': 'Covers various database commands including update, delete, distinct, minimum, maximum, count, average, sum, where, group by, and having, with examples and quantifiable results. it demonstrated updating customer information, deleting records, returning distinct values, finding minimum and maximum prices, counting the number of customer ids, calculating the average price, summing prices, filtering records, grouping rows, and filtering grouped results.', 'chapters': [{'end': 34200.439, 'start': 33869.445, 'title': 'Angular routing and sql basics', 'summary': 'Covers angular routing and its achievement, the significance of databases in storing and manipulating vast amounts of data, and the basics of sql including its standard language, writing basic queries, features, applications, and types of sql commands.', 'duration': 330.994, 'highlights': ['The database comes with features to update and effortlessly manipulate data, with companies relying on an excellent database to store their vast amounts of data. The database is crucial for storing and manipulating vast amounts of data, with companies relying on an excellent database to store their data.', 'SQL is extensively used as a client-server language to connect the frontend with the backend, thus supporting the client-server architecture. SQL is extensively used as a client-server language to connect the frontend with the backend, supporting the client-server architecture.', 'SQL is used to create a database, define its structure, implement it, and perform various functions, making it a powerful language for data manipulation and extraction. SQL is used to create, define, and implement databases, making it a powerful language for data manipulation and extraction.', 'The chapter covers Angular routing and its achievement, the significance of databases in storing and manipulating vast amounts of data, and the basics of SQL including its standard language, writing basic queries, features, applications, and types of SQL commands. The chapter covers Angular routing and its achievement, the significance of databases in storing and manipulating vast amounts of data, and the basics of SQL including its standard language, writing basic queries, features, applications, and types of SQL commands.']}, {'end': 34891.259, 'start': 34201.48, 'title': 'Mysql basic queries & commands', 'summary': "Covers basic mysql commands including creating, inserting, viewing, dropping, truncating, altering tables, and executing queries, with a demonstration of commands' execution and their outcomes.", 'duration': 689.779, 'highlights': ['The command has been executed and they have been inserted into the table. Demonstration of inserting 20 records into the customer table, indicating successful execution.', 'all the 20 records, they have been inserted. Confirmation of successful insertion of 20 records into the customer table.', "the drop command worked here. Successful demonstration of the drop command's functionality in removing the customer table.", 'all the records from the table has been vanished. Verification of successful execution of the truncate command in removing all records from the table.', "the age column has been dropped off the table. Successful execution of the alter command in dropping the 'age' column from the table."]}, {'end': 35504.621, 'start': 34891.259, 'title': 'Database commands and functions', 'summary': 'Covered various database commands including update, delete, distinct, minimum, maximum, count, average, sum, where, group by, and having, with examples and quantifiable results. it demonstrated updating customer information, deleting records, returning distinct values, finding minimum and maximum prices, counting the number of customer ids, calculating the average price, summing prices, filtering records, grouping rows, and filtering grouped results.', 'duration': 613.362, 'highlights': ['The chapter covered various database commands including update, delete, distinct, minimum, maximum, count, average, sum, where, group by, and having, with examples and quantifiable results.', 'It demonstrated updating customer information, deleting records, returning distinct values, finding minimum and maximum prices, counting the number of customer IDs, calculating the average price, summing prices, filtering records, grouping rows, and filtering grouped results.']}], 'duration': 1635.176, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC833869445.jpg', 'highlights': ['The chapter covered various database commands including update, delete, distinct, minimum, maximum, count, average, sum, where, group by, and having, with examples and quantifiable results.', 'It demonstrated updating customer information, deleting records, returning distinct values, finding minimum and maximum prices, counting the number of customer IDs, calculating the average price, summing prices, filtering records, grouping rows, and filtering grouped results.', 'SQL is used to create, define, and implement databases, making it a powerful language for data manipulation and extraction.', 'SQL is extensively used as a client-server language to connect the frontend with the backend, supporting the client-server architecture.']}, {'end': 38391.601, 'segs': [{'end': 35839.908, 'src': 'embed', 'start': 35811.68, 'weight': 5, 'content': [{'end': 35819.702, 'text': 'So here, once the MongoDB is there, so you will be seeing there are two files available inside the MongoDB folder, inside the bin.', 'start': 35811.68, 'duration': 8.022}, {'end': 35824.663, 'text': 'So once you download the zip, you will find two different types of files are available.', 'start': 35820.202, 'duration': 4.461}, {'end': 35825.963, 'text': 'Let me mention those.', 'start': 35824.683, 'duration': 1.28}, {'end': 35832.224, 'text': 'Inside the bin folder, you will see two files.', 'start': 35828.962, 'duration': 3.262}, {'end': 35833.544, 'text': 'One is called MongoD.', 'start': 35832.404, 'duration': 1.14}, {'end': 35839.908, 'text': 'Okay The other file, which is available called Mongo.', 'start': 35837.426, 'duration': 2.482}], 'summary': 'After downloading mongodb, there are two files in the bin folder: mongod and mongo.', 'duration': 28.228, 'max_score': 35811.68, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC835811680.jpg'}, {'end': 35998.526, 'src': 'embed', 'start': 35971.007, 'weight': 12, 'content': [{'end': 35977.672, 'text': 'However, you can also change the location of this particular folder structure, for which we will discuss it a little later on.', 'start': 35971.007, 'duration': 6.665}, {'end': 35985.477, 'text': "But as of now, we can see I'm giving my location that is called hyphen hyphen DB path slash data DB.", 'start': 35978.152, 'duration': 7.325}, {'end': 35986.778, 'text': 'I hit enter.', 'start': 35986.137, 'duration': 0.641}, {'end': 35990.04, 'text': 'You can see now my MongoDB is starting now.', 'start': 35987.338, 'duration': 2.702}, {'end': 35994.403, 'text': "And since it's stuck, so I have to start the new terminal now.", 'start': 35990.921, 'duration': 3.482}, {'end': 35998.526, 'text': 'So here I open another tab.', 'start': 35995.564, 'duration': 2.962}], 'summary': 'Changing folder structure, starting mongodb, encountering issues', 'duration': 27.519, 'max_score': 35971.007, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC835971007.jpg'}, {'end': 36358.738, 'src': 'embed', 'start': 36319.569, 'weight': 9, 'content': [{'end': 36327.179, 'text': "well, If I want to create a collection, I really don't need this particular functionality called create collection.", 'start': 36319.569, 'duration': 7.61}, {'end': 36339.408, 'text': 'I can directly use this statement name call db.sl student.insert.', 'start': 36327.219, 'duration': 12.189}, {'end': 36348.134, 'text': 'And here we would like to add the property like a name and here we can say admin.', 'start': 36340.128, 'duration': 8.006}, {'end': 36351.192, 'text': 'Now, what is that?', 'start': 36350.632, 'duration': 0.56}, {'end': 36358.738, 'text': 'meaning is when you say db.slstudent.insert, and I hit enter, you can see this n inserted one.', 'start': 36351.192, 'duration': 7.546}], 'summary': "Creating a collection without 'create collection' functionality, using 'db.slstudent.insert', adds one entry when executed.", 'duration': 39.169, 'max_score': 36319.569, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC836319569.jpg'}, {'end': 36672.905, 'src': 'embed', 'start': 36646.753, 'weight': 1, 'content': [{'end': 36659.639, 'text': "you may have a total number of four documents which are pretty heavy and they reach to the size 5 MB and beyond that the next document won't be added or else you can have the five documents which has not yet even reached.", 'start': 36646.753, 'duration': 12.886}, {'end': 36663.481, 'text': 'so any option will help you to achieve this.', 'start': 36659.639, 'duration': 3.842}, {'end': 36666.522, 'text': "so that's where exactly you can offer the capping.", 'start': 36663.481, 'duration': 3.041}, {'end': 36672.905, 'text': 'but this is only possible when the user is trying to say db.create collection.', 'start': 36666.522, 'duration': 6.383}], 'summary': 'Capping at 5 mb for four documents or allowing five documents if size not reached, applicable to db.create collection.', 'duration': 26.152, 'max_score': 36646.753, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC836646753.jpg'}, {'end': 36755.487, 'src': 'embed', 'start': 36697.947, 'weight': 0, 'content': [{'end': 36700.248, 'text': 'Now we will tell you like how to insert a document.', 'start': 36697.947, 'duration': 2.301}, {'end': 36704.19, 'text': 'So far we have already seen how to insert a document inside the MongoDB.', 'start': 36700.489, 'duration': 3.701}, {'end': 36709.913, 'text': 'Now we would like to also show you how we can insert the documents using multiple techniques.', 'start': 36704.771, 'duration': 5.142}, {'end': 36716.416, 'text': 'So remember one thing, MongoDB comes with two different types of documents.', 'start': 36711.294, 'duration': 5.122}, {'end': 36724.549, 'text': 'one is called relational document and second is called embedded document.', 'start': 36718.144, 'duration': 6.405}, {'end': 36730.654, 'text': 'mostly, while working with mongodb, we always recommend you to use embedded documents,', 'start': 36724.549, 'duration': 6.105}, {'end': 36735.758, 'text': 'because that helps you to scale up your application without any hurdle.', 'start': 36730.654, 'duration': 5.104}, {'end': 36739.861, 'text': 'okay, the embedded documents means what that means.', 'start': 36735.758, 'duration': 4.103}, {'end': 36746.726, 'text': 'the uh, i would say the parent record as well as the child records, both stores in the same location.', 'start': 36739.861, 'duration': 6.865}, {'end': 36751.244, 'text': 'fine, so how exactly that is?', 'start': 36748.502, 'duration': 2.742}, {'end': 36755.487, 'text': "let's take a look about this example.", 'start': 36751.244, 'duration': 4.243}], 'summary': 'Mongodb offers two types of documents: relational and embedded. use embedded documents for scalability in application development.', 'duration': 57.54, 'max_score': 36697.947, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC836697947.jpg'}, {'end': 36933.866, 'src': 'embed', 'start': 36905.118, 'weight': 4, 'content': [{'end': 36908.238, 'text': 'So the inner document and outer document both are closed.', 'start': 36905.118, 'duration': 3.12}, {'end': 36911.379, 'text': 'Hit enter and now you can see the records are inserted.', 'start': 36909.059, 'duration': 2.32}, {'end': 36922.883, 'text': 'One thing you might notice, the course and the address, these two are embedded documents and they do not have any primary key of its own.', 'start': 36911.66, 'duration': 11.223}, {'end': 36930.005, 'text': 'Instead, the course and address both are directly dependent on the student object.', 'start': 36923.143, 'duration': 6.862}, {'end': 36933.866, 'text': 'or the student database.', 'start': 36932.245, 'duration': 1.621}], 'summary': 'Records inserted with embedded documents, no separate primary keys.', 'duration': 28.748, 'max_score': 36905.118, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC836905118.jpg'}, {'end': 37041.716, 'src': 'embed', 'start': 37010.904, 'weight': 3, 'content': [{'end': 37016.99, 'text': 'If you want to override it, you can override from this value to any value, because if you do not pass any value,', 'start': 37010.904, 'duration': 6.086}, {'end': 37020.599, 'text': 'this value will be automatically provided.', 'start': 37018.897, 'duration': 1.702}, {'end': 37023.761, 'text': 'that is a typical hexadecimal value.', 'start': 37020.599, 'duration': 3.162}, {'end': 37029.966, 'text': "however, if you want to override it, you can overwrite the value of underscore id, but you can't change the key name.", 'start': 37023.761, 'duration': 6.205}, {'end': 37034.01, 'text': "let's try with some another record.", 'start': 37029.966, 'duration': 4.044}, {'end': 37034.87, 'text': 'so same record.', 'start': 37034.01, 'duration': 0.86}, {'end': 37041.716, 'text': "if i try to add, let's go.", 'start': 37034.87, 'duration': 6.846}], 'summary': 'Override hexadecimal value, cannot change key name.', 'duration': 30.812, 'max_score': 37010.904, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC837010904.jpg'}, {'end': 37843.885, 'src': 'embed', 'start': 37812.786, 'weight': 13, 'content': [{'end': 37816.309, 'text': 'That is a very, very beneficial feature when you really want to perform absurd.', 'start': 37812.786, 'duration': 3.523}, {'end': 37819.311, 'text': 'So that is the advantage of absurd.', 'start': 37816.829, 'duration': 2.482}, {'end': 37821.473, 'text': "That is what's called update plus insert.", 'start': 37819.331, 'duration': 2.142}, {'end': 37826.474, 'text': 'Very important feature that depends on the requirement.', 'start': 37822.651, 'duration': 3.823}, {'end': 37829.776, 'text': 'If you want to add, you can certainly add this.', 'start': 37826.814, 'duration': 2.962}, {'end': 37836.38, 'text': 'So the way we have tried to add this up-certed part, we can also try to perform the delete part also.', 'start': 37830.396, 'duration': 5.984}, {'end': 37843.885, 'text': "Okay So MongoDB also helps you to perform the delete part and how you'll be trying to add it now.", 'start': 37837.401, 'duration': 6.484}], 'summary': "Beneficial 'up-certed' feature in mongodb allows update and insert, with potential for delete.", 'duration': 31.099, 'max_score': 37812.786, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC837812786.jpg'}, {'end': 38288.881, 'src': 'embed', 'start': 38251.619, 'weight': 16, 'content': [{'end': 38257.316, 'text': "i'm giving the city name called what bangalore Clear.", 'start': 38251.619, 'duration': 5.697}, {'end': 38258.757, 'text': 'Let me close this.', 'start': 38257.896, 'duration': 0.861}, {'end': 38262.338, 'text': "And that's it.", 'start': 38261.818, 'duration': 0.52}, {'end': 38269.021, 'text': 'Okay So we have to start passing.', 'start': 38265.5, 'duration': 3.521}, {'end': 38271.503, 'text': 'Another curly braces here.', 'start': 38270.322, 'duration': 1.181}, {'end': 38274.624, 'text': 'Hit enter and you can see now I find two records.', 'start': 38272.123, 'duration': 2.501}, {'end': 38279.866, 'text': 'Because both the records belong to what? Bangalore.', 'start': 38275.845, 'duration': 4.021}, {'end': 38283.088, 'text': "So I'm getting this city Bangalore with me.", 'start': 38280.147, 'duration': 2.941}, {'end': 38285.36, 'text': "That's really awesome.", 'start': 38284.42, 'duration': 0.94}, {'end': 38288.881, 'text': 'Like you can also pass the city accordingly.', 'start': 38285.86, 'duration': 3.021}], 'summary': 'Two records found for bangalore city, demonstrating successful data retrieval.', 'duration': 37.262, 'max_score': 38251.619, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC838251619.jpg'}], 'start': 35507.133, 'title': 'Mongodb operations and setup', 'summary': 'Introduces mongodb and its popularity, discusses setup on windows and mac, explains collection and document creation, document insertion, performing insert, update, and upsert operations, and mongodb query operations, with a focus on ease of operation and practical examples.', 'chapters': [{'end': 35768.562, 'start': 35507.133, 'title': 'Introduction to mongodb', 'summary': 'Introduces mongodb as a popular nosql database, highlighting its flexibility, schema-free environment, and the ease of installation. it also emphasizes the increasing popularity of nosql databases in the current scenario, with a focus on mongodb.', 'duration': 261.429, 'highlights': ['MongoDB is gaining popularity in the current scenario due to the increasing trend of companies moving towards NoSQL databases. The increasing trend of companies moving towards NoSQL databases is a key point indicating the rising popularity of MongoDB.', 'MongoDB offers a schema-free environment, providing better flexibility and the ability to store data in documents representing hierarchical relationships. The schema-free environment and the ability to store data in documents representing hierarchical relationships highlight the flexibility and advantages of MongoDB.', 'Introduction to MongoDB as a document-based NoSQL database supporting diverse approaches beyond SQL. The introduction to MongoDB as a document-based NoSQL database supporting diverse approaches beyond SQL provides an overview of its functionality.', "Overview of MongoDB's approach as a non-relational database storing relationship data in documents. The overview of MongoDB's approach as a non-relational database storing relationship data in documents distinguishes it from traditional relational databases.", 'Simple installation process of MongoDB through the official website with the availability of the community download. The simple installation process of MongoDB through the official website, including the availability of the community download, provides practical guidance for users.']}, {'end': 36176.536, 'start': 35768.562, 'title': 'Setting up mongodb on windows and mac', 'summary': 'Discusses setting up mongodb on windows and mac, including selecting the appropriate download option, starting the mongodb server, creating and accessing databases, and understanding the rule for listing databases in mongodb.', 'duration': 407.974, 'highlights': ['Starting MongoDB on Windows and Mac The chapter discusses setting up MongoDB on both Windows and Mac platforms, providing options for selecting the appropriate download and explaining the differences in starting MongoDB on each platform.', 'Selecting the Appropriate Download Option It mentions the two available options for Windows - MSI and zip, recommending the use of the zip file to avoid unnecessary MongoDB services running behind the scene.', 'Starting the MongoDB Server and Client Explains the process of starting the MongoD server and the Mongo client after downloading the zip file, detailing the steps for both Windows and Mac environments.', 'Creating and Accessing Databases in MongoDB Provides a simple option for creating a new database in MongoDB using the "use" keyword and how to check the current database using the "DB" command.', 'Rule for Listing Databases in MongoDB Explains the reason why a newly created database may not be listed unless it has at least one record or collection stored inside MongoDB.']}, {'end': 36905.078, 'start': 36178.978, 'title': 'Mongodb collection and document creation', 'summary': 'Explains how to create collections and documents in mongodb, highlighting the difference between a table and a collection, the insertion of records, and the significance of using db.createcollection in providing additional capping options for collections.', 'duration': 726.1, 'highlights': ['The difference between a table and a collection is explained, where in MongoDB, a table is referred to as a collection and a row as a document, providing a clear understanding of the terminology used in MongoDB. MongoDB terminology: collection and document', "The process of creating a collection in MongoDB using 'db.createCollection' and the alternative method of creating a collection and inserting a record simultaneously using 'db.collectionName.insert' is described, emphasizing the simplicity of collection creation and data insertion in MongoDB. Collection creation methods: db.createCollection and db.collectionName.insert", "The significance of using 'db.createCollection' in providing additional capping options for collections, such as enabling capping, specifying size, and setting a maximum number of documents, is highlighted, offering a comprehensive understanding of collection capping in MongoDB. Additional capping options for collections: enabling capping, specifying size, setting maximum number of documents"]}, {'end': 37157.744, 'start': 36905.118, 'title': 'Mongodb document insertion', 'summary': 'Discusses the process of inserting documents into mongodb, emphasizing the usage of the underscore id as the primary key and the ability to override its value, as well as introducing the concept of bulk record insertion.', 'duration': 252.626, 'highlights': ['The underscore ID is a predefined property associated with every single MongoDB document, serving as the unique primary key. It can be overridden with a different value, but the key name cannot be changed.', 'The process of inserting documents involves the association of the primary key with the most outer document, while inner documents are directly dependent on the outer document.', 'In MongoDB, only the underscore ID can serve as the primary key, and it is the only property that can be overridden. Any new value will be provided by default if not explicitly specified.', 'An alternative option for inserting records in bulk is available in MongoDB, allowing for efficient handling of multiple document insertions.']}, {'end': 37812.085, 'start': 37160.199, 'title': 'Performing insert, update, and upsert operations', 'summary': 'Covers the process of inserting multiple records at once, updating specific records based on conditions, and using upsert to combine insert and update operations in mongodb, showcasing the ease of performing these operations and the ability to modify multiple records at a time.', 'duration': 651.886, 'highlights': ["Inserting Multiple Records at Once The speaker demonstrates inserting multiple records using the 'db.newemp.insert' function, emphasizing the ease and efficiency of inserting multiple records in a single shot.", "Updating Specific Records Based on Conditions The tutorial illustrates updating specific records based on conditions using the 'db.newemp.update' function, highlighting the ability to change values based on specified conditions and the behavior of MongoDB in updating records.", "Using Upsert to Combine Insert and Update Operations The concept of upsert is explained, showcasing its ability to insert a record if not found and update it if found, providing a clear understanding of how to use 'upsert true' to achieve this functionality."]}, {'end': 38391.601, 'start': 37812.786, 'title': 'Mongodb query operations', 'summary': 'Discusses the advantages and usage of mongodb query operations, including update, insert, delete, find, limit, sort, and searching based on embedded properties, with examples and quantifiable data.', 'duration': 578.815, 'highlights': ['MongoDB query operations include update, insert, and delete, offering benefits like eliminating multiple records at the same time and performing operations based on specific conditions. The advantages of MongoDB query operations such as update, insert, and delete are discussed, highlighting the ability to eliminate multiple records at the same time and perform operations based on specific conditions.', 'The find function in MongoDB allows for specifying conditions and limiting the number of records, demonstrated by examples showing the retrieval of specific records and limiting the display to a certain number. Demonstration and explanation of the find function in MongoDB, showcasing the ability to specify conditions, retrieve specific records, and limit the display to a certain number of records.', 'The sorting and searching based on embedded properties in MongoDB are explained, with examples showing sorting in ascending and descending order and searching records based on specific embedded properties. Explanation and demonstration of sorting and searching based on embedded properties in MongoDB, including examples of sorting in ascending and descending order and searching records based on specific embedded properties.']}], 'duration': 2884.468, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC835507133.jpg', 'highlights': ["MongoDB's rising popularity due to companies moving towards NoSQL databases", 'Schema-free environment and hierarchical data storage flexibility in MongoDB', 'Introduction to MongoDB as a document-based NoSQL database', 'Simple installation process of MongoDB through the official website', 'Setting up MongoDB on Windows and Mac with appropriate download options', 'Creating and accessing databases in MongoDB using simple commands', 'Clear understanding of MongoDB terminology: collection and document', 'Simplicity of collection creation and data insertion in MongoDB', 'Additional capping options for collections in MongoDB', 'Predefined underscore ID as the unique primary key in MongoDB documents', 'Efficient handling of multiple document insertions in MongoDB', 'Ease and efficiency of inserting multiple records in a single shot in MongoDB', 'Updating specific records based on conditions in MongoDB', 'Using upsert to combine insert and update operations in MongoDB', 'Benefits of MongoDB query operations such as update, insert, and delete', 'Demonstration and explanation of the find function in MongoDB', 'Sorting and searching based on embedded properties in MongoDB']}, {'end': 41225.24, 'segs': [{'end': 38781.607, 'src': 'embed', 'start': 38705.591, 'weight': 1, 'content': [{'end': 38714.492, 'text': 'it will examine all the millions, number of records to search the result, which certainly gonna be taking huge amount of time.', 'start': 38705.591, 'duration': 8.901}, {'end': 38724.514, 'text': "and that's where exactly, when you try to search the record, fine, when you have no indexing is available.", 'start': 38714.492, 'duration': 10.022}, {'end': 38726.575, 'text': 'okay, so you need to understand.', 'start': 38724.514, 'duration': 2.061}, {'end': 38741.102, 'text': 'one important thing is, by default, index is applied on your underscore id, db dot, new emp.', 'start': 38726.575, 'duration': 14.527}, {'end': 38743.864, 'text': 'um, yeah, db dot, nump dot.', 'start': 38741.102, 'duration': 2.762}, {'end': 38760.564, 'text': 'When I say db.newemp.getindex is a predefined function, it tells me like hey, by default, index is applied on underscore ID.', 'start': 38752.202, 'duration': 8.362}, {'end': 38769.587, 'text': "That's a fact because by default, index is applied on underscore ID, not on the other properties.", 'start': 38762.625, 'duration': 6.962}, {'end': 38777.283, 'text': 'So I need to identify which of the properties are required to be get indexes.', 'start': 38772.219, 'duration': 5.064}, {'end': 38781.607, 'text': 'MongoDB advantages, it is supporting multi-column indexes.', 'start': 38778.024, 'duration': 3.583}], 'summary': 'Examining millions of records without indexing takes huge time. mongodb supports multi-column indexes.', 'duration': 76.016, 'max_score': 38705.591, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC838705591.jpg'}, {'end': 38934.101, 'src': 'embed', 'start': 38906.107, 'weight': 5, 'content': [{'end': 38911.35, 'text': 'In fact, I would say when you will be using these kind of indexes into your code.', 'start': 38906.107, 'duration': 5.243}, {'end': 38916.71, 'text': 'OK So hope we all are clear and understood about this concept.', 'start': 38912.411, 'duration': 4.299}, {'end': 38920.472, 'text': "So let's go ahead and get this implemented into our system.", 'start': 38917.31, 'duration': 3.162}, {'end': 38924.535, 'text': 'Well, this is the first way of how the index can be applied.', 'start': 38921.233, 'duration': 3.302}, {'end': 38928.317, 'text': 'So you can also apply index on multiple properties.', 'start': 38925.135, 'duration': 3.182}, {'end': 38934.101, 'text': 'Clear? So that we will show you one by one how it is.', 'start': 38930.578, 'duration': 3.523}], 'summary': 'Implementing indexes to optimize code performance and demonstrate applying indexes on multiple properties.', 'duration': 27.994, 'max_score': 38906.107, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC838906107.jpg'}, {'end': 39025.372, 'src': 'embed', 'start': 38992.979, 'weight': 2, 'content': [{'end': 38998.953, 'text': 'And here in this db.createIndex, we can just I will say DB dot collection name.', 'start': 38992.979, 'duration': 5.974}, {'end': 39006.118, 'text': 'So we have a collection name is called new EMP, new EMP dot create index.', 'start': 38999.133, 'duration': 6.985}, {'end': 39012.303, 'text': 'First parameter is certainly the name of which property we are applying.', 'start': 39006.839, 'duration': 5.464}, {'end': 39014.684, 'text': 'So here is saying EMP ID.', 'start': 39012.363, 'duration': 2.321}, {'end': 39020.268, 'text': 'And in this EMP ID, we will just offer it has to be ascending or descending.', 'start': 39015.785, 'duration': 4.483}, {'end': 39022.05, 'text': 'Let me decide descending order.', 'start': 39020.328, 'duration': 1.722}, {'end': 39025.372, 'text': "So we're saying minus one.", 'start': 39023.511, 'duration': 1.861}], 'summary': "Creating an index on the 'new emp' collection for 'emp id' in descending order.", 'duration': 32.393, 'max_score': 38992.979, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC838992979.jpg'}, {'end': 39368.75, 'src': 'embed', 'start': 39338.426, 'weight': 7, 'content': [{'end': 39344.327, 'text': 'so many operations are available which we will see one by one in our aggregation behavior.', 'start': 39338.426, 'duration': 5.901}, {'end': 39348.049, 'text': 'now my first example, the one which i want to execute.', 'start': 39344.327, 'duration': 3.722}, {'end': 39350.97, 'text': 'i have a call student record with me which contains the student name.', 'start': 39348.049, 'duration': 2.921}, {'end': 39359.164, 'text': 'okay, the section and the marks and the subject person or the student disappeared.', 'start': 39350.97, 'duration': 8.194}, {'end': 39368.75, 'text': 'now here, my first requirement is we want to filter data based on a section a, because students belong to different sections.', 'start': 39359.164, 'duration': 9.586}], 'summary': 'Exploring aggregation operations, filtering data by section, in student records.', 'duration': 30.324, 'max_score': 39338.426, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC839338426.jpg'}, {'end': 40382.915, 'src': 'embed', 'start': 40350.812, 'weight': 8, 'content': [{'end': 40360.634, 'text': 'very simple approach provided by MongoDB that really create a difference of how the aggregation changes the way how you react.', 'start': 40350.812, 'duration': 9.822}, {'end': 40363.427, 'text': 'okay, everybody.', 'start': 40362.446, 'duration': 0.981}, {'end': 40375.243, 'text': "so after going through, uh, the idea of like how we can utilize the concept of aggregation, it's time to talk about like how,", 'start': 40363.427, 'duration': 11.816}, {'end': 40377.286, 'text': 'when it works with mogo db.', 'start': 40375.243, 'duration': 2.043}, {'end': 40382.915, 'text': 'mogo db is properly known for, i will say, for replication.', 'start': 40377.286, 'duration': 5.629}], 'summary': "Mongodb's aggregation changes the way you react, works with replication.", 'duration': 32.103, 'max_score': 40350.812, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC840350812.jpg'}, {'end': 40992.702, 'src': 'embed', 'start': 40961.429, 'weight': 6, 'content': [{'end': 40966.812, 'text': "since i have this mac os, i'm selecting this line, but i need to replace with this.", 'start': 40961.429, 'duration': 5.383}, {'end': 40974.597, 'text': 'you can see this username okay, and you have to give the username here.', 'start': 40966.812, 'duration': 7.785}, {'end': 40978.499, 'text': "i'll. i'll select like this i'll open my terminal.", 'start': 40974.597, 'duration': 3.902}, {'end': 40989.44, 'text': "okay, and this is i'm just closing this and opening up another terminal here, since I want to connect to the mongo shell now.", 'start': 40978.499, 'duration': 10.941}, {'end': 40992.702, 'text': 'so what I need to do here in this?', 'start': 40989.44, 'duration': 3.262}], 'summary': 'Using mac os to replace a line, enter username, and connect to mongo shell.', 'duration': 31.273, 'max_score': 40961.429, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC840961429.jpg'}, {'end': 41070.264, 'src': 'embed', 'start': 41036.098, 'weight': 0, 'content': [{'end': 41038.08, 'text': 'a particular replica set.', 'start': 41036.098, 'duration': 1.982}, {'end': 41039.381, 'text': 'you can see in a logs.', 'start': 41038.08, 'duration': 1.301}, {'end': 41044.707, 'text': 'it is telling you very clearly, okay, saying that it is a username 4.2,', 'start': 41039.381, 'duration': 5.326}, {'end': 41052.949, 'text': 'and you can see it is correcting with your shard cluster the cluster which is created, and this is where exactly i have it with me.', 'start': 41044.707, 'duration': 8.242}, {'end': 41054.949, 'text': "so i'm connecting with this environment.", 'start': 41052.949, 'duration': 2}, {'end': 41070.264, 'text': 'so primary is there if i just want to go back and say show, show collections, so i can go back and create a new collection here.', 'start': 41054.949, 'duration': 15.315}], 'summary': 'The logs indicate a username 4.2, connecting to a shard cluster, and creating a new collection.', 'duration': 34.166, 'max_score': 41036.098, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC841036098.jpg'}, {'end': 41172.896, 'src': 'embed', 'start': 41121.889, 'weight': 3, 'content': [{'end': 41125.291, 'text': 'Now you can see the records are added into my primary cluster.', 'start': 41121.889, 'duration': 3.402}, {'end': 41134.455, 'text': 'So if I just go back and go back to my project zero where we have got collections.', 'start': 41125.791, 'duration': 8.664}, {'end': 41146.12, 'text': 'Here you will be getting the SL demo employee.', 'start': 41138.476, 'duration': 7.644}, {'end': 41151.182, 'text': 'Loading the documents.', 'start': 41150.362, 'duration': 0.82}, {'end': 41163.794, 'text': 'So, it takes time to get this, but this is where exactly you see the records will be stored.', 'start': 41156.912, 'duration': 6.882}, {'end': 41169.515, 'text': "Okay So, that's where exactly it works fine for all of you.", 'start': 41165.894, 'duration': 3.621}, {'end': 41172.896, 'text': 'So, we have this record.', 'start': 41170.236, 'duration': 2.66}], 'summary': 'Records added to primary cluster, sl demo employee collection, documents loaded successfully.', 'duration': 51.007, 'max_score': 41121.889, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC841121889.jpg'}], 'start': 38393.182, 'title': 'Mongodb fundamentals', 'summary': "Covers using conditions and properties to filter data, resulting in the retrieval of two matching records, the importance of indexing in mongodb, with examples showing a decrease from examining three documents to just one after applying indexing, performing aggregation operations in mongodb, and discussing mongodb's replication feature, including the master-slave concept and the use of mongodb atlas for creating and managing clusters.", 'chapters': [{'end': 38463.049, 'start': 38393.182, 'title': 'Using conditions to filter data', 'summary': "Discusses using conditions and properties to filter data based on emp id, demonstrating the benefit of employing the 'dollar in' property to retrieve specific records, resulting in the retrieval of two matching records, 3 and 6.", 'duration': 69.867, 'highlights': ["The 'dollar in' property is used to filter data based on specified EMP IDs, resulting in the retrieval of two records matching the criteria, 3 and 6.", "Providing conditions and using the 'dollar in' property allows for precise filtering of data based on EMP ID, enhancing data retrieval efficiency."]}, {'end': 39154.502, 'start': 38463.85, 'title': 'Working with indexing in mongodb', 'summary': 'Discusses the importance of indexing in mongodb, demonstrating how indexing can significantly improve performance by reducing the number of documents examined when querying data, with examples showing a decrease from examining three documents to just one after applying indexing.', 'duration': 690.652, 'highlights': ['The chapter delves into the significance of indexing in MongoDB, emphasizing its impact on improving performance by reducing the number of documents examined during queries, as demonstrated by the decrease from examining three documents to just one after applying indexing.', 'The process of applying indexing in MongoDB is explained, showcasing the steps to create an index on a specific property and the resulting increase in the number of indexes from one to two, and the subsequent decrease in the number of documents examined during queries.', 'The possibility of applying indexes on multiple properties in MongoDB is highlighted, demonstrating the application of an index on a different property and the resulting increase in the total number of indexes from two to three, further emphasizing the potential performance improvements through indexing.', 'The process of dropping an index in MongoDB is outlined, emphasizing the requirement to specify the index name and demonstrating the successful removal of an index by providing the appropriate index name, resulting in a decrease in the total number of indexes from three to two.']}, {'end': 40350.812, 'start': 39154.642, 'title': 'Mongodb aggregation operations', 'summary': 'Explains how to perform aggregation operations in mongodb, such as filtering data, using logical operators, and applying projection and grouping, with detailed examples and functionalities.', 'duration': 1196.17, 'highlights': ["The chapter explains how to filter data based on a specific field 'section a' using the $match functionality in MongoDB aggregation. Filtering data based on 'section a'.", "It demonstrates the use of $match to filter data based on multiple conditions, such as 'section a' and marks greater than 80, using the AND operator. Filtering data based on 'section a' and marks greater than 80. Use of logical operators in filtering.", 'The implementation of $project to selectively display specific fields from the collection, such as student name, section, and marks. Selective projection of specific fields from the collection.', 'Demonstration of using $group to calculate total marks for each section and obtaining the average marks using the $sum and $avg functionalities. Calculation of total marks for each section. Calculation of average marks using $sum and $avg functionalities.']}, {'end': 40710.046, 'start': 40350.812, 'title': 'Mongodb replication and mongodb atlas', 'summary': "Discusses mongodb's replication feature, including the master-slave concept and the use of mongodb atlas for creating and managing clusters, highlighting the automatic high availability and the free cloud-based mongodb support.", 'duration': 359.234, 'highlights': ["The concept of MongoDB's replication involves one master and multiple slaves, providing automatic data replication and high availability in case of node failure.", 'MongoDB Atlas offers a free cloud-based MongoDB support with a limited amount of space, suitable for testing purposes, and allows for easy creation and management of clusters with automatic high availability.', 'Creating a new cluster in MongoDB Atlas may take a few minutes and is limited in the free tier to a certain number of nodes, with the primary node responsible for data insertion and the secondary nodes for data storage and retrieval.']}, {'end': 41225.24, 'start': 40711.147, 'title': 'Setting up initial settings for creating a cluster', 'summary': 'Covers the process of setting up initial settings for creating a cluster, including network access, database access, creating a new user, and creating a new database and collection, followed by connecting to mongodb and inserting records into the primary cluster.', 'duration': 514.093, 'highlights': ['Setting up initial settings for creating a cluster The process of setting up initial settings for creating a cluster, including network access, database access, creating a new user, and creating a new database and collection.', 'Connecting to MongoDB and inserting records into the primary cluster The steps involved in connecting to MongoDB, inserting records into the primary cluster, and verifying the insertion of records into the collection.', 'Adding network access and whitelisting IP addresses The requirement to add network access and whitelist specific IP addresses to allow access to the cluster, with the option to whitelist all IP addresses.', 'Creating a new user for database access The process of creating a new user for database access, including specifying the username and password for the new user.', 'Creating a new database and collection The steps involved in creating a new database and collection, along with the process of connecting to the newly created database and collection.']}], 'duration': 2832.058, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/2RQUDtI2VC8/pics/2RQUDtI2VC838393182.jpg', 'highlights': ["The 'dollar in' property is used to filter data based on specified EMP IDs, resulting in the retrieval of two records matching the criteria, 3 and 6.", 'The process of applying indexing in MongoDB is explained, showcasing the steps to create an index on a specific property and the resulting increase in the number of indexes from one to two, and the subsequent decrease in the number of documents examined during queries.', 'The possibility of applying indexes on multiple properties in MongoDB is highlighted, demonstrating the application of an index on a different property and the resulting increase in the total number of indexes from two to three, further emphasizing the potential performance improvements through indexing.', "The concept of MongoDB's replication involves one master and multiple slaves, providing automatic data replication and high availability in case of node failure.", 'Creating a new cluster in MongoDB Atlas may take a few minutes and is limited in the free tier to a certain number of nodes, with the primary node responsible for data insertion and the secondary nodes for data storage and retrieval.', 'The implementation of $project to selectively display specific fields from the collection, such as student name, section, and marks. Selective projection of specific fields from the collection.', 'Demonstration of using $group to calculate total marks for each section and obtaining the average marks using the $sum and $avg functionalities. Calculation of total marks for each section. Calculation of average marks using $sum and $avg functionalities.', 'Setting up initial settings for creating a cluster The process of setting up initial settings for creating a cluster, including network access, database access, creating a new user, and creating a new database and collection.', 'Connecting to MongoDB and inserting records into the primary cluster The steps involved in connecting to MongoDB, inserting records into the primary cluster, and verifying the insertion of records into the collection.', 'Adding network access and whitelisting IP addresses The requirement to add network access and whitelist specific IP addresses to allow access to the cluster, with the option to whitelist all IP addresses.', 'Creating a new user for database access The process of creating a new user for database access, including specifying the username and password for the new user.', 'Creating a new database and collection The steps involved in creating a new database and collection, along with the process of connecting to the newly created database and collection.']}], 'highlights': ['This full stack java developer course 2023 covers a range of topics including git essentials, java programming, maven build tool, jenkins in devops, web development fundamentals, css techniques, angular framework, database commands, mongodb operations, and setup, offering comprehensive insights and practical guidance for learners.', 'Java is platform independent, running on any machine due to compilation in bytecode, and features robustness, security, multi-threading, and portability while providing higher performance than other languages.', "The tutorial covers the detailed steps of cloning a repository using the 'git clone' command, establishing an exact replica of the server repository, and verifying the successful authentication of SSH keys.", 'The git reset command with the --soft option allows going back to a specific snapshot in history while retaining changes without commit messages, demonstrated by modifying commit histories, getting rid of specific commits, and creating a new commit with rewritten history.', "Java's platform independence allows for the execution of programs on different platforms after compilation, contributing to its versatility and wide application usage.", 'Abstraction involves hiding details of an object from the outside world.', 'The chapter provides an overview of HashMap, demonstrating its initialization, adding elements, retrieving size, checking for key presence, and iterating over keys and entries, with examples and explanations, covering key-value arrangements and utility methods, such as put, size, contains key, get, key set, and entry set.', 'Maven simplifies day-to-day work of Java developers and helps automate most compilation tasks', 'Jenkins is a popular continuous integration server with wide adoption, released under MIT license, and supported by a vast developer community.', 'Angular is an open-source JavaScript framework maintained by Google, designed specifically for single-page applications and providing advantages in terms of structure, scalability, and maintainability.', 'The chapter covered various database commands including update, delete, distinct, minimum, maximum, count, average, sum, where, group by, and having, with examples and quantifiable results.', "MongoDB's rising popularity due to companies moving towards NoSQL databases", "The 'dollar in' property is used to filter data based on specified EMP IDs, resulting in the retrieval of two records matching the criteria, 3 and 6.", 'The process of applying indexing in MongoDB is explained, showcasing the steps to create an index on a specific property and the resulting increase in the number of indexes from one to two, and the subsequent decrease in the number of documents examined during queries.']}