Welcome to Natours, a learning project where I've explored the fundamentals of Node.js and Express for backend development. Throughout this journey, I've covered a diverse range of topics, from Node.js core modules to advanced MongoDB features, aiming to build a strong foundation in creating robust and scalable web applications.
- Gained an understanding of Node.js basics and core modules.
- Explored NPM (Node Package Manager) for managing dependencies.
- Learned how Node.js works behind the scenes, including the event loop, blocking vs non-blocking code, event-driven architecture, streams, and modules.
- Mastered the fundamentals of Express, covering routing, middleware, sending responses, and more.
- Designed and developed RESTful APIs with advanced features such as filtering, sorting, aliasing, and pagination.
- Implemented server-side website rendering (HTML) using Pug templates.
- Performed CRUD operations with MongoDB locally and on the Atlas platform (in the cloud).
- Dived into advanced MongoDB topics like geospatial queries, the aggregation pipeline, and operators.
- Explored the fundamentals of Mongoose, covering data models, CRUD operations, data validation, and middleware.
- Learned advanced Mongoose features, including modeling geospatial data, populates, virtual populates, indexes, and more.
- Understood and implemented the Model-View-Controller (MVC) architecture in applications.
- Learned how to work with data in NoSQL databases, exploring advanced data modeling techniques, relationships between data, embedding, referencing, and more.
- Implemented complete modern authentication with JSON Web Tokens (JWT).
- Covered user sign up, log in, password reset, secure cookies, and other security-related features.