This repository documents the learning content and projects from the course "NodeJS - The Complete Guide" by Maximillian Schwarzmüller on Udemy. The course covered a comprehensive range of NodeJS technologies and practices and included several practical projects.
- Basics of NodeJS: Introduction to the fundamentals of NodeJS, including the event loop, asynchronous programming, and creating simple servers.
- Core Modules and Creating a Server: Using NodeJS's built-in core modules to create and manage a basic server.
- Express: Using the Express framework for server application development.
- Middleware, Parsing, Routing, and Serving: Implementing middleware for request processing, routing for various endpoints, and serving content.
- EJS, Handlebars, and Pug: Using template engines to dynamically generate HTML pages.
- Model, View, and Controller: Structuring the application into MVC components for better organization and maintainability.
- Routing and Navigation: Configuring routes and navigation within the application.
- CRUD Operations: Implementing basic database operations: Create, Read, Update, and Delete.
- Data Management: Storing data first in JSON files, then in MySQL, and finally using the ORM library Sequelize.
- No-SQL Databases: Then using MongoDB and the ODM library Mongoose for data management.
- Authentication: Implementing user authentication with cookies and sessions.
- Email Sending: Sending emails using Sendgrid.
- Password Reset: Implementing a password reset mechanism using security tokens and the crypto module.
- CSRF Protection: Protecting the application against CSRF attacks with csurf.
- Validation: Server-side validation using express-validator.
- Error Handling: Managing errors through middleware.
- File Upload and Download: Implementing file uploads and downloads.
- Pagination: Implementing data pagination.
- Payment Solutions: Integrating Stripe for payment processing.
- JWT Authentication: Implementing JSON Web Token based authentication.
- Websockets: Pushing information from the server to the client using Websockets.
- GraphQL: Using GraphQL to create a flexible API.
- Deployment: Deploying applications on various hosting platforms.
- Testing with Mocha, Chai, and Sinon: Writing and running unit tests to ensure functionality and reliability of the application.
- Build Tools: Using Node and npm for project management and the build process.
- Typescript: Introduction to using Typescript with NodeJS for type-safe development.
- Deno and Oak: Creating a simple To-Do app with Deno, Oak, and MongoDB as the database.
This project was created with the help of the following course: NodeJS - The Complete Guide