title
Spring Boot Project for Beginners

description
Spring Boot Tutorial for Beginners : https://youtu.be/35EQXmHKZYs Industry Ready Java Spring Developer - Live Course : https://bit.ly/jDevIndustry For More Queries WhatsApp or Call on : +919008963671 github link : https://github.com/navinreddy20/quiz-app-spring website : https://courses.telusko.com/ Instagram : https://www.instagram.com/navinreddyofficial/ Linkedin : https://in.linkedin.com/in/navinreddy20 TELUSKO Android App : https://bit.ly/TeluskoApp Discord : https://discord.gg/D8hWe9BqfF More Learning : Java :- https://bit.ly/3x6rr0N Python :- https://bit.ly/3GRc7JX Django :- https://bit.ly/3MmoJK6 JavaScript :- https://bit.ly/3tiAlHo Node JS :- https://bit.ly/3GT4liq Rest Api :-https://bit.ly/3MjhZwt Servlet :- https://bit.ly/3Q7eA7k Spring Framework :- https://bit.ly/3xi7buh Design Patterns in Java :- https://bit.ly/3MocXiq Docker :- https://bit.ly/3xjWzLA Blockchain Tutorial :- https://bit.ly/3NSbOkc Corda Tutorial:- https://bit.ly/3thbUKa Hyperledger Fabric :- https://bit.ly/38RZCRB NoSQL Tutorial :- https://bit.ly/3aJpRuc Mysql Tutorial :- https://bit.ly/3thpr4L Data Structures using Java :- https://bit.ly/3MuJa7S Git Tutorial :- https://bit.ly/3NXyCPu Donation: PayPal Id : navinreddy20 https://www.instamojo.com/@NavinReddy

