
About
Natours is the final and most extensive project from Jonas Schmedtmann's Node.js course(opens in a new tab).
It introduced me to key backend concepts like authentication, access control, and data modeling. The app also features server-side rendering.
Adapting to outdated libraries and breaking changes was a valuable learning experience. This, along with API testing and debugging using Postman(opens in a new tab), sharpened my debugging and problem-solving skills.
Backend architecture
Built using Express(opens in a new tab), MongoDB(opens in a new tab), and Mongoose(opens in a new tab), this project features a structured, RESTful API with secure JWT authentication, role-based access control and advanced error handling.
Tooling
Natours includes a simulated payment system via Stripe(opens in a new tab) and integrated email functionality using Brevo(opens in a new tab). I also used Postman(opens in a new tab) to test API endpoints throughout development.
Security
I implemented backend security features using Helmet(opens in a new tab), rate limiting, data sanitization, and XSS protection. This project helped me build a strong foundation in writing secure, production-ready APIs with Express(opens in a new tab).