# Backend Checklist ## Backend Fundamentals Checklist - [ ] Can you explain why do we need backend services? - [ ] Can you explain HTTP protocol? - [ ] Can you explain HTTP messages? - [ ] Can you explain the role of URL in HTTP? - [ ] Can you explain different parts of URL in given example? ```js https://localhost:5000/users/profile?username=altcampus ``` - [ ] Do you know few commomnly used HTTP request methods? - [ ] Can you explain HTTP status codes & why do we use them? - [ ] Do you know the different ways of passing information over HTTP? - [ ] Can you explain the difference between synchrounous and asychronous execution? - [ ] Can you explain the difference between concurrent and parallel processing? - [ ] Do you know what virtual cores are and how is it different from actual cores in computers? - [ ] Do you know why we host servers on the cloud? - [ ] Can you explain latency in networking? - [ ] Can you name some cloud providers which hosts servers? - [ ] Can you explain 404 status code? - [ ] Do you know the default status code sent with each response? - [ ] Can you explain the difference between PUT and PATCH HTTP request methods? - [ ] Can you answer this:- Low or High latency for faster request processing? - [ ] Can you explain Caching in backend? - [ ] Can you explain the use of CDNs? - [ ] Can you explain CORS and why we use them? - [ ] Can you name 2 request headers when making request over HTTP? - [ ] Can you name 2 response headers when making request over HTTP? - [ ] Do you know the mime type for JSON(Javascript Object notation) data? - [ ] Can you explain content-length property in response headers? - [ ] Can you explain the difference between path and pathname in requested URL? - [ ] Can you describe DDoS attacks and how it impacts availability of servers? ## Node.js Checklist - [ ] Do you know what Node.js is? - [ ] Can you name the compiler which is used by Node.js? - [ ] Can you explain globals in Node.js? - [ ] Can you explain how Node.js executes asynchrounous I/O operations? - [ ] Do you know about core node modules in node environment? - [ ] Can you create a server in Node.js? - [ ] Do you know the name of the core node module which is used to parse requested URL over HTTP? - [ ] Do you know how to parse form data in Node.js? - [ ] Can you explain streams in Node.js? - [ ] Can yo name one `readable stream` in Node.js? - [ ] Do you know what `eventEmitters` are in Node.js? - [ ] Can you create an event emitter using core `events` module? - [ ] Do you know how to listen for a particular emitted event? - [ ] Do you know how to capture data on the node server which is received when a client makes a request? - [ ] Do you know the method from `fs` module which is used to write to a file? - [ ] Can you get `number of CPU's` in the system using node environment? - [ ] Can you explain what `REPL` is? - [ ] Do you know how to open REPL in Node environment? - [ ] Can you create a file using fs module in Node.js? - [ ] Do you know how to export functions from one module to another in Node.js? - [ ] Can you explain Buffer in Node.js? - [ ] Can you explain 2 ways to create a new buffer using Buffer Class? - [ ] Do you know which HTTP verb is used to add new resources on the server side? - [ ] Do you know what `401` status code represent? - [ ] Do you know the commands which is used to set a content-Type for a response in Node.js? - [ ] Do you know how to set a specific status code in response? - [ ] Can you explain how to serve an image from node server? - [ ] Do you know the default HTTP method requested when an anchor tag is clicked? - [ ] Do you know the different HTTP methods which can be used with HTML forms? - [ ] Can you explain the `action` and `method` attributes in HTML forms? - [ ] Do you know what `NPM` is and why do we use them? - [ ] Can you describe `semantic versioning` in NPM? - [ ] Do you know how to add a NPM package into our project? - [ ] Can you describe the importance of `package.json` file in Node projects? - [ ] Can you name the command used to create package.json using npm? - [ ] Do you know what `Express` is? - [ ] Do you know how to install a NPM package globally in your system? - [ ] Can you list all global npm packages using npm command? - [ ] Can you explain `scripts` property in package.json? - [ ] Can you define a script to start the server? - [ ] Do you know what `express-generator` is and why we use them? - [ ] Can you explain the use of `require global` in node applications? - [ ] Can you name few templates which can be used with express applications? - [ ] Can you explain what `middlewares` are in Express applications? - [ ] Can you name some `built-in middlewares` in Express? - [ ] Can you explain the use of `next()` function in middlewares? - [ ] Can you create a custom middleware that consoles requested URL and current time in Express? - [ ] Can you explain the use of `express.static()` middleware? - [ ] Can you explain the use of `express.json()` middleware? - [ ] Do you know about `error handler middleware` in Express and how is it different from other middlawres? - [ ] Can you explain the MVC architecture with refernce to Express applications? - [ ] Can you explain about routing conventions in CRUD applications using Express? - [ ] Do you know how to capture variable values like `id` or `username` in router's pathname in Express applications? - [ ] Can you extract `query paramater` values coming with URL from request in Express applications? - [ ] Do you know how to `redirect requests` to some other paths or URLs in Express application? - [ ] Can you explain `Authentication` & `Authorisation`? - [ ] Can you explain the use of cookies in the backend application? - [ ] Can you explain the difference between session storage and cookies storage? - [ ] Can you explain JWT token based authentication? - [ ] Can you explain the difference between session-cookies and token based authentication? - [ ] Can you deploy Node based applications on Heroku? ## MongoDB Checklist - [ ] Can you describe what databases are? - [ ] Can you explain about MongoDB database? - [ ] Do you know the difference between `relational` and `non-relational` databases? - [ ] Can you describe the `advantages of MongoDB over SQL` databases? - [ ] Do you know how MongoDB database is structured? - [ ] Do you know how a MonogDB documents looks like? - [ ] Do you know the command used to connect to mongoDB server via terminal? - [ ] Do you know the command used to list all collections of a database in the mongo shell? - [ ] Do you know the command used to connect to a specific database in the mongo shell? - [ ] Do you know the command used to insert multiple documents into the database? - [ ] Can you write a query find all documents from a specific collection? - [ ] Can you explain the findOne method in MongoDB? - [ ] Can you explain update operation in MongoDB with and without `$set` operator? - [ ] Can you name some additional options which we can pass to update operations as the third parameter? - [ ] Do you know the operators which are used to update an array of elements stored in the database? - [ ] Can you increment/decrement numerical values stored in the database? - [ ] Do you know the datatype used to store date and time values in MongoDB database? - [ ] Do you know the use of `$in` operator in MongoDB? - [ ] Can you explain the use of Indexes in MongoDB? - [ ] Can you explain the merits and demerits of using indexes in MongoDB? - [ ] Do you know about unique indexes and where do we use them? - [ ] Do you know what are text based indexes and why are they helpful? - [ ] Can you create indexes on array values, if yes; how? - [ ] Can you explain aggregations in MongoDB? - [ ] Can you explain the use of `$limit` and `$skip` in aggregation framework? - [ ] Can you get a count of all the documents stored in a collection? - [ ] Can you group all users based on gender and get a count of total males and females using `$group` in aggregation framework? - [ ] Can you calculate average age of all users using aggregation pipeline? - [ ] Can you export all data from a collection into a json or csv file? - [ ] Do you know the difference between embedding and referencing in MongoDB? - [ ] Can you explain associations in databases? - [ ] Can you explain different types of association in MongoDB? ## SQL Checklist - [ ] Can you describe what RDBMS is and give 2 examples of it? - [ ] Do you know what SQL is? - [ ] Can you explain ACID properties and why is it important? - [ ] Do you know the command used for creating a database in SQL? - [ ] Can you explain the schema in SQL? - [ ] Can you explain the difference between CHAR and VARCHAR datatype in SQL? - [ ] Do you know what table and fields are in SQL? - [ ] Can you explain constraints in SQL and name few constraints? - [ ] Do you know what a UNIQUE constraint is? - [ ] Can you explain Primary Key in SQL? - [ ] Can you explain Foreign Key? - [ ] Can you explain joins in SQL? - [ ] Can you describe different types of joins in SQL? - [ ] Can you explain Cross-Join? - [ ] Do you know Indexes in DBMS? - [ ] Can you explain what a query is in SQL? - [ ] Do you know what `SELECT *` means in SQL query? - [ ] Can you explain `ORDER BY` clause in SQL? - [ ] Do you know where to use `GRUOP BY` & `HAVING` clause in SQL? - [ ] Do you know what an `alias` is in SQL? - [ ] Can you name different types of relationships in SQL between tables? - [ ] Can you explain `view` in SQL? - [ ] Can you describe the TRUNCATE, DELETE and DROP statements? - [ ] Can you name some aggregate functions in SQL? - [ ] Do you know the command used to create a table? - [ ] Can you create empty tables with the same structure as another table? - [ ] Do you know the use of `LIKE` operator? - [ ] Do you know the commands used to change the datatype of a column? - [ ] Can you `delete` a database in SQL? - [ ] Do you know how to change a table name in SQL? - [ ] Can you explain `Normalization` in SQL? What are advantages of it? - [ ] Can you explain `triggers` in SQL? - [ ] Do you know how to `delete a column` from table in SQL? - [ ] Do you know how to avoid getting duplicate entries in a query in SQL? - [ ] Do you know where to use `BETWEEN` clause in SQL? - [ ] Can you explain `left outer join` with example in SQL? - [ ] Do you know the difference between NOW() and CURRENT_DATE() in SQL? - [ ] Can you highlight few differences between SQL and MongoDB database?