detail
{'title': 'Spring Boot Project for Beginners', 'heatmap': [{'end': 1708.848, 'start': 1585.225, 'weight': 1}, {'end': 4575.33, 'start': 4449.279, 'weight': 0.81}], 'summary': 'Learn to build a web application using spring boot and postgres, with services for quiz and question submission, while also covering the implementation of a service layer, orm design, database operations, and status codes in java spring, and transitioning toward microservices for quiz management.', 'chapters': [{'end': 116.565, 'segs': [{'end': 26.687, 'src': 'embed', 'start': 0.329, 'weight': 0, 'content': [{'end': 6.211, 'text': 'Welcome back, Aliens! My name is Devin Reddy and in this video, we are going to build a project using Spring Boot.', 'start': 0.329, 'duration': 5.882}, {'end': 8.612, 'text': 'Now, of course, multiple tools we are going to use.', 'start': 6.591, 'duration': 2.021}, {'end': 10.913, 'text': 'We are going to use Spring Boot to build the project.', 'start': 8.632, 'duration': 2.281}, {'end': 15.735, 'text': "We'll be using IDE and we are going to use Postgres as our database.", 'start': 10.953, 'duration': 4.782}, {'end': 18.478, 'text': 'and also when we are building this application.', 'start': 16.135, 'duration': 2.343}, {'end': 26.687, 'text': "this is a web application and we don't have a frontend for it because we are trying to build an application for the backend and for frontend.", 'start': 18.478, 'duration': 8.209}], 'summary': 'Devin reddy will build a spring boot project using postgres as the database, with no frontend for the web application.', 'duration': 26.358, 'max_score': 0.329, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk329.jpg'}, {'end': 61.901, 'src': 'embed', 'start': 37.039, 'weight': 1, 'content': [{'end': 44.365, 'text': "of course, in the video you'll understand what we are going to build, but in this particular quiz, this is what you will see in the output right?", 'start': 37.039, 'duration': 7.326}, {'end': 46.667, 'text': "So we'll have a quiz service.", 'start': 44.906, 'duration': 1.761}, {'end': 51.351, 'text': "we'll be having a question service and you can ask for questions.", 'start': 46.667, 'duration': 4.684}, {'end': 57.997, 'text': "you can ask for a quiz and, as a user, when they try to submit a quiz, let's say you get 10 questions.", 'start': 51.351, 'duration': 6.646}, {'end': 61.901, 'text': 'when they submit the questions, what you will see is the score as well.', 'start': 57.997, 'duration': 3.904}], 'summary': 'Building a quiz service with question submission and scoring.', 'duration': 24.862, 'max_score': 37.039, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk37039.jpg'}, {'end': 116.565, 'src': 'embed', 'start': 94.093, 'weight': 2, 'content': [{'end': 102.439, 'text': "So once the video starts, I will also talk about what is quit service and then we'll start building the entire project step by step.", 'start': 94.093, 'duration': 8.346}, {'end': 105.461, 'text': "And at any given point, if you face an issue, don't worry.", 'start': 102.539, 'duration': 2.922}, {'end': 108.002, 'text': 'In the description, you will find a Discord link.', 'start': 106.061, 'duration': 1.941}, {'end': 116.565, 'text': 'Now, the Lipscope family is there on Discord and try to post your question there, and people who are there will also try to answer.', 'start': 108.542, 'duration': 8.023}], 'summary': 'Video tutorial on building a project, support available on discord.', 'duration': 22.472, 'max_score': 94.093, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk94093.jpg'}], 'start': 0.329, 'title': 'Building spring boot project', 'summary': 'Covers building a web application using spring boot and postgres, with services such as quiz and question service, enabling quiz submission and scoring. it also highlights support through a discord community.', 'chapters': [{'end': 116.565, 'start': 0.329, 'title': 'Building spring boot project', 'summary': 'Covers building a web application using spring boot, postgres database, and various services like quiz service and question service, allowing users to submit and score quizzes. it also emphasizes the availability of support through a discord community.', 'duration': 116.236, 'highlights': ['The project involves building a web application using Spring Boot and Postgres. The chapter emphasizes the use of Spring Boot and Postgres for building the web application.', 'The project includes services such as quiz service and question service, enabling users to submit quizzes and view scores. The chapter outlines the functionality of services like quiz service and question service, allowing users to interact with quizzes and view scores.', 'The availability of support through a Discord community is highlighted, encouraging users to post questions and seek assistance. The chapter emphasizes the availability of support through a Discord community, encouraging users to seek assistance and interact with the Lipscope family.']}], 'duration': 116.236, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk329.jpg', 'highlights': ['The project involves building a web application using Spring Boot and Postgres.', 'The project includes services such as quiz service and question service, enabling users to submit quizzes and view scores.', 'The availability of support through a Discord community is highlighted, encouraging users to post questions and seek assistance.']}, {'end': 737.69, 'segs': [{'end': 183.131, 'src': 'embed', 'start': 157.905, 'weight': 0, 'content': [{'end': 163.986, 'text': "And then we'll also have a Java application, a simple Spring Boot application to do that.", 'start': 157.905, 'duration': 6.081}, {'end': 170.927, 'text': "And we'll start with the questions, okay? So we'll start with the question part, and then we'll see how do you create a quiz from the questions.", 'start': 164.666, 'duration': 6.261}, {'end': 178.385, 'text': 'And when you say questions, you need to create questions, you need to update questions, you need to delete questions, you need to read questions.', 'start': 171.408, 'duration': 6.977}, {'end': 183.131, 'text': "So basically you need to do grad operations with question and that's what we're going to start here.", 'start': 178.405, 'duration': 4.726}], 'summary': 'Creating a java spring boot app to manage and perform crud operations on questions for a quiz.', 'duration': 25.226, 'max_score': 157.905, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk157905.jpg'}, {'end': 288.234, 'src': 'embed', 'start': 261.921, 'weight': 1, 'content': [{'end': 266.202, 'text': 'jar and then the version of java is 17, which i have in my machine.', 'start': 261.921, 'duration': 4.281}, {'end': 267.663, 'text': 'now what kind of dependencies we need?', 'start': 266.202, 'duration': 1.461}, {'end': 270.243, 'text': "first of all, we need spring web, because that's very important.", 'start': 267.663, 'duration': 2.58}, {'end': 272.384, 'text': 'we need to create a web application.', 'start': 270.243, 'duration': 2.141}, {'end': 275.565, 'text': 'we also need to connect with database and which database you are working with.', 'start': 272.384, 'duration': 3.181}, {'end': 276.705, 'text': 'we are working with postgres.', 'start': 275.565, 'duration': 1.14}, {'end': 288.234, 'text': "so i will add that also i want to have a post data jpa, because that's how i'm going to connect with my spring application and database.", 'start': 276.705, 'duration': 11.529}], 'summary': 'Using java 17, the project requires spring web, postgres database, and post data jpa to create a web application.', 'duration': 26.313, 'max_score': 261.921, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk261921.jpg'}, {'end': 370.879, 'src': 'embed', 'start': 339.914, 'weight': 2, 'content': [{'end': 341.175, 'text': "so i'm going to use postgres.", 'start': 339.914, 'duration': 1.261}, {'end': 342.476, 'text': 'so let me open postgres here.', 'start': 341.175, 'duration': 1.301}, {'end': 348.563, 'text': 'oh, in fact we have to open pgadmin and if i open pgadmin, it will take some time.', 'start': 343.439, 'duration': 5.124}, {'end': 354.967, 'text': 'so, asking for the password for my machine, it is zero, zero, zero, zero, because this is my testing machine or for recordings.', 'start': 348.563, 'duration': 6.404}, {'end': 362.032, 'text': 'so i will just open this again, asking for password, and you can see we got our pgadmin ready here.', 'start': 354.967, 'duration': 7.065}, {'end': 368.497, 'text': 'and if i expand this, if i expand my databases, if i expand a quotient db, this is basically my database, which is i have there.', 'start': 362.032, 'duration': 6.465}, {'end': 370.879, 'text': 'of course, we should have gone for a good name, but this works.', 'start': 368.497, 'duration': 2.382}], 'summary': 'Using pgadmin to access postgres database with password 0000.', 'duration': 30.965, 'max_score': 339.914, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk339914.jpg'}, {'end': 404.262, 'src': 'embed', 'start': 378.641, 'weight': 3, 'content': [{'end': 383.263, 'text': "because that's how we want to work with and in this question table I already have data.", 'start': 378.641, 'duration': 4.622}, {'end': 386.664, 'text': 'so if I want to show you that, I will just say view all rows.', 'start': 383.263, 'duration': 3.401}, {'end': 390.488, 'text': 'You can see we have all this data here.', 'start': 387.805, 'duration': 2.683}, {'end': 395.613, 'text': 'Now, this is what I want to fetch from the web application, basically.', 'start': 391.049, 'duration': 4.564}, {'end': 398.496, 'text': 'So you can see we have all these rows.', 'start': 396.134, 'duration': 2.362}, {'end': 399.978, 'text': 'In fact, we have 16 rows.', 'start': 398.717, 'duration': 1.261}, {'end': 402.741, 'text': 'There are a few questions which are from Java.', 'start': 400.078, 'duration': 2.663}, {'end': 404.262, 'text': 'There are a few questions which are from Python.', 'start': 402.761, 'duration': 1.501}], 'summary': 'The table contains 16 rows with questions from java and python.', 'duration': 25.621, 'max_score': 378.641, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk378641.jpg'}, {'end': 718.274, 'src': 'embed', 'start': 690.246, 'weight': 4, 'content': [{'end': 695.128, 'text': 'now the port number for postgres is five, four, three, two, and then you have to mention database name.', 'start': 690.246, 'duration': 4.882}, {'end': 695.728, 'text': 'database name.', 'start': 695.128, 'duration': 0.6}, {'end': 700.35, 'text': 'for us is question db right, uh, then you have to set the username password for postgres.', 'start': 695.728, 'duration': 4.622}, {'end': 706.582, 'text': 'So I will say spring data source username is postgres and password as well.', 'start': 701.297, 'duration': 5.285}, {'end': 710.346, 'text': "So we'll set the password as 0000 that's for my machine.", 'start': 706.602, 'duration': 3.744}, {'end': 714.53, 'text': 'And then you have to basically also enable DDL auto.', 'start': 710.906, 'duration': 3.624}, {'end': 718.274, 'text': "So DDL auto if you want to create the table if you don't have it.", 'start': 715.191, 'duration': 3.083}], 'summary': "Configuring postgresql: port number 5432, database name 'question db', username postgres, password 0000, and enabling ddl auto.", 'duration': 28.028, 'max_score': 690.246, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk690246.jpg'}], 'start': 116.565, 'title': 'Building a quiz application with spring boot', 'summary': "Covers building a quiz application using spring boot and postgres, creating a maven project with necessary dependencies, setting up a database and rest controller, with 16 rows in the question table and the database named 'question db'.", 'chapters': [{'end': 362.032, 'start': 116.565, 'title': 'Building a quiz application with spring boot', 'summary': 'Covers building a quiz application using spring boot, postgres as the database, and creating a maven project with necessary dependencies and tools for the project.', 'duration': 245.467, 'highlights': ['The chapter covers building a quiz application using Spring Boot The speaker outlines the plan to build a quiz application using Spring Boot.', 'Postgres will be used as the database for this particular session The speaker mentions using Postgres as the database for the quiz application.', 'Creating a Maven project with necessary dependencies and tools for the project The speaker explains the process of creating a Maven project with essential dependencies and tools required for the quiz application.']}, {'end': 737.69, 'start': 362.032, 'title': 'Setting up database and creating rest controller', 'summary': "Discusses setting up a database, creating a rest controller to handle requests for all questions, and configuring the project with postgresql, and the application is running on localhost:8080. there are 16 rows in the question table, and the database is named 'question db'.", 'duration': 375.658, 'highlights': ['The chapter discusses setting up a database, creating a rest controller to handle requests for all questions, and configuring the project with PostgreSQL. It mentions that the application is running on localhost:8080. (Relevance: 5)', 'There are 16 rows in the question table, which contains data for questions related to Java and Python. The table has columns such as ID, category, difficulty level, options, question title, and right answer. (Relevance: 4)', "The database is named 'question db', and the application is configured to use PostgreSQL with the URL 'jdbc:postgresql://localhost:5432/question_db' and the username 'postgres' and password '0000'. (Relevance: 3)"]}], 'duration': 621.125, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk116565.jpg', 'highlights': ['Covers building a quiz application using Spring Boot', 'Creating a Maven project with necessary dependencies and tools', 'Postgres will be used as the database for this particular session', 'There are 16 rows in the question table, which contains data for questions related to Java and Python', 'The chapter discusses setting up a database, creating a rest controller to handle requests for all questions, and configuring the project with PostgreSQL', "The database is named 'question db', and the application is configured to use PostgreSQL with the URL 'jdbc:postgresql://localhost:5432/question_db' and the username 'postgres' and password '0000'"]}, {'end': 1662.401, 'segs': [{'end': 895.633, 'src': 'embed', 'start': 865.43, 'weight': 0, 'content': [{'end': 872.013, 'text': 'now, in service layer, you mention all your business logic, what you need to do when you get these values, what option you want to perform.', 'start': 865.43, 'duration': 6.583}, {'end': 873.454, 'text': "So that's the job of service layer.", 'start': 872.233, 'duration': 1.221}, {'end': 878.038, 'text': 'Now service layer can do any business logic, it can do any processing, any type of calculation you want.', 'start': 873.594, 'duration': 4.444}, {'end': 884.204, 'text': 'But what if you want to fetch data from database? Now in that case, you have one more layer, which is your DAO layer.', 'start': 878.459, 'duration': 5.745}, {'end': 888.728, 'text': 'Now this DAO layer is responsible to actually connect with database and fetch data.', 'start': 884.625, 'duration': 4.103}, {'end': 895.633, 'text': "Okay, now let's say on the service layer, you want to get data from database, of course you get data from the DAO layer.", 'start': 889.429, 'duration': 6.204}], 'summary': 'Service layer handles business logic, dao layer fetches data from database.', 'duration': 30.203, 'max_score': 865.43, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk865430.jpg'}, {'end': 1178.895, 'src': 'embed', 'start': 1152.519, 'weight': 3, 'content': [{'end': 1156.701, 'text': 'it is a good idea to create a class, which will be your question class.', 'start': 1152.519, 'duration': 4.182}, {'end': 1162.424, 'text': 'Now this is your model class, okay? And this will have those variables.', 'start': 1156.761, 'duration': 5.663}, {'end': 1166.886, 'text': 'So you can think about a class design matching with the table design.', 'start': 1162.484, 'duration': 4.402}, {'end': 1171.249, 'text': 'So class name, table name, the class fields are your table columns.', 'start': 1166.966, 'duration': 4.283}, {'end': 1174.511, 'text': 'right and also the number of objects you have.', 'start': 1171.829, 'duration': 2.682}, {'end': 1175.892, 'text': 'for a class.', 'start': 1174.511, 'duration': 1.381}, {'end': 1178.895, 'text': 'each object can represent a row.', 'start': 1175.892, 'duration': 3.003}], 'summary': 'Create a question class with variables matching table columns. each object represents a row.', 'duration': 26.376, 'max_score': 1152.519, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk1152519.jpg'}, {'end': 1322.197, 'src': 'embed', 'start': 1291.123, 'weight': 5, 'content': [{'end': 1296.366, 'text': "you know, i created this table with the name and then now I'm trying to match it.", 'start': 1291.123, 'duration': 5.243}, {'end': 1298.407, 'text': 'Okay, so ignore that part.', 'start': 1296.666, 'duration': 1.741}, {'end': 1302.049, 'text': 'So the good way is to have that capital L so that you will get underscore the table.', 'start': 1298.527, 'duration': 3.522}, {'end': 1311.593, 'text': 'Okay, and here we need to make sure that this ID is a primary key, right? The way you do that is by mentioning the ID as the annotation.', 'start': 1302.189, 'duration': 9.404}, {'end': 1314.894, 'text': 'And also, this ID will be auto-generated.', 'start': 1312.113, 'duration': 2.781}, {'end': 1322.197, 'text': 'So what you can do is you can say generated value and you can specify this strategy, which is generated type sequence.', 'start': 1315.094, 'duration': 7.103}], 'summary': 'Table created with primary key id as an auto-generated sequence.', 'duration': 31.074, 'max_score': 1291.123, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk1291123.jpg'}, {'end': 1366.095, 'src': 'embed', 'start': 1339.322, 'weight': 4, 'content': [{'end': 1344.904, 'text': 'So if you want to do that mapping, we have to use something called an entity, which is annotation.', 'start': 1339.322, 'duration': 5.582}, {'end': 1350.266, 'text': "If you have a different table name, so example, here the table name is question itself, so there's no problem.", 'start': 1345.664, 'duration': 4.602}, {'end': 1353.647, 'text': 'But if you have something else, then you have to use at table as well.', 'start': 1350.306, 'duration': 3.341}, {'end': 1356.648, 'text': "And since I'm using Lombok here, I don't want to.", 'start': 1353.807, 'duration': 2.841}, {'end': 1363.131, 'text': "normally, if you don't use Lombok for every variable here, we need to create two methods getter and setters, two string method also.", 'start': 1356.648, 'duration': 6.483}, {'end': 1366.095, 'text': 'So imagine how lengthy the code becomes.', 'start': 1364.152, 'duration': 1.943}], 'summary': 'Using lombok reduces code length and avoids manual creation of getter, setter, and tostring methods.', 'duration': 26.773, 'max_score': 1339.322, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk1339322.jpg'}, {'end': 1596.934, 'src': 'embed', 'start': 1534.923, 'weight': 6, 'content': [{'end': 1539.124, 'text': 'okay, even if i create the method, we have to fetch data from database.', 'start': 1534.923, 'duration': 4.201}, {'end': 1544.165, 'text': 'now, if you know, JDBC, basically we have to write those beautiful seven steps, Right?', 'start': 1539.124, 'duration': 5.041}, {'end': 1546.806, 'text': 'It looks like seven steps, but the code is very lengthy.', 'start': 1544.765, 'duration': 2.041}, {'end': 1548.266, 'text': 'You have to file the SQL query.', 'start': 1546.846, 'duration': 1.42}, {'end': 1550.127, 'text': 'You will get a lot of data.', 'start': 1548.686, 'duration': 1.441}, {'end': 1554.048, 'text': 'You have to iterate between that data and convert that into a list of questions.', 'start': 1550.167, 'duration': 3.881}, {'end': 1556.869, 'text': "Oh, a lot of work, right? Don't worry.", 'start': 1554.588, 'duration': 2.281}, {'end': 1557.689, 'text': 'We got you covered.', 'start': 1557.029, 'duration': 0.66}, {'end': 1558.529, 'text': "That's what Spring says.", 'start': 1557.729, 'duration': 0.8}, {'end': 1561.45, 'text': 'Spring says you know one of the packages we have introduced here.', 'start': 1558.589, 'duration': 2.861}, {'end': 1566.673, 'text': 'If you go back to pom.xml, one of the packages we got here is data.jpa.', 'start': 1562.23, 'duration': 4.443}, {'end': 1572.437, 'text': 'right?. Now, with the help of data.jpa, what you can do is, instead of creating a class, we can create an interface.', 'start': 1566.673, 'duration': 5.764}, {'end': 1577.96, 'text': 'And then we just need to extend an interface called JPA repository.', 'start': 1572.797, 'duration': 5.163}, {'end': 1578.461, 'text': "That's it.", 'start': 1578.16, 'duration': 0.301}, {'end': 1584.565, 'text': 'All the things like fetching data from database, saving data will be handled by data.jpa.', 'start': 1578.861, 'duration': 5.704}, {'end': 1591.25, 'text': 'I know that sounds like a magic, right? But then, okay, so before we do that, so JPA repository asks you for two things.', 'start': 1585.225, 'duration': 6.025}, {'end': 1596.934, 'text': "What type of table you're working with, and what is the type of primary key, which is integer here.", 'start': 1591.77, 'duration': 5.164}], 'summary': "Using spring's data.jpa, we can simplify database interactions by creating an interface that extends jpa repository, handling data operations with minimal code.", 'duration': 62.011, 'max_score': 1534.923, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk1534923.jpg'}, {'end': 1644.434, 'src': 'embed', 'start': 1615.227, 'weight': 7, 'content': [{'end': 1617.368, 'text': 'If this method is not there, there might be some other methods.', 'start': 1615.227, 'duration': 2.141}, {'end': 1618.148, 'text': "Let's try it out.", 'start': 1617.448, 'duration': 0.7}, {'end': 1619.269, 'text': 'I will say dot.', 'start': 1618.669, 'duration': 0.6}, {'end': 1623.131, 'text': 'And can you see that? If I scroll down, there are so many methods here.', 'start': 1620.049, 'duration': 3.082}, {'end': 1625.972, 'text': 'One of the methods is findAll.', 'start': 1624.151, 'duration': 1.821}, {'end': 1629.613, 'text': 'It will give you the list of questions.', 'start': 1627.612, 'duration': 2.001}, {'end': 1636.336, 'text': 'Example, if I jump here, you can see findAll gives you a list.', 'start': 1630.234, 'duration': 6.102}, {'end': 1637.837, 'text': 'We just have to use it.', 'start': 1637.017, 'duration': 0.82}, {'end': 1641.533, 'text': 'so it will return the list of questions.', 'start': 1638.812, 'duration': 2.721}, {'end': 1643.074, 'text': 'our job is done.', 'start': 1641.533, 'duration': 1.541}, {'end': 1644.434, 'text': 'are you still not trusting me?', 'start': 1643.074, 'duration': 1.36}], 'summary': 'Demonstrating the use of the findall method to retrieve a list of questions, simplifying the task at hand.', 'duration': 29.207, 'max_score': 1615.227, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk1615227.jpg'}], 'start': 737.69, 'title': 'Spring service layer and orm design', 'summary': 'Covers implementing a service layer in a spring application with a focus on layers - controller, service, and dao, as well as designing a question class for orm, utilizing lombok for optimization, and implementing dao and jpa repository for efficient data retrieval.', 'chapters': [{'end': 1090.655, 'start': 737.69, 'title': 'Implementing service layer in spring', 'summary': 'Discusses the implementation of a service layer in a spring application, highlighting the use of different layers - controller, service, and dao - for processing and fetching data from a database.', 'duration': 352.965, 'highlights': ['The chapter discusses the implementation of a service layer in a Spring application The transcript explains the process of implementing a service layer in a Spring application, which is crucial for separating the business logic from the presentation layer.', 'The use of different layers - controller, service, and DAO - for processing and fetching data from a database It explains the division of responsibilities among the controller, service, and DAO layers for processing user requests, implementing business logic, and fetching data from the database.', 'The purpose of the service layer in processing and implementing business logic It highlights the role of the service layer in processing and implementing business logic, such as performing calculations and processing user requests.']}, {'end': 1401.816, 'start': 1091.395, 'title': 'Designing question class for orm', 'summary': 'Discusses the process of designing a question class for mapping with the database table, including creating entity variables and annotations, adhering to naming conventions, and utilizing lombok for code optimization.', 'duration': 310.421, 'highlights': ['Creating a class to represent the question entity with variables matching table columns and ORM object mapping, including ID, question title, options, and difficulty level. The discussion emphasizes creating a class to represent the question entity with variables matching table columns and ORM object mapping, including ID, question title, options, and difficulty level.', 'Utilizing annotations such as @Entity for mapping the table with the class and @Data from Lombok to reduce the length of code by automatically generating getter, setter, and toString methods. The usage of annotations such as @Entity for mapping the table with the class and @Data from Lombok to reduce the length of code by automatically generating getter, setter, and toString methods is emphasized.', 'Adhering to naming conventions by matching variable names with column names and using annotations like @GeneratedValue for specifying the auto-generation of ID and @Table if using a different table name. The transcript highlights the importance of adhering to naming conventions by matching variable names with column names and using annotations like @GeneratedValue for specifying the auto-generation of ID and @Table if using a different table name.']}, {'end': 1662.401, 'start': 1401.816, 'title': 'Implementing dao and jpa repository', 'summary': 'Discusses the implementation of dao and jpa repository in a spring application, covering the creation of questiondao class, usage of jpa repository interface, and the simplification of data retrieval using findall method, thereby making the process more efficient and reducing the need for manual data processing.', 'duration': 260.585, 'highlights': ['The implementation of QuestionDAO class is discussed, emphasizing the need for separate packages and the declaration of the class as a repository, highlighting the importance of organizing code and specifying repository functions. (Relevance: 5)', 'The process of implementing JPA repository is explained, detailing the creation of an interface that extends JPA repository and the simplification it offers in handling data retrieval and storage, reducing the need for manual coding and making the process more efficient. (Relevance: 4)', 'The usage of findAll method from JPA repository interface is highlighted, showcasing its capability to retrieve a list of questions, simplifying the data retrieval process and making it more streamlined. (Relevance: 3)', 'The challenges of manual data processing using JDBC are discussed, emphasizing the lengthy process of writing SQL queries, iterating through data, and converting it into a list of questions, highlighting the inefficiency and complexity of manual data processing. (Relevance: 2)', 'The benefits of using data.jpa package in Spring application are highlighted, emphasizing its capability to handle data retrieval and storage, simplifying the process and reducing the need for manual coding, thereby improving efficiency. (Relevance: 1)']}], 'duration': 924.711, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk737690.jpg', 'highlights': ['The implementation of a service layer in a Spring application is crucial for separating business logic from the presentation layer.', 'The division of responsibilities among the controller, service, and DAO layers for processing user requests and fetching data from the database is explained.', 'The role of the service layer in processing and implementing business logic, such as performing calculations and processing user requests, is highlighted.', 'Creating a class to represent the question entity with variables matching table columns and ORM object mapping, including ID, question title, options, and difficulty level is emphasized.', 'Utilizing annotations such as @Entity for mapping the table with the class and @Data from Lombok to reduce the length of code by automatically generating getter, setter, and toString methods is emphasized.', 'Adhering to naming conventions by matching variable names with column names and using annotations like @GeneratedValue for specifying the auto-generation of ID and @Table if using a different table name is highlighted.', 'The process of implementing JPA repository is explained, detailing the creation of an interface that extends JPA repository and the simplification it offers in handling data retrieval and storage, reducing the need for manual coding and making the process more efficient.', 'The usage of findAll method from JPA repository interface is highlighted, showcasing its capability to retrieve a list of questions, simplifying the data retrieval process and making it more streamlined.', 'The challenges of manual data processing using JDBC are discussed, emphasizing the inefficiency and complexity of manual data processing.', 'The benefits of using data.jpa package in Spring application are highlighted, emphasizing its capability to handle data retrieval and storage, simplifying the process and reducing the need for manual coding, thereby improving efficiency.']}, {'end': 2669.672, 'segs': [{'end': 1684.87, 'src': 'embed', 'start': 1662.661, 'weight': 0, 'content': [{'end': 1670.805, 'text': 'The thing is, if you are getting this type of output on your screen and I can get this is because I have installed one of the plugin.', 'start': 1662.661, 'duration': 8.144}, {'end': 1673.506, 'text': 'It is called a JSON formatter.', 'start': 1671.045, 'duration': 2.461}, {'end': 1677.368, 'text': 'Okay, so because of this JSON formatter, it gives you this beautiful JSON look.', 'start': 1673.726, 'duration': 3.642}, {'end': 1679.666, 'text': 'And you can see we got all the questions.', 'start': 1678.305, 'duration': 1.361}, {'end': 1680.647, 'text': "Doesn't matter the topic.", 'start': 1679.686, 'duration': 0.961}, {'end': 1684.87, 'text': 'Oh, did I just forgot this topic name? Yeah, we forgot the category.', 'start': 1680.927, 'duration': 3.943}], 'summary': 'The json formatter plugin beautifies the output and displays all questions despite the topic, but the category was forgotten.', 'duration': 22.209, 'max_score': 1662.661, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk1662661.jpg'}, {'end': 1738.632, 'src': 'embed', 'start': 1708.848, 'weight': 1, 'content': [{'end': 1711.089, 'text': 'and we have done with the fetching part.', 'start': 1708.848, 'duration': 2.241}, {'end': 1713.912, 'text': 'what about fetching by category?', 'start': 1711.089, 'duration': 2.823}, {'end': 1720.177, 'text': 'so at this point we were able to fetch data and make sure that before you go for the next video, you actually practice this.', 'start': 1713.912, 'duration': 6.265}, {'end': 1720.898, 'text': 'okay, cool.', 'start': 1720.177, 'duration': 0.721}, {'end': 1723.4, 'text': 'so if you talk about fetching all data, we are doing that.', 'start': 1720.898, 'duration': 2.502}, {'end': 1727.904, 'text': 'but what if you want to fetch based on a category, something like this, i can go back here.', 'start': 1723.4, 'duration': 4.504}, {'end': 1733.028, 'text': "i can say, hey, i don't want all the questions, i want to fetch based on a category.", 'start': 1727.904, 'duration': 5.124}, {'end': 1738.632, 'text': "that too, it should be, let's say, Java, and if you say enter, it should only print questions for Java.", 'start': 1733.669, 'duration': 4.963}], 'summary': 'Successfully fetched data; now implementing category-based fetching.', 'duration': 29.784, 'max_score': 1708.848, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk1708848.jpg'}, {'end': 2057.88, 'src': 'embed', 'start': 2030.572, 'weight': 5, 'content': [{'end': 2034.194, 'text': "how you're getting to fetch based on the category by using some sql query.", 'start': 2030.572, 'duration': 3.622}, {'end': 2040.116, 'text': "okay, so not there, and not even completely, because we don't have the method yet.", 'start': 2034.194, 'duration': 5.922}, {'end': 2041.796, 'text': "so let's find our middle way.", 'start': 2040.116, 'duration': 1.68}, {'end': 2046.138, 'text': 'so what we can do is jpa is actually smart enough to do this.', 'start': 2041.796, 'duration': 4.342}, {'end': 2055.04, 'text': 'what you can do is you can say find by category, okay, and then in the bracket you can mention string category, and your job is done.', 'start': 2046.138, 'duration': 8.902}, {'end': 2057.88, 'text': "it's just that you have to specify what type of data it will return.", 'start': 2055.04, 'duration': 2.84}], 'summary': 'Using jpa, fetching by category using a simple query can be done by specifying the data type for the return value.', 'duration': 27.308, 'max_score': 2030.572, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk2030572.jpg'}, {'end': 2350.142, 'src': 'embed', 'start': 2319.697, 'weight': 3, 'content': [{'end': 2323, 'text': 'The way you did find, all the way you did find by category.', 'start': 2319.697, 'duration': 3.303}, {'end': 2326.844, 'text': "there should be a method in DAO which you don't have to define right?", 'start': 2323, 'duration': 3.844}, {'end': 2327.424, 'text': "So let's try.", 'start': 2326.864, 'duration': 0.56}, {'end': 2332.248, 'text': 'I will say, hey question DAO, I know you are superman or superwoman.', 'start': 2328.025, 'duration': 4.223}, {'end': 2339.195, 'text': "Do you have a method to add it? We don't have add, but do we have some other thing? We have save.", 'start': 2332.989, 'duration': 6.206}, {'end': 2342.017, 'text': 'In this save, just say question, and done.', 'start': 2339.875, 'duration': 2.142}, {'end': 2343.037, 'text': "There's no error.", 'start': 2342.277, 'duration': 0.76}, {'end': 2344.558, 'text': 'Okay, this looks cool.', 'start': 2343.718, 'duration': 0.84}, {'end': 2350.142, 'text': 'But we have to also return something, right? So what I will do is, let me see if save returns something.', 'start': 2345.039, 'duration': 5.103}], 'summary': "Discussing the need for a method in dao to add and return data, focusing on the 'save' method.", 'duration': 30.445, 'max_score': 2319.697, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk2319697.jpg'}, {'end': 2484.75, 'src': 'embed', 'start': 2455.302, 'weight': 4, 'content': [{'end': 2458.044, 'text': 'So here, we have to use a post mapping.', 'start': 2455.302, 'duration': 2.742}, {'end': 2461.386, 'text': 'And in this post mapping, we will be..', 'start': 2458.845, 'duration': 2.541}, {'end': 2464.834, 'text': 'specifying the address.', 'start': 2462.392, 'duration': 2.442}, {'end': 2473.682, 'text': 'So we are posting a question and then we are submitting data, right? So question should be, okay, the main is question.', 'start': 2464.854, 'duration': 8.828}, {'end': 2476.324, 'text': 'Maybe I can say add, yeah.', 'start': 2474.302, 'duration': 2.022}, {'end': 2478.967, 'text': "So let's say I'm using add here.", 'start': 2477.205, 'duration': 1.762}, {'end': 2481.289, 'text': 'So question slash add will add a new question.', 'start': 2478.987, 'duration': 2.302}, {'end': 2484.75, 'text': "Okay So now will this work? That's the question.", 'start': 2482.148, 'duration': 2.602}], 'summary': 'Using post mapping to add a new question.', 'duration': 29.448, 'max_score': 2455.302, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk2455302.jpg'}, {'end': 2535.962, 'src': 'embed', 'start': 2505.427, 'weight': 2, 'content': [{'end': 2509.613, 'text': "And that's where the tools using which you can interact with the APIs.", 'start': 2505.427, 'duration': 4.186}, {'end': 2511.876, 'text': "So that's why these are APIs which we have exposed.", 'start': 2509.813, 'duration': 2.063}, {'end': 2513.278, 'text': 'We use something called Postman.', 'start': 2512.016, 'duration': 1.262}, {'end': 2515.702, 'text': 'So there are a lot of tools available.', 'start': 2513.799, 'duration': 1.903}, {'end': 2517.384, 'text': 'Let me introduce you to Postman.', 'start': 2516.222, 'duration': 1.162}, {'end': 2518.566, 'text': 'This is how Postman looks like.', 'start': 2517.404, 'duration': 1.162}, {'end': 2519.848, 'text': 'You can download it from the Google.', 'start': 2518.586, 'duration': 1.262}, {'end': 2520.889, 'text': "It's very easily available.", 'start': 2519.908, 'duration': 0.981}, {'end': 2523.318, 'text': 'and in the postman.', 'start': 2522.137, 'duration': 1.181}, {'end': 2525.778, 'text': 'basically, you can see we get this type of prompt.', 'start': 2523.318, 'duration': 2.46}, {'end': 2527.639, 'text': 'if you get some welcome screen, you can close it now.', 'start': 2525.778, 'duration': 1.861}, {'end': 2535.962, 'text': 'here we can specify the method which you want to go with get post or something and here we have to specify the url.', 'start': 2527.639, 'duration': 8.323}], 'summary': 'Introduction to postman for api interaction, easily available for download from google.', 'duration': 30.535, 'max_score': 2505.427, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk2505427.jpg'}], 'start': 1662.661, 'title': 'Implementing fetch and add functionality, using dao for data retrieval and addition, and creating post mapping and using postman', 'summary': 'Covers implementing a json formatter plugin, fetching data by category, adding functionality for fetching based on a specific category, using dao to retrieve data and add questions, creating post mapping to add a new question, and using postman to interact with apis, achieving a status of 200 and customizing the response code.', 'chapters': [{'end': 1963.999, 'start': 1662.661, 'title': 'Implementing fetch and add functionality', 'summary': 'Covers implementing a json formatter plugin to display json output, and then demonstrates the process of fetching data by category and adding functionality for fetching based on a specific category, highlighting the use of path variables and annotations in the code.', 'duration': 301.338, 'highlights': ['The chapter covers implementing a JSON formatter plugin to display JSON output. The JSON formatter plugin is installed to display JSON output, enabling a beautiful JSON look for the data.', 'Demonstrates the process of fetching data by category and adding functionality for fetching based on a specific category. The process of fetching data by category is demonstrated, with a focus on implementing the functionality for fetching based on a specific category, including the use of path variables and annotations in the code.', 'Highlights the use of path variables and annotations in the code. The code demonstrates the use of path variables and annotations, showing how values are received in the URL and assigned to variables, and the use of annotations like @GetMapping and @PathVariable.']}, {'end': 2436.309, 'start': 1964.039, 'title': 'Using dao for data retrieval and addition', 'summary': 'Discusses using dao to fetch data based on category and adding new questions to the database, demonstrating how to use jpa to find data based on a category and how to add questions using spring.', 'duration': 472.27, 'highlights': ['Demonstrating usage of JPA to find data based on a category The speaker explains how JPA can be used to find data based on a category without the need to write an SQL query, providing a simplified approach for data retrieval.', 'Adding new questions to the database using Spring and handling request body for JSON data The process of adding new questions to the database using Spring is discussed, emphasizing the usage of a request body for receiving JSON data from the client and converting it into an object.', "Explaining the usage of DAO's 'save' method for adding questions to the database The explanation of using DAO's 'save' method to add questions to the database is provided, showcasing a simplification in the process without the need to define a specific 'add' method."]}, {'end': 2669.672, 'start': 2437.129, 'title': 'Creating post mapping and using postman', 'summary': 'Covers creating a post mapping to add a new question, and using postman to send data and interact with apis, achieving a status of 200 and customizing the response code.', 'duration': 232.543, 'highlights': ["Creating a post mapping to add a new question The chapter focuses on setting up a post mapping to add a new question, specifying the URL as 'question/add', and preparing to send data using Postman.", 'Using Postman to send data and interact with APIs The discussion emphasizes the use of Postman, a tool for interacting with APIs, to send data to the specified URL and receive all the data, achieving a status of 200 upon success.', 'Customizing the response code The chapter mentions customizing the response code, allowing for the customization of status codes such as 201 or 202, and the significance of receiving a status code of 200 upon successful data retrieval.']}], 'duration': 1007.011, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk1662661.jpg', 'highlights': ['Covers implementing a JSON formatter plugin to display JSON output.', 'Demonstrates the process of fetching data by category and adding functionality for fetching based on a specific category.', 'Using Postman to send data and interact with APIs', "Explaining the usage of DAO's 'save' method for adding questions to the database", 'Creating a post mapping to add a new question', 'Demonstrating usage of JPA to find data based on a category']}, {'end': 3438.086, 'segs': [{'end': 2733.29, 'src': 'embed', 'start': 2705.857, 'weight': 0, 'content': [{'end': 2710.76, 'text': 'So basically, instead of using sequence, we should be going for identity.', 'start': 2705.857, 'duration': 4.903}, {'end': 2712.101, 'text': 'And you can see it says success.', 'start': 2710.84, 'duration': 1.261}, {'end': 2715.643, 'text': "I'm just curious to know the ID for that.", 'start': 2712.521, 'duration': 3.122}, {'end': 2716.424, 'text': 'So I will say get.', 'start': 2715.663, 'duration': 0.761}, {'end': 2718.425, 'text': 'I want to get all questions.', 'start': 2717.024, 'duration': 1.401}, {'end': 2719.646, 'text': 'And send.', 'start': 2719.085, 'duration': 0.561}, {'end': 2722.262, 'text': 'Okay, you can see we got 17.', 'start': 2721.041, 'duration': 1.221}, {'end': 2723.083, 'text': 'So it is automatic.', 'start': 2722.262, 'duration': 0.821}, {'end': 2726.445, 'text': "So we have to say identity there because that's what we have configured in the database.", 'start': 2723.103, 'duration': 3.342}, {'end': 2733.29, 'text': "So that depends upon what type of column you're creating a database, right? So 17 works and you can see we got the question as well.", 'start': 2726.845, 'duration': 6.445}], 'summary': 'Using identity instead of sequence, 17 questions were successfully retrieved.', 'duration': 27.433, 'max_score': 2705.857, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk2705857.jpg'}, {'end': 2912.429, 'src': 'embed', 'start': 2888.515, 'weight': 2, 'content': [{'end': 2896.161, 'text': "So let's say if you request for a resource and the resource is there, you will get a status by saying 200, which is okay.", 'start': 2888.515, 'duration': 7.646}, {'end': 2897.021, 'text': 'you got the response.', 'start': 2896.161, 'duration': 0.86}, {'end': 2898.723, 'text': 'So the status is okay here.', 'start': 2897.402, 'duration': 1.321}, {'end': 2902.945, 'text': 'What if you got an error? The resource is not there.', 'start': 2899.803, 'duration': 3.142}, {'end': 2905.706, 'text': 'It is 404, right? So file not found.', 'start': 2903.105, 'duration': 2.601}, {'end': 2912.429, 'text': 'So instead of printing 404, we could have print file not found, right? In the same way, we have multiple status code.', 'start': 2905.746, 'duration': 6.683}], 'summary': 'Http response status codes like 200 and 404 are used to indicate success or failure in accessing resources.', 'duration': 23.914, 'max_score': 2888.515, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk2888515.jpg'}, {'end': 3113.157, 'src': 'embed', 'start': 3081.977, 'weight': 1, 'content': [{'end': 3085.898, 'text': "because that's what you're returning now response, which is in a format of entity.", 'start': 3081.977, 'duration': 3.921}, {'end': 3087.899, 'text': 'now it will have two parameters basically.', 'start': 3085.898, 'duration': 2.001}, {'end': 3093.461, 'text': 'the first one is the actual data which you want to return and the second one is the status code.', 'start': 3087.899, 'duration': 5.562}, {'end': 3097.022, 'text': 'so in this case, when you are fetching data, i can say http, status, dot.', 'start': 3093.461, 'duration': 3.561}, {'end': 3099.103, 'text': "you don't have to remember the numbers.", 'start': 3097.822, 'duration': 1.281}, {'end': 3101.606, 'text': 'you can simply say okay, so this works.', 'start': 3099.103, 'duration': 2.503}, {'end': 3107.972, 'text': "so in the constructor of response entity, you're passing two things the data and the status code.", 'start': 3101.606, 'duration': 6.366}, {'end': 3113.157, 'text': 'okay, it is giving you an error is because what you are returning is not matching.', 'start': 3107.972, 'duration': 5.185}], 'summary': 'The response entity format includes data and status code parameters, simplifying http status code handling.', 'duration': 31.18, 'max_score': 3081.977, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk3081977.jpg'}], 'start': 2677.094, 'title': 'Database operations and status codes in java spring', 'summary': 'Demonstrates using postman for database operations, highlighting the switch from sequence to identity for successful data insertion and fetching 17 questions using postman. it also discusses the implementation of response entity and http status codes in java spring, emphasizing the importance of handling exceptions and specifying status codes for successful and erroneous requests, along with examples of common status codes and their meanings.', 'chapters': [{'end': 2790.739, 'start': 2677.094, 'title': 'Using postman for database operations', 'summary': 'Demonstrates using postman for database operations, highlighting the switch from sequence to identity for successful data insertion and fetching 17 questions using postman.', 'duration': 113.645, 'highlights': ['The switch from using sequence to identity results in successful data insertion and fetching 17 questions using Postman, showcasing the impact of database column type on data operations.', 'The chapter also emphasizes the use of Postman or any API tool for adding and fetching data, with a mention of potential update and delete operations, along with the required mappings for each operation.', "In the context of the DAO, the 'save' method is highlighted as the key operation for both updating and saving data, providing a practical insight into the implementation of database operations."]}, {'end': 3438.086, 'start': 2790.999, 'title': 'Handling status codes in java spring', 'summary': 'Discusses the implementation of response entity and http status codes in java spring, emphasizing the importance of handling exceptions and specifying status codes for successful and erroneous requests, along with examples of common status codes and their meanings.', 'duration': 647.087, 'highlights': ['Implementation of response entity and HTTP status codes The implementation of response entity and HTTP status codes is discussed, emphasizing their role in returning data along with the corresponding status codes, such as 200 for OK and 400 for bad requests.', 'Importance of handling exceptions and specifying status codes The importance of handling exceptions and specifying status codes for successful and erroneous requests is highlighted, demonstrating the use of try-catch blocks and returning appropriate status codes like 200 for successful requests and 400 for bad requests.', 'Examples of common status codes and their meanings Common status codes and their meanings are explained, including 200 for successful requests, 400 for client errors, and 500 for server errors, with an emphasis on providing meaningful messages to users based on these status codes.']}], 'duration': 760.992, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk2677094.jpg', 'highlights': ['The switch from using sequence to identity results in successful data insertion and fetching 17 questions using Postman, showcasing the impact of database column type on data operations.', 'The implementation of response entity and HTTP status codes is discussed, emphasizing their role in returning data along with the corresponding status codes, such as 200 for OK and 400 for bad requests.', 'Importance of handling exceptions and specifying status codes for successful and erroneous requests is highlighted, demonstrating the use of try-catch blocks and returning appropriate status codes like 200 for successful requests and 400 for bad requests.']}, {'end': 3910.343, 'segs': [{'end': 3507.614, 'src': 'embed', 'start': 3461.761, 'weight': 0, 'content': [{'end': 3463.964, 'text': 'So we just have to restart the server with the new changes.', 'start': 3461.761, 'duration': 2.203}, {'end': 3467.272, 'text': 'Everything looks good.', 'start': 3466.552, 'duration': 0.72}, {'end': 3469.433, 'text': "Let's create the same question again.", 'start': 3467.792, 'duration': 1.641}, {'end': 3471.013, 'text': 'No, it will create an issue.', 'start': 3469.453, 'duration': 1.56}, {'end': 3475.454, 'text': 'You can see we got success and this time the status code is 201.', 'start': 3471.053, 'duration': 4.401}, {'end': 3479.315, 'text': 'So the client side, of course, a client will not be using a postman.', 'start': 3475.454, 'duration': 3.861}, {'end': 3480.596, 'text': 'They will be using something fancy.', 'start': 3479.335, 'duration': 1.261}, {'end': 3485.457, 'text': 'Some UI tool, mobile or some React application which looks good.', 'start': 3481.056, 'duration': 4.401}, {'end': 3488.538, 'text': 'In that case, as a UI developer,', 'start': 3486.537, 'duration': 2.001}, {'end': 3495.763, 'text': 'it is your job to accept the status code and display the appropriate message on the console on the screen for the user.', 'start': 3488.538, 'duration': 7.225}, {'end': 3497.845, 'text': "so that's how basically we use this.", 'start': 3495.763, 'duration': 2.082}, {'end': 3505.373, 'text': 'okay, so now, once you understood response entity and exception handling here, of course we have not done the handling here, but yeah, you can.', 'start': 3497.845, 'duration': 7.528}, {'end': 3506.134, 'text': 'you can take it off it.', 'start': 3505.373, 'duration': 0.761}, {'end': 3507.614, 'text': "so that's your assignment.", 'start': 3506.494, 'duration': 1.12}], 'summary': 'Restarted server with new changes, achieved success with status code 201, ui developer to handle response entity and exception handling.', 'duration': 45.853, 'max_score': 3461.761, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk3461761.jpg'}, {'end': 3597.385, 'src': 'embed', 'start': 3568.674, 'weight': 4, 'content': [{'end': 3573.743, 'text': 'of course we are not going to add the roles in this particular project, but imagine if you have something like that.', 'start': 3568.674, 'duration': 5.069}, {'end': 3577.349, 'text': "you can do it, but we'll give an option for someone to create a quiz.", 'start': 3573.743, 'duration': 3.606}, {'end': 3580.275, 'text': "And now let's say I'm going to start a quiz.", 'start': 3578.334, 'duration': 1.941}, {'end': 3583.517, 'text': 'So as a user, they will fetch.', 'start': 3580.535, 'duration': 2.982}, {'end': 3586.859, 'text': 'So once a quiz started, they can fetch a quiz on their client application.', 'start': 3583.637, 'duration': 3.222}, {'end': 3589.26, 'text': 'It can be a browser or it can be a mobile application.', 'start': 3586.919, 'duration': 2.341}, {'end': 3591.842, 'text': 'And they can see the questions on their screen.', 'start': 3589.981, 'duration': 1.861}, {'end': 3597.385, 'text': "That's the entire idea here, right? So basically, we should be able to create a quiz.", 'start': 3592.482, 'duration': 4.903}], 'summary': 'The project aims to allow users to create and access quizzes on client applications, such as browsers or mobile apps.', 'duration': 28.711, 'max_score': 3568.674, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk3568674.jpg'}, {'end': 3776.082, 'src': 'embed', 'start': 3747.794, 'weight': 3, 'content': [{'end': 3749.854, 'text': 'now you can see we got a quiz controller here.', 'start': 3747.794, 'duration': 2.06}, {'end': 3754.035, 'text': "so let's do the housekeeping stuff here, which is this is a rest controller.", 'start': 3749.854, 'duration': 4.181}, {'end': 3755.696, 'text': "let's specify the request mapping.", 'start': 3754.035, 'duration': 1.661}, {'end': 3757.957, 'text': 'now this will be happening for the quiz right.', 'start': 3755.696, 'duration': 2.261}, {'end': 3759.957, 'text': 'so the url starts with the quiz.', 'start': 3757.957, 'duration': 2}, {'end': 3767.939, 'text': 'okay, so once we got our controller here, we need to create a method right because we want to accept, because if you go back here in the postman,', 'start': 3759.957, 'duration': 7.982}, {'end': 3770.26, 'text': 'we need a method for create right.', 'start': 3767.939, 'duration': 2.321}, {'end': 3771.56, 'text': 'so we have mentioned quiz.', 'start': 3770.26, 'duration': 1.3}, {'end': 3773.501, 'text': 'now we have to create a method for create here.', 'start': 3771.56, 'duration': 1.941}, {'end': 3776.082, 'text': "So we'll go back here and say public.", 'start': 3774.201, 'duration': 1.881}], 'summary': 'Creating a rest controller for quiz with a method for create.', 'duration': 28.288, 'max_score': 3747.794, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk3747794.jpg'}], 'start': 3438.146, 'title': 'Handling response entity and status codes and creating a quiz controller', 'summary': 'Discusses the usage of response entity and status codes, emphasizing the importance of achieving a 201 status code for successful creation of data and introduces the creation of a quiz controller to handle the creation of quizzes, specifying categories, the number of questions, and titles.', 'chapters': [{'end': 3507.614, 'start': 3438.146, 'title': 'Handling response entity and status codes', 'summary': 'Discusses the usage of response entity and status codes in handling post requests, emphasizing the importance of achieving a 201 status code for successful creation of data, and the role of ui developers in displaying appropriate messages based on status codes.', 'duration': 69.468, 'highlights': ['The chapter emphasizes the importance of achieving a 201 status code for successful creation of data, and the role of UI developers in displaying appropriate messages based on status codes.', 'The speaker mentions the need to restart the server with new changes to ensure successful data creation, highlighting the importance of server-side adjustments.', 'The discussion touches upon the significance of handling response entity and exception handling in the context of post requests.']}, {'end': 3910.343, 'start': 3507.614, 'title': 'Creating a quiz controller', 'summary': 'Introduces the creation of a quiz controller to handle the creation of quizzes, specifying categories, the number of questions, and titles, using a post mapping method, and mentions the use of a quiz service to handle the creation of the quiz.', 'duration': 402.729, 'highlights': ['The chapter introduces the creation of a quiz controller to handle the creation of quizzes, specifying categories, the number of questions, and titles, using a post mapping method. The chapter emphasizes the process of creating a quiz controller to handle the creation of quizzes and mentions the specification of categories, the number of questions, and titles using a post mapping method.', 'Mentions the use of a quiz service to handle the creation of the quiz. The chapter mentions the use of a quiz service to handle the creation of the quiz, highlighting the importance of separating the quiz creation functionality from the controller.']}], 'duration': 472.197, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk3438146.jpg', 'highlights': ['The chapter emphasizes the importance of achieving a 201 status code for successful creation of data, and the role of UI developers in displaying appropriate messages based on status codes.', 'The discussion touches upon the significance of handling response entity and exception handling in the context of post requests.', 'The speaker mentions the need to restart the server with new changes to ensure successful data creation, highlighting the importance of server-side adjustments.', 'The chapter introduces the creation of a quiz controller to handle the creation of quizzes, specifying categories, the number of questions, and titles, using a post mapping method.', 'Mentions the use of a quiz service to handle the creation of the quiz, highlighting the importance of separating the quiz creation functionality from the controller.']}, {'end': 4814.321, 'segs': [{'end': 4280.137, 'src': 'embed', 'start': 4247.998, 'weight': 0, 'content': [{'end': 4249.299, 'text': "Let's go back to service.", 'start': 4247.998, 'duration': 1.301}, {'end': 4252.722, 'text': 'Now it is the service responsibility to create a quiz for me.', 'start': 4249.88, 'duration': 2.842}, {'end': 4256.446, 'text': "So now question arise, how exactly it will create a quiz? So let's try that.", 'start': 4253.063, 'duration': 3.383}, {'end': 4260.489, 'text': 'So first of all, I will create a method, which is the method which I want to create here.', 'start': 4256.886, 'duration': 3.603}, {'end': 4264.652, 'text': 'So if you can see, what I will do is I will not be writing from here.', 'start': 4261.069, 'duration': 3.583}, {'end': 4271.595, 'text': 'Let me go to the controller where I want to use this method, and I can say I want to have a method name, which is createQuest,', 'start': 4265.453, 'duration': 6.142}, {'end': 4280.137, 'text': 'and this will take three parameters category, the numq and the title.', 'start': 4271.595, 'duration': 8.542}], 'summary': "Service will create a method 'createquest' with parameters: category, numq, and title.", 'duration': 32.139, 'max_score': 4247.998, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk4247998.jpg'}, {'end': 4575.33, 'src': 'heatmap', 'start': 4449.279, 'weight': 0.81, 'content': [{'end': 4453.682, 'text': "But what is a query? Now that's where you have to write the jpql query here.", 'start': 4449.279, 'duration': 4.403}, {'end': 4458.026, 'text': "So we'll say select star from question, that's your table name, q, where.", 'start': 4453.942, 'duration': 4.084}, {'end': 4462.151, 'text': 'So basically, we have to fetch question from the question table.', 'start': 4458.286, 'duration': 3.865}, {'end': 4466.676, 'text': 'But then what should be the where clause? First of all, the category should match with what we are passing.', 'start': 4462.391, 'duration': 4.285}, {'end': 4470.28, 'text': 'So I can say q.category need to match with my category.', 'start': 4466.856, 'duration': 3.424}, {'end': 4472.462, 'text': 'So that should be equal to..', 'start': 4470.74, 'duration': 1.722}, {'end': 4474.864, 'text': 'Okay, how do I specify this variable here?', 'start': 4473.243, 'duration': 1.621}, {'end': 4478.687, 'text': 'Now, if you want to specify the variable because the value will be coming from the variable right?', 'start': 4475.265, 'duration': 3.422}, {'end': 4479.988, 'text': 'You have to give a colon.', 'start': 4479.047, 'duration': 0.941}, {'end': 4481.669, 'text': 'So colon, category.', 'start': 4480.308, 'duration': 1.361}, {'end': 4484.692, 'text': 'And then, now you also need only five questions.', 'start': 4482.01, 'duration': 2.682}, {'end': 4489.395, 'text': "So basically we can say, okay, let's order by because we want to do it in random.", 'start': 4485.232, 'duration': 4.163}, {'end': 4492.157, 'text': 'So we can say order by random.', 'start': 4490.096, 'duration': 2.061}, {'end': 4495.98, 'text': 'So there are the inbuilt functions, so we can get random questions.', 'start': 4492.377, 'duration': 3.603}, {'end': 4497.781, 'text': 'Okay, we will get random.', 'start': 4496.28, 'duration': 1.501}, {'end': 4500.863, 'text': "But how about limiting the numbers? So that's where we'll be using limit.", 'start': 4498.021, 'duration': 2.842}, {'end': 4506.306, 'text': 'Of course, teaching you the SQL now or the query language now will take a lot of time.', 'start': 4501.724, 'duration': 4.582}, {'end': 4508.767, 'text': "So I'll just simply use those data here.", 'start': 4506.786, 'duration': 1.981}, {'end': 4509.707, 'text': "And that's it.", 'start': 4509.227, 'duration': 0.48}, {'end': 4511.048, 'text': 'You got your query.', 'start': 4510.127, 'duration': 0.921}, {'end': 4512.128, 'text': 'It looks good.', 'start': 4511.328, 'duration': 0.8}, {'end': 4514.249, 'text': "Let's see if something goes wrong, we'll debug it.", 'start': 4512.468, 'duration': 1.781}, {'end': 4515.249, 'text': "So that's your query.", 'start': 4514.469, 'duration': 0.78}, {'end': 4518.07, 'text': "And now, once you've got your query, this will work now.", 'start': 4515.509, 'duration': 2.561}, {'end': 4522.052, 'text': 'You will get your questions and you just have to add your questions in the service.', 'start': 4518.571, 'duration': 3.481}, {'end': 4524.462, 'text': 'So we have done with that.', 'start': 4523.342, 'duration': 1.12}, {'end': 4528.804, 'text': "So, once you've got your quiz ready because this is what will create a quiz, right?", 'start': 4524.843, 'duration': 3.961}, {'end': 4533.506, 'text': "Now, once you've got your quiz ready, you just have to use the quiz DAO to save the quiz.", 'start': 4529.224, 'duration': 4.282}, {'end': 4534.767, 'text': "So we'll say save.", 'start': 4534.066, 'duration': 0.701}, {'end': 4537.648, 'text': 'And we are saving this for your quiz.', 'start': 4535.687, 'duration': 1.961}, {'end': 4543.265, 'text': 'So we have generated random questions with the title, and now you are saving it.', 'start': 4539.401, 'duration': 3.864}, {'end': 4544.726, 'text': 'Looks like it should work.', 'start': 4543.926, 'duration': 0.8}, {'end': 4546.949, 'text': 'But you have to return the response as well.', 'start': 4545.147, 'duration': 1.802}, {'end': 4550.993, 'text': 'So also return new response entity.', 'start': 4547.469, 'duration': 3.524}, {'end': 4552.655, 'text': 'We can return a message.', 'start': 4551.714, 'duration': 0.941}, {'end': 4554.817, 'text': 'Success if everything goes well.', 'start': 4553.175, 'duration': 1.642}, {'end': 4557.901, 'text': "Of course, we should handle the exception as well, but let's do that later.", 'start': 4555.318, 'duration': 2.583}, {'end': 4569.037, 'text': "Okay, looks like we have done with the create quest, but is it really working? First of all, we have not, okay, we don't do mapping here.", 'start': 4562.086, 'duration': 6.951}, {'end': 4573.148, 'text': "We can simply do mapping, that's done, create done.", 'start': 4569.946, 'duration': 3.202}, {'end': 4575.33, 'text': 'Okay, I hope this will work.', 'start': 4573.889, 'duration': 1.441}], 'summary': 'Creating a jpql query to fetch random questions based on category and limit, then saving the quiz using quiz dao, and handling response.', 'duration': 126.051, 'max_score': 4449.279, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk4449279.jpg'}, {'end': 4543.265, 'src': 'embed', 'start': 4515.509, 'weight': 1, 'content': [{'end': 4518.07, 'text': "And now, once you've got your query, this will work now.", 'start': 4515.509, 'duration': 2.561}, {'end': 4522.052, 'text': 'You will get your questions and you just have to add your questions in the service.', 'start': 4518.571, 'duration': 3.481}, {'end': 4524.462, 'text': 'So we have done with that.', 'start': 4523.342, 'duration': 1.12}, {'end': 4528.804, 'text': "So, once you've got your quiz ready because this is what will create a quiz, right?", 'start': 4524.843, 'duration': 3.961}, {'end': 4533.506, 'text': "Now, once you've got your quiz ready, you just have to use the quiz DAO to save the quiz.", 'start': 4529.224, 'duration': 4.282}, {'end': 4534.767, 'text': "So we'll say save.", 'start': 4534.066, 'duration': 0.701}, {'end': 4537.648, 'text': 'And we are saving this for your quiz.', 'start': 4535.687, 'duration': 1.961}, {'end': 4543.265, 'text': 'So we have generated random questions with the title, and now you are saving it.', 'start': 4539.401, 'duration': 3.864}], 'summary': 'Developed a quiz system, generated random questions, and saved quiz using quiz dao.', 'duration': 27.756, 'max_score': 4515.509, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk4515509.jpg'}, {'end': 4693.419, 'src': 'embed', 'start': 4656.134, 'weight': 3, 'content': [{'end': 4657.775, 'text': "Yeah, there's no 16 here.", 'start': 4656.134, 'duration': 1.641}, {'end': 4658.516, 'text': 'So yeah, it worked.', 'start': 4657.795, 'duration': 0.721}, {'end': 4664.58, 'text': 'So, basically, we were able to create a quest with five questions, so we were able to create a quiz.', 'start': 4658.796, 'duration': 5.784}, {'end': 4667.142, 'text': "now it's time to fetch that quiz.", 'start': 4664.58, 'duration': 2.562}, {'end': 4670.104, 'text': 'so when we create the quiz, the data goes into our database, right.', 'start': 4667.142, 'duration': 2.962}, {'end': 4672.265, 'text': 'so we have created two extra tables.', 'start': 4670.104, 'duration': 2.161}, {'end': 4674.246, 'text': 'so we already had a question table.', 'start': 4672.265, 'duration': 1.981}, {'end': 4680.75, 'text': 'now we created a quiz table and then we created a table where we can have all the questions for a particular quest.', 'start': 4674.246, 'duration': 6.504}, {'end': 4683.952, 'text': 'just to show you that, what i can do is, i can go to my pg admin.', 'start': 4680.75, 'duration': 3.202}, {'end': 4693.419, 'text': 'you can see we got this table here, which is quiz and quiz questions, and if I open quiz here, we can see we have different columns.', 'start': 4683.952, 'duration': 9.467}], 'summary': 'Successfully created a quiz with 5 questions and added data to database.', 'duration': 37.285, 'max_score': 4656.134, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk4656134.jpg'}], 'start': 3910.343, 'title': 'Quiz service and database design', 'summary': 'Discusses creating a quizservice class, emphasizing responsibility and method, and database design for quiz creation, including storage, table creation, mapping, and logic implementation.', 'chapters': [{'end': 3951.974, 'start': 3910.343, 'title': 'Creating a quizservice class', 'summary': 'Discusses the creation of a quizservice class and its object, emphasizing the responsibility and method to be used, along with the necessity of creating the class.', 'duration': 41.631, 'highlights': ['The need to create a QuizService class and its object in the service package is emphasized, highlighting the responsibility and method to be used.', 'The speaker mentions the unavailability of the quizService class and proceeds to create it, emphasizing the necessity.', 'The speaker discusses the responsibility of creating a quizService and the method to be used for its creation.']}, {'end': 4229.057, 'start': 3952.739, 'title': 'Database design for quiz creation', 'summary': 'Discusses the process of creating a quiz, including the need for database storage, table creation, mapping tables, and dao interface implementation, emphasizing the importance of logic and efficient design.', 'duration': 276.318, 'highlights': ['The chapter discusses the process of creating a quiz, including the need for database storage, table creation, mapping tables, and DAO interface implementation. The discussion covers the entire process of quiz creation, emphasizing the need for database storage, table creation, mapping tables, and DAO interface implementation.', 'Emphasizes the importance of logic and efficient design in creating a quiz and storing it in the database to avoid data loss. The importance of logic and efficient design is stressed, highlighting the need to store quizzes in a database to prevent data loss.', 'Detailed explanation of table creation, mapping tables, and the implementation of DAO interface, with an emphasis on efficient design and logic. The transcript provides a detailed explanation of table creation, mapping tables, and the implementation of DAO interface, emphasizing the importance of efficient design and logic.']}, {'end': 4588.139, 'start': 4229.137, 'title': 'Creating quiz with random questions', 'summary': 'Explains the process of creating a quiz with random questions, discussing the mapping of many-to-many relationships, creation of quiz objects, fetching and limiting questions from a database, writing native queries for jpa, and saving the quiz object, aiming for successful execution.', 'duration': 359.002, 'highlights': ['The process involves creating a method for generating a quiz with specified parameters like category, number of questions, and title, and utilizing JPA to automatically create the method, thereby enhancing efficiency.', "The discussion emphasizes the importance of obtaining random questions from the database by creating a specific method 'find random questions by category' to limit and fetch questions, with an aim to enhance the quiz creation process.", 'The explanation delves into the process of writing native queries for JPA using the query annotation, allowing the specification of queries and variables, and discusses the use of inbuilt functions like order by and limit for fetching random questions from the database, aiming to streamline the data retrieval process.', 'The chapter stresses the significance of saving the generated quiz using the quiz DAO, handling the response entity for successful execution, and the need to handle exceptions for error scenarios, thereby ensuring the overall functionality of the quiz creation process.']}, {'end': 4814.321, 'start': 4588.319, 'title': 'Creating and fetching quiz data', 'summary': 'Explains the process of creating and fetching quiz data, including the creation of extra tables in the database, the verification of questions associated with a specific quiz, and the implementation of a method to retrieve quiz questions based on the quiz id.', 'duration': 226.002, 'highlights': ['The process of creating a quiz and fetching its data is explained in detail, including the creation of extra tables in the database, verification of questions associated with a specific quiz, and the implementation of a method to retrieve quiz questions based on the quiz ID. Creating extra tables, verifying questions associated with a specific quiz, implementing a method to retrieve quiz questions.', 'The demonstration includes creating a quiz with five questions and verifying that the questions are correctly associated with the quiz. Creation of a quiz with five questions, verification of correct association of questions with the quiz.', 'The process of implementing a method to retrieve quiz questions based on the quiz ID is described, including the use of a response entity to return a list of questions. Implementation of a method to retrieve quiz questions, use of a response entity to return a list of questions.']}], 'duration': 903.978, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk3910343.jpg', 'highlights': ['The need to create a QuizService class and its object in the service package is emphasized, highlighting the responsibility and method to be used.', 'The chapter discusses the process of creating a quiz, including the need for database storage, table creation, mapping tables, and DAO interface implementation.', 'The process involves creating a method for generating a quiz with specified parameters like category, number of questions, and title, and utilizing JPA to automatically create the method, thereby enhancing efficiency.', 'The process of creating a quiz and fetching its data is explained in detail, including the creation of extra tables in the database, verification of questions associated with a specific quiz, and the implementation of a method to retrieve quiz questions based on the quiz ID.']}, {'end': 6099.271, 'segs': [{'end': 5309.054, 'src': 'embed', 'start': 5283.466, 'weight': 0, 'content': [{'end': 5288.828, 'text': 'basically because we were able to create questions, we were able to create quiz and then we were able to get the quiz as well.', 'start': 5283.466, 'duration': 5.362}, {'end': 5297.551, 'text': "And now when a client want to send the responses on the server, of course, to get this code, it's our job now on the server side to calculate it.", 'start': 5289.048, 'duration': 8.503}, {'end': 5301.312, 'text': "So what kind of response a client will send? So let's understand that.", 'start': 5298.191, 'duration': 3.121}, {'end': 5303.353, 'text': "Let's go back here to the postman.", 'start': 5301.332, 'duration': 2.021}, {'end': 5309.054, 'text': 'Now, if you say a quiz, this is a quiz which we have created, right? The ID for this quiz is 1.', 'start': 5304.193, 'duration': 4.861}], 'summary': 'Created quiz questions and responses, id 1 for quiz.', 'duration': 25.588, 'max_score': 5283.466, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk5283466.jpg'}, {'end': 5493.844, 'src': 'embed', 'start': 5460.885, 'weight': 1, 'content': [{'end': 5462.786, 'text': 'What if something goes wrong with the database itself?', 'start': 5460.885, 'duration': 1.901}, {'end': 5466.128, 'text': 'So what I will do is I will just try to fetch the answers from database.', 'start': 5463.506, 'duration': 2.622}, {'end': 5473.312, 'text': 'The way you can do that is by going to the pgAdmin and here we can fire a query.', 'start': 5466.568, 'duration': 6.744}, {'end': 5477.735, 'text': "So basically we want the answer, right? So let me just, I don't need this.", 'start': 5473.853, 'duration': 3.882}, {'end': 5478.615, 'text': 'I can keep it here.', 'start': 5477.895, 'duration': 0.72}, {'end': 5482.598, 'text': 'So can I edit this query? No, let me just go to query tool.', 'start': 5479.536, 'duration': 3.062}, {'end': 5484.559, 'text': 'So, basically,', 'start': 5483.939, 'duration': 0.62}, {'end': 5493.844, 'text': "I'm into postgres pgadmin now and I want to fetch the id for particular question and I want to fetch the right answer for that particular question.", 'start': 5484.559, 'duration': 9.285}], 'summary': 'Using pgadmin to retrieve specific data from the database for a particular question.', 'duration': 32.959, 'max_score': 5460.885, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk5460885.jpg'}, {'end': 5669.164, 'src': 'embed', 'start': 5636.49, 'weight': 2, 'content': [{'end': 5640.451, 'text': 'So I can simply say response entity and what we want to return is a score right?', 'start': 5636.49, 'duration': 3.961}, {'end': 5642.231, 'text': 'So we can return a score with the integer value.', 'start': 5640.471, 'duration': 1.76}, {'end': 5645.972, 'text': 'And I can name this as submitQuest.', 'start': 5643.151, 'duration': 2.821}, {'end': 5649.693, 'text': 'And what are the values we have to accept? Basically, we have to accept two values.', 'start': 5646.992, 'duration': 2.701}, {'end': 5652.753, 'text': 'One, the ID which you are submitting here, the quiz ID.', 'start': 5649.913, 'duration': 2.84}, {'end': 5657.214, 'text': 'And second is the responses, right? So let me accept that here.', 'start': 5653.194, 'duration': 4.02}, {'end': 5659.135, 'text': 'Now this is a path variable, so I will use that.', 'start': 5657.294, 'duration': 1.841}, {'end': 5662.505, 'text': 'And it will go into integer ID.', 'start': 5659.916, 'duration': 2.589}, {'end': 5669.164, 'text': 'And next, we need to accept the body, right? Now, this is getting sent in the JSON format.', 'start': 5664.181, 'duration': 4.983}], 'summary': 'Create submitquest api to accept quiz id and responses in json format, returning a score as an integer value.', 'duration': 32.674, 'max_score': 5636.49, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk5636490.jpg'}, {'end': 6082.663, 'src': 'embed', 'start': 6057.461, 'weight': 4, 'content': [{'end': 6063.907, 'text': 'So what we have done till now is building a monolithic application where you have everything in one project.', 'start': 6057.461, 'duration': 6.446}, {'end': 6065.148, 'text': 'Of course, this project is simple.', 'start': 6063.967, 'duration': 1.181}, {'end': 6070.312, 'text': "In enterprise world, we make complex project, but that's not important, right? The logic is not important.", 'start': 6066.089, 'duration': 4.223}, {'end': 6073.555, 'text': 'Important is how do you break down this project into small parts?', 'start': 6070.793, 'duration': 2.762}, {'end': 6078.199, 'text': 'How can we differentiate between the quiz service and a question service?', 'start': 6074.436, 'duration': 3.763}, {'end': 6082.663, 'text': "So there will be two different services, like microservices, and we'll see how do we interact with them.", 'start': 6078.619, 'duration': 4.044}], 'summary': 'The focus is on transitioning from a monolithic to microservices architecture to break down a complex project into smaller, distinct parts.', 'duration': 25.202, 'max_score': 6057.461, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk6057461.jpg'}], 'start': 4814.961, 'title': 'Quiz management processes', 'summary': 'Covers fetching quiz questions securely, creating and sending quiz responses in java, fetching quiz answers and submitting responses accurately, creating a response class and calculating results, and transforming a monolithic application into microservices to handle quiz management.', 'chapters': [{'end': 5179.363, 'start': 4814.961, 'title': 'Fetching quiz questions with wrapper', 'summary': 'Discusses the process of fetching quiz questions from a database using a wrapper class to exclude sensitive information, and the use of optional data to handle potential null values.', 'duration': 364.402, 'highlights': ['The chapter discusses the process of creating a wrapper class for quiz questions to exclude sensitive information like the right answer, and returning a list of questions using the question wrapper. Creation of a wrapper class for quiz questions to exclude sensitive information, returning a list of questions using the question wrapper', 'It explains the use of optional data to handle potential null values when fetching quiz data from the database. Explanation of the use of optional data to handle potential null values']}, {'end': 5436.183, 'start': 5179.523, 'title': 'Creating and sending quiz responses', 'summary': "Details the process of creating and adding questions to a list, sending quiz responses to the server, and the required data format for the responses, culminating in the successful retrieval of quiz questions and the user's ability to submit answers, with a focus on java questions.", 'duration': 256.66, 'highlights': ["The chapter details the process of creating and adding questions to a list, sending quiz responses to the server, and the required data format for the responses, culminating in the successful retrieval of quiz questions and the user's ability to submit answers, with a focus on Java questions. The process of creating and adding questions to a list, sending quiz responses to the server, and the required data format for the responses, culminating in the successful retrieval of quiz questions and the user's ability to submit answers.", 'The user is able to convert or fill a particular question for users with the help of questions from the database. The ability to convert or fill a particular question for users with the help of questions from the database.', "The successful retrieval of quiz questions and the user's ability to submit answers, with a focus on Java questions. The successful retrieval of quiz questions and the user's ability to submit answers, with a focus on Java questions.", 'The process of creating and adding questions to a list. The process of creating and adding questions to a list.', 'The required data format for the responses. The required data format for the responses.']}, {'end': 5682.193, 'start': 5436.183, 'title': 'Fetching quiz answers and submitting responses', 'summary': 'Covers the process of fetching quiz answers from a database using pgadmin and submitting responses to calculate the score, highlighting the importance of checking the right answer rather than the options and customizing the response format.', 'duration': 246.01, 'highlights': ['The process of fetching quiz answers from a database using pgAdmin and running a query to retrieve the right answers for specific questions is demonstrated, ensuring the accuracy of responses.', 'Submitting responses to calculate the score involves creating a method to accept the quiz ID and responses, returning the score as an integer value to determine the number of correct answers.', 'Emphasizing the importance of checking the right answer instead of the options and customizing the response format by sending option numbers (A, B, C, D) rather than the answers to facilitate efficient quiz management and result calculation.']}, {'end': 5855.786, 'start': 5682.213, 'title': 'Creating response class and calculating result', 'summary': 'Discusses the creation of a custom response class with lombok annotations and a constructor, followed by the implementation of a method in the service class to calculate quiz results based on the provided responses and quiz id.', 'duration': 173.573, 'highlights': ['A custom response class is created with Lombok annotations, consisting of integer ID and string response variables.', 'The implementation involves a method in the service class to calculate quiz results based on the provided responses and quiz ID, fetching the quiz questions based on the ID from the database.', "The chapter emphasizes the importance of handling optional data and suggests using 'get' to check if the data is present for a better software design."]}, {'end': 6099.271, 'start': 5855.786, 'title': 'Creating microservices from a monolithic application', 'summary': 'Discusses the process of iterating through quiz responses, comparing them with the correct answers, and building a monolithic application that will be transformed into microservices, highlighting the significance of breaking down projects into smaller parts.', 'duration': 243.485, 'highlights': ['The process of iterating through quiz responses and comparing them with the correct answers is explained, with a demonstration of how to count the right answers and return the response entity object with the correct status code and answers.', 'The significance of breaking down monolithic projects into smaller parts, specifically transitioning a monolithic quiz application into microservices, is emphasized, highlighting the need to differentiate between quiz services and question services.', 'The demonstration of intentionally making wrong quiz responses and observing the resulting output to verify the functionality and accuracy of the quiz service is provided, showcasing the successful submission of responses to the server.']}], 'duration': 1284.31, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vlz9ina4Usk/pics/vlz9ina4Usk4814961.jpg', 'highlights': ['The demonstration of intentionally making wrong quiz responses and observing the resulting output to verify the functionality and accuracy of the quiz service is provided, showcasing the successful submission of responses to the server.', 'The process of fetching quiz answers from a database using pgAdmin and running a query to retrieve the right answers for specific questions is demonstrated, ensuring the accuracy of responses.', 'Submitting responses to calculate the score involves creating a method to accept the quiz ID and responses, returning the score as an integer value to determine the number of correct answers.', "The process of creating and adding questions to a list, sending quiz responses to the server, and the required data format for the responses, culminating in the successful retrieval of quiz questions and the user's ability to submit answers.", 'The significance of breaking down monolithic projects into smaller parts, specifically transitioning a monolithic quiz application into microservices, is emphasized, highlighting the need to differentiate between quiz services and question services.']}], 'highlights': ['The process of creating a quiz and fetching its data is explained in detail, including the creation of extra tables in the database, verification of questions associated with a specific quiz, and the implementation of a method to retrieve quiz questions based on the quiz ID.', 'The project involves building a web application using Spring Boot and Postgres.', 'The implementation of response entity and HTTP status codes is discussed, emphasizing their role in returning data along with the corresponding status codes, such as 200 for OK and 400 for bad requests.', 'The availability of support through a Discord community is highlighted, encouraging users to post questions and seek assistance.', 'The process of fetching quiz answers from a database using pgAdmin and running a query to retrieve the right answers for specific questions is demonstrated, ensuring the accuracy of responses.', 'The chapter introduces the creation of a quiz controller to handle the creation of quizzes, specifying categories, the number of questions, and titles, using a post mapping method.', 'The project includes services such as quiz service and question service, enabling users to submit quizzes and view scores.', 'The process involves creating a method for generating a quiz with specified parameters like category, number of questions, and title, and utilizing JPA to automatically create the method, thereby enhancing efficiency.', 'The process of implementing a service layer in a Spring application is crucial for separating business logic from the presentation layer.', 'The process of submitting responses to calculate the score involves creating a method to accept the quiz ID and responses, returning the score as an integer value to determine the number of correct answers.']}