Natours (travel)
Travel/tour booking app with map-based tour views, secure auth, Stripe checkout, and user reviews.
- December 2024
- Personal Project (UDEMY)
- Node.js · Express · MongoDB · Stripe

Overview
Implemented an MVC structure with clean controllers and reusable middleware, JWT authentication with permission based on role (user/admin), and a Stripe checkout process which makes paid bookings and adds user history. Tours feature rich detail pages with map to display locations, as well as a reviews system to enable users to rate and comment after purchase. The app uses central validation and error handling so that both API and pages fail consistently, with security middleware (rate-limit, sanitizing) and performance optimizations (lean queries, caching where appropriate) to guarantee responsiveness and production-ready experience.
What I built
- Core & Architecture
- Auth & Security
- Tours & Catalog
- Booking & Payments
- Users & Reviews
- Quality & Ops
Screens
Screen 1 Screen 2 Screen 3