Skip to content

πŸ“š This repository serves as a documentation of my progress through the "Complete Node.js Developer in 2024" course by Zero to Mastery. Explore my journey from beginner to proficiency in Node.js. From learning GraphQL, REST, and WebSockets to mastering advanced JavaScript concepts, follow along as I document my achievements and projects. πŸš€

License

Notifications You must be signed in to change notification settings

Ishannaik/NodeJS-ZTM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

My Node.js Developer Journey: From Zero to Mastery πŸš€

Course Stats πŸ“Š

Version Stars Forks Issues Languages License Downloads Code Quality Version Contributors

Introduction

Welcome to my journey through the "Complete Node.js Developer in 2024" course by Zero to Mastery. Here, I share my progress, insights, and projects, showcasing my evolution from a beginner to a proficient Node.js developer.

Foundations

  • Dive deep into Node internals including Libuv, threads, processes, and event loop.
  • Explore asynchronous programming and compare Node with PHP and Python.
  • Understand design patterns like the Observer Design Pattern and Event Emitters.

Module System

  • Learn about the require function, creating custom modules, and module caching.
  • Compare CommonJS with ECMAScript (ES6) modules.
  • Understand package management with NPM, including creating packages, managing dependencies, and handling vulnerabilities.

File I/O: Planets Project

  • Work on the Planets Project, exploring exoplanets using Node.
  • Manipulate data with streams, parse CSV files, and find habitable planets.

Web Servers

  • Explore web servers, HTTP responses, requests, and APIs.
  • Dive into Express.js, comparing it with Next.js and Koa.

ExpressJS

  • Understand the differences between Express, Next.js, and Koa.
  • Learn about route parameters, middleware, and MVC pattern in Express.
  • Explore RESTful APIs, CRUD operations, and serving static files.

NodeJS NASA Project

  • Architect and build a Node.js project serving NASA data.
  • Implement various routes (GET, POST, DELETE) and serve React.js applications.
  • Automate tasks with GitHub Actions and enhance performance.

Testing APIs

  • Learn about different types of tests: unit tests, API tests, and UI tests.
  • Test Node.js APIs using Jest and Supertest.

Improving Node Performance

  • Identify and handle blocking event loop scenarios.
  • Implement clustering using Node Cluster module and PM2.
  • Improve performance of applications with stateless APIs and Node Worker Threads.

Databases

  • Use MongoDB to add persistence to the NASA Project.
  • Understand NoSQL vs. SQL databases, and choose between them.
  • Work with Mongoose, MongoDB Atlas, and horizontally scale databases.

Working With REST APIs

  • Integrate with a REST API by working with SpaceX API.
  • Version REST APIs, run search queries, and handle paginated APIs.

Authentication

  • Focus on security first principles with JWT, cookies, and CSRF.
  • Secure servers with HTTPS and SSL/TLS, and work with HelmetJS.
  • Implement authentication with Auth0.

Deployment and CI/CD

  • Build out a simple CI pipeline for NASA Project on GitHub.
  • Understand CI vs. CD, automated tests, and dynamic configuration with secrets.
  • Deploy to production with Docker to Amazon EC2, manage containers, and use PM2.

Node Production and the Cloud (AWS)

  • Deploy applications to AWS using Docker containers.
  • Understand serverless vs. containers, manage Docker containers and images, and use SSH for production deployment.

GraphQL

  • Compare GraphQL with REST, and build a GraphQL API.

Sockets (WebSockets, Socket.io)

  • Learn about real-time communication with WebSockets and Socket.io.
  • Build a full-stack multiplayer Pong game with sockets.

Projects & Highlights ✨

  • E-commerce Backend: Implemented a GraphQL schema for an e-commerce platform.
  • Real-time Chat Application: Developed a chat application using WebSockets.
  • Multiplayer Game (Pong): Built a multiplayer Pong game.

Challenges & Learning 🧠

  • Overcoming challenges in understanding GraphQL and mastering real-time communication.
  • Integrating different technologies for full-stack development.

Looking Ahead πŸ”­

  • Exploring microservices with Node.js.
  • Contributing to open-source projects.

Acknowledgements πŸ™

A huge thank you to the instructors, Adam Odziemkowski and Andrei Neagoie, for their expert guidance, and to the Zero to Mastery community for the continuous support.

Certificate of Completion

For more about the course, visit Complete Node.js Developer in 2024 - Zero to Mastery on Udemy.

About

πŸ“š This repository serves as a documentation of my progress through the "Complete Node.js Developer in 2024" course by Zero to Mastery. Explore my journey from beginner to proficiency in Node.js. From learning GraphQL, REST, and WebSockets to mastering advanced JavaScript concepts, follow along as I document my achievements and projects. πŸš€

Resources

License

Stars

Watchers

Forks

Packages

No packages published