# **Week 08 - 8.2 | Backend of Course Selling App - Part 2**


## [Notes/Slides Link](https://github.com/100xdevs-cohort-3/week-8-course-selling-project)


## Articles/Blogs Link
-   [**Hello world example in express**](https://expressjs.com/en/starter/hello-world.html)
-   [**Express Routing**](https://expressjs.com/en/guide/routing.html)
-   [**Understanding Routing In Express.js As Simple As Possible**](https://medium.com/nerd-for-tech/understanding-routing-in-express-js-as-simple-as-possible-45b4a852c4a0)
-   [**How to Get Your MongoDB URL to Connect to Your Node.js Application**](https://www.freecodecamp.org/news/get-mongodb-url-to-connect-to-a-nodejs-application/)
-   [**How to Write Cleaner Code Using Mongoose Schemas**](https://www.freecodecamp.org/news/how-to-write-cleaner-code-using-mongoose-schemas/)
-   [**A Complete Guide to MongoDB Queries with Examples**](https://dev.to/rajrathod/a-complete-guide-to-mongodb-queries-with-examples-ik4)
-   [**Folder Structure for NodeJS & ExpressJS project**](https://dev.to/mr_ali3n/folder-structure-for-nodejs-expressjs-project-435l)
-   [**A better project structure with Express and Node.Js**](https://medium.com/codechef-vit/a-better-project-structure-with-express-and-node-js-c23abc2d736f)
-   [**Routes and Controllers**](https://dev.to/ericchapman/nodejs-express-part-5-routes-and-controllers-55d3)
-   [**Building a Node API using Controllers and Routes**](https://medium.com/munchy-bytes/building-an-api-with-node-using-controllers-and-routes-ac58978d663f)
-   [**Differences between express.Router and app.get?**](https://stackoverflow.com/questions/28305120/differences-between-express-router-and-app-get)
-   [**What is .env file in Node.js?**](https://joannaterm.hashnode.dev/what-is-env-file-in-nodejs)
-   [**Node.js Everywhere with Environment Variables!**](https://medium.com/the-node-js-collection/making-your-node-js-work-everywhere-with-environment-variables-2da8cdf6e786)
- [**How to Hash Passwords with bcrypt in Node.js**](https://www.freecodecamp.org/news/how-to-hash-passwords-with-bcrypt-in-nodejs/#:~:text=Conclusion-,What%20is%20Hashing%3F,value%20and%20facilitates%20the%20retrieval.)
- [**Explain Error Handling in Express.js using an Example**](https://www.geeksforgeeks.org/explain-error-handling-in-express-js-using-an-example/)
- [**Input Validation using Zod**](https://zod.dev/?id=introduction)
- [**How to make input validation simple and clean in your Express.js app**](https://medium.com/free-code-camp/how-to-make-input-validation-simple-and-clean-in-your-express-js-app-ea9b5ff5a8a7)
- [**How to make input validation simple and clean in your Express.js app**](https://medium.com/free-code-camp/how-to-make-input-validation-simple-and-clean-in-your-express-js-app-ea9b5ff5a8a7)
- [**What is ejs template engine?**](https://www.linkedin.com/pulse/what-ejs-template-engine-manoj-shrestha/)
- [**How to use EJS to template your Node.js application**](https://blog.logrocket.com/how-to-use-ejs-template-node-js-application/)
- [**How to build a blog in Js (Node + ExpressJs + Ejs) and (HTML + CSS ): As a beginner.**](https://medium.com/@faizanmumtazwork/how-to-building-a-blog-in-js-node-ejs-and-html-css-as-a-beginner-d7b130d9f5c4)
- [**Learn React – A Handbook for Beginners**](https://www.freecodecamp.org/news/react-for-beginners-handbook/)
- [**Learn React – A Guide to the Key Concepts**](https://www.freecodecamp.org/news/learn-react-key-concepts/)
- [**How to Build an Application With Node.js**](https://www.freecodecamp.org/news/how-to-build-an-event-app-with-node-js/#:~:text=ejs%20allows%20you%20to%20embed,ejs%20template%20in%20your%20application)
- [**Session Based Authentication**](https://roadmap.sh/guides/session-based-authentication)
- [**How to Authenticate Users in Your Node App with Cookies, Sessions, and Passport.js**](https://www.freecodecamp.org/news/authenticate-users-node-app/)
- [**Cookie Authentication | Session Authentication in Nodejs**](https://monsterlessons-academy.com/posts/cookie-authentication-session-authentication-in-nodejs)
- [**Sessions vs Tokens**](https://rrawat.com/blog/sessions-vs-tokens-authentication)


## Official Website
-   [**Node.js**](https://nodejs.org/en)
-   [**Express**](https://expressjs.com/)
-   [**Express - NPM**](https://www.npmjs.com/package/express)
-   [**Express Middleware**](https://expressjs.com/en/guide/using-middleware.html)
-   [**Express Routing**](https://expressjs.com/en/guide/routing.html)
-   [**Express Error Handling**](https://expressjs.com/en/guide/error-handling.html)
-   [**NPM**](https://www.npmjs.com/)
-   [**JWT**](https://jwt.io/)
-   [**JWT - NPM**](https://www.npmjs.com/package/jsonwebtoken)
-   [**MongoDB**](https://www.mongodb.com/)
-   [**MongoDB - NPM**](https://www.npmjs.com/package/mongodb)
-   [**MongoDB Cloud | MongoDB**](https://www.mongodb.com/products/platform/cloud)
-   [**Mongoose**](https://mongoosejs.com/docs/)
-   [**Mongoose - NPM**](https://www.npmjs.com/package/mongoose?azure-portal=true)
-   [**Bcrypt**](https://www.npmjs.com/package/bcrypt)
-   [**Bcrypt - NPM**](https://www.npmjs.com/package/bcrypt)
-   [**Zod**](https://zod.dev/)
-   [**Zod - NPM**](https://www.npmjs.com/package/zod)
-   [**Dotenv**](https://www.dotenv.org/docs/)
-   [**Dotenv - NPM**](https://www.npmjs.com/package/dotenv)
-   [**EJS**](https://ejs.co/)
-   [**EJS - NPM**](https://www.npmjs.com/package/ejs)
-   [**React**](https://react.dev/)
-   [**Redux**](https://redux.js.org/)
-   [**Redux Toolkit**](https://redux-toolkit.js.org/)
-   [**Tailwind CSS**](https://tailwindcss.com/)
